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 1, 2, 3  Next
 The nodes can't read the XML message « View previous topic :: View next topic » 
Author Message
Manuel_ch
PostPosted: Fri Oct 28, 2005 1:46 am    Post subject: The nodes can't read the XML message Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

Context :
I just install a complet EAI, mqseries, wmqi
Windows 2000 :config mgr
AIX4.3.3 : broker, cluster

Every things seams working fine (communication) but it doesn't.


The problem

My compute node can't parse or read my XML messages.

ex:

Code:
SET OutputRoot = InputRoot;

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

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

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);

PASSTHRU('{call FLUX_RB.EAI_CREATIONREFBUD(?)}', sContent);



The Log is :

Quote:

uting statement 'SET OutputRoot = InputRoot;' at (1, 1).
2005-10-26 17:22:53.357208 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'InputRoot' at (1, 18).
2005-10-26 17:22:53.357341 1800 UserTrace BIP2568I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Performing tree copy of '' to 'OutputRoot'.
2005-10-26 17:22:53.358127 1800 UserTrace BIP2537I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Executing statement 'DECLARE extrait BLOB;' at (4, 1).
2005-10-26 17:22:53.358242 1800 UserTrace BIP2537I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Executing statement 'DECLARE chaine CHARACTER;' at (5, 1).
2005-10-26 17:22:53.358337 1800 UserTrace BIP2537I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Executing statement 'SET extrait = BITSTREAM(InputBody);' at (6, 1).
2005-10-26 17:22:53.503280 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'BITSTREAM(InputBody)' at (6, 15).
2005-10-26 17:22:53.589935 1800 UserTrace BIP2540I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Finished evaluating expression 'BITSTREAM(InputBody)' at (6, 15). The result was 'X'''.
2005-10-26 17:22:53.590167 1800 UserTrace BIP2537I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Executing statement 'SET chaine = CAST(extrait AS CHARACTER CCSID InputRoot.MQMD.CodedCharSetId);' at (11, 1).
2005-10-26 17:22:53.630702 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'CAST(extrait AS CHARACTER CCSID InputRoot.MQMD.CodedCharSetId)' at (11, 14).
2005-10-26 17:22:53.630844 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'extrait' at (11, 20).
2005-10-26 17:22:53.630950 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'InputRoot.MQMD.CodedCharSetId' at (11, 47).
2005-10-26 17:22:53.716796 1800 UserTrace BIP2539I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Finished evaluating expression 'CAST(extrait AS CHARACTER CCSID InputRoot.MQMD.CodedCharSetId)' at (11, 14). This resolved to 'CAST(X'' AS CHARACTER CCSID 819 )'. The result was ''''.
2005-10-26 17:22:53.716945 1800 UserTrace BIP2537I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Executing statement 'DECLARE nPosition1 INTEGER;' at (13, 1).
2005-10-26 17:22:53.717044 1800 UserTrace BIP2537I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Executing statement 'DECLARE nPosition2 INTEGER;' at (14, 1).
2005-10-26 17:22:53.717140 1800 UserTrace BIP2537I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Executing statement 'DECLARE nPosition3 INTEGER;' at (15, 1).
2005-10-26 17:22:53.717247 1800 UserTrace BIP2537I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Executing statement 'SET nPosition1 = POSITION('<Content>' IN chaine);' at (16, 1).
2005-10-26 17:22:53.717632 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'POSITION('<Content>' IN chaine)' at (16, 18).
2005-10-26 17:22:53.717754 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'chaine' at (16, 42).
2005-10-26 17:22:53.747814 1800 UserTrace BIP2539I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Finished evaluating expression 'POSITION('<Content>' IN chaine)' at (16, 18). This resolved to 'POSITION('<Content>' IN '')'. The result was '0'.
2005-10-26 17:22:53.747940 1800 UserTrace BIP2537I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Executing statement 'SET nPosition2 = POSITION('</Content>' IN chaine);' at (17, 1).
2005-10-26 17:22:53.748035 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'POSITION('</Content>' IN chaine)' at (17, 18).
2005-10-26 17:22:53.748134 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'chaine' at (17, 43).
2005-10-26 17:22:53.748245 1800 UserTrace BIP2539I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Finished evaluating expression 'POSITION('</Content>' IN chaine)' at (17, 18). This resolved to 'POSITION('</Content>' IN '')'. The result was '0'.
2005-10-26 17:22:53.748352 1800 UserTrace BIP2537I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Executing statement 'SET nPosition3 = nPosition2 - 9 - nPosition1;' at (18, 1).
2005-10-26 17:22:53.764373 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'nPosition2 - 9 - nPosition1' at (18, 34).
2005-10-26 17:22:53.764514 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'nPosition2 - 9' at (18, 30).
2005-10-26 17:22:53.764610 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'nPosition2' at (18, 19).
2005-10-26 17:22:53.810066 1800 UserTrace BIP2539I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Finished evaluating expression 'nPosition2 - 9' at (18, 30). This resolved to '0 - 9'. The result was '-9'.
2005-10-26 17:22:53.810192 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'nPosition1' at (18, 36).
2005-10-26 17:22:53.810302 1800 UserTrace BIP2539I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Finished evaluating expression 'nPosition2 - 9 - nPosition1' at (18, 34). This resolved to '-9 - 0'. The result was '-9'.
2005-10-26 17:22:53.810413 1800 UserTrace BIP2537I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Executing statement 'DECLARE sContent CHARACTER;' at (20, 1).
2005-10-26 17:22:53.810520 1800 UserTrace BIP2537I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Executing statement 'SET sContent = SUBSTRING(chaine FROM nPosition1 + 9 FOR nPosition3);' at (21, 1).
2005-10-26 17:22:53.810615 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'SUBSTRING(chaine FROM nPosition1 + 9 FOR nPosition3)' at (21, 16).
2005-10-26 17:22:53.810714 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'chaine' at (21, 27).
2005-10-26 17:22:53.811050 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'nPosition1 + 9' at (21, 49).
2005-10-26 17:22:53.811141 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'nPosition1' at (21, 39).
2005-10-26 17:22:53.811260 1800 UserTrace BIP2539I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Finished evaluating expression 'nPosition1 + 9' at (21, 49). This resolved to '0 + 9'. The result was '9'.
2005-10-26 17:22:53.811355 1800 UserTrace BIP2538I: Node 'FL_F_RB.C_PS_EAI_OPX2_2': Evaluating expression 'nPosition3' at (21, 56).
2005-10-26 17:22:54.368930 1800 UserTrace BIP4081I: Message propagated to catch terminal from try-catch node 'FL_F_RB.TryCatch'.
The try-catch node 'FL_F_RB.TryCatch' has caught an exception which occurred in a node connected to its try terminal. The message has been augmented with an exception list and is propagating it to any nodes connected to its catch terminal for further processing. See the following messages for details of the exception list.
No user action required.
2005-10-26 17:22:54.369007 1800 RecoverableException BIP2230E: Error detected whilst processing a message in node 'FL_F_RB.C_PS_EAI_OPX2_2'.
The message broker detected an error whilst processing a message in node 'FL_F_RB.C_PS_EAI_OPX2_2'. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error.
2005-10-26 17:22:54.369037 1800 RecoverableException BIP2499E: (21, 16) : Illegal arguments to SUBSTRING function called as 'SUBSTRING('' FROM 9 FOR -9)'.
Valid syntax for SUBSTRING is: SUBSTRING( source_string FROM start_position [FOR string_length]). The function was called as 'SUBSTRING('' FROM 9 FOR -9)'.
Correct the syntax of the expression and redeploy the message flow.



I undestand is that log that, the node doesn't manage to read the message and read an empty message. And so it can't make the substring between 9 FOR -9.

I put a trace node in that flow. The result of this trace is empty.

Note that this same flow work perfectly in my other EAI (same configuration).

An other flow F_FAIL in this environment manage to make the substring and read the message but when I place a trace node the result is also empty.


Does any one have an inpiration?

Thx
Back to top
View user's profile Send private message
wschutz
PostPosted: Fri Oct 28, 2005 1:51 am    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

One (of the many) reasons you use the broker is to allow IT to parse your XML and not have to do it yourself. So normally we'd just code something like:
Code:

ECLARE sContent CHARACTER;
SET sContent = InputRoot.XML.E1.E2.Content;

PASSTHRU('{call FLUX_RB.EAI_CREATIONREFBUD(?)}', sContent);
Where E1 and E2 are parent elements. Any reason you didn't do this?
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
Manuel_ch
PostPosted: Fri Oct 28, 2005 2:09 am    Post subject: Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

I didn't create it, but I assume that it's because the Content can be very large : 5Mo.

Do you think this is a possible reason?
Back to top
View user's profile Send private message
wschutz
PostPosted: Fri Oct 28, 2005 2:26 am    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

Not really....

Anyways, there's not too much we can do to help here. Your compute node is obviously not getting any data in the InputRoot. Is your trace node before or after the compute node?
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
Manuel_ch
PostPosted: Fri Oct 28, 2005 2:41 am    Post subject: Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

My Trace node just after the MQInput is empty
as all Trace node every anywhere it's place.

Include the trace node in the flow who works.

Note : the flow who works include a compute node with the same substring.
Back to top
View user's profile Send private message
Manuel_ch
PostPosted: Fri Oct 28, 2005 2:48 am    Post subject: Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

We're using a sbustring method probably because it's a BLOB field
Back to top
View user's profile Send private message
wschutz
PostPosted: Fri Oct 28, 2005 3:09 am    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

Are you sure the message is arriving with data in it?
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
Manuel_ch
PostPosted: Fri Oct 28, 2005 3:26 am    Post subject: Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

The first flow try to make his jog, and if it fails, it put the message in the queue for the flow "F_FAIL" if it success, it place the message in the queue for the flow "F_ARCHIVAGE".

The flow F_FAIL, insert the message in a database.

And I see the full message in the database.

The trace in F_FAIL doesn't write anythings in my output file except the date, (which I demand).
Back to top
View user's profile Send private message
Manuel_ch
PostPosted: Wed Nov 02, 2005 2:03 am    Post subject: Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

any idear ??

Why the node can't manage to read the message?
Back to top
View user's profile Send private message
wschutz
PostPosted: Wed Nov 02, 2005 3:11 am    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

Post the ouput from the trace node right after the MQInput
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
Manuel_ch
PostPosted: Wed Nov 02, 2005 3:33 am    Post subject: Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

I've already put a trace node right after the MQinput node, and the trace is empty. An empty line is writed.

I belive, somethings is missing the installation.

Anythings we can do to find what's missing?
Back to top
View user's profile Send private message
wschutz
PostPosted: Wed Nov 02, 2005 3:37 am    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

What have you specified for the trace pattern? You should at least see the message descriptor.... try this for a pattern:

Code:
**** Trace Environment
${Environment}
*** trace root
${Root}

_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
Manuel_ch
PostPosted: Wed Nov 02, 2005 5:09 am    Post subject: Reply with quote

Apprentice

Joined: 27 Jul 2005
Posts: 31

here what's the result :

Quote:


**** Trace Environment

*** trace root
(
(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-02 13:14:29.260'
(0x3000000)ExpirationTime = -1
(0x3000000)Priority = 0
(0x3000000)ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x3000000)ReplyProtocol = 'MQ'
(0x3000000)Topic = NULL
)
(0x1000000)MQMD = (
(0x3000000)SourceQueue = 'Q_NABU.F_RB'
(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'414d5120514d5f4541495f315f494e5443689b7d0001e013'
(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-02'
(0x3000000)PutTime = GMTTIME '13:14:29.260'
(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 = (
(0x1000000)OrderId = (
(0x2000000) = '7050000000000004797'
)
(0x1000000)History = (
(0x2000000) = '42408 25/10/2005 17:42:23 - 42413 25/10/2005 17:54:27 - 42414 25/10/2005 17:59:32 - 42416 26/10/2005 11:37:05 - 42420 26/10/2005 18:02:10 - 42423 28/10/2005 10:43:43 - 42428 28/10/2005 11:00:47 - 42431 28/10/2005 15:01:28 - 42434 02/11/2005 14:12:47'
)
(0x1000000)LoginUser = (
(0x2000000) = 'nabucco'
)
(0x1000000)SendingApp = (
(0x2000000) = 'Nabucco'
)
(0x1000000)MessageType = (
(0x2000000) = 'CREATION_OBI_DEFENSE'
)
(0x1000000)EventDate = (
(0x2000000) = '25/10/2005 15:21:39'
)
(0x1000000)SendingDate = (
(0x2000000) = '25/10/2005 15:42:15'
)
(0x1000000)ChangingDate = (
(0x2000000) = '01/01/2001 12:00:00'
)
(0x1000000)FlowName = (
(0x2000000) = 'F_RB3-SPN'
)
(0x1000000)QueueManagerName = (
(0x2000000) = 'QM_EAI_1_INTEVO'
)
(0x1000000)QueueName = (
(0x2000000) = 'Q_NABU.F_RB'
)
(0x1000000)LastSubmitDate = (
(0x2000000) = '02/11/2005 14:12:47'
)
(0x1000000)SubmitNumber = (
(0x2000000) = '9'
)
)
(0x1000000)Content = (
(0x1000000)Mission = (
(0x1000000)Numero = (
(0x2000000) = '001'
)
(0x1000000)Libelle = (
(0x2000001) = 'Défense'
)
(0x1000000)Programme = (
(0x1000000)Numero = (
(0x2000000) = '380'

.........



The Environement is empty is it normal?
I have my data in the ${Root}, I belive it a good thing.
Back to top
View user's profile Send private message
wschutz
PostPosted: Wed Nov 02, 2005 7:13 am    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

Quote:
The Environement is empty is it normal?

Yes, thats ok.
Quote:
I have my data in the ${Root}, I belive it a good thing.

Yes, it is a good thing. This means your message is in the InputRoot in your compute node.

Quote:
Note that this same flow work perfectly in my other EAI (same configuration).
So put this same trace node in the other flow and look for differences.
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
fschofer
PostPosted: Thu Nov 03, 2005 2:56 am    Post subject: Reply with quote

Knight

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

Hi,

use ASBITSTREAM instead of BITSTREAM which is deprecated.

http://publib.boulder.ibm.com/infocenter/wbihelp/topic/com.ibm.etools.mft.doc/ak05510_.htm?resultof=%22%41%53%42%49%54%53%54%52%45%41%4d%22%20%22%61%73%62%69%74%73%74%72%65%61%6d%22%20

Greetings
Frank
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2, 3  Next Page 1 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.