Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-2096

ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: M4, 0.5, 0.6
    • Fix Version/s: 0.6
    • Component/s: Broker-J
    • Labels:
      None

      Description

      Summary:

      DefaultExchangeRegistry.registerExchange() has a side effect of calling messageStore.createExchange.

      This behaviour is unexpected as DefaultQueueRegistry does not do the same for queues.

      The problem that this has is that on MessageStore recovery the recovered exchanges will be registered. Which after the MessageStore has been recovered will cause createExchange to be called. The problem here is that the createExchange interface is not designed to cope with duplicates. Something that Derby highlights as it throws primary key constraint violation error.

      The solution is to decouple register and create as has been done with queues. This has not previously been seen as a) the Derby test profile is not run as often and b) the configuration used did not have an additional durable exchange defined.

        Attachments

        1. QPID-2096_trunk.patch
          8 kB
          Robbie Gemmell

          Issue Links

            Activity

              People

              • Assignee:
                robbie Robbie Gemmell
                Reporter:
                ritchiem Martin Ritchie
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: