I took a look at the transaction related itests and I can't see any tests regarding the transaction timeout - they seem to be focused on testing the transaction attributes. Could it be that the transaction timeout has never been tested?
Regarding the transaction log I'm not sure how this is supposed to work - perhaps someone can enlighten me. Shouldn't every transaction be written to a transaction log file? /Bengt 2012/1/12 Bengt Rodehav <[email protected]> > > David, > > I have verified that the configuration is applied to the transaction > service I just can't see that it has any effect. I guess I can start > debugging but I was hoping to avoid that. Do you know if there are any > integration tests that tests the transaction timeout? > > /Bengt > > > Den torsdagen den 12:e januari 2012 skrev David Jencks< > [email protected]>: > > > I would guess that perhaps your configuration is not actually getting > supplied to the managed service? If you are running in karaf you can use > confiig:list to make sure config admin is aware of your config. You might > also want to debug the aries code and make sure that the configuration is > actually getting supplied to the service. > > david jencks > > On Jan 12, 2012, at 6:36 AM, Bengt Rodehav wrote: > > > > Hello again Alasdair, > > I finally got around to test configuration of Aries Transaction. I > created the following configuration (using > PID org.apache.aries.transaction): > > aries.transaction.timeout=1 > > aries.transaction.howl.logFileDir=${karaf.data}/txlog/ > > I set the logfile directory as well as the transaction timeout (I peeked > at how they do it in Servicemix). I set the timeout to a low value in order > to test that I actually get a transaction timeout. I also perform a 5s > sleep in a transacted method to force a transaction timeout. > > But, I never get a transaction timeout and I never get a transaction log > file in the "logFileDir" directory. I'm not beginning to fear that my > methods are not transacted. How can I verify this? > > Under what circumstances would a transaction log file be created? I > assumed that it would be created when the first transaction was created. > Or, do I also need to add the following line? > > aries.transaction.recoverable=true > > I've tried that but still no logfile was created. > > I also noticed that the default value for > "aries.transaction.howl.maxBuffers" is 0 while the default value for > "aries.transaction.howl.minBuffers" is 4. Is that correct? At first sight I > would think it should be the other way around. > > /Bengt > > > > > > > > > > > > > > 2011/12/29 Bengt Rodehav <[email protected]> > > > > Thanks Alasdair - will look into it. > > /Bengt > > > > 2011/12/28 Alasdair Nottingham <[email protected]> > > > > Hi, > > The pid for configuring transactions is "org.apache.aries.transaction". > > Alasdair > > > > On 14 December 2011 14:33, Bengt Rodehav <[email protected]> wrote: > > > > It turned out that my error was not due to the transaction timing out > but to violation of unique constraints. Nevertheless, I would like to know > how to control the transaction timeout in Aries transaction. > > /Bengt > > > > 2011/12/14 Bengt Rodehav <[email protected]> > > > > Thanks for your reply David, > > I'll see if I can figure out the pid although this seems like something > that really needs to be documented in Aries. If the default timeout is 600 > seconds then this is probably not the reason of the errors I see. I need a > time out of about 30 s which then is much less than the default. > > I have been using MySql but I'm in the process of switching to SQL > Server 2005. MySql worked fine but I started having problems committing the > longer transactions with SQL Server 2005 which caused me to suspect a > transaction timeout. Perhaps the timeout is not propagated to SQL Server > like you hinted. > > /Bengt > > > > 2011/12/14 David Jencks <[email protected]> > > > > Transaction is set up as a managed service factory. I haven't figured > out exactly how this results in a tm instance without any visible > configuration. > > If you can figure out what is triggering the creation of a tm and the > pid, the property to set is called aries.transaction.timeout and the > default value is 600 (seconds) or 10 minutes. >
