Author |
Message
|
gus |
Posted: Fri Aug 23, 2002 6:23 am Post subject: Getting the MsgId after timeout from Aggregate Node |
|
|
Apprentice
Joined: 10 Apr 2002 Posts: 36
|
I am using WMQI2.1 and using the Aggregate Node. I have my timeout in the control node set to 3 seconds. When the message does not return in 3 seconds the reply node does send the message out the TimeOut terminal but I can not seem to figure out how to get the original MsgId from the MQMD which I need to retrieve information from a database. What am I doing wrong.
Thanks for the help on this
Gus |
|
Back to top |
|
 |
kirani |
Posted: Fri Aug 23, 2002 3:44 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Gus,
Your message propagated through Timeout terminal is partial aggregated reply message. If you print ${Root} in a trace node and connect it to the timeout terminal of AggregateReply node, it will display the structure of this reply message.
I don't remember the exact format of the folders, but I think you could refer to it by
Root.ComIbmAggregateReplyBody.[FOLDERNAME].MQMD.MsgId _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
gus |
Posted: Mon Aug 26, 2002 4:31 am Post subject: |
|
|
Apprentice
Joined: 10 Apr 2002 Posts: 36
|
I do have a trace node right after the MQInput node for the control message does not have this information. I am sure I am doing something wrong in the request part of the flow. When the message first comes into the flow it has a properties section, MQMD section and a XML section with a ComIbmAggregateControlNode section with the broker UUID, aggregate name, replyGroupId and timeout, but once it goes through the timeout terminal, I get nothing but a empty properties section. Although when testing and a flow goes through the out terminal on a good response, I do see the ComIbmAggregateReplyBody.FolderName.MQMD.CorrelId. Like I said, I am sure I am doing something wrong when I am building the control message, but I followed what the documentation states to do. Please give me any kind of information you can.
Thanks Gus |
|
Back to top |
|
 |
gus |
Posted: Mon Aug 26, 2002 10:36 am Post subject: |
|
|
Apprentice
Joined: 10 Apr 2002 Posts: 36
|
Also, I do not have a folder created because the message is never coming back, so I do not see any folders in the trace files. What am I doing wrong. I have read all the documentation I have on this node and can on find one statement about if no messages are returned, that the message will continue out the Timeout terminal. It does, but I need the CorrelId to match the OldMsgId for the PostitApply to work. Please, any help on this will be greatly appreciated.
Thanks Gus |
|
Back to top |
|
 |
kirani |
Posted: Mon Aug 26, 2002 2:47 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
gus,
In the timeout terminal path, your message should have Properties and comIbmAggregateReplyBody folders present.
Chapter 6 in Deploying Solutions in WMQI Redbook has some example of Aggregate nodes. You will find more information in this chapter.
In your case, looks like none of the reply message is coming back. Please check and see why your reply messages are not building up. _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
gus |
Posted: Tue Aug 27, 2002 3:14 am Post subject: |
|
|
Apprentice
Joined: 10 Apr 2002 Posts: 36
|
Good Morning,
Thanks for the update but I am making one call to our credit card vendor to get a balance and detail on a credit card. It is possible that they are down and I will not get a response back but I need the Original MsgId back in order to keep the flow going. The reason I need that is because I am building a tree with all the persons accounts and balances. So I will have the checking and saving account information because that is on our system. So I am storing this information in the Postit plug in. So in order to get that back from PostIt I need the Original MsgId. I do have chapter 6 from the RedBook "Aggregator family nodes" and chapter 10 from the RedBook "Using the aggregation nodes". They both state that it is possible for no messages to come back and the flow will continue on. For the most part it does continue but I can not figure out how to get the original MsgId back becuase the header is empty. Do you know of any way to get this back. I have tried using the LocalEnvironment variables but can not seem to make them work. Any solutions would be great. Listed below are the trace node files on a timeout.
out the timeout node of control
Root=(
(0x1000000)Properties = (
(0x3000000)MessageSet = NULL
(0x3000000)MessageType = NULL
(0x3000000)MessageFormat = NULL
(0x3000000)Encoding = NULL
(0x3000000)CodedCharSetId = NULL
(0x3000000)Transactional = UNKNOWN
(0x3000000)Persistence = UNKNOWN
(0x3000000)CreationTime = NULL
(0x3000000)ExpirationTime = NULL
(0x3000000)Priority = NULL
(0x3000000)ReplyIdentifier = NULL
(0x3000000)ReplyProtocol = NULL
(0x3000000)Topic = NULL
)
(0x1000000)ComIbmAggregateReplyBody =
)
Body=
Environment=
LocalEnvironment=
DestinationList=
after setting the MQMD stuff
Root=(
(0x1000000)Properties = (
(0x3000000)MessageSet = NULL
(0x3000000)MessageType = NULL
(0x3000000)MessageFormat = NULL
(0x3000000)Encoding = NULL
(0x3000000)CodedCharSetId = NULL
(0x3000000)Transactional = UNKNOWN
(0x3000000)Persistence = UNKNOWN
(0x3000000)CreationTime = NULL
(0x3000000)ExpirationTime = NULL
(0x3000000)Priority = NULL
(0x3000000)ReplyIdentifier = NULL
(0x3000000)ReplyProtocol = NULL
(0x3000000)Topic = NULL
)
(0x1000000)ComIbmAggregateReplyBody =
)
Body= |
|
Back to top |
|
 |
kirani |
Posted: Tue Aug 27, 2002 4:04 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Gus,
I don't think LocalEnvironment/Environment will work here.
Instead of using Msg-id as a key for post-it plug-in node, you could hardcode the value. Use the same value while retrieving data from post-it in Timeout terminal. What do you think about this? _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
gus |
Posted: Wed Aug 28, 2002 12:12 pm Post subject: |
|
|
Apprentice
Joined: 10 Apr 2002 Posts: 36
|
Mercy, this Aggregate node is a real bear to get working. I finally got the MsgId to be passed through using a temp queue. I was making some changes to the flow and made a mistake and have fixed the problem but the execution group the flow is in, is running at 50% CPU and will not stop. I figure there is some table entry somewhere that is causing this thing to run forever. If anyone has any idea of how to stop this please let me know.
Thanks Gus |
|
Back to top |
|
 |
|