Github user michaelandrepearce commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1316
  
    After looking to revert this. I came back across another reason why we had 
to do this.
    
    There still is a fundamental problem with leaving :global in as it stands 
(so this bit to make it meet spec i can't remove).
    
    We should note, as per JMS 
Spec:http://docs.oracle.com/javaee/7/api/javax/jms/Session.html#unsubscribe-java.lang.String-
    
    "
    A shared durable subscription and an unshared durable subscription may not 
have the same name and client identifier (if set). If an unshared durable 
subscription already exists with the same name and client identifier (if set) 
then a JMSException is thrown.
    "
    
    This means the current behaviour in AMQP here is wrong, as shared and 
unshared with the same subscription name are not making the same queue as such 
above is invalid.
    
    e.g. if clientId = myClient;
    
    createSharedDurableConsumer(myTopic, "mySub")
    will create myClient.mySub:global
    
    createDurableConsumer(myTopic, "mySub")
    will create myClient.mySub
    
    Essentially this is why we need to remove the :global part still in the 
shared part, otherwise this is breaking spec. The other option would be to add 
:global (or a rename of :global to :durable) to the durable consumer, but that 
would break things historically.
    
    As removing :global in shared wouldn't break anything already historically, 
as SharedDurable is not in a working state. this is why we do have to do this.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to