-
1. Re: Is Publish/Subscribe using JMS Topics with Durable subscriptions supported?
jlentz Apr 23, 2010 4:11 PM (in response to aemcat)Jira JBESB-1890 (Unable to configure jms-message-filter as durable subscriber to a Topic) was submitted July 30, 2008 - https://jira.jboss.org/jira/browse/JBESB-1890. It's marked as having Major priority. Does anyone know when this might get worked on? If this is not the approach favored by JBoss architects for durable subscriber support, should we enter a new Jira ticket for JBoss ESB durable subscriber support?
Thanks,
Jennifer
-
2. Re: Is Publish/Subscribe using JMS Topics with Durable subscriptions supported?
mike_finn May 28, 2010 9:44 PM (in response to jlentz)The key is, as Kevin suggested in the JIRA, to use JCA/JMS inflow instead of the 'standard' JMS gateway. Here is how:
<service category="" name="" description=""><listeners><jca-gatewayname="JMS-JCA-Gateway"adapter="jms-ra.rar"endpointClass="org.jboss.soa.esb.listeners.jca.JmsEndpoint"><activation-config><property name="destinationType" value="javax.jms.Topic" /><property name="destination" value="topic/your_topic_name" /><property name="subscriptionDurability" value="Durable" /><property name="clientId" value="your_client_id" /><property name="subscriptionName" value="your_subscription_name" /></activation-config></jca-gateway>...HTH,
Mike
-
3. Re: Is Publish/Subscribe using JMS Topics with Durable subscriptions supported?
kconner Jun 8, 2010 12:02 PM (in response to mike_finn)Using jms-jca-provider instead of jca-gateway is an easier route as it tries to mirror the jms-provider configuration.
You can see an example of this in the jms_transacted quickstart.
destinationType and destination will be handled through the attributes, with the remaining properties specified within the activation-config element.
Kev
-
4. Re: Is Publish/Subscribe using JMS Topics with Durable subscriptions supported?
jlentz Jun 9, 2010 12:27 PM (in response to kconner)Thank you Mike and Kevin for your replies. I ended up going with the jms-jca-provider approach:
<jms-jca-provider connection-factory="ClusteredXAConnectionFactory" name="JBossMessaging">
<jms-bus busid="newDataEsbChannel">
<jms-message-filter dest-name="topic/publish_new_data_esb" dest-type="TOPIC" transacted="true" />
</jms-bus>
<activation-config>
<property name="clientId" value="MyClientId" />
<property name="subscriptionDurability" value="Durable" />
<property name="subscriptionName" value="MySubscription" />
</activation-config></jms-jca-provider>
This worked beautifully! Thanks again for your help.
Jennifer
-
5. Re: Is Publish/Subscribe using JMS Topics with Durable subscriptions supported?
c4s4l Jun 22, 2010 10:40 AM (in response to jlentz)Hello,
I'm also using the jms-jca-provider to subscribe to a durable topic. All goes well except the messages published on the topic are delivered multiple times, every time I restart my service the message is consumed, acknowledgeMode is auto-acknowledge and the message should only be delivered once right? what may the problem?
<jms-jca-provider connection-factory="ClusteredXAConnectionFactory" name="JBossMessaging XA Transactions" transacted="true">
<jms-bus busid="LoggingService_topicChannel">
<jms-message-filter dest-name="topic/LoggingDurableTopic" dest-type="TOPIC" transacted="true" />
</jms-bus>
<activation-config>
<property name="dLQMaxResent" value="0" />
<property name="clientId" value="ESBDurableSubscriber" />
<property name="acknowledgeMode" value="Auto-acknowledge" />
<property name="subscriptionDurability" value="Durable" />
<property name="subscriptionName" value="MySubscriptionName" />
<property name="user" value="esbuser" />
<property name="password" value="esbpassword" /></activation-config>
</jms-jca-provider>Thanks,
Sergio
-
6. Re: Is Publish/Subscribe using JMS Topics with Durable subscriptions supported?
mortenminke Aug 15, 2012 10:23 AM (in response to c4s4l)I am trying to use a durable subscription to a topic which runs on Websphere ESB (all examples I see use the building Jboss messaging). With a normal standalone client application I can connect to the Websphere ESB without problems. I can also use the jms-provider in the JBoss ESB configuration, but then I do not have a durable subscription!
However, I do not know how to configure the jms-jca-provider, nothing seems to work. (I triend to configure the jndi-URL but in the jms-jca-provider that setting is never used whatever rubish I enter there!
My configuration which works looks like:
<jms-provider connection-factory="${connectionfactory}"
jndi-context-factory="${initialcontextfactory}"
name="jmsGwProvider" jndi-URL="${providerurl}">
<jms-bus busid="jmsGwChannel">
<jms-message-filter dest-name="${topic}"
dest-type="TOPIC"
transacted="true" />
</jms-bus>
</jms-provider>
The one which does NOT work:
<jms-jca-provider connection-factory="${connectionfactory}"
jndi-context-factory="${initialcontextfactory}"
name="jmsGwProvider" jndi-URL="${providerurl}">
<jms-bus busid="jmsGwChannel">
<jms-message-filter dest-name="${topic}"
dest-type="TOPIC"
transacted="true" />
</jms-bus>
<activation-config>
<property name="useDLQ" value="false" />
<property name="subscriptionDurability" value="Durable" />
<property name="subscriptionName" value="test"/>
<property name="clientId" value="test" />
</activation-config>
</jms-jca-provider>
Does anybody have an idea how I can setup the jca provider with the same information as the standard jms-provider?
-
7. Re: Is Publish/Subscribe using JMS Topics with Durable subscriptions supported?
tcunning Aug 15, 2012 2:31 PM (in response to mortenminke)Can you give us more information - what connectionfactory is being used, what your settings are there, and what the error is?
-
8. Re: Is Publish/Subscribe using JMS Topics with Durable subscriptions supported?
mortenminke Aug 16, 2012 3:25 AM (in response to tcunning)This is the error we get when using the jca provider, where the properties are substituted with the following values:
connectionfactory: jms/ClaimCheck/TCF
initialcontextfactory: com.ibm.websphere.naming.WsnInitialContextFactory
providerurl: corbaloc:iiop:<<hostname>>:9809
topic: jms/Test/NotificationTopic
We use the IBM sibc libraries (sibc.jms.jar, sibc.jndi.jar, sibc.orb.jar).
2012-08-14 17:39:08,118 ERROR [org.jboss.resource.adapter.jms.inflow.JmsActivation] (WorkManager(2)-7) Unable to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@549306eb(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@224ce134 destination=jms/Test/NotificationTopic destinationType=javax.jms.Topic selector=(TestType = 'JMS') AND (TestFileName = 'XXXX') tx=true durable=true clientID=XXXX subscription=XXXX reconnect=10 provider=java:/DefaultJMSProvider user=null maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=false)
javax.naming.NameNotFoundException: jms not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
at org.jnp.server.NamingServer.getObject(NamingServer.java:785)
at org.jnp.server.NamingServer.lookup(NamingServer.java:396)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:726)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
at javax.naming.InitialContext.lookup(InitialContext.java:409)
at org.jboss.util.naming.Util.lookup(Util.java:222)
at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupDestination(JmsActivation.java:464)
at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:352)
at org.jboss.resource.adapter.jms.inflow.JmsActivation.handleFailure(JmsActivation.java:292)
at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:733)
at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:205)
at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)