WebSphere MQ Adaptor Connection problem

Apologies for the earlier post to the wrong thread… We’re not using Broker, but are publishing the document locally to the IS.

Environment: wM6.1 on Solaris w/ WebSphere MQ Adapter v6, WebSphere MQ 5.3

I’m having a problem accessing the data in the msgBody element in the published document sent from a listener notification.
I believe I have everything working from the queue on up to the trigger (listener -> notification -> notification document -> trigger -> flow service).
The problem comes when I try to map the msgBody (the payload) out of the document that is sent from the trigger to the flow service. When I save and later restore the pipeline, I can see the data (xml string) in the msgBody element in the results pane of developer, but when I try to map it to anything else, its as if the msgBody element doesn’t exist. Is the data in a special format that needs to be transformed to something else? I haven’t found anything in the MQ adapter docs nor the publish-subscribe docs that helps.

Any ideas?

Many thanks in advance.
-Chris

Chris,

Are you using MQ Handler listener or tigger notification (pub/sub)?
If you use MQ listener that monitors queue and process it to the specified service configured in the MQ Adapter admin console.Hope you are using this method.

How are you seeing msgBody as a string or object?

Also please check this thread
[url=“wmusers.com”]wmusers.com

HTH,

RMG:
I’m using the pub/sub method, as it seems the only way to do things with a listener, using the new version 6 of the MQ Adapter.

I see the msgBody as an object in the pipeline, but it appears as a string in the results pane. This seems odd to me, but…?

I checked out the thread you refer to, but it doesn’t seem relevant as I’m using a different version of the adapter, and GETS from the queue work fine for me.

Did you set the fullyqualified publishable documenttype name as service input in the triggered flow service?

RMG:

Yes, in the input tab of the triggered service in Developer I have a document reference to the publishable document that was generated when the notification was created.

I have also tried using the fully-qualified publishable doctype name in the Input field, with the same results.

When I step through the service and attempt to map the msgBody value to a string, etc. - nothing happens. The string or whatever I use, doesn’t receive the mapped data. I’m about to perpare a query to wM Support in hopes they can help…

Thanks again for your help.
-Chris

Try converting msgBody object to string and then map it and see what happens.Sorry if it didn’t work.

yeh registering an SR with support may only way now to resolve this issue.

Regards,

Oops,converting may give some Exception,since in the pipe you are already seeing as a String.

Thans RGM, for your help.

I’ve logged an SR with wM Support (very fast response! They’ve assigned a support engineer and he’s off and running with it already. I’m impressed!).

I’ll post the details on this issue when I get a resolution.

-Chris

Chris,
Did you get the solution to the problem you mentioned(problem accessing msgBody element in Listner Notification Request Document).I am having the same problem.I have a synchronous notification configured and when I try to access the msgBody in the Request document , I am not able to map it to any variable.I tried putting it into a string but that doesnt work too.However I am able to see msgBody if I do savePipelineToFile.Please let me know if you hear anything from wMSupport.

Anyone else if have encountered similar issue and have a solution, pls let me know.

Thanks,
Puneet Verma

Puneet:
Yes, wM Support were great. I forgot to come back here to post the solution, sorry about that.
Earler in this thread, RMG was close to the answer. Instead of the fully-qualified path to the document in the input field as RMG suggested, when you name the input document reference in the Input/Output tab in developer, the NAME of the document reference needs to be the fully-qualified path to the publishable document.
When you’re done it will look like this:

Package.folder.folder:DocumentName(DocumentName)

Otherwise, you can see the data you just can’t map it. This may be in the documentation, but I didn’t find it.

HTH.
-Chris

Chris,
I tried to convey you the same thing in my post,but it might sounds different when expressing the way.

Regards,

RMG:
Thanks for your help. I’m still exploring the whole publish/subscribe model and it seems overly complex to me. We’re not using a Broker, so publishing to the local IS seems way too complex to simply listen on a queue for a message.
Anyway, I appreciate your help even if I didn’t recognize the correct answer you gave me.
-Chris

Chris,
I tried the solution suggested by you.But it doesnt seem to work for me.I am still not able to map the msgBody.But I have found another workaround for it.When I did savePipelineToFile I could see the Request Document of my synchoronous listner and the value msgBody in the file.I created a string which has the value set to %ReqDoc/msgBody%. This way I am able to get the msgBody and work with it.But I am not able to map it.Do u know of any Fix released by webMethods for it which u have applied.I am on wM 6.0.1 IS SP2(on windows 2000).MQ Adapter v6, MQ server v5.3.

Thanks,
Puneet Verma

Puneet,
We’re using wM IS 6.1 on Sun Solaris 5.9, MQ Server v5.3.
I don’t know of any service release issued by webMethods, sorry. I tried using variable substitution as you did, but was unable to get that to work either. There seems to be a slight inconsistency in the Developer tool, since I was able to see the data in the Results pane, but was unable to map the data to another variable.
However, webMethods support are very quick in responding. Perhaps give them a shout and see if they can point you towards the solution?

Regards,
Chris

Chris,
Rt now the variable substituion is working fine for me.But still I will see if I can get anything from wM support for not being able to map the data.Thanks for the info.

Thanks,
Puneet Verma

Hi WMUsers,

I have a Listener & trigger on a MQ Connection Queue (non-transactional queue) which calls a flow service when a message is put in a Queue(QUEUE_TEST).

(QUEUE_TEST->listener -> notification -> notification document -> trigger -> flow service)

When the Flow service executes (every time a message is put in the Queue QUEUE_TEST), my message is removed from the queue QUEUE_TEST.

Can I force my notifier to let the message in the QUEUE instead of removing the message ?

thanks,
Jean-Daniel

you have to select Persist option when you create MQ Listener handler.
So it will not be removed from the Queue.

Hi Jean-Daniel - Whether or not a message is persisted on a queue is a configuration setting of the queue itself. You may want to confirm that with your MQ team, but that’s what I was told when I set up an MQ listener.

Hi,

the “Persistence” option in MQSeries (or WebSphere MQ) is available for messages and all types of queues. Basically what it means is that a persistent message will “survive” a Queuemanager restart - a message without the persistence flag set will be removed from the queue during a Queuemanager restart. Persistent messages are saved on the file system and nonpersistent ones only stay in the servers RAM.
Persistence does not mean that a message stays on the queue after a succesfull get operation (or a get and commit in transactional usage).

Persistence can have an impact on your Queuemanagers performance.

Cheers, Alex

Thanks for the clarification Alex. That makes sense. So as far as Jean-Daniel’s question about persisting the message on the queue even after webMethods’ listener has picked it up, I don’t think that’s possible. From MQ’s perspective, once the MQ client has picked up the message, it’s done and will remove the message off the queue.