Antony, The message seems to indicate that an transaction was in progress but uncommitted. Could you verify that you actually commit the transactions you start? Also, make sure that the entire MEP is handled before committing the transaction (e.g. by using sendSync or by explicitly sending a DONE exchange yourself) -- have a look at the code samples on http://servicemix.apache.org/transactions.html.
Are you coding this yourself or are you using something like Spring's TransactionTemplate to ease the work a bit? If you have already checked that, could you post us a sample of the code you are using as that might help us solve your issue? For most use cases, I would recommend you to avoid the use of the JCA Flow -- most of the times, it's much more convenient to use a matching consumer-provider pair of JMS endpoints. This will allow you to control transaction boundaries in a more fine-grained way and it will also avoid needless serialization of every MessageExchange while giving you the same level of reliability. Regards, Gert Vanthienen ------------------------ Open Source SOA: http://fusesource.com Blog: http://gertvanthienen.blogspot.com/ 2009/5/6 Antony Paul <[email protected]>: > > Hi, > I am trying to set up JTA XA transactions in ServiceMix so application > will have JBI message exchange recovery. Everything seems to work fine. > Messages are recovered on server restart. The only problem is the warning > messages from ActiveMQ. What does this mean? How to fix it. > > ServerSessionImpl:3 | .activemq.ra.ServerSessionImpl 234 | Local > transaction had not been commited. Commiting now. > -------- > -------- > ServerSessionImpl:3 | .activemq.ra.ServerSessionImpl 177 | Endpoint > failed to process message. Reason: Endpoint after delivery notification > failure > > Some more detail : > I wrote a sample application with two components both extends > ComponentSupport and implements MessageExchangeListener. In the first > component I wrote a Timer that will send only one message to the next > component. The sending is done inside a transaction. The second component > after processing commits the transaction. On committing I am getting the > above messages. Nothing other than sending message is done. ie. no other > resource is in the transaction. > > It is deployed into the default servicemix container. Using all the > default config files. > The container element is modified to add persistent="true" > autoEnlistInTransaction="true" flowName="jca". > > Using Fuse ESB 3.4 with AMQ 5.2.0. > > Regards, > Antony > -- > View this message in context: > http://www.nabble.com/ActiveMQ-warning---Local-transaction-had-not-been-commited.-Commiting-now-tp23403767p23403767.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. > >
