ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ Installation/Configuration Support » The nodes can't read the XML message

Post new topic  Reply to topic Goto page Previous  1, 2, 3
 The nodes can't read the XML message « View previous topic :: View next topic » 
Author Message
Manuel_ch
PostPosted: Thu Nov 17, 2005 9:33 am    Post subject: Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

I manage to reproduce the error with my test flow :

The test flow have been completed :

MQInput=>Compute(C_FlowDate)->Trace1->Compute1=>Trace2->MQOutput

In the first Compute Node (C_FlowDate) I just insert a value :

Quote:

SET OutputRoot = InputRoot;
-- Entrez le code SQL sous cette ligne. Le SQL au-dessus de cette ligne pourrait être régénéré, ce qui entraînerait la perte des modifications.

SET OutputRoot.XML.Siprog.MsgEntry.Header.FlowDate = '2005-11-17 15:14:00' ;


The Trace1 is clean and includes the new flowdate:

Quote:

***Trace Root 18:34
(
(0x1000000)Properties = (
(0x3000000)MessageSet = ''
(0x3000000)MessageType = ''
(0x3000000)MessageFormat = ''
(0x3000000)Encoding = 273
(0x3000000)CodedCharSetId = 819
(0x3000000)Transactional = TRUE
(0x3000000)Persistence = TRUE
(0x3000000)CreationTime = GMTTIMESTAMP '2005-11-17 17:34:08.690'
(0x3000000)ExpirationTime = -1
(0x3000000)Priority = 0
(0x3000000)ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x3000000)ReplyProtocol = 'MQ'
(0x3000000)Topic = NULL
)
(0x1000000)MQMD = (
(0x3000000)SourceQueue = 'Q_MCHE'
(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 = 1
(0x3000000)MsgId = X'414d5120514d5f4541495f315f494e5443706dc900327013'
(0x3000000)CorrelId = X'000000000000000000000000000000000000000000000000'
(0x3000000)BackoutCount = 0
(0x3000000)ReplyToQ = ' '
(0x3000000)ReplyToQMgr = 'QM_EAI_1_INTEVO '
(0x3000000)UserIdentifier = 'mqmie '
(0x3000000)AccountingToken = X'0332303800000000000000000000000000000000000000000000000000000006'
(0x3000000)ApplIdentityData = ' '
(0x3000000)PutApplType = 28
(0x3000000)PutApplName = 'MQSeries Client for Java '
(0x3000000)PutDate = DATE '2005-11-17'
(0x3000000)PutTime = GMTTIME '17:34:08.690'
(0x3000000)ApplOriginData = ' '
(0x3000000)GroupId = X'000000000000000000000000000000000000000000000000'
(0x3000000)MsgSeqNumber = 1
(0x3000000)Offset = 0
(0x3000000)MsgFlags = 0
(0x3000000)OriginalLength = -1
)
(0x1000010)XML = (
(0x1000000)Siprog = (
(0x1000000)MsgEntry = (
(0x1000000)Header = (
...etc...etc
(0x1000000)FlowDate = (
(0x2000000) = '2005-11-17 15:14:00'
)
)
(0x1000000)Content = (
...etc...etc
)
)
)
)
)
)



The Compute1 node is trying to substring our Content message :



Quote:

SET OutputRoot = InputRoot;
-- Entrez le code SQL sous cette ligne. Le SQL au-dessus de cette ligne pourrait être régénéré, ce qui entraînerait la perte des modifications.

DECLARE extrait BLOB;
DECLARE chaine CHARACTER;
SET extrait = BITSTREAM(InputBody);

------------------------------
-- Chaine contient le message
------------------------------
SET chaine = CAST( extrait AS CHARACTER CCSID InputRoot.MQMD.CodedCharSetId);
--SET chaine = ASBITSTREAM( extrait OPTIONS RootBitStream CCSID InputRoot.MQMD.CodedCharSetId FORMAT CHARACTER);

DECLARE nPosition1 INTEGER;
DECLARE nPosition2 INTEGER;
DECLARE nPosition3 INTEGER;
SET nPosition1 = POSITION('<Content>' IN chaine);
SET nPosition2 = POSITION('</Content>' IN chaine);
SET nPosition3 = nPosition2 - 9 - nPosition1;

DECLARE sContent CHARACTER;
SET sContent = SUBSTRING (chaine FROM nPosition1+9 FOR nPosition3);



The Trace 2 after this compute gave us :


Quote:

***Trace Root2 18:34
(
(0x1000000)Properties = (
(0x3000000)MessageSet = ''
(0x3000000)MessageType = ''
(0x3000000)MessageFormat = ''
(0x3000000)Encoding = 273
(0x3000000)CodedCharSetId = 819
(0x3000000)Transactional = TRUE
(0x3000000)Persistence = TRUE
(0x3000000)CreationTime = GMTTIMESTAMP '2005-11-17 17:34:08.690'
(0x3000000)ExpirationTime = -1
(0x3000000)Priority = 0
(0x3000000)ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x3000000)ReplyProtocol = 'MQ'
(0x3000000)Topic = NULL
)
(0x1000000)MQMD = (
(0x3000000)SourceQueue = 'Q_MCHE'
(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 = 1
(0x3000000)MsgId = X'414d5120514d5f4541495f315f494e5443706dc900327013'
(0x3000000)CorrelId = X'000000000000000000000000000000000000000000000000'
(0x3000000)BackoutCount = 0
(0x3000000)ReplyToQ = ' '
(0x3000000)ReplyToQMgr = 'QM_EAI_1_INTEVO '
(0x3000000)UserIdentifier = 'mqmie '
(0x3000000)AccountingToken = X'0332303800000000000000000000000000000000000000000000000000000006'
(0x3000000)ApplIdentityData = ' '
(0x3000000)PutApplType = 28
(0x3000000)PutApplName = 'MQSeries Client for Java '
(0x3000000)PutDate = DATE '2005-11-17'
(0x3000000)PutTime = GMTTIME '17:34:08.690'
(0x3000000)ApplOriginData = ' '
(0x3000000)GroupId = X'000000000000000000000000000000000000000000000000'
(0x3000000)MsgSeqNumber = 1
(0x3000000)Offset = 0
(0x3000000)MsgFlags = 0
(0x3000000)OriginalLength = -1
)
(0x1000010)XML = (
(0x1000000)Siprog = (
(0x1000000)MsgEntry = (
(0x1000000)Header = (
etc ... etc ...
(0x1000000)FlowDate = (
(0x2000000) = '2005-11-17 15:14:00'
)
)
(0x1000000)Content = (
etc... etc ...
)
)
)
)
)

***Trace ExceptionList 18:34
(
(0x1000000)RecoverableException = (
(0x3000000)File = '/build/S210_P/src/DataFlowEngine/ImbDataFlowNode.cpp'
(0x3000000)Line = 536
(0x3000000)Function = 'ImbDataFlowNode::createExceptionList'
(0x3000000)Type = 'ComIbmComputeNode'
(0x3000000)Name = '9da8be56-0701-0000-0080-ddd07afc285a'
(0x3000000)Label = 'FL_F_MCHE.Compute1'
(0x3000000)Text = 'Node throwing exception'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 2230
(0x1000000)RecoverableException = (
(0x3000000)File = '/build/S210_P/src/DataFlowEngine/ImbRdl/ImbRdlStringFunctions.cpp'
(0x3000000)Line = 295
(0x3000000)Function = 'SubstringFnCall::evaluateFunction'
(0x3000000)Type = 'ComIbmComputeNode'
(0x3000000)Name = '9da8be56-0701-0000-0080-ddd07afc285a'
(0x3000000)Label = 'FL_F_MCHE.Compute1'
(0x3000000)Text = 'Illegal arguments for SUBSTRING functions'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 2499
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '22'
)
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '16'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'SUBSTRING('' FROM 9 FOR -9)'
)
)
)
)



My analyse is : if a first compute node modify the xml message, the second compute node fails to read the message.
In fact if the first compute node C_FlowDate is not here the Compute1 node works perfectly.


Is there anything I can do to make my environment working about it?
Back to top
View user's profile Send private message
fschofer
PostPosted: Mon Nov 21, 2005 8:00 am    Post subject: Reply with quote

Knight

Joined: 02 Jul 2001
Posts: 524
Location: Mainz, Germany

Hi,
have you tried using InputRoot.XML instead of InputBody.
Maybe InputBody which means last child of InputRoot is finding something else

A second idea is to test what happens if you use InputRoot.XML.Siprog

Greetings
Frank
Back to top
View user's profile Send private message Send e-mail
Manuel_ch
PostPosted: Mon Nov 21, 2005 9:20 am    Post subject: Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

I get the same result when I'm replacing BITSTREAM(InputBody) by BITSTREAM(InputRoot.XML) or BITSTREAM(ImputRoot.XML.Siprog) :

When the first compute Node C_FlowDate is present the second Compute Node Compute1 doesn't manage to resolve BITSTREAM(InputBody) or InputRoot.XML(.Siprog).

Quote:

The trace of BITSTREAM(ImputRoot.XML.Siprog) with the node C_FlowDate present
2005-11-21 18:13:59.641841 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'SET OutputRoot = InputRoot;' at (1, 1).
2005-11-21 18:13:59.642002 2828 UserTrace BIP2538I: Node 'FL_F_MCHE.Compute1': Evaluating expression 'InputRoot' at (1, 1.
2005-11-21 18:13:59.642127 2828 UserTrace BIP2568I: Node 'FL_F_MCHE.Compute1': Performing tree copy of '' to 'OutputRoot'.
2005-11-21 18:13:59.642776 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'DECLARE extrait BLOB;' at (4, 1).
2005-11-21 18:13:59.642883 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'DECLARE chaine CHARACTER;' at (5, 1).
2005-11-21 18:13:59.642978 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'SET extrait = BITSTREAM(InputRoot.XML.Siprog);' at (6, 1).
2005-11-21 18:13:59.643070 2828 UserTrace BIP2538I: Node 'FL_F_MCHE.Compute1': Evaluating expression 'BITSTREAM(InputRoot.XML.Siprog)' at (6, 15).
2005-11-21 18:13:59.645484 2828 UserTrace BIP2540I: Node 'FL_F_MCHE.Compute1': Finished evaluating expression 'BITSTREAM(InputRoot.XML.Siprog)' at (6, 15). The result was 'X'''.
2005-11-21 18:13:59.645751 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'SET chaine = CAST(extrait AS CHARACTER CCSID InputRoot.MQMD.CodedCharSetId);' at (11, 1).



But when C_FlowDate is not connected Compute1 manage to read the message :

Quote:

Trace without the node C_FlowDate
2005-11-21 18:08:32.949584 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'SET OutputRoot = InputRoot;' at (1, 1).
2005-11-21 18:08:32.949691 2828 UserTrace BIP2538I: Node 'FL_F_MCHE.Compute1': Evaluating expression 'InputRoot' at (1, 1.
2005-11-21 18:08:32.949802 2828 UserTrace BIP2568I: Node 'FL_F_MCHE.Compute1': Performing tree copy of '' to 'OutputRoot'.
2005-11-21 18:08:32.950057 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'DECLARE extrait BLOB;' at (4, 1).
2005-11-21 18:08:32.950160 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'DECLARE chaine CHARACTER;' at (5, 1).
2005-11-21 18:08:32.950256 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'SET extrait = BITSTREAM(InputRoot.XML.Siprog);' at (6, 1).
2005-11-21 18:08:32.950382 2828 UserTrace BIP2538I: Node 'FL_F_MCHE.Compute1': Evaluating expression 'BITSTREAM(InputRoot.XML.Siprog)' at (6, 15).
2005-11-21 18:08:32.955001 2828 UserTrace BIP2540I: Node 'FL_F_MCHE.Compute1': Finished evaluating expression 'BITSTREAM(InputRoot.XML.Siprog)' at (6, 15). The result was 'X'3c53697.......e''.
2005-11-21 18:08:32.955287 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'SET chaine = CAST(extrait AS CHARACTER CCSID InputRoot.MQMD.CodedCharSetId);' at (11, 1).
2005-11-21 18:08:32.955379 2828 UserTrace BIP2538I: Node 'FL_F_MCHE.Compute1': Evaluating expression 'CAST(extrait AS CHARACTER CCSID InputRoot.MQMD.CodedCharSetId)' at (11, 14).
2005-11-21 18:08:32.955501 2828 UserTrace BIP2538I: Node 'FL_F_MCHE.Compute1': Evaluating expression 'extrait' at (11, 20).
2005-11-21 18:08:32.955596 2828 UserTrace BIP2538I: Node 'FL_F_MCHE.Compute1': Evaluating expression 'InputRoot.MQMD.CodedCharSetId' at (11, 47).
2005-11-21 18:08:32.960041 2828 UserTrace BIP2539I: Node 'FL_F_MCHE.Compute1': Finished evaluating expression 'CAST(extrait AS CHARACTER CCSID InputRoot.MQMD.CodedCharSetId)' at (11, 14). This resolved to 'CAST(X'3c5369707....73e' AS CHARACTER CCSID 819 )'. The result was ''<Siprog><MsgEntry><Header><OrderId>7050000000000000000</OrderId><Hist... </Header><Content><Missi... ...sion></Content></MsgEntry></Siprog>''.
2005-11-21 18:08:32.960441 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'DECLARE nPosition1 INTEGER;' at (14, 1).
2005-11-21 18:08:32.960567 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'DECLARE nPosition2 INTEGER;' at (15, 1).
2005-11-21 18:08:32.960655 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'DECLARE nPosition3 INTEGER;' at (16, 1).
2005-11-21 18:08:32.960750 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'SET nPosition1 = POSITION('<Content>' IN chaine);' at (17, 1).
2005-11-21 18:08:32.960838 2828 UserTrace BIP2538I: Node 'FL_F_MCHE.Compute1': Evaluating expression 'POSITION('<Content>' IN chaine)' at (17, 1.
2005-11-21 18:08:32.960948 2828 UserTrace BIP2538I: Node 'FL_F_MCHE.Compute1': Evaluating expression 'chaine' at (17, 42).
2005-11-21 18:08:32.961124 2828 UserTrace BIP2539I: Node 'FL_F_MCHE.Compute1': Finished evaluating expression 'POSITION('<Content>' IN chaine)' at (17, 1. This resolved to 'POSITION('<Content>' IN '<Siprog><MsgEntry><Header><OrderId>7050000000000000000</OrderId><Hist... ber></Header><Content><Miss....sion></Content></MsgEntry></Siprog>')'. The result was '779'.
2005-11-21 18:08:32.961318 2828 UserTrace BIP2537I: Node 'FL_F_MCHE.Compute1': Executing statement 'SET nPosition2 = POSITION('</Content>' IN chaine);' at (18, 1).
2005-11-21 18:08:32.961406 2828 UserTrace BIP2538I: Node 'FL_F_MCHE.Compute1': Evaluating expression 'POSITION('</Content>' IN chaine)' at (18, 1.
2005-11-21 18:08:32.961502 2828 UserTrace BIP2538I: Node 'FL_F_MCHE.Compute1': Evaluating expression 'chaine' at (18, 43).



Is there any explanation ?
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Mon Nov 21, 2005 9:30 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

First off, and again,

Stop using Bitstream.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
JT
PostPosted: Mon Nov 21, 2005 11:04 am    Post subject: Reply with quote

Padawan

Joined: 27 Mar 2003
Posts: 1564
Location: Hartford, CT.

What is the setting for Compute Mode property of the C_FlowDate node ?
Back to top
View user's profile Send private message
Manuel_ch
PostPosted: Tue Nov 22, 2005 6:52 am    Post subject: Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

The property of the Compute Node C_FlowDate :

-Advanced :
. Consider warning as Error is not checked
. raise exception is checked
. Mode is Message
-Confirmation :
. Validate : None

This is the same config as the compute Node Compute1.

Manuel
Back to top
View user's profile Send private message
Manuel_ch
PostPosted: Mon Nov 28, 2005 9:05 am    Post subject: Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

I want to test a other call InputRoot, by using ASBITSTREAM.
Quote:

SET OutputRoot = InputRoot;

DECLARE extrait BLOB;
DECLARE chaine CHARACTER;
SET extrait = BITSTREAM(InputBody);

BITSTREAM(InputRoot.XML.Siprog);
SET chaine = CAST(extrait AS CHARACTER CCSID InputRoot.MQMD.CodedCharSetId);

What my code becomes to?
Back to top
View user's profile Send private message
Manuel_ch
PostPosted: Thu Jan 05, 2006 3:06 am    Post subject: Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

Back from my hollidays, the problem still there.

Does anyones have an idear?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2, 3 Page 3 of 3

MQSeries.net Forum Index » IBM MQ Installation/Configuration Support » The nodes can't read the XML message
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.