Author |
Message
|
fjb_saper |
Posted: Wed Oct 27, 2010 12:46 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
So what happens when you modify your code with the (MQRFH2.Field) prefix?
 _________________ MQ & Broker admin |
|
Back to top |
|
 |
yaemu |
Posted: Wed Oct 27, 2010 1:05 pm Post subject: |
|
|
Novice
Joined: 27 Oct 2010 Posts: 17
|
After this update :
SET OutputRoot.MQRFH2.(MQRFH2.Field)StrucId= MQRFH_STRUC_ID;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Version = MQRFH_VERSION_2;
--SET OutputRoot.MQRFH2.(MQRFH2.Field)Struclength = MQRFH_STRUC_LENGTH_FIXED_2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Encoding = MQENC_NATIVE;
SET OutputRoot.MQRFH2.(MQRFH2.Field)CodedCharSetId = 437;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = MQFMT_STRING;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Flags = MQRFH_NONE;
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 1208;
and I have the same error!!!
The Message flow consists of a MQInput Node and a compute node and a MQOutput Node, connected to each other
Are there any options I have to add to any of the above nodes ? or to the Queues I use to put the message on it?
 |
|
Back to top |
|
 |
rekarm01 |
Posted: Wed Oct 27, 2010 1:05 pm Post subject: Re: Failed to put message |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
yaemu wrote: |
Code: |
-- I deleted the Struclength setting line |
|
Deleting is one approach. Fixing the spelling might work better though. (See also fjb_saper's comments.)
yaemu wrote: |
Code: |
SET OutputRoot.MQRFH2.CodedCharSetId = 437;-- this is the same value of the MQMD.CodedCharSetId |
|
Generally, the MQ header ccsid describes the character encoding of just the part that follows it. The different ccsids need not be the same.
For messages consisting of MQMD + MQRFH2 + Body, the MQMD.CodedCharSetId describes the character encoding of the MQRFH2 static character fields, and the MQRFH2.CodedCharSetId describes the encoding of the Body character fields.
Quote: |
An MQPUT or MQPUT1 call was issued, but the message data contains an MQ header structure that is not valid. |
Adding a trace node will help immensely with determining the actual structure of the MQ header(s). |
|
Back to top |
|
 |
yaemu |
Posted: Wed Oct 27, 2010 1:45 pm Post subject: |
|
|
Novice
Joined: 27 Oct 2010 Posts: 17
|
How do you need me to use the trace node,
Add the trace node after creating the MQRFH2 Header i.e. after the Compute node, and Do you need me to write the message tree in file or only the exception list and if so, the trace node will be after the MQOutput node to the throw terminal.
Please Advice. |
|
Back to top |
|
 |
rekarm01 |
Posted: Wed Oct 27, 2010 3:33 pm Post subject: Re: Failed to put message |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
yaemu wrote: |
How do you need me to use the trace node? |
The purpose of the trace node is to see what the parsed MQ header looks like under ${Root}. So, it would have to go after the Compute node creates the MQ header, but before any error which would roll back changes to the MQ header:
MQInput -> Compute -> Trace -> MQOutput
It's more convenient to direct Trace node output to the usertrace, so that it appears in context with the other usertrace entries. |
|
Back to top |
|
 |
yaemu |
Posted: Wed Oct 27, 2010 10:42 pm Post subject: The User trace after adding a trace node after the compute |
|
|
Novice
Joined: 27 Oct 2010 Posts: 17
|
The User trace after adding a trace node after the compute :
2010-10-28 08:31:12.211832 5396 UserTrace BIP4007I: Message propagated to 'out' terminal of node 'TestMQRFH2.Compute'.
2010-10-28 08:31:12.213434 5396 UserTrace BIP4060I: Data ''( ['MQROOT' : 0x72fbcb0]
(0x01000000:Name ):Properties = ( ['MQPROPERTYPARSER' : 0x1f0e280]
(0x03000000:NameValue):MessageSet = 'UB_MainMsgSet' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 437 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2010-10-28 06:31:10.450' (GMTTIMESTAMP)
(0x03000000:NameValue):ExpirationTime = -1 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):ReplyProtocol = 'MQ' (CHARACTER)
(0x03000000:NameValue):Topic = NULL
(0x03000000:NameValue):ContentType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceToken = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourcePassword = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceIssuedBy = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedType = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedToken = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedPassword = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedIssuedBy = '' (CHARACTER)
)
(0x01000000:Name ):MQMD = ( ['MQHMD' : 0x7257a18]
(0x03000000:NameValue):SourceQueue = 'IN' (CHARACTER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 437 (INTEGER)
(0x03000000:NameValue):Format = 'MQHMD' (CHARACTER)
(0x03000000:NameValue):Version = 2 (INTEGER)
(0x03000000:NameValue):Report = 0 (INTEGER)
(0x03000000:NameValue):MsgType = 8 (INTEGER)
(0x03000000:NameValue):Expiry = -1 (INTEGER)
(0x03000000:NameValue):Feedback = 0 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):Persistence = 0 (INTEGER)
(0x03000000:NameValue):MsgId = X'414d51205742524b36315f44454641559816c94c20002402' (BLOB)
(0x03000000:NameValue):CorrelId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):BackoutCount = 0 (INTEGER)
(0x03000000:NameValue):ReplyToQ = ' ' (CHARACTER)
(0x03000000:NameValue):ReplyToQMgr = 'WBRK61_DEFAULT_QUEUE_MANAGER ' (CHARACTER)
(0x03000000:NameValue):UserIdentifier = 'db2admin ' (CHARACTER)
(0x03000000:NameValue):AccountingToken = X'1601051500000043170a327973dd06436ef97fef03000000000000000000000b' (BLOB)
(0x03000000:NameValue):ApplIdentityData = ' ' (CHARACTER)
(0x03000000:NameValue):PutApplType = 11 (INTEGER)
(0x03000000:NameValue):PutApplName = 'rer\Quick Launch\rfhutil.exe' (CHARACTER)
(0x03000000:NameValue):PutDate = DATE '2010-10-28' (DATE)
(0x03000000:NameValue):PutTime = GMTTIME '06:31:10.450' (GMTTIME)
(0x03000000:NameValue):ApplOriginData = ' ' (CHARACTER)
(0x03000000:NameValue):GroupId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):MsgSeqNumber = 1 (INTEGER)
(0x03000000:NameValue):Offset = 0 (INTEGER)
(0x03000000:NameValue):MsgFlags = 0 (INTEGER)
(0x03000000:NameValue):OriginalLength = -1 (INTEGER)
)
(0x03000000:NameValue):MQRFH2 = NULL
( ['MQHMD' : 0x7257a18]
(0x03000000:NameValue):StrucId = 'RFH ' (CHARACTER)
(0x03000000:NameValue):Version = 2 (INTEGER)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 437 (INTEGER)
(0x03000000:NameValue):Format = 'MQSTR ' (CHARACTER)
(0x03000000:NameValue):Flags = 0 (INTEGER)
(0x03000000:NameValue):NameValueCCSID = 1208 (INTEGER)
)
(0x01000000:Folder ):XMLNSC = ( ['xmlnsc' : 0x72fc328]
(0x01000000:Folder):AccountMovementsRequest = (
(0x03000000:PCDataField):FunctionId = '120' (CHARACTER)
(0x03000000:PCDataField):ReferenceId = '12384509280609161232' (CHARACTER)
(0x03000000:PCDataField):ChannelCode = '09' (CHARACTER)
(0x03000000:PCDataField):AccountNumber = '0002123845001' (CHARACTER)
(0x01000000:Folder ):DebitCardNumber =
)
)
)
'' from trace node 'TestMQRFH2.Trace'.
The trace node 'TestMQRFH2.Trace' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2010-10-28 08:31:12.213573 5396 UserTrace BIP4067I: Message propagated to output terminal for trace node 'TestMQRFH2.Trace'.
The trace node 'TestMQRFH2.Trace' has received a message and is propagating it to any nodes connected to its output terminal.
No user action required.
2010-10-28 08:31:12.241802 5396 UserTrace BIP2638I: The MQ output node 'TestMQRFH2.MQOutput' attempted to write a message to queue ''OUT'' connected to queue manager ''''. The MQCC was '2' and the MQRC was '2142'.
2010-10-28 08:31:29.544332 5396 Error BIP2628E: Exception condition detected on input node 'TestMQRFH2.MQInput'.
The input node 'TestMQRFH2.MQInput' detected an error whilst processing a message. The message flow has been rolled-back and, if the message was being processed in a unit of work, it will remain on the input queue to be processed again. Following messages will indicate the cause of this exception.
Check the error messages which follow to determine why the exception was generated, and take action as described by those messages.
2010-10-28 08:31:29.544424 5396 RecoverableException BIP2230E: Error detected whilst processing a message in node 'TestMQRFH2.MQOutput'.
The message broker detected an error whilst processing a message in node 'TestMQRFH2.MQOutput'. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error.
2010-10-28 08:31:29.544536 5396 MessageException BIP2667E: An error occurred in node 'TestMQRFH2.MQOutput' writing message to queue ''OUT'' on queue manager ''''. State = '-1' ''MQW102'' '2142' ''''
An error occurred when a message flow node attempted to write a message to a queue. The reason code from the MQPUT is displayed as the 3rd (native error) state.
Check the WebSphere MQ completion and reason codes in the WebSphere MQ Application Programming Reference manual to establish the cause of the error, taking any appropriate action. It may be necessary to restart the message broker after you have performed this recovery action.
2010-10-28 08:31:30.545125 5396 Error BIP2648E: Message backed out to a queue; node 'TestMQRFH2.MQInput'.
Node 'TestMQRFH2.MQInput' has received a message which has previously been backed out one or more times because of a processing error in the main path of the message flow. The failure terminal is not attached, so the message broker is putting the message directly to the requeue or dead letter backout queue associated with this node. The MQMD 'backoutCount' of the message now equals the 'backoutThreshold' defined for the WebSphere MQ input queue.
Examine previous messages and the message flow to determine why the message is being backed out. Correct this situation if possible. Perform any local error recovery processing required.
2010-10-28 08:31:30.551437 5396 UserTrace BIP2638I: The MQ output node 'TestMQRFH2.MQInput' attempted to write a message to queue ''DLQ'' connected to queue manager ''WBRK61_DEFAULT_QUEUE_MANAGER''. The MQCC was '0' and the MQRC was '0'.
2010-10-28 08:31:30.551513 5396 UserTrace BIP2615I: The WebSphere MQ input node 'TestMQRFH2.MQInput' has backed out the message to the backout requeue or the dead letter queue.
Message backout processing has been invoked, and the message has either been backed out by being written to the backout requeue or dead letter queue, as determined by the WebSphere MQ queue manager and queue configuration.
No user action required.
2010-10-28 08:32:33.383110 2184 UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'ConfigurationMessageFlow.InputNode'.
2010-10-28 08:32:33.383506 2184 UserTrace BIP6060I: Parser type ''Properties'' created on behalf of node 'ConfigurationMessageFlow.InputNode' to handle portion of incoming message of length 0 bytes beginning at offset '0'.
2010-10-28 08:32:33.383594 2184 UserTrace BIP6061I: Parser type ''MQMD'' created on behalf of node 'ConfigurationMessageFlow.InputNode' to handle portion of incoming message of length '364' bytes beginning at offset '0'. Parser type selected based on value ''MQHMD'' from previous parser.
2010-10-28 08:32:33.383747 2184 UserTrace BIP6061I: Parser type ''XMLS'' created on behalf of node 'ConfigurationMessageFlow.InputNode' to handle portion of incoming message of length '244' bytes beginning at offset '364'. Parser type selected based on value ''XMLS'' from previous parser.
Threads encountered in this trace:
1720 2184 2272 2792 3928 4208 5044 5364 5368 5396 5444 5688 5792 |
|
Back to top |
|
 |
yaemu |
Posted: Thu Oct 28, 2010 1:25 am Post subject: Thanks Evrybody |
|
|
Novice
Joined: 27 Oct 2010 Posts: 17
|
I did it, The problem was in the Following Create statement :
CREATE NEXTSIBLING OF OutputRoot.MQMD Type NameValue NAME 'MQRFH2' ;
It should be as follows:
CREATE NEXTSIBLING OF OutputRoot.MQMD DOMAIN 'MQRFH2' NAME 'MQRFH2' ;
I would like to thank all of you for your support and the time we spend together,
and really I appreciate your time.
 |
|
Back to top |
|
 |
|