Hi Rajika,

I tried using that JAR file axis2-transport-jms-1.1.0-wso2v6.jar and the 
following
axis2 config for a durable subscription, but unfortunately got a 
NullPointerException.
======================================
transport.jms.SubscriptionDurable        true
transport.jms.DurableSubscriberName      msgmed.DEV1
transport.jms.DurableSubscriberClientID  myClientID
======================================
2012-08-15T11:42:32,INFO 
,mdzhsfesb01,MSGMED,AbstractTransportListener.java:176,JMS Listener started
2012-08-15T11:42:32,ERROR,mdzhsfesb01,MSGMED,AbstractTransportListener.java:234,Unexpected
 error when configuring service JMS_XML_Proxy for the JMS transport. It will be 
disabled for this transport and marked as faulty.
java.lang.NullPointerException
    at 
org.apache.axis2.transport.jms.JMSListener.getConnectionFactory(JMSListener.java:132)
    at 
org.apache.axis2.transport.jms.JMSEndpoint.loadConfiguration(JMSEndpoint.java:193)
    at 
org.apache.axis2.transport.base.AbstractTransportListenerEx.startListeningForService(AbstractTransportListenerEx.java:112)
    at 
org.apache.axis2.transport.base.AbstractTransportListener.internalStartListeningForService(AbstractTransportListener.java:213)
    at 
org.apache.axis2.transport.base.AbstractTransportListener$2.serviceAdded(AbstractTransportListener.java:126)
    at 
org.apache.axis2.transport.base.tracker.AxisServiceTracker.serviceAdded(AxisServiceTracker.java:212)
    at 
org.apache.axis2.transport.base.tracker.AxisServiceTracker.start(AxisServiceTracker.java:188)
    at 
org.apache.axis2.transport.base.AbstractTransportListener.start(AbstractTransportListener.java:178)
    at org.apache.axis2.engine.ListenerManager.start(ListenerManager.java:167)
    at 
org.apache.synapse.Axis2SynapseController.start(Axis2SynapseController.java:273)
    at org.apache.synapse.ServerManager.start(ServerManager.java:185)
    at org.apache.synapse.SynapseServer.main(SynapseServer.java:68)
2012-08-15T11:42:32,WARN 
,mdzhsfesb01,MSGMED,AbstractTransportListener.java:192,Disabling the jms 
transport for the service JMS_XML_Proxy, because it is not configured properly 
for the service
========================================

I did some "durable subscriber" tests using a standalone java application.
According to the docu 
(http://www.novell.com/documentation/extend52/Docs/help/MP/jms/tutorial/durable-1.htm),
two steps are necessary for a durable subscription:

1. Set the clientID to the connection
connection.setClientID(clientID);

2. Pass the subscriberName when creating the subscriber
subscriber = session.createDurableSubscriber(topicIn, subName);

When I do both steps in my standalone java application, all works well.
When the first step is not done, I get exactly the same error message as I got
earlier with synapse "Exception message: JMSCC0101: The client ID cannot be 
null".

It seems that step 1 is possibly missing in Synapse?
Maybe what you fixed in the WSO JAR file (that appears to be incompatible with 
the synapse libs).

Regards,
Peter

-----Original Message-----
From: Rajika Kumarasiri [mailto:[email protected]] 
Sent: Dienstag, 14. August 2012 18:02
To: [email protected]
Subject: Re: Synapse: JMS Listener with durable subscription: how to define 
client ID?

This is probably because https://issues.apache.org/jira/browse/WSCOMMONS-567
.

You can try using the
http://maven.wso2.org/nexus/content/groups/wso2-public/org/apache/axis2/axis2-transport-jms/1.1.0-wso2v6/axis2-transport-jms-1.1.0-wso2v6.jarand
see if that helps.

Rajika

On Tue, Aug 14, 2012 at 2:28 PM, Wright, Peter
<[email protected]>wrote:

> Hi Rajika,
>
> I tried setting transport.jms.DurableSubscriberClientID both ways:
> - "true" (as described here:
> http://wso2.org/project/esb/java/4.0.3/docs/transports/transports-catalog.html
> )
> - with a name e.g. "myClientID" (as I expected it to be defined)
>
> Unfortunately I always get the same exception:
> "The client ID cannot be null. Specify a non-null client ID."
>
> Any other ideas?
> Has anyone got a durable subscriber in synapse up and running with IBM MQ?
>
> Thanks for the help,
> Peter
>
> -----Original Message-----
> From: Rajika Kumarasiri [mailto:[email protected]]
> Sent: Dienstag, 14. August 2012 10:32
> To: [email protected]
> Subject: Re: Synapse: JMS Listener with durable subscription: how to
> define client ID?
>
> You need to set it via the
> property, transport.jms.DurableSubscriberClientID and not set it to true.
> Also this can be a proxy service level parameter so that you can define
> different client ids for different proxy services.
>
> Hope this helps.
>
> Rajika
>
> On Tue, Aug 14, 2012 at 12:01 PM, Wright, Peter
> <[email protected]>wrote:
>
> > Hi,
> >
> > I want to define a JMS listener as a durable subscription,
> > but always get an error message that the client-id is null.
> > I'm using IBM MQ as the messaging provider.
> >
> > I've attached the error messages and my axis2 JMS config.
> >
> > Running synapse 2.1.0 on solaris 10.
> >
> > Thanks for any help,
> > Peter
> >
> > --------------------------------------------
> >
> > Error Messages
> >
> > 2012-08-14T08:16:33,INFO ,mdzhsfesb01,MSGMED,SynapseServer.java:70,Apache
> > Synapse started successfully
> >
> 2012-08-14T08:16:34,ERROR,mdzhsfesb01,MSGMED,ServiceTaskManager.java:965,Error
> > creating JMS consumer for service : JMS_XML_Proxy
> > com.ibm.msg.client.jms.DetailedInvalidClientIDException: JMSCC0101: The
> > client ID cannot be null. Specify a non-null client ID.
> >         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > Method)
> >         at
> >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> >         at
> >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> >         at
> java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> >         at
> >
> com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:313)
> >         at
> >
> com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:388)
> >         at
> >
> com.ibm.msg.client.jms.internal.JmsErrorUtils.createException(JmsErrorUtils.java:104)
> >         at
> >
> com.ibm.msg.client.jms.internal.JmsSessionImpl.createDurableSubscriber(JmsSessionImpl.java:964)
> >         at
> > com.ibm.mq.jms.MQSession.createDurableSubscriber(MQSession.java:467)
> >         at
> > org.apache.axis2.transport.jms.JMSUtils.createConsumer(JMSUtils.java:632)
> >         at
> >
> org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.createConsumer(ServiceTaskManager.java:839)
> >         at
> >
> org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.getMessageConsumer(ServiceTaskManager.java:710)
> >         at
> >
> org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.receiveMessage(ServiceTaskManager.java:478)
> >         at
> >
> org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.run(ServiceTaskManager.java:409)
> >         at
> >
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58)
> >         at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> >         at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> >         at java.lang.Thread.run(Thread.java:662)
> >
> > --------------------------------------------
> >
> > axis2.xml
> >
> > <transportReceiver name="jms"
> > class="org.apache.axis2.transport.jms.JMSListener">
> >             <parameter name="java.naming.factory.initial"
> > locked="false">com.sun.jndi.ldap.LdapCtxFactory</parameter>
> >             <parameter name="java.naming.provider.url"
> > locked="false">ldap://server:port/myDn</parameter>
> >             <parameter name="transport.jms.ConnectionFactoryType"
> > locked="false">topic</parameter>
> >             <parameter name="transport.jms.ConnectionFactoryJNDIName"
> > locked="false">cn=TCF-FINESB-POS-SED1.EU.DEV.01</parameter>
> >             <parameter name="transport.jms.ConnectionFactory"
> > locked="false">cn=TCF-FINESB-POS-SED1.EU.DEV.01</parameter>
> >             <parameter name="transport.jms.Destination"
> > locked="false">cn=sed.finesb.pos.fkism.cust</parameter>
> >             <parameter name="transport.jms.DestinationType"
> > locked="false">topic</parameter>
> >             <parameter name="java.naming.security.principal"
> > locked="false">myLoginDn</parameter>
> >             <parameter name="java.naming.security.credentials"
> > locked="false">myPassword</parameter>
> >             <parameter name="transport.jms.SubscriptionDurable"
> > locked="false">true</parameter>
> >             <parameter name="transport.jms.DurableSubscriberName"
> > locked="false">msgmed.DEV1</parameter>
> >             <parameter name="transport.jms.DurableSubscriberClientID"
> > locked="false">true</parameter>
> > </transportReceiver>
> >
> >
> > The content of this e-mail is intended only for the confidential use of
> > the person addressed.
> > If you are not the intended recipient, please notify the sender and
> delete
> > this email immediately.
> > Thank you.
> >
> The content of this e-mail is intended only for the confidential use of
> the person addressed.
> If you are not the intended recipient, please notify the sender and delete
> this email immediately.
> Thank you.
>
The content of this e-mail is intended only for the confidential use of the 
person addressed. 
If you are not the intended recipient, please notify the sender and delete this 
email immediately.
Thank you.

Reply via email to