ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Help required in using MQGET node

Post new topic  Reply to topic
 Help required in using MQGET node « View previous topic :: View next topic » 
Author Message
pvnkumar
PostPosted: Mon Sep 01, 2008 4:44 am    Post subject: Help required in using MQGET node Reply with quote

Novice

Joined: 26 May 2008
Posts: 16

HI all,
I'm trying to browse(not read) a message from the local queue using MQGET node(which had an option browse only).
message flow is like TimeOutNotification node-->MQGET node-->Compute node.....
As soon as i deploy the flow TimeOutNotification node notifies and MQGet node picks the message from the local queue and sends it to the out terminal and the message gets processed succesfully. when timeout Notification node notifies for the second time (say after 1min), MQGET node is not reading the data and control is going to the 'No Message' terminal of the MQGET node. I can see the current queue depth is 1 and the message is there in the local queue.

Help me in sorting out this issue.
Thanks in advance.
Back to top
View user's profile Send private message
zpat
PostPosted: Mon Sep 01, 2008 7:55 am    Post subject: Reply with quote

Jedi Council

Joined: 19 May 2001
Posts: 5866
Location: UK

What are the other properties on the MQGET node set to, especially on the Request tab?

MQRC 2033 means no message found (matching criteria if specified).

Seems like there could be two reasons:

1. The browse cursor has not been reset
2. The MQGET is trying to match and failing to do so

Not sure how the browse cursor should get reset - but presumably repeated MQGETs could be intended to traverse the queue (if depth more than one) so this might be the intended design by IBM.
Back to top
View user's profile Send private message
pvnkumar
PostPosted: Mon Sep 01, 2008 9:51 pm    Post subject: Reply with quote

Novice

Joined: 26 May 2008
Posts: 16

No matching criteria is specified on the request tab of the MQGET node other than browse only. Also im trying to browse message as a blob.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue Sep 02, 2008 3:29 am    Post subject: Re: Help required in using MQGET node Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

pvnkumar wrote:
HI all,
I'm trying to browse(not read) a message from the local queue using MQGET node(which had an option browse only).
message flow is like TimeOutNotification node-->MQGET node-->Compute node.....
As soon as i deploy the flow TimeOutNotification node notifies and MQGet node picks the message from the local queue and sends it to the out terminal and the message gets processed succesfully. when timeout Notification node notifies for the second time (say after 1min), MQGET node is not reading the data and control is going to the 'No Message' terminal of the MQGET node. I can see the current queue depth is 1 and the message is there in the local queue.

Help me in sorting out this issue.
Thanks in advance.


Wonder what you are trying to do? I would have expected that you would hook up the TimeOutNotification to an MQInput node...
I guess that your design is not appropriate for what you are trying to do.

Enjoy
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Esa
PostPosted: Wed Sep 03, 2008 4:40 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

it seems you cannot reset the browse cursor in an MQGet node, so, once browsed, the message will be unavailable for the flow untill you restart the execution group. If this is the intended behaviour, then IBM is propably still trying to discourage using MQ queues as a database (although Message Broker itself does this). There might be a way to reset the cursor programmatically by setting some LocalEnvironment values, but I havent checked that yet.

You cat try some alternative solutions:

1. Set the transaction mode in the TimoOutNotification node to No, set the transaction mode fo any other MQOutput or MQGet nodes to Yes, but leave the tranaction mode of your problematic MQGet to Automatic. Do not check browse only. Then throw an exception after the flow has run and your get operation will be rolled back.

2. Do not select browse mode in the MQGet. Add an MQoutput node that will put the message back in the same queue.

Esa
Back to top
View user's profile Send private message
zpat
PostPosted: Wed Sep 03, 2008 5:34 am    Post subject: Reply with quote

Jedi Council

Joined: 19 May 2001
Posts: 5866
Location: UK

IBM does allow the same message to be browsed more than once by the same or different flows.

Quote:
Ability to browse WebSphere MQ messages
In previous versions of WebSphere Message Broker, when the MQInput or MQGet node got a message from a queue, the message was removed. For WebSphere Message Broker Version 6.1, the ability to browse a queue means that the MQInput and MQGet nodes can get a message from a queue, but the original message remains on the queue to be reused by the same or other applications. The ability to browse is useful in situations where configuration data or constants are stored on a queue and used multiple times, or by applications that need to examine the content of a message before deciding whether to remove it from the queue.


You can set the MQGMO options in a compute node before the MQGET node

Try setting MQGMO_BROWSE_FIRST in the local environment

Quote:
To override the values that you set for the MQGet node properties to achieve a more dynamic way to process messages, include a Compute or JavaCompute node in your message flow before the MQGet node. Configure this node to create a new output message, and add fields to the LocalEnvironment tree to define new values for the properties that you want to change


Quote:
The MQGet node examines the LocalEnvironment tree that is propagated from the preceding node. It uses the content related to the MQGMO (MQ Get Message Options) and the MQMD (MQ Message Descriptor header), and updates the LocalEnvironment:

The node reads the MQGMO structure from ${inputMQParmsLocation}.MQGMO.*.


As usual it's all documented if you care to look

http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/index.jsp?topic=/com.ibm.etools.mft.doc/ab00026_.htm
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Help required in using MQGET node
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.