I'm running a batch job, which can last for 2-3 h, maybe longer. I do not really want to set a limit, since it may increase over time.
My current transaction timeout has been set to 2h, which is to little. However, I feel a bit uncomfortable setting it to, lets say 8 h.
And as I said: The total processing time of the batch job may increase a lot over time. It should run as long as it needs to without being interrupted.
The batch job actually does not need to run inside a transaction. I have a MBean, which calls a SLSB to trigger the job.
How would I make sure that the call to the SLSB does not involve any transactions and so that no timeout applies to the call?
Mark the SLSB bean with TransactionAttribute.Never or use BMT to explicitly suspend the transaction before starting the batch job. The former probably means reconfiguring the MDB's transaction attribute too, or using BMT for it instead. Message redelivery and acknowledgment behavior needs some careful thought if you start down that road though.