1
votes

We have a JEE app running across 10 servers in a cluster. It utilized Spring Batch (2.2.7) and Spring Batch Admin (based on 1.3.0 with some minor modifications) to execute around 100 jobs nightly. The control of batch job execution is via the spring batch admin rest API. About half of the jobs are partitioned, distributing the load around the cluster.

Now we are looking at moving to new Spring versions replacing the JEE technologies and going with Spring Data(JPA) etc. However at this point due to a variety of reasons, we intend to keep the monolithic approach running over a cluster of servers.

I am investigating the best path forward on the Spring Batch / Spring Batch Admin front. I would like to move to Spring Batch 4.1. Some of the issues are :

  • there is a DB schema change that will cause some problems migrating the existing data.
  • Since we are using Spring Boot, we will disable the batch automatic execution.
  • Our jobs are all defined in xml files. Is job migration necessary?

What to do about Spring Batch Admin? Because of our app structure I dont think we want to go the direction of Spring Cloud Flow. I saw there is a 2.0M version of Spring Batch Admin github which is based on new technologies.

I am looking for recommendations on approach and possible pitfalls moving forward.

Thanks

1
I second the answer by @dimitrisli. However, can you clarify which DB change causes problems? - Mahmoud Ben Hassine

1 Answers

3
votes

Addressing some of your questions below:

  • What DB schema change are you referring to? The metadata schema of 2.2.x version looks identical to the metadata schema of 4.1.x version.
  • Spring Boot supports disabling automatic execution on startup with config spring.batch.job.enabled=false
  • XML configuration files are supported - in fact they are much more popular in Spring Batch than in other Spring projects to the point where the Documentation is providing both Java and XML configuration examples.
  • There is no need for XML config files migration. All xsd files since earlier versions are included in the spring-batch-core jar and in fact even in Spring Batch 4 the default spring-batch.xsd is the one coming from version 3 (there wasn't a new one in version 4).
  • Spring Batch Admin has reached end of life in December 31, 2017. The 2.0.0.M1 tag has been cut almost 4 years ago. As it's documented in a few places Spring Batch Cloud Data Flow is replacing it with an explicit migration guide. But nothing stops you from keep using Spring Batch Admin for monitoring purposes as it's based on the metadata schema which hasn't changed. I've used it and it works fine for monitoring purposes on both Spring Batch 3 and Spring Batch 4 versions.