[jboss-dev] JTA question for the transaction gurus
Tim Fox
tim.fox at jboss.com
Thu Jan 11 15:09:22 EST 2007
Actually pls ignore me my ramblings, I now realise this is a red herring :)
Tim Fox wrote:
> Or perhaps I should never attempt to retry the commit, but instead roll
> it back (not sure if rollback is really necessary), then start a new
> transaction, redo the work, and try and commit that?
>
> Tim Fox wrote:
>> If I have at least 2 participants enlisted in a JTA tx and call
>> commit, then the commit fails, e.g. due to network problems say due to
>> the XAResource being enable to contact it's server.
>>
>> In this case is it possible the commit fails and the TRansaction is
>> left in state Status.STATUS_PREPARING?
>>
>> Basically I have this situation:
>>
>> I am have a JTA transaction where 2 JMS XAResources are enlisted
>> corresponding to two different servers.
>>
>> I am acking some messages on one server and sending some messages on
>> the other (basically this is a message bridge).
>>
>> If the network fails, the bridge should be able to catch exceptions
>> and retry until the network comes back up.
>>
>> If the failure occurs during the Transaction.commit() call, then I
>> only want to retry the commit if the transaction didn't get prepared,
>> since if it got to the prepare stage then the transaction recovery
>> (hopefully) will commit it eventually.
>>
>> So I am checking Transaction.getStatus() after the failure to work out
>> whether to retry commit or not. Basically my assumption is I should
>> retry after failure if the tx is not prepared.
>>
>> Is this a correct approach?
>>
>>
>>
>
--
Tim Fox
JBoss Messaging Technical Lead
JBoss - a division of Red Hat
T: +44 2088006768
M: +44 7957983205
E: tim.fox at jboss.com tim.fox at redhat.com
More information about the jboss-development
mailing list