How are you validating that it didn't work? Remember, exceeding the timeout will not interrupt the process. The rollback will also not happen at the 2 minute mark.
What happens is, when the business method completes and the transaction goes to commit, the execution time is compared against the timeout, and rolled back if the execution has taken longer: https://github.com/apache/geronimo-txmanager/blob/geronimo-txmanager-parent-3.1.4/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionImpl.java#L265 Where you have a long-running process you need to consider where your transaction boundaries are. Do you want everything to rollback if it takes 11 minutes instead of 10 to run - probably not. Without knowing what the process is, it's hard to make suggestions, but it sounds like some sort of batch process. Perhaps it needs to be broken up into smaller transactions. Jon On Tue, Nov 12, 2019 at 1:12 PM Ivan Junckes Filho <[email protected]> wrote: > I lowered the timeout value for 2 minutes, just to see if the timeout > worked, but it doesn't seem to work. Maybe it doesn't work less than 10 > minutes? > > On Tue, Nov 12, 2019 at 9:59 AM Ivan Junckes Filho <[email protected]> > wrote: > > > I am actually running @Schedule process that executes some queries that > > take a long time and save the result in the db so they can be downloaded. > > > > I m not sure if there is a better way to do this, but 10 minutes may not > > be enough. I just didn't want the process to stop. > > > > > > On Tue, Nov 12, 2019 at 10:56 AM Jonathan Gallimore < > > [email protected]> wrote: > > > >> Right. You can't just "stop" a thread in Java. Your business method will > >> need some mechanism by which it would stop and return with an error or > >> similar if it didn't finish within a specific time, if that's what > you're > >> after. > >> > >> If you're changing the timeout to try and "fix" a problem, the root > cause > >> is probably somewhere else. > >> > >> Jon > >> > >> On Tue, Nov 12, 2019 at 12:46 PM Ivan Junckes Filho < > >> [email protected]> > >> wrote: > >> > >> > "but the operations themselves won't be interrupted at the > >> > timeout point." This is important, thanks Jon. > >> > > >> > On Tue, Nov 12, 2019 at 10:32 AM Jonathan Gallimore < > >> > [email protected]> wrote: > >> > > >> > > You'd need to define a TransactionManager, and set the > >> > > defaultTransactionTimeout on it, similar to this: > >> > > > >> > > <TransactionManager id="myTransactionManager" > >> type="TransactionManager"> > >> > > defaultTransactionTimeout = 10 minutes > >> > > </TransactionManager> > >> > > > >> > > Note that that bean invocations that exceed the timeout will be > >> marked as > >> > > rolled back, but the operations themselves won't be interrupted at > the > >> > > timeout point. > >> > > > >> > > Jon > >> > > > >> > > > >> > > On Tue, Nov 12, 2019 at 12:00 PM Ivan Junckes Filho < > >> > [email protected] > >> > > > > >> > > wrote: > >> > > > >> > > > Hey guys, quick question. > >> > > > > >> > > > What property should I use to change EJB transaction timeout? > >> > > > Does this work in the system.properties? > >> > > > defaultTransactionTimeout = 10 minutes > >> > > > > >> > > > >> > > >> > > >
