You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Remo Gloor (JIRA)" <ji...@apache.org> on 2013/02/20 00:25:12 UTC

[jira] [Created] (AMQNET-414) Exception thrown when using DTC in multiple processes connected to the same broker

Remo Gloor created AMQNET-414:
---------------------------------

             Summary: Exception thrown when using DTC in multiple processes connected to the same broker
                 Key: AMQNET-414
                 URL: https://issues.apache.org/jira/browse/AMQNET-414
             Project: ActiveMQ .Net
          Issue Type: Bug
            Reporter: Remo Gloor
            Assignee: Jim Gomes
            Priority: Critical


When using DTC in multiple processes that access the same broker instance all but the first instance can't enlist to the transaction. All other throw an exception that there is already a resource manager with the same id. This only happens in case another resource manager like a db server is enlisted on the transaction.

This happens because they all processes connected to one broker instance use the same resource manager ID. It is a Guid generated from the broker id.

I doubt that there is any good ID that is unique to the process instance but still the same on restart (e.g. connection/client id change on reboot). Is there any other?

If not the resource manager id has be configurable somehow by the application.

An other option (the one that should be prefered) is to enlist as promotable single phase enlistment. But this would require that the ActiveMQ server is responsible for the transaction as soon as it gets promoted. This would require changes in the server itsself though but make the system much more robust.

http://msdn.microsoft.com/en-us/library/ms229980(v=vs.80).aspx

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira