Aug 28th, 2010, 12:44 PM
SPRING BATCH J2EE Container
We are figuring out a batch architecture that has Spring Batch as "BatchEngine" and that leverages the low level J2EE AS services (Pooling,CLustering,Load Balancing etc...). Is that possible without break the j2ee specification (especially if we use spring AsynchTaskExcutor in our job configuration) and having unpredictable concurrent thread scenarios?
In particular, can i deploy my spring batch jobs under WebLogic or Jboss, and using a Partition Step with an AsynchTaskExecutor without having conflits on J2ee application server work managers?
Aug 31st, 2010, 12:05 PM
Sep 1st, 2010, 02:24 AM
Thank you Dave,
I will give a try to JBossWorkManagerTaskExecutor.
Sep 1st, 2010, 03:08 AM
i believe that the work manager api is not a J2EE standard since the relevant JSRs were not approved :
so wouldn't that solution be breaking J2EE compliance ?
Sep 1st, 2010, 04:57 AM
True, but that is splitting hairs. The appserver vendors provide WorkManager implementations and insist that apps use them instead of the native thread APIs, so it's irrelevant if the standard is really part of JEE or not.
Sep 6th, 2010, 04:34 AM
Interesting.. then it's not clear why the WorkManager approach was not accepted as a standard , if the major app server vendors insist on using it (can you refer to where this recommendation is expressed ?) then you are saying that the non compliance is only a formality.
can you shed some light on why the JSR's were not accepted formally ?
i'm asking bacause this (spring batch JEE comliance) is raised as a major concern by our CTO office ..
Sep 6th, 2010, 11:32 AM
I have no opinions or information relating to work manager JSRs. My opinion: your CTO needs to get some perspective - what does he gain from not using the relatively vendor-neutral work manager APIs, or the completely vendor-neutral Spring APIs? If people want to write "non-compliant" JEE applications he can try and stop them, but the Java language is not going to help him. And you don't need to use the multi-threading features of Spring (or Spring Batch) if you don't want to.