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.
>
>

Reply via email to