Aw: Re: Definition of subscriptionname in Camel JMS-Endpoint does not work as expected

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Aw: Re: Definition of subscriptionname in Camel JMS-Endpoint does not work as expected

Benjamin Graf
Hi,
 
yes it seems non-durable shared subscription are not implemented correctly. Subscription name should be set for non-durable as well.
 
Regards
Benjamin
 

Gesendet: Dienstag, 13. August 2019 um 11:57 Uhr
Von: "Claus Ibsen" <[hidden email]>
An: [hidden email]
Betreff: Re: Definition of subscriptionname in Camel JMS-Endpoint does not work as expected
Hi

Shared subscription is something new in JMS 2.0.
So it may be a bug or not, I can't recall on top of my head. I suggest
you spend a bit time research and come back and tell us.

On Tue, Aug 13, 2019 at 11:46 AM <[hidden email]> wrote:

>
> Dear Camel guys and girls,
>
>
> I have a question regarding the property "subscriptionName" which can be specified for a JMS-Consumer.
>
> First, here is my project setup:
>
> * Camel 2.24.1
> * Spring-Boot: 2.1.0.RELEASE
>
> I create a simple standalone JAR which just should consume from defined JMS-Queues and/or JMS-Topics.
> Therefore I wrote a simple Route and configured my JMS-Endpoint like this:
>
> jms:topic:mytopicstring?connectionFactory=#connectionFactory&defaultTaskExecutorType=SimpleAsync&bridgeErrorHandler=true&subscriptionShared=true&subscriptionName=jmsc_lokal
>
> As you can see I use a shared subscription in combination with a subscriptionName as I want to be able to identify my subscription as long as it lasts.
> The problem is now that this subscriptionName is never used. Instead my subscription on the topic uses the default subscription name which is the class name: org.apache.camel.component.jms.EndpointMessageListener.
>
> In the documentation on GitHub for Camel Version 2.24.1 it is written that the subscriptionName can be used for shared subscription too.:
>
>
> subscriptionName (consumer)
>
>
> Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client’s JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0).
>
>
> If I debug into the method org.apache.camel.component.jms.JmsEndpoint#configureListenerContainer
> I can see that the subscriptionName is in fact only used when the subscription is durable (which I don't want to have):
>
>
> // now configure the JMS 2.0 API
> if (configuration.getDurableSubscriptionName() != null) {
> listenerContainer.setDurableSubscriptionName(configuration.getDurableSubscriptionName());
> } else if (configuration.isSubscriptionDurable()) {
> listenerContainer.setSubscriptionDurable(true);
> if (configuration.getSubscriptionName() != null) {
> listenerContainer.setSubscriptionName(configuration.getSubscriptionName());
> }
> }
> listenerContainer.setSubscriptionShared(configuration.isSubscriptionShared());
>
> So I am wondering if I just misunderstood the documentation or if it is indeed a bug that the subscriptionName can only be used in combination with a durable subscription?
> Could you please tell me what you think?
>
> If it is a bug I can create a JIRA-Issue and provide a hotfix if you want.
> If I just misunderstood something it would be great if you could help me out with this one.
>
>
> Best regards and thanks a lot in advance,
> Daniel Novak
>
>
> **********************************************************************
> This message and any attachment are confidential and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, please call or e-mail the sender and delete the message and any attachment from your system. If you are not the intended recipient, you must not copy this message or attachment or disclose the contents to any other person. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive later or incomplete, or contain viruses. DZ PRIVATBANK therefore does not accept liability for any errors or omissions in the contents of this message which arises as a result of e-mail transmission. If verification is required please request a hard-copy version. This message is provided for informational purposes only and should not be construed as a solicitation or offer to buy or sell any securities or related financial instruments. DZ PRIVATBANK does not warrant that incoming e-mails will be processed within a certain period of time. For security reasons, DZ PRIVATBANK does not accept any instructions that must be in writing (financial transactions, changes of address, etc.) sent by e-mail. If a message is urgent, please contact us by telephone.
> **********************************************************************



--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2[https://www.manning.com/ibsen2]