|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Message Vs RFH2 |
« View previous topic :: View next topic » |
Author |
Message
|
abiram8 |
Posted: Wed Apr 24, 2002 10:13 am Post subject: |
|
|
 Master
Joined: 27 Mar 2002 Posts: 207 Location: India
|
Hi,
In the publish subscribe programme using ESQL as given in the in the Compute node we get the Message in the subscribing Q with First Message & then the RFH2 header
But if we are using Header as a class using with MQJava API we get the message after RFH2 headers from the SubscriberQ
why there is the diffrence is there any way to get message After the RFH2 (using ESQL & Compute node) which is our most important requirment
Please let me know the solution
Thanks
R.Abiram
|
|
Back to top |
|
 |
vmcgloin |
Posted: Thu Apr 25, 2002 2:05 am Post subject: |
|
|
Knight
Joined: 04 Apr 2002 Posts: 560 Location: Scotland
|
Hi, I'm not sure I understand your question, but if what you are doing is adding a new RFH header in the compute node, this might help...
(From ih01 Problem Determination pdf)
Question 4.6: My Compute node adds a new header to a message. Why doesn’t
this appear in the output message?
Answer 4.6: The generated MQSeries message contains one or more MQSeries
headers followed by the body of the message. The order of each of these
components is dictated by the order of the parser elements immediately under the
root element of the parse tree. You must ensure that any new header is injected
before the body of the message.
For example, a common error is to set a Compute node with ESQL something like:
-- copy the input message in its entirety
SET OutputRoot = InputRoot;
-- Start building a new header
-- assuming that the DLH was not already in the input message
SET OutputRoot.MQDLH.Reason=1234;
The result of these two statements is to construct a Dead Letter Header (DLH)
after the body of the existing message, and not before the body, where MQSeries
expects it.
To correct this, the ESQL statements must be broken up to copy the existing
headers first, then define the new header, and finally to copy the body.
Sample ESQL for this would be:
DECLARE I INTEGER;
SET I=1;
WHILE I < CARDINALITY(InputRoot.*()) DO
SET OutputRoot.*(I) = InputRoot.*(I);
SET I=I+1;
END WHILE;
SET OutputRoot.MQDLH.Reason=1234;
SET OutputRoot.XML = InputBody;
The customizer for the Compute node provides a button to copy the message
headers. Selecting this automatically generates the WHILE loop shown in the
example above.
[ This Message was edited by: vmcgloin on 2002-04-25 03:07 ] |
|
Back to top |
|
 |
abiram8 |
Posted: Sun Apr 28, 2002 8:16 am Post subject: |
|
|
 Master
Joined: 27 Mar 2002 Posts: 207 Location: India
|
Hi,
My Doubt is if IAm writing the ESQL in Compute node the message comes before the RFH2 headers .Is there any way that I can get message after the Header in the Subscribing Queue using ESQL which is very essaential for our business requirments
Thanks
R.Abiram
|
|
Back to top |
|
 |
vmcgloin |
Posted: Mon Apr 29, 2002 1:25 am Post subject: |
|
|
Knight
Joined: 04 Apr 2002 Posts: 560 Location: Scotland
|
Can you post the ESQL that is causing you problems? Then perhaps we can help more.
Regards,
Vicky |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|