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 » WebSphere Message Broker (ACE) Support » Error : Invalid Document Structure MB 6.1.0.3

Post new topic  Reply to topic
 Error : Invalid Document Structure MB 6.1.0.3 « View previous topic :: View next topic » 
Author Message
muq1835
PostPosted: Thu Oct 04, 2012 10:04 am    Post subject: Error : Invalid Document Structure MB 6.1.0.3 Reply with quote

Newbie

Joined: 04 Oct 2012
Posts: 9

I have recently started learning Message broker and facing an issue in resetcontentdescriptor. I am using MB 6.1.0.3
I have created a message floe with message domain as BLOB.
I am using an RCD to covert the message to XML but facing the below mentioned exception.
I have checked my XML, it is well formed.
I am getting an error even if i am sending just one tag of XML.
Please help

Quote:

ExceptionList
RecoverableException
File:CHARACTER:F:\build\S610_P\src\DataFlowEngine\ImbDataFlowNode.cpp
Line:INTEGER:957
Function:CHARACTER:ImbDataFlowNode::createExceptionList
Type:CHARACTER:ComIbmMQInputNode
Name:CHARACTER:contact admin#FCMComposite_1_1
Label:CHARACTER:contact admin.MQInput
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:2230
Text:CHARACTER:Node throwing exception
RecoverableException
File:CHARACTER:F:\build\S610_P\src\DataFlowEngine\ImbComputeNode.cpp
Line:INTEGER:464
Function:CHARACTER:ImbComputeNode::evaluate
Type:CHARACTER:ComIbmComputeNode
Name:CHARACTER:contact admin#FCMComposite_1_9
Label:CHARACTER:contact admin.VerifyDCSH
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:2230
Text:CHARACTER:Caught exception and rethrowing
RecoverableException
File:CHARACTER:F:\build\S610_P\src\DataFlowEngine\ImbRdl\ImbRdlStatementGroup.cpp
Line:INTEGER:602
Function:CHARACTER:SqlStatementGroup::execute
Type:CHARACTER:ComIbmComputeNode
Name:CHARACTER:contact admin#FCMComposite_1_9
Label:CHARACTER:contact admin.VerifyDCSH
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:2488
Text:CHARACTER:Error detected, rethrowing
Insert
Type:INTEGER:5
Text:CHARACTER:.contact admin.Main
Insert
Type:INTEGER:5
Text:CHARACTER:113.4
Insert
Type:INTEGER:5
Text:CHARACTER:SET OutputRoot.XML.Message.DCSH = Environment.Variables.DCSH;
RecoverableException
File:CHARACTER:F:\build\S610_P\src\DataFlowEngine\ImbRdl\ImbRdlFieldRef.cpp
Line:INTEGER:2059
Function:CHARACTER:SqlFieldReference::navigateAbsoluteToParentOfFirst
Type:CHARACTER:ComIbmComputeNode
Name:CHARACTER:contact admin#FCMComposite_1_9
Label:CHARACTER:contact admin.VerifyDCSH
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:2498
Text:CHARACTER:Navigation error
Insert
Type:INTEGER:5
Text:CHARACTER:.contact admin.Main
Insert
Type:INTEGER:5
Text:CHARACTER:113.8
Insert
Type:INTEGER:2
Text:CHARACTER:3
ParserException
File:CHARACTER:F:\build\S610_P\src\MTI\MTIforBroker\GenXmlParser2\XmlImbParser.cpp
Line:INTEGER:633
Function:CHARACTER:XmlImbParser::parseFirstChild
Type:CHARACTER:
Name:CHARACTER:
Label:CHARACTER:
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:5009
Text:CHARACTER:XML Parsing Errors have occurred
ParserException
File:CHARACTER:F:\build\S610_P\src\MTI\MTIforBroker\GenXmlParser2\XmlBrokerAsgardParser.cpp
Line:INTEGER:723
Function:CHARACTER:XmlBrokerAsgardParser::error
Type:CHARACTER:
Name:CHARACTER:
Label:CHARACTER:
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:5004
Text:CHARACTER:An error has been reported by the BIPXML4C component.
Insert
Type:INTEGER:2
Text:CHARACTER:186
Insert
Type:INTEGER:5
Text:CHARACTER:
Insert
Type:INTEGER:2
Text:CHARACTER:1
Insert
Type:INTEGER:2
Text:CHARACTER:1
Insert
Type:INTEGER:5
Text:CHARACTER:Invalid document structure
Insert
Type:INTEGER:5
Text:CHARACTER:XML
Back to top
View user's profile Send private message
Vitor
PostPosted: Thu Oct 04, 2012 10:29 am    Post subject: Re: Error : Invalid Document Structure MB 6.1.0.3 Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

muq1835 wrote:
I have recently started learning Message broker and facing an issue in resetcontentdescriptor. I am using MB 6.1.0.3


You shouldn't be learning on v6.1.0.3; it's out of support and it's use is decreasing. You should be learning v7 or better still v8.

As a minimum apply all the v6.1 maintenance.

muq1835 wrote:

I have created a message floe with message domain as BLOB.
I am using an RCD to covert the message to XML but facing the below mentioned exception.


Why? Why not parse it on input?

muq1835 wrote:
Please help


Well. this:

Code:
SET OutputRoot.XML.Message.DCSH = Environment.Variables.DCSH;


doesn't describe an RCD in use, and this:

Code:
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:2498
Text:CHARACTER:Navigation error


says that whatever Environment.Variables.DCSH is, the XML parser isn't associated with it.

Also don't get comfortable with the XML domain. Even in v6.1 it wasn't the domain of choice. It's now (in the still supported version of WMB) not something you should ever use.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
muq1835
PostPosted: Thu Oct 04, 2012 10:43 am    Post subject: Reply with quote

Newbie

Joined: 04 Oct 2012
Posts: 9

Thank you so much for the reply.....
I am assigned a project which still uses MB 6.1.0.3
Assignment which i am working on requires the message domain to be BLOB and depending on header value FR or XML appropriate RCD is used to parse the message again.

Error which i pasted is thrown after execution of RCD. RCD has the domain as XML.

i will try to implement all the maintainence patches for 6.1
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Oct 04, 2012 10:46 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Don't set the domain on the RCD to XML.

Set it to XMLNSC.

Don't use the XML domain. Don't use constants that start with "XML". Use only the XMLNSC domain and only use constants that start with XMLNSC.

You can't just
Code:
Set Environment.Variables.DCSH = InputRoot.XMLNSC.Message.DCSH;
and expect it to function. The Environment tree doesn't have a parser associated with it.

So you can't stick that into environment and then retrieve it later.

And if you are doing LEARNING at a SITE that has a specific version, you should be working with people LOCALLY at the site to get training, not relying on the internet for training.
Back to top
View user's profile Send private message
Vitor
PostPosted: Thu Oct 04, 2012 10:48 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

muq1835 wrote:
I am assigned a project which still uses MB 6.1.0.3


It shouldn't be, for all the reasons I gave above.

muq1835 wrote:
Assignment which i am working on requires the message domain to be BLOB and depending on header value FR or XML appropriate RCD is used to parse the message again.


I doubt it requires any such thing. I imagine whoever designed is related to the idiot who think 6.1.0.3 is a good idea, and just thinks it requires it.

muq1835 wrote:
i will try to implement all the maintainence patches for 6.1


This will be pointless unless your environment is likewise updated. It's no good showing that your code works on your v6.1.0.10 development environment if it doesn't run on the v6.1.0.3 production environment.

It's also unlikely to solve your immediate problem, which is code related.

muq1835 wrote:
Error which i pasted is thrown after execution of RCD.RCD has the domain as XML.


Even under v6.1.0.3, an RCD didn't set the domain of the Environment tree.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
NealM
PostPosted: Thu Oct 04, 2012 11:07 am    Post subject: Reply with quote

Master

Joined: 22 Feb 2011
Posts: 230
Location: NC or Utah (depends)

I guess I'm missing something here. In v6.1 (and stipulating that yes XMLNSC is the better parser choice), and assuming that the RCD isn't associating a message set to Root, just strictly changing the domain from BLOB to XML, then the line:
SET OutputRoot.XML.Message.DCSH = Environment.Variables.DCSH;
should work, IFF the field Environment.Variables.DCSH contains a scalar character string. If it contains anything else, like an integer or an XML structure or a list, you will get an exception. So exactly what did you put into Environment.Variables.DCSH prior to that SET instruction?
Back to top
View user's profile Send private message
muq1835
PostPosted: Thu Oct 04, 2012 11:27 am    Post subject: Reply with quote

Newbie

Joined: 04 Oct 2012
Posts: 9

After RCD node i have a compute node with the following code.
Quote:

SET OutputRoot = InputRoot;

SET Environment.Variables.StructError = 0;

IF InputBody.Message.DCSH.HeaderVersion IS NULL THEN
SET Environment.Variables.DCSH.HeaderVersion = 'XXX';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.HeaderVersion = InputBody.Message.DCSH.HeaderVersion;
END IF;

IF InputBody.Message.DCSH.RequestingSystem IS NULL THEN
SET Environment.Variables.DCSH.RequestingSystem = 'XXXX';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.RequestingSystem = InputBody.Message.DCSH.RequestingSystem;
END IF;

IF InputBody.Message.DCSH.ReplyFormat IS NULL THEN
SET Environment.Variables.DCSH.ReplyFormat = 'XM';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.ReplyFormat = InputBody.Message.DCSH.ReplyFormat;
END IF;

IF InputBody.Message.DCSH.iEOSOWFlag IS NULL THEN
SET Environment.Variables.DCSH.iEOSOWFlag = 'XX';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.iEOSOWFlag = InputBody.Message.DCSH.iEOSOWFlag;
END IF;

IF InputBody.Message.DCSH.XlateRequestAccount IS NULL THEN
SET Environment.Variables.DCSH.XlateRequestAccount = 'X';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.XlateRequestAccount = InputBody.Message.DCSH.XlateRequestAccount;
END IF;

IF InputBody.Message.DCSH.XlateReplyAccount IS NULL THEN
SET Environment.Variables.DCSH.XlateReplyAccount = 'X';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.XlateReplyAccount = InputBody.Message.DCSH.XlateReplyAccount;
END IF;

IF InputBody.Message.DCSH.XlateRequestDealer IS NULL THEN
SET Environment.Variables.DCSH.XlateRequestDealer = 'X';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.XlateRequestDealer = InputBody.Message.DCSH.XlateRequestDealer;
END IF;

IF InputBody.Message.DCSH.XlateReplyDealer IS NULL THEN
SET Environment.Variables.DCSH.XlateReplyDealer = 'X';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.XlateReplyDealer = InputBody.Message.DCSH.XlateReplyDealer;
END IF;

IF InputBody.Message.DCSH.MessageOptionFuture IS NULL THEN
SET Environment.Variables.DCSH.MessageOptionFuture = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.MessageOptionFuture = InputBody.Message.DCSH.MessageOptionFuture;
END IF;

IF InputBody.Message.DCSH.AuditActivity IS NULL THEN
SET Environment.Variables.DCSH.AuditActivity = 'XX';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.AuditActivity = InputBody.Message.DCSH.AuditActivity;
END IF;

IF InputBody.Message.DCSH.BlockingFactor IS NULL THEN
SET Environment.Variables.DCSH.BlockingFactor = 'XX';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.BlockingFactor = InputBody.Message.DCSH.BlockingFactor;
END IF;

IF InputBody.Message.DCSH.AuthUserID IS NULL THEN
SET Environment.Variables.DCSH.AuthUserID = 'XXXXXXXX';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.AuthUserID = InputBody.Message.DCSH.AuthUserID;
END IF;

IF InputBody.Message.DCSH.FutureUse IS NULL THEN
SET Environment.Variables.DCSH.FutureUse = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.FutureUse = InputBody.Message.DCSH.FutureUse;
END IF;

IF InputBody.Message.DCSH.ReplyingSystem IS NULL THEN
SET Environment.Variables.DCSH.ReplyingSystem = 'XXXX';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.ReplyingSystem = InputBody.Message.DCSH.ReplyingSystem;
END IF;

IF InputBody.Message.DCSH.TransactionStatus IS NULL THEN
SET Environment.Variables.DCSH.TransactionStatus = 'XXXX';
SET Environment.Variables.StructError = 1;
ELSE
SET Environment.Variables.DCSH.TransactionStatus = InputBody.Message.DCSH.TransactionStatus;
END IF;

IF Environment.Variables.StructError = 1 THEN
SET OutputRoot.XML.Message.DCSH = Environment.Variables.DCSH;
END IF;

SET Environment.Variables.DCSH = NULL;

RETURN TRUE;
Back to top
View user's profile Send private message
Vitor
PostPosted: Thu Oct 04, 2012 12:12 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

muq1835 wrote:
After RCD node i have a compute node with the following code.


Which makes my teeth bleed, but as you say, you're learning.

As I and others have said, that kind of assignment only works if the source (the Environment) is a single scalar or is associated with a valid parser which WMB can use to map source to target.

Yours isn't so it doesn't.

You need something like:

Code:
CREATE LASTCHILD OF Environment.Variables DOMAIN('XMLNSC') NAME DCSH


to achieve what you want.

You clearly also need someone on site to help you with this sort of basic issue. And your code.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
NealM
PostPosted: Thu Oct 04, 2012 12:40 pm    Post subject: Reply with quote

Master

Joined: 22 Feb 2011
Posts: 230
Location: NC or Utah (depends)

muq1835, something not to be used here because it would cause you to do some other logic changes, but for future reference, do an InfoCenter/Toolkit Help search on the COALESCE function. It was made for substituting a fixed value for a null, whether it be from a database table column or a parsed data structure.
Back to top
View user's profile Send private message
muq1835
PostPosted: Thu Oct 04, 2012 1:07 pm    Post subject: Reply with quote

Newbie

Joined: 04 Oct 2012
Posts: 9

Currenty there are more than 100 flows which are deployed in my application and are programmed in this fashion. they have to 2 RCD one for XML and one for MRM. Input message domain is BLOB
once the message is passed thru RCD for xml messages it throws an error XML cannot be parsed.
As the RCD was not able to convert the BIT stream INPUTBODY is NULL.

I have tried using the same with XMLNS and still getting the same error.
Back to top
View user's profile Send private message
NealM
PostPosted: Thu Oct 04, 2012 1:20 pm    Post subject: Reply with quote

Master

Joined: 22 Feb 2011
Posts: 230
Location: NC or Utah (depends)

Is this a new story from above? The error you posted above, the RCD worked just fine, the exception was in the ESQL in the Compute Node that follows.
Have someone at work show you how to set your flow's usertrace level, and how to retrieve and read the trace; You will see where it blew up.
And it will remain that way (broken) unless you do something like implement vitor's advice to assign a parser domain to a portion of your Environment.

The v6.1 ESQL manual is available as a .pdf. I suggest you download it and look through it, it is filled with examples.
Back to top
View user's profile Send private message
Vitor
PostPosted: Fri Oct 05, 2012 6:28 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

muq1835 wrote:
Currenty there are more than 100 flows which are deployed in my application and are programmed in this fashion. they have to 2 RCD one for XML and one for MRM. Input message domain is BLOB


Again, I'll forgive you this because you're learning.

muq1835 wrote:
once the message is passed thru RCD for xml messages it throws an error XML cannot be parsed.
As the RCD was not able to convert the BIT stream INPUTBODY is NULL.


That's not the problem you originally posted.

muq1835 wrote:
I have tried using the same with XMLNS and still getting the same error.


Of course you are. Why would you think that would help? If you thought about it at all, rather than applied the "randomly changing things in case it helps" method.

I supplied you code to help with your original problem. What did you think was wrong with it?
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
muq1835
PostPosted: Fri Oct 05, 2012 11:06 am    Post subject: Reply with quote

Newbie

Joined: 04 Oct 2012
Posts: 9

I am extremely sorry i was not able to convey my actual problem.
My issue is with RCD.
When i run the flow under debug mode in MB toolkit 6.1.0.3. Once the flow passes the RCD i see XML parsing errors.
What i assume is BIT stream was not conerted properly to XML domain.
InputBody is NULL. so i am not able to do anything with it.

Thank you so much for your help
Back to top
View user's profile Send private message
Vitor
PostPosted: Fri Oct 05, 2012 1:18 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

muq1835 wrote:
I am extremely sorry i was not able to convey my actual problem.


I don't think you're able to understand your actual problem.

muq1835 wrote:
My issue is with RCD.


Unlikely.

muq1835 wrote:
When i run the flow under debug mode in MB toolkit 6.1.0.3. Once the flow passes the RCD i see XML parsing errors.


The debugger is not a good tool to use, especially for this problem. All this proves is that the debugger can't display the XML. As has been said many times on this forum take a user trace. The debuuger shows you what's happened (mostly), the trace shows you why.

muq1835 wrote:
What i assume is BIT stream was not conerted properly to XML domain.


Why assume? You can find out if you try.

muq1835 wrote:
InputBody is NULL. so i am not able to do anything with it.


InputBody may be NULL (though that's unlikely) but InputRoot will not be. Do you think that because the debugger told you that? I find it implausible.

Thank you so much for your help[/quote]
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Error : Invalid Document Structure MB 6.1.0.3
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.