Uploaded image for project: 'ActiveMQ .Net'
  1. ActiveMQ .Net
  2. AMQNET-414

Exception thrown when using DTC in multiple processes connected to the same broker

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • None
    • None
    • ActiveMQ
    • None

    Description

      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

      Attachments

        Activity

          People

            jgomes Jim Gomes
            remogloor Remo Gloor
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: