Author |
Message
|
suneelsh |
Posted: Mon Apr 15, 2002 1:34 am Post subject: |
|
|
 Acolyte
Joined: 13 Apr 2002 Posts: 69 Location: Pune,India
|
I am having problem with getting the aggregate node to work. I have tried the aggregation messages example in the documentation and it dosent work. the deploy works fine but, I donot get the result in the o/p Queue. Has anyone tried working with the aggregate node? If so please help.
|
|
Back to top |
|
 |
granthmuk |
Posted: Mon Apr 15, 2002 1:39 am Post subject: |
|
|
 Apprentice
Joined: 16 May 2001 Posts: 38 Location: Edinburgh, Scotland
|
|
Back to top |
|
 |
suneelsh |
Posted: Mon Apr 15, 2002 2:17 am Post subject: |
|
|
 Acolyte
Joined: 13 Apr 2002 Posts: 69 Location: Pune,India
|
my problem is that it dosent go to the reply Q after the compute node, but goes to the request Q. And also aggregate request dosent create any directories of taxi or hotel. I put a trace in b/w the taxi output node and agg req and it shows the LocalEnvironment name as JOURNEY correctly. I dont know how to proceed from here... |
|
Back to top |
|
 |
lillo |
Posted: Mon Apr 15, 2002 6:08 am Post subject: |
|
|
Master
Joined: 11 Sep 2001 Posts: 224
|
I have been using the aggregate nodes with no problem. Can you explain me in more detail your problem.
- Which compute node do you refer to?
- In which message flow?
Could you please send me an export of your message flow to see what is wrong?
Cheers
[ This Message was edited by: lillo on 2002-04-15 07:11 ] |
|
Back to top |
|
 |
lillo |
Posted: Mon Apr 15, 2002 11:57 pm Post subject: |
|
|
Master
Joined: 11 Sep 2001 Posts: 224
|
I think I had your problem.
When you use the aggregate family node you will need three different message flows, the fan-out, the request/reply and the fan-in message flow.
In the fan-out message flow you will build the message to go to the request/reply message flow. Then in the fan-out message flow you put a message in the request queue and will be processed by the request/reply message flow.
In this output queue you had specified this is a request then in the request/reply message flow you will use a MQReply node to end the message flow.
The request/reply message flow will be a MQInput node, reading from the request queue and a MQReply node, whick will put a message to the reply queue and it will be processed by the fan-in message flow.
The fan-in message flow will build the final answer and put the message to your output queue.
So, your problem is that you don´t have the request/reply message flow. You could:
- Build a new message flow, as suggested in figure 7 in page 48 of Using the Control Center, or
- In the same message flow add those node.
I suggest you to have different message flows.
Cheers,
Lillo
[ This Message was edited by: lillo on 2002-04-16 04:11 ] |
|
Back to top |
|
 |
suneelsh |
Posted: Tue Apr 16, 2002 12:42 am Post subject: |
|
|
 Acolyte
Joined: 13 Apr 2002 Posts: 69 Location: Pune,India
|
lilo the request/reply is only for an illustrative purpose and dose nt server any function in the message flow. It has a MQi/p and MQReply. The i/p is REPLY Q and it will generate a dummy reply to a reply Q mentioned in the header.
If you have recived my msg flow..then I must say that in the FanIn/Out msg flow after the compute node I have the o/p TAXI and HOTEL. Now this will put the msg in REQUEST and Also in REPLY. My problem is that it dosent put it in REPLY. Also after the Taxi/Hotel o/p node I have the corresp Aggregate Request nodes which are supposed to create a folder based on the folder name and put the msg recived so far..but it dosent create any dir! |
|
Back to top |
|
 |
lillo |
Posted: Tue Apr 16, 2002 3:10 am Post subject: |
|
|
Master
Joined: 11 Sep 2001 Posts: 224
|
I had tryed your message flow adding in the request/reply in the same message flow and it is working fine.
Some comments to your last note:
- In your last note you said that in the request/reply message flow the input node is REPLYQ. That is not right. The input queue should be REQUEST.
- The message is put in the Request queue and not in the reply queue by the output node. Check the queue name property in both nodes. The message will be put in the reply queue by the request/reply message flow. If you have different message flow you could see this stopping the request/reply message flow.
- The folder name given in the AggregateRequest node is used by the AggregateReply node to create the folder, not by the aggregate request.
If you use the visual debugger and put a breakpoint after AggReplyJOURNEY you will use the folder at that point if you expand the right side panel.
You can also check the new redbook "Developing solution in WebSphere MQ Integrator" which also explain this new feature with a different example.
I hope this will help you.
Cheers
Lillo |
|
Back to top |
|
 |
suneelsh |
Posted: Tue Apr 16, 2002 3:36 am Post subject: |
|
|
 Acolyte
Joined: 13 Apr 2002 Posts: 69 Location: Pune,India
|
hey lilo now it works kind of...i get the result in the o/p q, but i dont get the folders created. Any idea about this. Maybe i should use the debugger.
thanks man! |
|
Back to top |
|
 |
lillo |
Posted: Tue Apr 16, 2002 3:44 am Post subject: |
|
|
Master
Joined: 11 Sep 2001 Posts: 224
|
The folders are created just after the AggReplyJOURNEY node. If you check the ESQL code after this node you can see how it is refering to the folder taxi.
In the compute node you have the following ESQL code:
SET OutputRoot.XML.Journey.taxiTime =InputRoot.ComIbmAggregateReplyBody.TAXI.time;
Here you see how it refers to the taxi folder. BTW, it should be lowercase as you specied taxi in rqTaxi node.
Use the visual debugger to clarify the folder concept, it is really useful.
Cheers,
Lillo |
|
Back to top |
|
 |
suneelsh |
Posted: Tue Apr 16, 2002 3:48 am Post subject: |
|
|
 Acolyte
Joined: 13 Apr 2002 Posts: 69 Location: Pune,India
|
In the debugger after the AggReplyJourney I can see the taxi and hotel folders created under the ComIbmAggregateNode. So I want to know if it physically creates any dirs? |
|
Back to top |
|
 |
suneelsh |
Posted: Tue Apr 16, 2002 4:05 am Post subject: |
|
|
 Acolyte
Joined: 13 Apr 2002 Posts: 69 Location: Pune,India
|
lilo now i can see all the folders in the debugger and thanks for letting me know to change TAXI to taxi!!. But i dont get any folders created taxi or hotel in my hard drive. So is it not supposed to be created?? |
|
Back to top |
|
 |
suneelsh |
Posted: Tue Apr 16, 2002 4:12 am Post subject: |
|
|
 Acolyte
Joined: 13 Apr 2002 Posts: 69 Location: Pune,India
|
Also lilo i get esql error after taxi.
SET OutputRoot.XML.Journey.taxiTime =InputRoot.ComIbmAggregateReplyBody.taxi.time;
Here after taxi. i get a red bar saying that time is wrong. what could be the error?? |
|
Back to top |
|
 |
lillo |
Posted: Tue Apr 16, 2002 5:50 am Post subject: |
|
|
Master
Joined: 11 Sep 2001 Posts: 224
|
In the debugger after the AggReplyJourney I can see the taxi and hotel folders created under the ComIbmAggregateNode. So I want to know if it physically creates any dirs?
It doesn´t create any physical dir. The folder property you specify in the AggregateRequest node is just the name where the reply message from the request/reply message flow is put.
The folder is just a representation. Suppose you have InputRoot.XML, when you have a folder called InputRoot and inside this folder you have the folder XML.
I hope this help you.
Cheers,
Lillo |
|
Back to top |
|
 |
lillo |
Posted: Tue Apr 16, 2002 5:55 am Post subject: |
|
|
Master
Joined: 11 Sep 2001 Posts: 224
|
The problem is the word time. time is not a reserved word. But you are not recommended to use. There is no error in the ESQL code.
Check page 46 in the ESQL code manual.
Cheers,
Lillo
[ This Message was edited by: lillo on 2002-04-16 06:56 ] |
|
Back to top |
|
 |
devans |
Posted: Tue Apr 16, 2002 6:31 am Post subject: |
|
|
Apprentice
Joined: 18 Mar 2002 Posts: 43
|
I'm surprised that you have an element called
InputRoot.ComIbmAggregateReplyBody.TAXI.time
I'd expect you to have something like
InputRoot.ComIbmAggregateReplyBody.TAXI.XML.time (<- added "XML")
When your fan-in flow received the taxi reply, you would access the body by typing InputRoot.XML or InputRoot.MRM etc. When you want to refer to a particular message body in the Aggregated Reply message, replace "InputRoot" with "InputRoot.ComIbmAggregateReplyNode.<folder>". Underneath this element, you will still have a Properties folder, probably an MQMD, perhaps an RFH2, and a body element such as XML, MRM, BLOB, etc.
Typing "InputRoot.ComIbmAggregateReplyBody.TAXI.time" is a bit like typing "InputRoot.time", which probably isn't correct.
By the way, if you want to use a reserved word as part of your tree in ESQL, you can put it in double quotes
Set OutputRoot.XML."SET"."DECLARE" = 'Hello'; |
|
Back to top |
|
 |
|