Author |
Message
|
jagan |
Posted: Mon Jul 16, 2007 6:35 am Post subject: invalid replyId on reply message for Aggregation |
|
|
Acolyte
Joined: 26 Jun 2001 Posts: 55
|
Developing the Aggregation Node implementation with the following nodes.. I have 3 flows and are the following.
1. HTTPInput --> Aggregation Control --> Compute --> MQOutput --> Aggreation Request
2. MQInput --> HTTPRequest --> ComputeNode --> MQReply
3. MQInput --> Aggregation Reply --Compute -->HTTPReply
Iam getting the exception in 3rd flow(Fan in flow)"invalid replyId on reply message" which is in Aggregation Reply node...
In first Flow i have creating MQ values manual to insert the message in the Queue, and choose default in the message context as pass all in not working. The MQ header is as below..
CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
SET OutputRoot.MQMD.ReplyToQ = '';
SET OutputRoot.MQMD.Version =2;
SET OutputRoot.MQMD.Format = 'XMLNSC';
PLease let meknow how to slove this issue.. |
|
Back to top |
|
 |
jagan |
Posted: Mon Jul 16, 2007 12:43 pm Post subject: Re: invalid replyId on reply message for Aggregation |
|
|
Acolyte
Joined: 26 Jun 2001 Posts: 55
|
jagan wrote: |
Developing the Aggregation Node implementation with the following nodes.. I have 3 flows and are the following.
1. HTTPInput --> Aggregation Control --> Compute --> MQOutput --> Aggreation Request
2. MQInput --> HTTPRequest --> ComputeNode --> MQReply
3. MQInput --> Aggregation Reply --Compute -->HTTPReply
Iam getting the exception in 3rd flow(Fan in flow)"invalid replyId on reply message" which is in Aggregation Reply node...
In first Flow i have creating MQ values manual to insert the message in the Queue, and choose default in the message context as pass all in not working. The MQ header is as below..
CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
SET OutputRoot.MQMD.ReplyToQ = '';
SET OutputRoot.MQMD.Version =2;
SET OutputRoot.MQMD.Format = 'XMLNSC';
PLease let meknow how to slove this issue.. |
Guys please throw some light, iam really in deep trouble with the above issue |
|
Back to top |
|
 |
EddieA |
Posted: Mon Jul 16, 2007 1:17 pm Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
Does the Correlation ID of the message coming into to Flow 3 match the Message ID of the message output by Flow 1.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
jagan |
Posted: Mon Jul 16, 2007 1:38 pm Post subject: |
|
|
Acolyte
Joined: 26 Jun 2001 Posts: 55
|
EddieA wrote: |
Does the Correlation ID of the message coming into to Flow 3 match the Message ID of the message output by Flow 1.
Cheers, |
My first flow is an HTTPInput Node there wont be any MQMD messages to it, but before placing message into the Queue i have generating the below MQMD structure..
CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
SET OutputRoot.Properties.MessageFormat='XMLNSC';
SET OutputRoot.MQMD.ReplyToQ = '';
SET OutputRoot.MQMD.Version =2;
SET OutputRoot.MQMD.Format = 'XMLNSC'; |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Jul 16, 2007 1:40 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Does that code result in a messageId?
Does that messageId get put properly into the CorrelationID in the message being output by flow 2?
Is there some way flow 2 could be producing extra messages? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
jagan |
Posted: Mon Jul 16, 2007 1:58 pm Post subject: |
|
|
Acolyte
Joined: 26 Jun 2001 Posts: 55
|
jefflowrey wrote: |
Does that code result in a messageId?
Does that messageId get put properly into the CorrelationID in the message being output by flow 2?
Is there some way flow 2 could be producing extra messages? |
Yes, assigning the messageID to Corrle ID and PropertyReplyId in the flow 2, but when it come to Flow 3, the correl ID is coming same, but null inthe propertyReply ID.. is that a problem..
Initially I have been putting the HTTPInput request of Properties and HttpRequest, and XMLNSC details into Environment.. Then these values are assigning back before puting the message into Queue..
The below code is at flow2 before placing the message into the queue..
SET OutputRoot.Properties=Environment.Properties;
SET OutputRoot.Properties.MessageFormat='XMLNSC';
SET OutputRoot.Properties.ReplyIdentifier=Environment.MQMD.MsgId;
SET OutputRoot.Properties.CodedCharSetId = Environment.MQMD.CodedCharSetId;
SET OutputRoot.MQMD=Environment.MQMD;
SET OutputRoot.MQMD.Format = 'XMLNSC';
SET OutputRoot.MQMD.CorrelId = Environment.MQMD.MsgId;
SET OutputRoot.HTTPResponseHeader = InputRoot.HTTPResponseHeader; |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Jul 16, 2007 1:59 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
So you are including your HTTPResponse header in your MQ message? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
jagan |
Posted: Mon Jul 16, 2007 2:04 pm Post subject: |
|
|
Acolyte
Joined: 26 Jun 2001 Posts: 55
|
jagan wrote: |
jefflowrey wrote: |
Does that code result in a messageId?
Does that messageId get put properly into the CorrelationID in the message being output by flow 2?
Is there some way flow 2 could be producing extra messages? |
Yes, assigning the messageID to Corrle ID and PropertyReplyId in the flow 2, but when it come to Flow 3, the correl ID is coming same, but null inthe propertyReply ID.. is that a problem..
Initially I have been putting the HTTPInput request of Properties and HttpRequest, and XMLNSC details into Environment.. Then these values are assigning back before puting the message into Queue..
The below code is at flow2 before placing the message into the queue..
SET OutputRoot.Properties=Environment.Properties;
SET OutputRoot.Properties.MessageFormat='XMLNSC';
SET OutputRoot.Properties.ReplyIdentifier=Environment.MQMD.MsgId;
SET OutputRoot.Properties.CodedCharSetId = Environment.MQMD.CodedCharSetId;
SET OutputRoot.MQMD=Environment.MQMD;
SET OutputRoot.MQMD.Format = 'XMLNSC';
SET OutputRoot.MQMD.CorrelId = Environment.MQMD.MsgId;
SET OutputRoot.HTTPResponseHeader = InputRoot.HTTPResponseHeader; |
Explianing more about the 3 flows.
Flow1: HttpInput --> AggregationControl --> Compute --> MQOutput -->AggregationRequest....
In this flow I will get more than one webservice request in the compute node i am diving the the webservice and sending to MQOutput..
Flow 2: MQInput --> HttpRequest2 --> compute--MQReply
--> HttpRequest2 -->
Inthis flow, the the MQinput get the XMLNSC message check if the request for 1st HTTPRequest and call the service available to it, depends on positive data it will go to compute node and to MQreply.. if that returns the negavative response it will go other service using HttpRequest2 and get the data then go to the compute and MQReply..
Flow3: MQinput --> AggreationReply --> Compute --HttpReply
this flow is same as other aggreation flows
Last edited by jagan on Mon Jul 16, 2007 2:11 pm; edited 1 time in total |
|
Back to top |
|
 |
jagan |
Posted: Mon Jul 16, 2007 2:06 pm Post subject: |
|
|
Acolyte
Joined: 26 Jun 2001 Posts: 55
|
jefflowrey wrote: |
So you are including your HTTPResponse header in your MQ message? |
Yes,, no specific reason to get the HTTPResponse in the 3rd flow just copying it.. |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Jul 16, 2007 2:12 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
But you're not creating a valid MQ message by doing so. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
jagan |
Posted: Tue Jul 17, 2007 8:42 am Post subject: |
|
|
Acolyte
Joined: 26 Jun 2001 Posts: 55
|
jefflowrey wrote: |
But you're not creating a valid MQ message by doing so. |
Please let me know what would be the valid MQ message.. using the same iam able insert the message in to the queue |
|
Back to top |
|
 |
EddieA |
Posted: Tue Jul 17, 2007 8:47 am Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
jagan wrote: |
Flow1: HttpInput --> AggregationControl --> Compute --> MQOutput -->AggregationRequest....
In this flow I will get more than one webservice request in the compute node i am diving the the webservice and sending to MQOutput. |
Are you expecting multiple Messages, driven by multiple HTTP Requests to be Aggregated together. Because you can't do that. All the Aggregation messages must be sent out by one instance of the flow.
jagan wrote: |
then go to the compute and MQReply |
What options do you have set in the MQReply node, as they could be setting/changing sections of the MQMD.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Jul 18, 2007 4:04 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Quote: |
In first Flow i have creating MQ values manual to insert the message in the Queue, and choose default in the message context as pass all in not working. The MQ header is as below..
CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
SET OutputRoot.MQMD.ReplyToQ = '';
SET OutputRoot.MQMD.Version =2;
SET OutputRoot.MQMD.Format = 'XMLNSC';
PLease let meknow how to slove this issue.. |
SET OutputRoot.MQMD.Format = 'XMLNSC'; ?????
Did you not mean to code:
SET OutputRoot.MQMD.Format = MQFMT_STRING;  _________________ MQ & Broker admin |
|
Back to top |
|
 |
jagan |
Posted: Mon Oct 15, 2007 8:06 am Post subject: Invalid replyId on reply message for Aggregation |
|
|
Acolyte
Joined: 26 Jun 2001 Posts: 55
|
Hi,
Our SOA initiative was on hold, so we kept out Aggregation project pending. Now we got a green signal so keep this post back to active..
fjb_saper, I have tried with your the option but no luck..
SET OutputRoot.MQMD.Format = MQFMT_STRING;
EddieA, answering to your question and trying explain the senario:
Flow1: Getting one HTTP request, which contains number of records. So get this request from my first flow, i am diving into each record adding the MQ header and placing it into MQ Queue.
Flow2: Get the message from MQ, and then pass the message to a webserice, once the response comeback and the MQ header (Adding it again because Webservice response wont have the MQ Header) again and placing it into MQReply.
Flow3: This is Simple one, but getting the Invalid Reply ID error...
I Know iam missing some thing here, but i have used all my options.. If requires i will send the code, please let me know if any of you have done Aggregation examples using HTTP request and HTTP response..
Thanks
Jagan |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Oct 15, 2007 8:16 am Post subject: Re: Invalid replyId on reply message for Aggregation |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
jagan wrote: |
Hi,
Our SOA initiative was on hold, so we kept out Aggregation project pending. Now we got a green signal so keep this post back to active..
fjb_saper, I have tried with your the option but no luck..
SET OutputRoot.MQMD.Format = MQFMT_STRING;
EddieA, answering to your question and trying explain the senario:
Flow1: Getting one HTTP request, which contains number of records. So get this request from my first flow, i am diving into each record adding the MQ header and placing it into MQ Queue.
Flow2: Get the message from MQ, and then pass the message to a webserice, once the response comeback and the MQ header (Adding it again because Webservice response wont have the MQ Header) again and placing it into MQReply.
Flow3: This is Simple one, but getting the Invalid Reply ID error...
I Know iam missing some thing here, but i have used all my options.. If requires i will send the code, please let me know if any of you have done Aggregation examples using HTTP request and HTTP response..
Thanks
Jagan |
Not getting a clear picture here.
How are you storing / restoring your MQMD?
Are you passing it from one flow to the other? how?
You are aware that in an aggregation (if you use multiple flows) you should pass the original MQM if needed as payload of an additional aggregation request?  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|