Hi All,

Thank you for the suggestions.

With regard to other brokers supporting JMS 2.0, ActiveMQ Artemis allows
the creation of multiple shared consumers on a single JMSContext and
messages are received as expected. However even the shared consumer example
made available in Artemis [1] uses two JMSContexts to create two separate
consumers sharing a single subscription.

Furthermore the Oracle blog [2], by the JMS 2.0 specification lead,
describing the new features in JMS 2.0 also talks about shared subscription
in the context of two JVMs or two threads on a single JVM.

As suggested, I will check the feasibility of allowing shared subscription
for multiple consumers, from a single session, with the current
implementation. If this is possible, allowing shared subscriptions for
consumers from a single JMSContext would also be straightforward since a
single JMSContext is basically the combination of a single connection and a
single session.

[1] https://github.com/apache/activemq-artemis/blob/master/e
xamples/features/standard/jms-shared-consumer/src/main/java/
org/apache/activemq/artemis/jms/example/JMSSharedConsumerExample.java
[2] http://www.oracle.com/technetwork/articles/java/jms2mess
aging-1954190.html

Thanks,
Maryam

On Tue, Jun 20, 2017 at 9:12 AM, Asitha Nanayakkara <[email protected]> wrote:

> Hi Maryam,
>
> On Mon, Jun 19, 2017 at 5:09 PM, Maryam Ziyad <[email protected]> wrote:
>
>> Hi All,
>>
>> We have implemented support for basic functionality with JMS 2.0 as
>> proposed [1].
>>
>> This includes partial support for JMSContext, JMSProducer and JMSConsumer
>> with support for:
>>
>>    - Simple synchronous send/receive
>>    - Asynchronous receive
>>    - Durable subscription
>>
>> We will now be working on providing the new functionality introduced with
>> JMS 2.0 including shared subscriptions.
>>
>> *Shared Subscription*
>>
>> While the JMS 1.1 API did not allow multiple consumers to share a single
>> subscription on a topic, this capability was allowed by MB 3.x.x, via a
>> configuration in broker.xml [2]. Now, with JMS 2.0, shared subscription is
>> to be allowed on topics at API level.
>>
>
> For this we might need to introduce a new AMQP frame. As Pamod suggested
> we might need to have a look at how other brokers have done this.
>
>>
>> The JMS 2.0 specification mentions that the restriction of not allowing
>> shared topic subscriptions was removed because "it did not allow sharing of
>> work among multiple connections, threads or JVMs" (JMS_SPEC-40). Thus even
>> though not explicitly mentioned, could we assume that the consumers sharing
>> the subscription are from different connections and thus from different
>> sessions and JMSContexts?
>>
>
> Yes.
>
>>
>> In the existing shared consumer implementation in MB 3.x.x, each consumer
>> sharing the subscription needs to be created from a separate session.
>> Assuming that there would not be cases where we would use the same
>> JMSContext/Session to create shared subscribers, providing support for
>> shared subscription with JMS 2.0 could be directly based on the existing
>> implementation.
>>
>
> AFAIR this is a limitation of MB implementation. There is no restriction
> from JMS spec for this. Can you go through the code and check the
> feasibility for supporting multiple subscribers from the same session? If
> it is not a drastic change we can have a go at it.
>
> Regards,
> Asitha
>
>>
>> Feedback on the above would be highly appreciated.
>>
>> [1] https://github.com/wso2/andes/pull/907
>> [2] https://docs.wso2.com/display/MB320/Creating+Durable+Top
>> ic+Subscriptions
>>
>> Thank you,
>> Maryam
>>
>> On Mon, Jun 19, 2017 at 1:33 PM, Maryam Ziyad <[email protected]> wrote:
>>
>>> Hi Pamod,
>>>
>>> Will there be any frame definitions we might need to change in the
>>>> existing AMQP 0_91 to work with JMS 2.0 ?
>>>>
>>>
>>> We have not had to modify any frames so far, to provide basic support
>>> for JMS 2.0. However since we are still to implement the new functionality
>>> provided by JMS 2.0, we may have to modify the frame definitions to support
>>> them.
>>>
>>> I will update the thread with any modifications required.
>>>
>>> Thank you,
>>> Maryam
>>> --
>>> *Maryam Ziyad Mohamed*
>>> Software Engineer | WSO2
>>> [image: http://wso2.com/signature] <http://wso2.com/signature>
>>>
>>
>>
>>
>> --
>> *Maryam Ziyad Mohamed*
>> Software Engineer | WSO2
>> [image: http://wso2.com/signature] <http://wso2.com/signature>
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> *Asitha Nanayakkara* <http://asitha.github.io/>
> Senior Software Engineer
> WSO2, Inc. <http://wso2.com/>
> Mob: +94 77 853 0682 <+94%2077%20853%200682>
> [image: https://wso2.com/signature] <https://wso2.com/signature>
>
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*Maryam Ziyad Mohamed*
Software Engineer | WSO2
[image: http://wso2.com/signature] <http://wso2.com/signature>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to