Using JBoss 5.1.0
I've got a long running clean up task that repeatedly invokes a stateless session bean.
The problem I'm having is that the task takes longer than 5 minutes to run, which is the default transaction timeout.
Rather than change the default value or define a custom value on the SSB, I'm trying to wire things up so each SSB call uses it's own transaction.
My current design looks like:
MBean
invoke Task [SSB with @TransactionAttribute(NEVER)]
invoke Search [SSB with @TransactionAttribute(REQUIRED)], look up entities to operate on
for each entity
invoke Operation [SSB with @TransactionAttribute(REQUIRED)], perform operation
My expectation is that Task does not have a transaction.
The Search transaction will commit when all entities are found.
A new transaction will run and commit for each invocation on Operation.
However, what occurs is that all operations rollback after 5 minutes.
Can anyone explain the correct way to do this?
Thanks.