Author |
Message
|
raghug |
Posted: Wed Jun 27, 2007 10:24 am Post subject: message to writeto anWBI output queue but message appears 0 |
|
|
Acolyte
Joined: 19 Jul 2006 Posts: 60 Location: NJ
|
Hi All
Please help me
The WebSphere Business Integration Message Brokers output node 'test_with_procedure.MQOutput3' has received a message to write to an WebSphere Business Integration output queue, but the message appears to be empty. There is no error there is no MQMD and no message content in the output bitstream (there really is no data) there is no MQMD and the size of the message content is less that the size of the MQMD (it appears there is no content). I output want send to replaytoq
my Esql in compute node ...
SET OutputRoot.MQMD.CorrelId = InputLocalEnvironment.WrittenDestination.MQ.DestinationData.msgId;
SET OutputRoot.MQMD.CorrelId = InputRoot.MQMD.MsgId;
SET OutputRoot.MQMD.ReplyToQ = InputLocalEnvironment.WrittenDestination.MQ.DestinationData.queueName;
SET OutputRoot.MQMD.ReplyToQMgr = InputLocalEnvironment.WrittenDestination.MQ.DestinationData.queueManagerName;
CALL SetReplyTo();
RETURN TRUE;
END;
CREATE PROCEDURE SetReplyTo()
BEGIN
--SET OutputRoot.MQMD.ReplyToQMgr='IHNDA';
SET OutputRoot.MQMD.ReplyToQ = 'GET_BACKEND_REP';
END;
Plz Give me An idea |
|
Back to top |
|
 |
Bill.Matthews |
Posted: Wed Jun 27, 2007 10:52 am Post subject: |
|
|
 Master
Joined: 23 Sep 2003 Posts: 232 Location: IBM (Retired)
|
is that everything in the Compute node?
Did you not at least copy the headers?
Did you want an MQMD only message? If not, where did you build the OutputRoot dtructure?
Are you looking at the size of the message in a trace or after it was written to the queue?
If you did not copy the MQMD from the input msg - and if you are looking at the size in a trace - then the MQMD will appear to be smaller - but the MQOutput node will add in the missing pieces when the msg is serialized. _________________ Bill Matthews |
|
Back to top |
|
 |
raghug |
Posted: Wed Jun 27, 2007 11:09 am Post subject: |
|
|
Acolyte
Joined: 19 Jul 2006 Posts: 60 Location: NJ
|
I need replay Back to sender ...MQMD only message I want copy the MQMD from the input msg..
Thanks
WIN |
|
Back to top |
|
 |
wbi_telecom |
Posted: Wed Jun 27, 2007 11:40 am Post subject: |
|
|
 Disciple
Joined: 15 Feb 2006 Posts: 188 Location: Harrisburg, PA
|
Your ESQL seems to be copying only 5 fields from the input message and all of them are in MQMD so you are not going to get the body of the message.
If you want more fields to be present in the output message either copy the entire input message and then manipulate it or copy the headers only and then manipulate it or manipulate everything yourself (in the correct sequence i.e. first Properties then MQMD then MQRFH2 (if present) then the message parser etc)
Cheers, |
|
Back to top |
|
 |
raghug |
Posted: Wed Jun 27, 2007 6:41 pm Post subject: |
|
|
Acolyte
Joined: 19 Jul 2006 Posts: 60 Location: NJ
|
Thanks to all
I Want Send back(Replay back to sender ) to only qmanager name because of that I don't want any thing ...Let me know great idea |
|
Back to top |
|
 |
jbanoop |
Posted: Wed Jun 27, 2007 8:58 pm Post subject: |
|
|
Chevalier
Joined: 17 Sep 2005 Posts: 401 Location: SC
|
copy both properties as well as MQMD.
SET OuputRoot.Properties = InputRoot.Properties;
SET OutputRoot.MQMD = InputRoot.MQMD;
Why dont you try to put a debug point just after the compute node and observe the message structure. |
|
Back to top |
|
 |
wbi_telecom |
Posted: Thu Jun 28, 2007 9:33 am Post subject: |
|
|
 Disciple
Joined: 15 Feb 2006 Posts: 188 Location: Harrisburg, PA
|
I understand you want to send response back to the queue manager and that's being handled in MQMD. now WHAT you want to send back will determine the other things you would put in OutputRoot.
Cheers,
Rajeev |
|
Back to top |
|
 |
raghug |
Posted: Thu Jun 28, 2007 10:13 am Post subject: |
|
|
Acolyte
Joined: 19 Jul 2006 Posts: 60 Location: NJ
|
Hello Rajvee Thanks
I want Send Back to CorrelId,Qmanager_name,Putdate_time These three files (Using same flow like Mqinput>>compute>>Tracr>>MqoutPut>>Compute>>MqreplayNode .. or if u have any good idea please le me know In got real out put properly .Sending responce back to sender is only problem
Thanks
RaghuVeera |
|
Back to top |
|
 |
wbi_telecom |
Posted: Thu Jun 28, 2007 12:59 pm Post subject: |
|
|
 Disciple
Joined: 15 Feb 2006 Posts: 188 Location: Harrisburg, PA
|
If you are able to create the reply message, just update the replytoq and replytoQmgr fields in MQMD in the compute node before MQReply and then your reply will be sent back.
Cheers, |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Jun 28, 2007 2:41 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Be aware that the standard behavior of the MQReply node is to flip the MessageId of the incoming MQMD to the correlation Id of the outgoing MQMD. (This is if no other option has been specified). To have a different behavior I guess you need to specify the corresponding Report option on the MQMD...
We chose to check the CorrelId in a compute node for MQCI_NONE (or was it MQMI_NONE) and if that is not the case to move the correlId to the messageId before calling the MQReply node....
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
wbi_telecom |
Posted: Thu Jun 28, 2007 3:25 pm Post subject: |
|
|
 Disciple
Joined: 15 Feb 2006 Posts: 188 Location: Harrisburg, PA
|
Raghu,
FJ is right, I missed that point about message id getting trasferred to Correl id in MQReply .
Cheers, |
|
Back to top |
|
 |
raghug |
Posted: Fri Jun 29, 2007 5:40 am Post subject: |
|
|
Acolyte
Joined: 19 Jul 2006 Posts: 60 Location: NJ
|
Thanks for all
Mqinput>>compute1>>Tracr>>MqoutPut>>Compute2>>MqreplayNode
I Wrote the code Below in Compute node2 according to u r advice It works well .....
CREATE COMPUTE MODULE TOGSMOSPAY_MessageFlow_Compute1
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
CALL CopyMessageHeaders();
SET OutputRoot.MQMD.CorrelId = InputRoot.MQMD.MsgId;
SET OutputRoot.MQMD.ReplyToQMgr = InputLocalEnvironment.WrittenDestination.MQ.DestinationData.queueManagerName;
CALL SetReplyTo();
RETURN TRUE;
END;
CREATE PROCEDURE SetReplyTo()
BEGIN
--SET OutputRoot.MQMD.ReplyToQMgr='IHNDA';
SET OutputRoot.MQMD.ReplyToQ = 'GET_BACKEND_REP';
END;
Smile............ |
|
Back to top |
|
 |
|