Skip Headers
Oracle® Application Server Adapter for SAP R/3 User's Guide
10g Release 2 (10.1.2)
B14061-02
  Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
Next
Next
 

7 Troubleshooting and Error Messages

This chapter explains the limitations and workarounds when connecting to SAP. The following topics are discussed:

The adapter-specific errors listed in this chapter can arise whether using the adapter with an OracleAS Adapter J2CA or with an OracleAS Adapter Business Services Engine (BSE) configuration.

Troubleshooting

This topic provides troubleshooting information for SAP, separated into four categories:


Note:

Log file information that can be relevant in troubleshooting can be found in the following locations:
  • The OracleAS Adapter J2CA trace information can be found under the OracleAS_home\opmn\logs directory.

  • BSE trace information can be found under the OracleAS_home\j2ee\home\applications\ws-app-adapter\ibse\ibselogs directory.

  • The log file for Application Explorer can be found under the OracleAS_home\adapters\application\tools directory.


Application Explorer

To use Application Explorer on Windows for debugging or testing purposes, load the ae batch script, ae.bat, found under OracleAS_home\adapters\application\tools or on UNIX start the ae script, ae.sh, found under OracleAS_home/adapters/application/tools.

Error Solution
SAP does not appear in the Application Explorer Adapter node list. Ensure that the sapjco.jar and sapjcorfc.dll files are added to the lib directory. Ensure the librfc32.dll file is added to the Windows system32 folder.
Cannot connect to OracleAS Adapter for SAP from Application Explorer.

Problem activating adapter

Ensure that:
  • SAP is running.

  • The Application Server name, System Number, and Client Number are correct.

  • The SAP user ID and password are correct.

Cannot connect to the SAP target through Application Explorer. The following error message appears:

Error getting target [SAP] - java.lang.Exception: Error Logon to SAP System

Ensure that you enter the correct connection parameters when connecting to the SAP target.
Cannot connect to your SAP system through Application Explorer. The following error message appears:

Problem activating adapter. (com.ibi.sapr3.SapAdapterException: com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: Connect to SAP gateway failed Connect_PM GWHOST=isdsrv8, GWSERV=sapgw00, ASHOST=isdsrv8, SYSNR=00 LOCATION CPIC (TCP/IP) on local host ERROR partner not reached (host isdsrv8, service 3300) TIME Fri Aug 27 11:49:14 2004 RELEASE 620 COMPONENT NI (network interface) VERSION 36 RC -10 MODULE ninti.c LINE 979 DETAIL NiPConnect2 SYSTEM CALL SO_ERROR ERRNO 10061 ERRNO TEXT WSAECONNREFUSED: Connection refused COUNTER 1). Check logs for more information

Ensure that SAP is running and that you are using the correct parameter values to connect to your application server.
Cannot connect to your SAP system through Application Explorer even though SAP is running. The following error message appears:

Problem activating adapter. (com.ibi.sapr3.SapAdapterException: java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC' JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [no sapjcorfc in java.library.path]. java.library.path

Ensure that the sapjcorfc.dll file is added to the lib directory and the librfc32.dll file is added to the Windows system32 folder.
The dll is loaded in another classloader (BSE and J2CA are installed on the same server). The following error message appears:

com.ibi.sapr3.SapAdapterException: java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [Native Library F:\iWay55.008.0628\lib\sapjcorfc.dll already loaded in another classloader]. java.library.path

Add sapjco.jar to the server classpath.
Unable to start Application Explorer in a Solaris environment. The following exception is thrown in the console:

javax.resource.ResourceException: IWAFManagedConnectionFactory: License violation.at com.ibi.afjca.spi.IWAFManagedConnectionFactory.createConnectionFactory(IWAFManagedConnectionFactory.java:98)at com.iwaysoftware.iwae.common.JCATransport.getConnectionFactory(JCATransport.java:133) at com.iwaysoftware.iwae.common.JCATransport.initJCA(JCATransport.java:69)at com.iwaysoftware.iwae.common.JCATransport.<init>(JCATransport.java:62)at com.iwaysoftware.iwae.common.AdapterClient.<init>(AdapterClient.java:85)at com.ibi.bse.ConfigWorker.run(ConfigWorker.java:41)at java.lang.Thread.run(Thread.java:534)

Could not create the connection factory.

JAVACMD is not set on the user system. Before starting Application Explorer, export JAVACMD as follows:

JAVACMD=/<jdk_home>/bin/java, where <jdk_home> is the directory where JDK is installed on your machine.

Logon failure error at runtime If the password for connecting to your SAP system is not specified when creating a target or with the Edit option in Application Explorer, you will be unable to connect to SAP. The connection password is not saved in repository.xml. Update the password using the Edit option in Application Explorer, then restart the application server.
The following exception occurs when you start Application Explorer by activating ae.bat (not iaexplorer.bat):

java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider

This is a benign exception. It does not affect adapter functionality. Download BouncyCastle files from:

ftp://ftp.bouncycastle.org/pub


SAP

Error Solution
When executing a request, the following error message appears:

AdapterException: java.lang.Exception: Function module CUSTOMER_GETDETAIL2 does NOT exist.

Check the syntax of your input XML document and make sure the name of the Remote Function module is correct, available in SAP, and activated.
When executing a request, the following error message appears:

AdapterException: java.lang.Exception: Object type unknown for business object: CUST

Check the syntax of your input XML document and verify that the Business Object type exists in SAP and is correct and activated. Also verify that the name of your document is correct.
When executing a request, the following error message appears:

AdapterException: java.lang.Exception: Unable to retrieve BAPI name for: CUSTOMER.DETAIL2

Check the syntax of your input XML document and verify that the name of the BAPI is correct, available in SAP, and activated.
When executing a request, the following error message appears:

java.lang.RuntimeException: com.sap.mw.jco.JCO$AbapException: (126) OBJECT_UNKNOWN: Basic type or extension does not exist.

Check the syntax of your input XML document and verify that the IDoc type or extension type is correct, available in SAP, and activated.
When executing a request, the following error message appears:

AdapterException: java.lang.Exception: BapiError/BapiAbort: You are not authorized to display customers.

Verify that your user ID has the correct permissions configured in SAP. Consult your SAP administrator for more information.


Note:

Activation is an important SAP concept. If an object does not exist in an activated state, it may appear as present on the system, but is not available for use. This is especially important for IDOCs and SAP Business Objects. Consult your SAP documentation for further information.

OracleAS Adapter J2CA

Error Solution
In Application Explorer, the following error message appears when you attempt to connect to an OracleAS Adapter J2CA configuration:

Could not initialize JCA

In the Details tab in the right pane, ensure that the directory specified in the Home field points to the correct directory, for example, OracleAS_home\adapters\application

BPEL Process Manager

Error Solution
Endpoint activation error on deployment of SAP event handling project (inbound) in JDeveloper Verify that the channel used for this inbound J2CA service is stopped in Application Explorer. If you have started this channel for testing or debugging purposes, you must stop it before starting BPEL PM Server. Endpoint activation is managed by BPEL Process Manager.
The following error message appears in BPEL PM Server Console:

Process "TestSAP" (revision "1.0") compilation failed. <2005-05-18 10:49:53,285> <ERROR><default.collaxa.cube.engine.deployment> <Cube ProcessLoader::create> Failed to read wsdl. Error happened when reading wsdl at "http://127.0.0.1:7777/BPELConsole/wsil/adapters/applications/CUSTOMER_invoke.wsdl?wsdl", because "WSDLException: faultCode=INVALID_WSDL: Invalid XML in document at: http://127.0.0.1:7777/BPELConsole/wsil/adapters/applications/CUSTOMER_invoke.wsdl?wsdl: The element type "P" must be terminated by the matching end-tag "</P>".

Verify that the specified WSDL file exists at that URL and that the file is valid.

Workaround: Change the WSDL location to localhost:7777. The default is 127.0.0.1:7777.

Alternative workaround: Add the IP address to the Dhttp.nonProxyHosts list found in obsetenv.bat (Windows) or obsetenv.sh (Unix)

The following exception is thrown in JDeveloper during deployment of the BPEL process:

java.io.FileNotFoundException: \BPELConsole\wsil\adapters\applications\DEBMAS01_receive.wsdl?wsdl (The system cannot find the path specified)

Verify that you have all the required patches installed. The required patches are listed and updated on the Oracle Technology Network Web site.

BSE Error Messages

This topic discusses the different types of errors that can occur when processing Web services through BSE.

General Error Handling in BSE

BSE serves as both a SOAP gateway into the adapter framework and as the engine for some of the adapters. In both design time and execution time, various conditions can cause errors in BSE when Web services that use adapters are running. Some of these conditions and resulting errors are exposed the same way, regardless of the specific adapter; others are exposed differently, based on the adapter being used. This topic explains what you can expect if you encounter some of the more common error conditions on an adapter-specific basis.Usually the SOAP gateway (agent) inside BSE passes a SOAP request message to the adapter required for the Web service. If an error occurs, how it is exposed depends on the adapter and the API or interfaces that the adapter uses. A few scenarios cause the SOAP gateway to generate a SOAP fault. In general, anytime the SOAP agent inside BSE receives an invalid SOAP request, a SOAP fault element is generated in the SOAP response. The SOAP fault element contains fault string and fault code elements. The fault code contains a description of the SOAP agent error.

The following SOAP response document results when BSE receives an invalid SOAP request:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">  
 <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode>SOAP-ENV:Client</faultcode>
         <faultstring>Parameter node is missing</faultstring>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

In this example, BSE did not receive an element in the SOAP request message that is mandatory for the WSDL for this Web service.

Adapter-Specific Error Handling

When an adapter raises an exception during execution, the SOAP agent in BSE produces a SOAP fault element in the generated SOAP response. The SOAP fault element contains fault code and fault string elements. The fault string contains the native error description from the adapter target system. Since adapters use the target system interfaces and APIs, whether or not an exception is raised depends on how the target systems interface or API treats the error condition. If a SOAP request message is passed to an adapter by the SOAP agent in BSE and that request is invalid based on the WSDL for that service, the adapter may raise an exception yielding a SOAP fault. While it is almost impossible to anticipate every error condition that an adapter may encounter, the following is a description of how adapters handle common error conditions and how they are then exposed to the Web services consumer application.

OracleAS Adapter for SAP Invalid SOAP Request

If OracleAS Adapter for SAP receives a SOAP request message that does not conform to the WSDL for the Web services being executed, then the following SOAP response is generated.

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
  <faultcode>SOAP-ENV:Server</faultcode> 
  <faultstring>Error processing agent [XDSapIfrAgent] - XD[FAIL] SapIFRException: java.sql.SQLException:  
com.ibi.sapjco.SapCallableStatement: execute() j java.util.NoSuchElementException</faultstring>
  </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Empty Result From SOAP Request

If OracleAS Adapter for SAP executes an SAP object using input parameters passed in the SOAP request message that do not match records in SAP, then the following SOAP response is generated.

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
 <SOAP-ENV:Fault>
  <faultcode>SOAP-ENV:Server</faultcode> 
  <faultstring>Error processing agent [XDSapIfrAgent] - XD[FAIL] SapIFRException:  
java.sql.SQLException: com.ibi.sapjco.SapCallableStatement: execute() 
java.sql.SQLException: JCO Error Key: NO_RECORD_FOUND Short Description:
com.sap.mw.jco.JCO$AbapException: (126) NO_RECORD_FOUND: NO_RECORD_FOUND</faultstring>
   </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>

Failure to Connect to SAP

If OracleAS Adapter for SAP cannot connect to SAP when executing a Web service, then the following SOAP response is generated:

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
 <SOAP-ENV:Fault>
  <faultcode>SOAP-ENV:Server</faultcode> 
  <faultstring>Error processing agent [XDSapIfrAgent] - XD[RETRY]    
Connect to SAP gateway failed Connect_PM GWHOST=ESDSUN, GWSERV=sapgw00, ASHOST=ESDSUN,
SYSNR=00 LOCATION CPIC (TCP/IP) on local host ERROR partner not reached (host ESDSUN, service 3300)
TIME Mon Jun 30 16:01:02 2003 RELEASE 620 COMPONENT NI (network interface) VERSION 36 RC -10 MODULE ninti.c LINE 976 DETAIL NiPConnect2
SYSTEM CALL SO_ERROR ERRNO 10061 ERRNO TEXT WSAECONNREFUSED: Connection refused COUNTER 1</faultstring>
  </SOAP-ENV:Fault>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Invalid SOAP Request

If OracleAS Adapter for SAP receives a SOAP request message that does not conform to the WSDL for the Web services being executed, then the following SOAP response is generated.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
 <SOAP-ENV:Fault>
  <faultcode>SOAP-ENV:Server</faultcode>
  <faultstring>RPC server connection failed: Connection refused: connect</faultstring>
 </SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Empty Result From OracleAS Adapter for SAP Request

If OracleAS Adapter for SAP executes a SOAP request using input parameters passed that do not match records in the target system, then the following SOAP response is generated.


Note:

The condition for this adapter does not yield a SOAP fault.

<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
   <SOAP-ENV:Body>
      <m:RunDBQueryResponse xmlns:m="urn:schemas-iwaysoftware-com:iwse"
        xmlns="urn:schemas-iwaysoftware-com:iwse"
        cid="2A3CB42703EB20203F91951B89F3C5AF">
        <RunDBQueryResult run="1" />
     </m:RunDBQueryResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>