Posted: Fri Jan 23, 2015 10:49 am Post subject: Unable to publish message to JMS Topic using JMS Output node
Newbie
Joined: 08 Sep 2007 Posts: 4 Location: Mumbai
I am using JMS output node to publish a message to topic hosted on IBM Application server.
Below are the settings on JMS output node
JMS connection
JMS Provider name :- Client for WebSphere Application Server
Intial Context factory :- com.ibm.websphere.naming.WsnInitialContextFactory
location JNDI binding :- "app server url with server name and port"
Connection factory name :- WMBClientTopicConnectionFactory
Basic :- send to destination list in local environment box checked.
I am sending JMS topic name using localenvironment as below
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData = topic/JMStopic
I have localenvironment and message property selected on compute node.
I can see that message gets published when i hard code the topic name on JMS output node. but not when i set it up through ouput local environment.
When I capture the message after JMS output node here is what I see
When Set on local environment (I tried both /topic/JMSTopic and only JMSTopic)
Am I missing any trick here ?
I am able to publish the message to JMS queue. Having issues with Topic only. That makes me think that I am doing some mistake in giving the name for Topic.
For queue I use
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[1] = 'queue://qmgr name/queue name';
For Topic
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[1] = 'topic://collectBE';
After no luck . I opened a PMR with IBM and here is what they have to say
This is a perplexing issue as I could find no reference for it anywhere, even our own code base. There were a couple of hints around the web.
1) From our knowledge center on the JMS local environment: A character string that represents the name of the JMS destination in an external format that is recognized by the JMS provider.
Thus it looks like it may be JMS provider specific and why we don’t have it documented.
2) Looking up WAS documentation that goes with your binding, I found a couple articles that have some hints. It suggests that for topics, the name is "jms/<topic>". I'm guessing you already have defined the
topicSpace in WAS as when you set it on the node, it found a topicSpace.
Can you try setting the destinationName to "jms/JMSTopic" and see if this works?
If not, can you try setting the destinationName to "topic://JMSTopic?topicSpace=CDSMessageBusTopicDest&busName=CDS_BUS"?
It works with last suggestion . Here is what their response was again
Yes, it is due to the WAS side. Each JMS provider is different and thus the different topic name formats. WAS is fairly unique in that it takes a topicSpace parameter. I think the busName is more common though. It wasn't clear in our doc how specific you needed to get when defining the topic yourself. When you supply the property on the node, it auto formats your topic and adds the topicSpace and busName from the
JMS session it has. It looks like we do not do this for the dynamic topics though. This may be because the JMS provider could change as well. We will look into documenting this in the future. Here is the document I referenced:
http://www.ibm.com/developerworks/websphere/library/techarticles/0608_flurry/0608_flurry.html
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum