Author |
Message
|
wbiadp |
Posted: Wed Aug 17, 2005 5:58 am Post subject: JDBC Adapter - WBIMB parsing errors |
|
|
Newbie
Joined: 17 Aug 2005 Posts: 9
|
This is in regards with JDBC Adapter v2.6 integration with WBI MB v5
In my scenario, I have a JDBC adapter sending out a BO (BOMYUSERS) to Msg Broker v5.
I created the BO and deployed it into the broker workspace as a Message Set using the System Manager tool. Used ‘CwXML’ as wire format for the message set and created a message flow to read and transform from an input queue.
Using the virtual test connector, I sent out a message to the broker and now the broker fails with the parsing errors at input node.
Quote: |
( WBRK_BROKER.default ) An exception has been detected while parsing.
The message identifier in the bitstream ('BOMYUSERS:BOMYUSERS') differs from the expected message identifier ('BOMYUSERS').
The body of the input message contains a message identifier (e.g the outermost tag of an XML message). The message identifier has also been specified in a header (e.g. RFH2) or in the properties of an input node. The two identifiers do not match. Fix the problem and resend the message.
---------------------------------------
( WBRK_BROKER.default ) Message Translation Interface Parsing Errors have occurred:
Message Set Name : 'UserUpdateMsgSet'
Message Set Level : '1'
Message Format : 'CwXML'
Message Type Path : 'BOMYUSERS' |
How to make the message identifiers same? It’s the same BO that got deployed as a msg set ……eh
Here is the BO:
Quote: |
[Time: 2005/08/17 03:16:29.719] [System: ConnectorAgent] [SS: myJDBCConnector]
Thread: Thread-3 (#1086331402)] [Type: Info] [MsgID: 17051] [Mesg: The connecto
agent myJDBCConnector is running in background mode.]
Sent Async BO ...
<StartHeader>
<Version = 3.0>
<EndHeader>
<StartBO:BOMYUSERS>
BusinessObject = BOMYUSERS
Verb = Create
Locale = en
USER = john doe
ORGANIZATION = ibm
ObjectEventId = CxIgnore
<EndBO:BOMYUSERS> |
let me know how to solve this ....... or point me the place where i can find good document on integration of JDBC-WBIMB.
Thanks in advance .............. |
|
Back to top |
|
 |
chanduy9 |
Posted: Wed Aug 17, 2005 10:11 am Post subject: |
|
|
Disciple
Joined: 28 Nov 2001 Posts: 177 Location: USA
|
Hi,
Why u want to use CwXML, the is BOs are in XML, you can used direct XML mapping..and you have to map the fileds as shown below:
InputRoot.XML."BOMYUSERS:BOMYUSERS".
You have to used double quotes in the InputRoot or OutputRoot (when you are creating BO) for the filed names where ever you have :
GoodLuck
Thanks,
Chandra. _________________ Chandra,
IBM WebSphere MQ Certified. |
|
Back to top |
|
 |
recallsunny |
Posted: Wed Aug 17, 2005 11:58 am Post subject: |
|
|
 Disciple
Joined: 15 Jun 2005 Posts: 163 Location: Massachusetts
|
chanduy9 wrote: |
Hi,
Why u want to use CwXML, the is BOs are in XML, you can used direct XML mapping..and you have to map the fileds as shown below:
InputRoot.XML."BOMYUSERS:BOMYUSERS".
You have to used double quotes in the InputRoot or OutputRoot (when you are creating BO) for the filed names where ever you have :
GoodLuck
Thanks,
Chandra. |
You may not be aware of this, but the business objects generated for the Integration broker are represented as CwXML format in the Connector configuration and they are namespace enabled.
And using double quotes is not the solution for a Namespace. You need to declare the Namespace Or use a * for wildcard.
Code: |
DECLARE ns01 NAMESPACE 'http://www.ns01.com'
SET OutputRoot.MRM.Element1 = InputBody.ns01:Element1;
Or
SET OutputRoot.MRM.Element1 = InputBody.*:Element1;
|
This doesn;t solve the problem mentioned by "wbiadp" |
|
Back to top |
|
 |
chanduy9 |
Posted: Wed Aug 17, 2005 12:22 pm Post subject: |
|
|
Disciple
Joined: 28 Nov 2001 Posts: 177 Location: USA
|
Quote: |
[You may not be aware of this, but the business objects generated for the Integration broker are represented as CwXML format in the Connector configuration and they are namespace enabled.
And using double quotes is not the solution for a Namespace. You need to declare the Namespace Or use a * for wildcard.
]
|
We never deployed any CwXML message sets to the broker..and here is the sample code which I used to create the BO..by the way it is in production now,
This is to generate the BO XML from WBIMB,
CREATE COMPUTE MODULE "IRS_ProductLineOAG_ODS_Map_ProductLine_OAGIS_to_ODS"
CREATE FUNCTION main() RETURNS BOOLEAN BEGIN
DECLARE I INTEGER;
SET I = 1;
WHILE I < CARDINALITY(InputRoot.*[]) DO
SET OutputRoot.*[I] = InputRoot.*[I];
SET I=I+1;
END WHILE;
-- Enter SQL below this line. SQL above this line might be regenerated, causing any modifications to be lost.
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER".(XML.attr)"xmlns:PRODUCTLINEHEADER" = 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/PRODUCTLINEHEADER';
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER".(XML.attr)"xmlns:xsi" = 'http://www.w3.org/2001/XMLSchema-instance';
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER".(XML.attr)"xsi:schemaLocation" = 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/PRODUCTLINEHEADER file:PRODUCTLINEHEADER.xsd';
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER".(XML.attr)verb = 'Create';
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:PRODUCTLINEID" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.ProductLineId;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:DESCRIPTION" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.Description;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:SALESACCOUNT" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.SalesAccount;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:INVENTORYACCOUNT" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.InventoryAccount;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:WIPACCOUNT" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.WIPAccount;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:COGSACCOUNT" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.COGSAccount;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:PURCHASESACCOUNT" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.PurchasesAccount;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:SCRAPACCOUNT" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.ScrapAccount;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:INVENTORYDISCREPACCOUNT" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.InventoryDiscrepAccount;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:SALESCC" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.SalesCC;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:INVENTORYCC" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.InventoryCC;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:WIPCC" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.WIPCC;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:COGSCC" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.COGSCC;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:PURCHASESCC" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.PurchasesCC;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:SCRAPCC" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.ScrapCC;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:INVENTORYDISCREPCC" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.InventoryDiscrepCC;
SET OutputRoot.XML."PRODUCTLINEHEADER:PRODUCTLINEHEADER"."PRODUCTLINEHEADER:POPRICEVARIANCEACCOUNT" =InputRoot.XML.SyncProductLine.DataArea.ProductLine.Header.POPriceVarianceAccount; _________________ Chandra,
IBM WebSphere MQ Certified. |
|
Back to top |
|
 |
recallsunny |
Posted: Wed Aug 17, 2005 12:52 pm Post subject: |
|
|
 Disciple
Joined: 15 Jun 2005 Posts: 163 Location: Massachusetts
|
chanduy9 wrote: |
We never deployed any CwXML message sets to the broker..and here is the sample code which I used to create the BO..by the way it is in production now
|
Looks like You are using way we do it in WMQI v2.1, The newer version supports namespaces and there can be declared as I have suggested.
As the discussion is about WBI MB v5, the suggested way of accessing the XMLNS enabled MRM messages is to declare the 'BOMYUSERS' namespace prior to using it within your ESQL.
Capture the message from the Adapter and use it to declare NS before you use it in the esql.
 |
|
Back to top |
|
 |
kishoreraju |
Posted: Thu Aug 18, 2005 3:05 am Post subject: |
|
|
Disciple
Joined: 30 Sep 2004 Posts: 156
|
try to deploy the message set once again. when u r deploying the message set don't deploy it directly into the Message broker workspce.because we get the problem with the lenght of the name space.
select some other directory and deploy it ot that directory and import into the message broker direcory.
aafter importing the message set add physical fromat XML and u have to name it according to the name that u have given in Adapter standad properties.
coming to the message set properties check supress doc type defination(bec message broker did't allow doc typpe def in XML).
finally check that the incoming message is compatable with message set. |
|
Back to top |
|
 |
wbiadp |
Posted: Thu Aug 18, 2005 11:26 am Post subject: |
|
|
Newbie
Joined: 17 Aug 2005 Posts: 9
|
Many Thanks chandra,recallSunny,kishoreraju.............
i figured that name space settings for msg set was not set. I fixed it and it worked like a charm. |
|
Back to top |
|
 |
|