Author |
Message
|
rajasri |
Posted: Sun Jun 11, 2006 10:30 pm Post subject: Dealing with MQGet Node |
|
|
 Centurion
Joined: 11 Jun 2006 Posts: 114
|
Hi IBM'ers. I am using MQGet Node in my Msg Flow. I want to get a message from a queue which has the same Corr id as that of the input message. And, i want to throw an USER DEFINED exception if i dont find a message with the corr id of that of input Msg. The msg is always routed to Failure Terminal, even though thr is no correct msg, I guess it shd go to No Message Terminal. Can ne one help me out plz. |
|
Back to top |
|
 |
XZ |
Posted: Mon Jun 12, 2006 12:26 am Post subject: |
|
|
 Apprentice
Joined: 22 May 2006 Posts: 45 Location: IBM Hursley
|
What is the returned MQ CC/RC? You should be able to find them under thw "Output MQ Parameters Location", which is OutputLocalEnvironment.MQ.GET by default. _________________ Regards,
-XZ
WMQI Development |
|
Back to top |
|
 |
rajasri |
Posted: Mon Jun 12, 2006 12:56 am Post subject: mqget node |
|
|
 Centurion
Joined: 11 Jun 2006 Posts: 114
|
Hi, i have a prob in accessing the RC n CC,
DECLARE reason1 CHARACTER;
DECLARE reason2 CHARACTER;
set reason1=OutputLocalEnvironment.MQ.GET.CC;
set reason2=OutputLocalEnvironment.MQ.GET.RC;
This is not working. And yes, i have included Message and LOcalEnvitronment in generate Mode |
|
Back to top |
|
 |
XZ |
Posted: Mon Jun 12, 2006 1:21 am Post subject: |
|
|
 Apprentice
Joined: 22 May 2006 Posts: 45 Location: IBM Hursley
|
These are INTEGER values. You can also use Flow debugger or TraceNode to find out the falues. _________________ Regards,
-XZ
WMQI Development |
|
Back to top |
|
 |
rajasri |
Posted: Mon Jun 12, 2006 1:37 am Post subject: |
|
|
 Centurion
Joined: 11 Jun 2006 Posts: 114
|
My mistake,I corrected that,and when i run my debugger, CC and RC are not present. The structure present after Going through MQGet Node is like this
MQget->InputParams->MQGMO->Version
GroupStatus
MatchOptions
MsgToken
OPtions
Shd i set ne other properties plz |
|
Back to top |
|
 |
XZ |
Posted: Mon Jun 12, 2006 1:57 am Post subject: |
|
|
 Apprentice
Joined: 22 May 2006 Posts: 45 Location: IBM Hursley
|
Are you saying that you can't see any outputLocalenvironment at all? Can you see any error messages in your syslog/eventlog? _________________ Regards,
-XZ
WMQI Development |
|
Back to top |
|
 |
rajasri |
Posted: Mon Jun 12, 2006 2:13 am Post subject: MqGet |
|
|
 Centurion
Joined: 11 Jun 2006 Posts: 114
|
No, I cant see ne OutputLocalEnvironment in the debugger. I'll send the code i wrote in a compute node before the MQGet node.
SET Environment.MQGet.InputParams.MQGMO.Version = MQGMO_CURRENT_VERSION;
SET Environment.MQGet.InputParams.MQGMO.GroupStatus = MQGS_NOT_IN_GROUP;
SET Environment.MQGet.InputParams.MQGMO.MatchOptions = MQMO_MATCH_CORREL_ID ;
SET Environment.MQGet.InputParams.MQGMO.MsgToken = MQMTOK_NONE;
SET Environment.MQGet.InputParams.MQGMO.Options = MQGMO_ALL_MSGS_AVAILABLE;
So i gave the value of Input MQ Params Location as Environment.MQGet.InputParams
and i checked Get by Corr id and Use Complete Input MQMD.
and the location for Output Params is OutputLocalEnvironment.MQ.GET. But i dont see any Tree named OutputLocalEnvironment. And thr is no error in event viewer too. |
|
Back to top |
|
 |
elvis_gn |
Posted: Mon Jun 12, 2006 2:24 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi rajasri,
Your message is supposed to go to the failure...
The message will go to the No message terminal only when the message with that correlId exists on the queue, but has expired... or it did not arrive before timeout...
If its going to the failure...please check the message that HAS BEEN PICKED WITH THE CORREL ID from the queue....
Regards. |
|
Back to top |
|
 |
rajasri |
Posted: Mon Jun 12, 2006 2:29 am Post subject: MQGet node |
|
|
 Centurion
Joined: 11 Jun 2006 Posts: 114
|
Then what abt the CC and RC,shd i not get them if the flows goes to Failure Terminal. And i have tested the flow without putting any message in Cache Queue.And it still goes to failure terminal. Here no question of Expiry is thr. |
|
Back to top |
|
 |
elvis_gn |
Posted: Mon Jun 12, 2006 2:38 am Post subject: Re: MQGet node |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi rajasri,
rajasri wrote: |
Then what abt the CC and RC,shd i not get them if the flows goes to Failure Terminal. |
You should do some kind of exception handling for it...that could be picking up the text from the exceptionlist and displaying it...or using the CC and RC, if that is what the client needs...though from a client perspective it would make no sense.
rajasri wrote: |
And i have tested the flow without putting any message in Cache Queue.And it still goes to failure terminal. Here no question of Expiry is thr. |
By Cache queue u meant the MQGet node assigned queue i suppose....please tell us the properties that u have set on the node.
By the way, if you did not put a message in Cache queue, how were u expecting to pick the CC and RC
Regards. |
|
Back to top |
|
 |
rajasri |
Posted: Mon Jun 12, 2006 2:39 am Post subject: MQGet Node |
|
|
 Centurion
Joined: 11 Jun 2006 Posts: 114
|
Hi Friend, very much thank full for ur help. I got decent knowledge on get node. But i am still in search of solution. I want to throw an exception when thr is no msg with corr id same as that of Input message. How can i do that. Van u help me out |
|
Back to top |
|
 |
rajasri |
Posted: Mon Jun 12, 2006 2:50 am Post subject: MQGet Node |
|
|
 Centurion
Joined: 11 Jun 2006 Posts: 114
|
Yes u r right. cache queue meant the same. The properties i have set for get node are like this
1)Generate Mode-Message n LocalEnvironment
2)Copy message Copy Entire Message
3)Copy LocalEnvironment - Copy Entire Local Environment
4)Input MQMD Location InputRoot.MQMD
5)Input MQ Paramaters Location - InputLocalEnvironment.MQGet.InputParams
6)get by Corr Id - true
7)get by Msg Id - false
8)Use Complete MQMD- true
9)Out MQ Parameters Location - OutputLocalEnvironment.MQ.GET
What does it actually mean if the flows goes to failure terminal, warning terminal and No message terminal |
|
Back to top |
|
 |
elvis_gn |
Posted: Mon Jun 12, 2006 2:51 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi rajasri,
When u say that ur not putting any messages for the MQGet to pick, i would suppose that the node is timing out....
Thats why i asked for the properties that you have set in the node...
Regards. |
|
Back to top |
|
 |
elvis_gn |
Posted: Mon Jun 12, 2006 3:15 am Post subject: Re: MQGet Node |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi rajasri,
rajasri wrote: |
8)Use Complete MQMD- true |
Set it to False
rajasri wrote: |
5)Input MQ Paramaters Location - InputLocalEnvironment.MQGet.InputParams
9)Out MQ Parameters Location - OutputLocalEnvironment.MQ.GET |
Do u want the parameters coming from the code ? this u can use when u want to dynamically decide how to pick the message...if you have set it correctly then use it....but for testing for now, u can remove this...atleast the input parameters...
rajasri wrote: |
What does it actually mean if the flows goes to failure terminal, warning terminal and No message terminal |
If the message picked has a fault or parsing error etc then failure, warning is when the MQMD could be picked but the message parsing failed, so the body is sent as BLOB...i think this is how it works and the no message i explained above..
Regards. |
|
Back to top |
|
 |
rajasri |
Posted: Mon Jun 12, 2006 3:33 am Post subject: MQGet Node |
|
|
 Centurion
Joined: 11 Jun 2006 Posts: 114
|
So what u meant to say is if we set the properties of the MQGet node, then thr is no need to set the properties in the ESQL and specify the location of Input Params. Ami right?. But my flow also goes to failure terminal , according to you, it shd go only when thr is parsing kind of error. What if thr is no msg with corr id of that of input message?. Which terminal shd it go? |
|
Back to top |
|
 |
|