Author |
Message
|
rknox |
Posted: Mon Apr 07, 2008 8:27 am Post subject: Broker SAPRequest JRE question |
|
|
Apprentice
Joined: 28 Aug 2007 Posts: 34
|
I have a SAP developer who is using Message Broker 6.1.0.1 and attempting to use the SAPRequest node. She is getting the error:
+5376 Mar 31 16:39:11 asdembr1 user:info WebSphere Broker v6101[831738]: (MBRDEV1.XXX_xxxx)[6940]BIP3450E: An adapter error occurred during the processing of a message. The adapter error message is 'java.util.HashMap$Entry incompatible with java.lang.String: XXX.
28ee7583-1701-0000-0080-a9063b61274e: MbAdapterErrors.java: 292: throwableToMbException: :
I do not know much about SAP programming, but she is stating that this would be because the SAP node is loading a JRE of 1.4.2 while the JRE within the Broker runtime PATH is 1.5.0. I don't see how it could load anything besides 1.5.0 since it's the only JRE in Broker's path.
This leads me to 2 questions.
1) Does anyone know the JRE path that the SAPRequest node loads for it's runtime?
2) If so, how can I prove that the SAPRequest node is running with a 1.5.0 JRE?
It seems clear to me because ALL of the JRE's within the Broker runtime path are 1.5.0, but there are some other unrelated 1.4.2 runtimes that are peppered throught the server. I don't really want to remove those environments because I'm not certain what else may use them. |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Apr 07, 2008 8:44 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
All of Broker v6.1 is JDK 1.5 - AFAIK, at least.
This is almost certainly an adapter configuration issue, or a problem with the flow that is building the SAP request message (more likely). _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Gaya3 |
Posted: Mon Apr 07, 2008 9:09 pm Post subject: |
|
|
 Jedi
Joined: 12 Sep 2006 Posts: 2493 Location: Boston, US
|
jefflowrey wrote: |
This is almost certainly an adapter configuration issue, or a problem with the flow that is building the SAP request message (more likely). |
even i am doubting about the message.
SAP Request node helps to sent the data to SAP from MB.
Regards
Gayathri _________________ Regards
Gayathri
-----------------------------------------------
Do Something Before you Die |
|
Back to top |
|
 |
rknox |
Posted: Tue Apr 08, 2008 8:07 am Post subject: |
|
|
Apprentice
Joined: 28 Aug 2007 Posts: 34
|
This is the procedure the developer is using to get the error above:
Does this contain any obvious mistakes or errors?
EDIT: I missed the first 2 steps on my paste.
1. Create a Message Set project ‘GeneralLedger_SAP_Set’ with DataObject and XMLNSC message domains
2. Create a Message Flow project ‘GeneralLedger_Flow’ with project reference to ‘GeneralLedger_Set’ project
END EDIT
3) Create a new Adapter Connection for ‘IBM WebSphere Adapter for SAP Software with transaction support’ under project CWYAP_SAPAdapter_Tx. It uses ‘sapjco-ntintel-2.1.8’ for outbound process (which passes data from Message Broker to SAP system). It discovered IDOC ‘FIDCCP01’ and auto-generated all the messages for the IDOC structure in the message set project. Besides, it created an outbound SAP adaptor ‘GeneralLedger_SAP.outadapter’
4) Create a new Message Flow ‘PostGLEntry’ in the Flow project ‘GeneralLedger_Flow’. It starts with MQInput for a XML event (any XML message is fine). Through a Compute node to construct IDOC ‘FIDCCP01’, it ends with the SAP outbound adapter ‘GeneralLedger_FIDCCP01.outadapter’. The adapter was pulled and dropped on the canvas of the flow.
MQ Input Compute SAP Outbound Adapter
5. ESQL was coded to construct the IDOC
BROKER SCHEMA com.deere.jdc.generalledger.sap
DECLARE ns27 NAMESPACE 'http://www.ibm.com/xmlns/prod/websphere/j2ca/sap/sapfidccp01idocbo';
DECLARE ns NAMESPACE 'http://www.ibm.com/xmlns/prod/websphere/j2ca/sap/sapfidccp01';
CREATE COMPUTE MODULE PostGLEntry_Construct_IDOC_FIDCCP01
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
CALL CopyMessageHeaders();
CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC' NAME 'XMLNSC';
CREATE LASTCHILD OF OutputRoot.XMLNSC NAMESPACE ns NAME 'SapFidccp01';
DECLARE sap REFERENCE TO OutputRoot.XMLNSC.ns:SapFidccp01;
SET sap.SAPTransactionID = 'FB03';
--SET sap.qRFCQueueName = 'MSSGBRKR';
CREATE LASTCHILD OF sap NAME 'SapFidccp01IDocBO';
MOVE sap LASTCHILD;
SET sap.DummyKey = '123';
CREATE LASTCHILD OF sap NAME 'SapIDocControlRecord';
MOVE sap LASTCHILD;
SET sap.NameOfTableStructure = 'EDI_DC40';
SET sap.DirectionForIdocTransmission = '2';
SET sap.TestFlag = 'X';
SET sap.IdocType = 'FIDCCP01';
SET sap.LogicalMessageType = 'FIDCC1';
SET sap.LogicalMessageCode = 'WND';
SET sap.SenderPort = 'MSSGBRKR';
SET sap.PartnerTypeOfSender = 'LS';
SET sap.PartnerNumberOfSender = 'MSSGBRKR';
MOVE sap PARENT;
CREATE LASTCHILD OF sap NAME 'SapFidccp01DataRecord';
MOVE sap LASTCHILD;
CREATE LASTCHILD OF sap NAME 'SapFidccp01E2fikpf006';
MOVE sap LASTCHILD;
SET sap.Bukrs = 'AG00';
SET sap.Belnr = '100000000';
SET sap.Gjahr = '2008';
RETURN TRUE;
END;
CREATE PROCEDURE CopyMessageHeaders() BEGIN
DECLARE I INTEGER 1;
DECLARE J INTEGER;
SET J = CARDINALITY(InputRoot.*[]);
WHILE I < J DO
SET OutputRoot.*[I] = InputRoot.*[I];
SET I = I + 1;
END WHILE;
END;
END MODULE;
6. Created a Broker Archive file ‘PostGLEntry.bar’ for deployment under message flow project.
7. Deployed the BAR file ‘PostGLEntry.bar’ successfully into Message Broker runtime.
8. Started the debug mode in the Broker toolkit. A XML message was sent over MQ on the MQ input queue ‘JDC.TEST15.REQUEST’, and the exception was thrown.
Last edited by rknox on Tue Apr 08, 2008 11:48 am; edited 2 times in total |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Apr 08, 2008 8:10 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
That's entirely the wrong way to construct the IDoc for use with the Adapter.
Use the Adapter Configuration Wizard to build a message set and message definition for the outbound message.
Use *that* to build the outbound message, not a raw XMLNSC document. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
rknox |
Posted: Tue Apr 08, 2008 11:50 am Post subject: |
|
|
Apprentice
Joined: 28 Aug 2007 Posts: 34
|
When I pasted the steps initially, I forgot the first two:
1. Create a Message Set project ‘GeneralLedger_SAP_Set’ with DataObject and XMLNSC message domains
2. Create a Message Flow project ‘GeneralLedger_Flow’ with project reference to ‘GeneralLedger_Set’ project
Jefflowrey, it looks like she is creating a messageset with two domains, the DataObject and XMLNSC. Does this change your mind on your last post? |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Apr 08, 2008 11:53 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
But the message being given to the SAPAdapter node is built in the XMLNSC domain, and not in the DataObject domain. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
kirankinnu |
Posted: Tue Apr 08, 2008 1:02 pm Post subject: |
|
|
 Centurion
Joined: 12 Jun 2004 Posts: 128 Location: Chicago, IL
|
|
Back to top |
|
 |
rknox |
Posted: Thu Apr 10, 2008 6:11 am Post subject: |
|
|
Apprentice
Joined: 28 Aug 2007 Posts: 34
|
We have found that this exact flow works with Broker 6.1.0.0 (java 1.4.2), but does not with broker 6.1.0.1 (java 1.5.0). I have a PMR open with IBM since this is very curious behavior. |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Apr 10, 2008 6:24 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
rknox wrote: |
We have found that this exact flow works with Broker 6.1.0.0 (java 1.4.2), but does not with broker 6.1.0.1 (java 1.5.0). I have a PMR open with IBM since this is very curious behavior. |
Broker 6.1.0.0 is also java 5/jdk 1.5. Unless you did something to specifically change the JVM level...? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
rknox |
Posted: Thu Apr 10, 2008 6:32 am Post subject: |
|
|
Apprentice
Joined: 28 Aug 2007 Posts: 34
|
It isn't my environment that the 6.1.0.0 was installed on, but I had the person who owns the runtime to do a java -version with the ID that starts up broker and that showed 1.4.2. I spoke with IBM and they said that whatever java version shows up with the java -version is what broker will use upon startup. |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Apr 10, 2008 6:37 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
rknox wrote: |
It isn't my environment that the 6.1.0.0 was installed on, but I had the person who owns the runtime to do a java -version with the ID that starts up broker and that showed 1.4.2. |
Before or after sourcing mqsiprofile? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
rknox |
Posted: Thu Apr 10, 2008 6:49 am Post subject: |
|
|
Apprentice
Joined: 28 Aug 2007 Posts: 34
|
I just found out it was before the mqsiprofile. So most likely it was running with java 1.5.0. But the flow still did work on 6.1.0.0 and it does not on 6.1.0.1. |
|
Back to top |
|
 |
rknox |
Posted: Thu Apr 10, 2008 7:59 am Post subject: |
|
|
Apprentice
Joined: 28 Aug 2007 Posts: 34
|
This is a full error from the trace user trace:
BIP3484E: ''CWYAP3068:Cursor.getNext() method call failed, verify that the input business object Cursor com.ibm.broker.despi.MbTopLevelInputCursor@68ad68ad data is initialized. Error Message: getAccessor called for non existent accessor: Cursor = /, accessor = verb Explanation=The input data has not been populated in the input business object Cursor. UserAction=Input business object data may not have been initialized in the business object specified in the error message, make sure data in initialized before calling getNext(). '' BIP3484E: ''verb not found , its ok for bean recordsnull'' BIP3484E: ''property name =qRFCQueueName'' BIP3484E: ''property name =com.ibm.j2ca.extension.metadata.internal.sdo.SDOProperty@203a203a'' BIP3484E: ''CWYAP3024:You must set valid values for the following mandatory IDocControlRecord parameters: , , , , , and null. Explanation=The IDoc posting to the SAP system will fail if all of the required fields in the control record are not set. UserAction=Make sure that all of the required fields are set in the control record.'' . BIP2628E: Exception condition detected on input node 'com.deere.jdc.generalledger.sap.PostGLEntry.MQInput'. : MBRDEV1.28ee7583-1701-0000-0080-a9063b61274e: /build/S610_P/src/DataFlowEngine/ImbCommonInputNode.cpp: 1562: ImbCommonInputNode::run: ComIbmMQInputNode: com/deere/jdc/generalledger/sap/PostGLEntry#FCMComposite_1_2', true BIP2230E: Error detected whilst processing a message in node 'com.deere.jdc.generalledger.sap.PostGLEntry.SAP Request'. : MBRDEV1.28ee7583-1701-0000-0080-a9063b61274e: /build/S610_P/src/DataFlowEngine/TemplateNodes/ImbRequestTemplateNode.cp p: 371: ImbRequestTemplateNode::processMessageAssemblyToFailure: ComIbmSAPRequestNode: com/deere/jdc/generalledger/sap/PostGLEntry#FCMComposite_1_1', true BIP3442E: An exception occurred in adapter node 'SAP Request', which is using adapter component 'GeneralLedger_FIDCCP01.outadapter'.. : MBRDEV1.28ee7583-1701-0000-0080-a9063b61274e: MbAdapterErrors.java: 151: requestData: : ', true BIP3450E: An adapter error occurred during the processing of a message. The adapter error message is 'java.util.HashMap$Entry incompatible with java.lang.String: MBRDEV1.28ee7583-1701-0000-0080-a9063b61274e: MbAdapterErrors.java: 292: throwableToMbException: : ', true |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Apr 10, 2008 2:19 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Quote: |
UserAction=Make sure that all of the required fields are set in the control record |
Apparently your EDI_DC40 record is not getting filled right...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|