You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Martin Ritchie (JIRA)" <qp...@incubator.apache.org> on 2009/09/11 13:33:01 UTC

[jira] Created: (QPID-2096) ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore

ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore
----------------------------------------------------------------------------------

                 Key: QPID-2096
                 URL: https://issues.apache.org/jira/browse/QPID-2096
             Project: Qpid
          Issue Type: Bug
    Affects Versions: M4, 0.5
            Reporter: Martin Ritchie


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.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Commented: (QPID-2096) ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore

Posted by "Robbie Gemmell (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12796272#action_12796272 ] 

Robbie Gemmell commented on QPID-2096:
--------------------------------------

Commited to trunk

> ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore
> ----------------------------------------------------------------------------------
>
>                 Key: QPID-2096
>                 URL: https://issues.apache.org/jira/browse/QPID-2096
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M4, 0.5, 0.6
>            Reporter: Martin Ritchie
>            Assignee: Robbie Gemmell
>            Priority: Blocker
>             Fix For: 0.6
>
>         Attachments: QPID-2096_trunk.patch
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Issue Comment Edited: (QPID-2096) ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore

Posted by "Robbie Gemmell (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795093#action_12795093 ] 

Robbie Gemmell edited comment on QPID-2096 at 12/29/09 6:16 PM:
----------------------------------------------------------------

This issue and associated workarounds are currently preventing recovery of queue bindings from durable exchanges created at broker startup (be it amq.*, or configuration-declared exchanges) (QPID-2308)

      was (Author: gemmellr):
    This issue and associated workarounds are currently preventing recovery of queue bindings from durable exchanges created at broker startup (be it default, amq.*, or configuration-declared exchanges) (QPID-2308)
  
> ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore
> ----------------------------------------------------------------------------------
>
>                 Key: QPID-2096
>                 URL: https://issues.apache.org/jira/browse/QPID-2096
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M4, 0.5, 0.6
>            Reporter: Martin Ritchie
>            Assignee: Robbie Gemmell
>            Priority: Blocker
>             Fix For: 0.6
>
>         Attachments: QPID-2096_trunk.patch
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Updated: (QPID-2096) ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore

Posted by "Andrew Stitcher (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew Stitcher updated QPID-2096:
----------------------------------

    Assignee: Robbie Gemmell  (was: Andrew Stitcher)

Robbie - please checkin your patch to trunk

> ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore
> ----------------------------------------------------------------------------------
>
>                 Key: QPID-2096
>                 URL: https://issues.apache.org/jira/browse/QPID-2096
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M4, 0.5, 0.6
>            Reporter: Martin Ritchie
>            Assignee: Robbie Gemmell
>            Priority: Blocker
>             Fix For: 0.6
>
>         Attachments: QPID-2096_trunk.patch
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Updated: (QPID-2096) ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore

Posted by "Robbie Gemmell (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robbie Gemmell updated QPID-2096:
---------------------------------

    Attachment: QPID-2096_trunk.patch

> ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore
> ----------------------------------------------------------------------------------
>
>                 Key: QPID-2096
>                 URL: https://issues.apache.org/jira/browse/QPID-2096
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M4, 0.5, 0.6
>            Reporter: Martin Ritchie
>            Assignee: Robbie Gemmell
>             Fix For: 0.7
>
>         Attachments: QPID-2096_trunk.patch
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Updated: (QPID-2096) ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore

Posted by "Robbie Gemmell (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robbie Gemmell updated QPID-2096:
---------------------------------

    Status: Ready To Review  (was: In Progress)

> ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore
> ----------------------------------------------------------------------------------
>
>                 Key: QPID-2096
>                 URL: https://issues.apache.org/jira/browse/QPID-2096
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M4, 0.5, 0.6
>            Reporter: Martin Ritchie
>            Assignee: Robbie Gemmell
>            Priority: Blocker
>             Fix For: 0.6
>
>         Attachments: QPID-2096_trunk.patch
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Updated: (QPID-2096) ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore

Posted by "Robbie Gemmell (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robbie Gemmell updated QPID-2096:
---------------------------------

          Component/s: Java Broker
    Affects Version/s: 0.6
        Fix Version/s: 0.7
             Assignee: Robbie Gemmell

> ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore
> ----------------------------------------------------------------------------------
>
>                 Key: QPID-2096
>                 URL: https://issues.apache.org/jira/browse/QPID-2096
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M4, 0.5, 0.6
>            Reporter: Martin Ritchie
>            Assignee: Robbie Gemmell
>             Fix For: 0.7
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Updated: (QPID-2096) ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore

Posted by "Robbie Gemmell (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robbie Gemmell updated QPID-2096:
---------------------------------

         Priority: Blocker  (was: Major)
    Fix Version/s:     (was: 0.7)
                   0.6

This issue and associated workarounds are currently preventing recovery of queue bindings from durable exchanges created at broker startup (be it default, amq.*, or configuration-declared exchanges) (QPID-2308)

> ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore
> ----------------------------------------------------------------------------------
>
>                 Key: QPID-2096
>                 URL: https://issues.apache.org/jira/browse/QPID-2096
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M4, 0.5, 0.6
>            Reporter: Martin Ritchie
>            Assignee: Robbie Gemmell
>            Priority: Blocker
>             Fix For: 0.6
>
>         Attachments: QPID-2096_trunk.patch
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Assigned: (QPID-2096) ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore

Posted by "Robbie Gemmell (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robbie Gemmell reassigned QPID-2096:
------------------------------------

    Assignee: Andrew Stitcher  (was: Robbie Gemmell)

> ExchangeRegistration shoud NOT automatically add durable Exchanges to messageStore
> ----------------------------------------------------------------------------------
>
>                 Key: QPID-2096
>                 URL: https://issues.apache.org/jira/browse/QPID-2096
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M4, 0.5, 0.6
>            Reporter: Martin Ritchie
>            Assignee: Andrew Stitcher
>            Priority: Blocker
>             Fix For: 0.6
>
>         Attachments: QPID-2096_trunk.patch
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org