Author |
Message
|
AlexeiSkate |
Posted: Tue Jun 04, 2002 7:57 am Post subject: A "...does not match..." message warning |
|
|
Centurion
Joined: 10 Apr 2002 Posts: 123
|
Hi,
In the compute node, I selected a field on the output msg definition panel and then selected "Create Mapping". When I used the control center to check the msg flow, I got the message that "...Compute Expression:(1 of 1) Path does not match any of the selected messages." If the Control Center was the one to generate the ESQL mapping in the first place, does anyone know why it would find an error/issue with it ?
<<>>
Also, I set a break point at one step of my msg flow. In the ParserException, I saw a text of "RM Dictionary Not Found." Does this mean that the Parser does not know where the dictionary for the msg is ? I imported a dtd into a message set. Do I need to do some other definition in the control center to further define this dtd to the parser ?
Thanks for any input.
-Alex |
|
Back to top |
|
 |
kirani |
Posted: Tue Jun 04, 2002 8:16 am Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Quote: |
"RM Dictionary Not Found." |
Did you assign your messageset to the broker and deployed broker completely? _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
AlexeiSkate |
Posted: Tue Jun 04, 2002 11:40 am Post subject: |
|
|
Centurion
Joined: 10 Apr 2002 Posts: 123
|
Yes, the message broker was deployed correctly.
I'm wondering if the input XML that I created does not match the message structure defined for the incoming message. The input message is sent from the input node to the compute node for mapping, but it gets detoured to the failure queue. I use the Debug Action feature of the control center and set break point going from the compute node to the failure node. The parse exception on the debug panel displays a text of "RM Dictionary not found". |
|
Back to top |
|
 |
kirani |
Posted: Tue Jun 04, 2002 12:51 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Alex,
Can you run your message flow in non-debug mode and print ExceptionList using TraceNode? Please post the contents of your ExceptionList here and we will have a look at it. _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
AlexeiSkate |
Posted: Tue Jun 04, 2002 3:56 pm Post subject: |
|
|
Centurion
Joined: 10 Apr 2002 Posts: 123
|
I put a traceNode between my InputNode and the ComputeNode and set the trace option to ${Root}. It doesn't seem like the body of the msg is going through at all:
000000)Properties = (
(0x3000000)MessageSet = 'DP6FPGG07Q001'
(0x3000000)MessageType = 'm_MellonDepositConfirmationTransaction'
(0x3000000)MessageFormat = 'XML'
(0x3000000)Encoding = 273
(0x3000000)CodedCharSetId = 819
(0x3000000)Transactional = TRUE
(0x3000000)Persistence = FALSE
(0x3000000)CreationTime = GMTTIMESTAMP '2002-06-04 23:26:49.174'
(0x3000000)ExpirationTime = -1
(0x3000000)Priority = 0
(0x3000000)ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x3000000)ReplyProtocol = 'MQ'
(0x3000000)Topic = NULL
)
(0x1000000)MQMD = (
(0x3000000)SourceQueue = 'MELLONBANK_DEPOSITCONFIRMATION'
(0x3000000)Transactional = TRUE
(0x3000000)Encoding = 273
(0x3000000)CodedCharSetId = 819
(0x3000000)Format = 'MQSTR '
(0x3000000)Version = 2
(0x3000000)Report = 0
(0x3000000)MsgType = 8
(0x3000000)Expiry = -1
(0x3000000)Feedback = 0
(0x3000000)Priority = 0
(0x3000000)Persistence = 0
(0x3000000)MsgId = X'414d51204d5153495f53414d504c455f7643fd3c12700100'
(0x3000000)CorrelId = X'000000000000000000000000000000000000000000000000'
(0x3000000)BackoutCount = 0
(0x3000000)ReplyToQ = ' '
(0x3000000)ReplyToQMgr = 'MQSI_SAMPLE_QM '
(0x3000000)UserIdentifier = 'aphan '
(0x3000000)AccountingToken = X'16010515000000828ba62842c77452235f636b3811000000000000000000000b'
(0x3000000)ApplIdentityData = ' '
(0x3000000)PutApplType = 11
(0x3000000)PutApplName = 'C:\winnt\system32\java.exe '
(0x3000000)PutDate = DATE '2002-06-04'
(0x3000000)PutTime = GMTTIME '23:26:52.170'
(0x3000000)ApplOriginData = ' '
(0x3000000)GroupId = X'000000000000000000000000000000000000000000000000'
(0x3000000)MsgSeqNumber = 1
(0x3000000)Offset = 0
(0x3000000)MsgFlags = 0
(0x3000000)OriginalLength = -1
)
(0x1000008)MRM =
I defined my input msg as an xml format. I specified in the InputNode properties that the domain is MRM and format is XML. Now do I need to also add some kind of header to the input msg to indicate its domain and format ? I'm assuming the msg is in the MRM domain, because when I import in the dtd file to create the message, it defaults to the MRM domain, correct ? |
|
Back to top |
|
 |
AlexeiSkate |
Posted: Tue Jun 04, 2002 5:08 pm Post subject: |
|
|
Centurion
Joined: 10 Apr 2002 Posts: 123
|
Here's the ExceptionList from the tracerNode:
(
(0x1000000)RecoverableException = (
(0x3000000)File = 'F:\build\S000_P\src\DataFlowEngine\ImbDataFlowNode.cpp'
(0x3000000)Line = 536
(0x3000000)Function = 'ImbDataFlowNode::createExceptionList'
(0x3000000)Type = 'ComIbmComputeNode'
(0x3000000)Name = '6309a527-ee00-0000-0080-c6f504790ee8'
(0x3000000)Label = 'MellonCanonical.Compute1'
(0x3000000)Text = 'Node throwing exception'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 2230
(0x1000000)ParserException = (
(0x3000000)File = 'F:\build\S000_P\src\MTI\MTIforBroker\MtiImbParser2\MtiImbRMErrorMap.cpp'
(0x3000000)Line = 136
(0x3000000)Function = 'MtiImbRMErrorMap::checkRC'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'RM Dictionary Not Found.'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 5304
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '23'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'rmLoadDictionary'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'DP6FPGG07Q001'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'Null pointer'
)
)
)
) |
|
Back to top |
|
 |
kirani |
Posted: Tue Jun 04, 2002 5:33 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Alex,
Make sure you set correct values for properties in your MQInput node, like,
Message Domain: MRM
Message Set: D000..
Message Type: your message identifier (m_...)
Message Format: XML
Since you are setting message properties in your MQInput node you don't have to add any header to your message. Error code (BIP5304) in your ExceptionList indicates that the MessageSet is not assigned to the broker.
If you have not done this, please follow these steps,
1. Goto Assignment view.
2. Checkout your broker by right clicking on it.
3. Expand your "Message Sets" tab and drag your message set on broker. You will see your messageset getting assigned to the broker.
4. Checkin the broker.
5. Right click on the broker and select Deploy.
6. After you get log message in log view, goto Operations pannel and do a refresh. You should see your message set assigned to broker. This means message assignment was successful.
If you have already assigned the messageset to the broker then you must have typed MessageSet Identifier incorrectly in your MQInput node. Most people get confused between character O and 0 (zero)! make sure you are giving correct messageset Identifier.
Let me know how it goes.
Good Luck! _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
AlexeiSkate |
Posted: Wed Jun 05, 2002 6:02 am Post subject: |
|
|
Centurion
Joined: 10 Apr 2002 Posts: 123
|
Kirani,
Thanks for the reply. I did forget to deploy my msg set to the broker. Right now I'm getting this error in the catch terminal of my input node:
(
(0x1000000)RecoverableException = (
(0x3000000)File = 'F:\build\S000_P\src\DataFlowEngine\ImbDataFlowNode.cpp'
(0x3000000)Line = 536
(0x3000000)Function = 'ImbDataFlowNode::createExceptionList'
(0x3000000)Type = 'ComIbmMQInputNode'
(0x3000000)Name = 'da62a427-ee00-0000-0080-c6f504790ee8'
(0x3000000)Label = 'MellonCanonical.MQInput1'
(0x3000000)Text = 'Node throwing exception'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 2230
(0x1000000)RecoverableException = (
(0x3000000)File = 'F:\build\S000_P\src\DataFlowEngine\ImbTraceNode.cpp'
(0x3000000)Line = 329
(0x3000000)Function = 'ImbTraceNode::evaluate'
(0x3000000)Type = 'ComIbmTraceNode'
(0x3000000)Name = '3194723d-ee00-0000-0080-f72dc50eded8'
(0x3000000)Label = 'MellonCanonical.Trace2'
(0x3000000)Text = 'Caught exception and rethrowing'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 2230
(0x1000000)ParserException = (
(0x3000000)File = 'F:\build\S000_P\src\cpi\pwf\xml\xmlworker.cpp'
(0x3000000)Line = 100
(0x3000000)Function = 'XMLWorker::initializeParse'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'Message id passed into initialise parse, but no wireformat descriptor has been set.'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 5502
)
)
)
)
Do I need to set the wire format to XML for the input message definition that was created when I imported a dtd into WMQI ?
When I click on the drop-down list for the message format property of the InputNode, the only option I see is PDF. I entered XML anyway, but shouldn't there also be an XML option under the drop-down list ? I'm thinking that I have to somehow define this XML format layer to my msg set but right now I don't see any option on how to do it.
Thanks. |
|
Back to top |
|
 |
kirani |
Posted: Wed Jun 05, 2002 7:54 am Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Alex,
When you created MessageSet did you add Physical Wire Format to it? If not, you will have to recreate your message set. Following steps will tell you how to add Physical Format to a messageset,
1. Create a new Message Set.
2. Right click on the message set and select, Add->Physical Format->XML Format.
3. Enter XML in the dialog box.
4. Import your DTD into message set. Make appropriate changes to your message set if needed.
5. Checkin your message set.
6. Assign your messageset to the broker.
7. Change your message flow to reflect new messageset, message name and messageset id.
hope this helps.
Regards, _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
|