activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "clebert suconic (JIRA)" <>
Subject [jira] [Commented] (ARTEMIS-1262) JMS 2.0 durable subscription spec violation
Date Thu, 29 Jun 2017 19:51:00 GMT


clebert suconic commented on ARTEMIS-1262:

There's no way to comply with both statements.. separate subscription.. on which case you
keep it separate.. and throw an exception in case of a same name...

The spec is confusing here.. I think we should ignore it... the risk of any issues is low

If you really want to fix it.. we would need to change the name with a suffix such as .durable..
shared...   and some convoluted checks if the version is applied or not.. that is.. the fix
gets more dangerous than what we have in place now.

> JMS 2.0 durable subscription spec violation
> -------------------------------------------
>                 Key: ARTEMIS-1262
>                 URL:
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.1.0
>            Reporter: Christopher L. Shannon
> There is a JMS 2.0 spec violation with Artemis.  Currently it is possible to first create
a durable subscription with a clientId and subscription name and then also create a shared
durable subscription using the same clientId and subscription name.  This works because Artemis
isn't distinguishing between the two types of consumers during the creation of the consumer.
 However, the spec says:
> {quote}A shared durable subscription and an unshared durable subscription may not
> have the same name and client identifier. If the application calls one of the
> createSharedDurableConsumer methods, and an unshared durable 
> subscription already exists with the same name and client identifier, then a
> JMSException or JMSRuntimeException is thrown.{quote}
> I think that there may need to be a flag added somewhere during the creation of the consumer
so the broker can tell whether or not the durable subscription is shared vs non-shared so
it can reject a shared subscription attempt if a non-shared subscription exists for the same
client Id and name.

This message was sent by Atlassian JIRA

View raw message