On JSR-352 batch, I'm defining a transaction timeout in step level for chunk processing as 900s. At the same time I have transaction timeout mentioned in server.xml as 1800s. this chunk processing step is partitioned using PartitionMapper step. My question is when the step gets executed, few threads getting timed out using step level transaction timeout which is 900s. But few threads hanging for while and getting timed out based on server.xml transaction timeout which is 1800s.
<step id="ReportBatch" >
<properties >
<property name="javax.transaction.global.timeout" value="900"/>
</properties></step>
server.xml
<transaction clientInactivityTimeout="1800" propogatedOrBMTTranLifetimeTimeout="1800" totalTranLifetimeTimeout="1800" transactionLogDirectory="${server.config.dir}/tranlog/"/>
I'm expecting thread should fail with 900s timeout mentioned in step level. Which transaction timeout takes the preference ? Is this fine to remove transaction time out from server.xml, or reduce the timeout limit on server.xml