JMS Receive Message from the External System====8.1.2 version

Hi All,

I’m trying to pull the messages from the external system using JMS Receive message service , it’s thru TOPIC.

Followed the below steps

  1. JNDI created with the third party systems configuration details
  2. JMS Connection Alias created with No Transaction type
  3. created a flow service and invoked the Create Consumer Flow Step and Pub:JMS: Receive services
  4. In Pub:JMS: Createconsumer service, given the JMS Connection Alias name and Destination name from where am trying to pull the data

But, it’s not able to read the data from their, it’s displaying the JMS Message as NULL

Please advise me if am missing to configure any set-up, or something else i need to done to achieve this.

Thanks
Siva

What kind of external system are you using?
Make sure it’s a SAG certified JMS provider, and proper client jars are loaded in your WM system.

It’s weblogic server, and have kept their jars in webM, so webM able to communicate with that system.

Even am able to send the data to that system…but unable to read the messages from their.

please let me know what could be the issue here

were you able to solve this issue?

do you have scheduler service to read data from jms queue? if not then can you try once with jms trigger and see if you are able to receive anything

Hi Sivakumar ,

pub.jms:createConsumer , creates a volatile client on the broker which subscribes to the document only when the Consumer flow service which you have written is executing. After the execution of the flow service the corresponding client is deleted from the broker.

There can be two approaches to your problem . They are mentioned below :-

  1. If you are aware that when the messages will be pushed on the topic then you can create one schedule task which will call the consumer service at that instance of time and also give some timeout value in the pub.jms:receive step whic will allow the volatile client to be active for that much time.

  2. Second approach is the most widely used i.e. you need to use the durable subscriber which allows subscribers to receive all the messages published on a topic, including those published while the subscriber is inactive. So give the durable subscriber name in the pub.jms:createConsumer step of the flow service.

1 Like

Thank you Rakesh for the in-detail instructions.

I have created a trigger and selected that JMS connection alias which has the external system details.

in Destination name : mentioned the TOPIC path from where we pick the data.

service name : the service name given where it has flow steps create consumer and receive services.

I can see in logs it’s polling onto the destination and trying to fetch the data , but in between it’s getting disconnected
with the exception “com.wm.app.b2b.server.jms.JMSCoderException: weblogic.jms.common.JMSException: [JMSClientExceptions:055115]Error deserializing an object [Linked Exception] java.lang.ClassNotFoundException: org.apache.openjpa.util.java$sql$Timestamp$proxy”

Trying to determine this exception is relevant to the application or some additional jars required in webM.

Please let me know if you have any idea on this exception

Thanks
Siva

Shiva,

Looking at error, i am inclined toward missing jar. i think you are missing some additional weblogic jars which needs to be imported in IS.

Thanks Mangat for the reply

yes, I’m googling for the relevant JARS.

i will update you all on the status

thanks