ヘッダーをスキップ
Oracle Fusion Middleware Oracle WebLogic Server Application Adapter for SAP R/3ユーザーズ・ガイド
11g リリース1(11.1.1.3.0)
B61418-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

9 トラブルシューティングとエラー・メッセージ

この章では、SAP R/3に接続する場合の制約事項と回避策について説明します。次のトピックが含まれています。

この章に記載しているアダプタ特定のエラーは、Oracle Adapter J2CAまたはOracle Adapter Business Services Engine(BSE)のいずれかの構成でアダプタを使用した場合に発生する可能性があります。

トラブルシューティング

このトピックでは、SAP R/3に関するトラブルシューティング情報を次の4つのカテゴリに分けて説明します。


注意:

トラブルシューティングに関連する可能性があるログ・ファイル情報は、次の場所にあります。
  • Oracle Adapter J2CAトレース情報は次のディレクトリにあります。

    <ADAPTER_HOME>\soa\thirdparty\ApplicationAdapters\config\config_name\log
    
  • BSEトレース情報は次のディレクトリにあります。

    <ADAPTER_HOME>\user_projects\domains\base_domain\servers\soa_server1\stage\ibse\ibse.war\ibselogs
    
  • アプリケーション・エクスプローラのログ・ファイルは次のディレクトリにあります。

    <ADAPTER_HOME>\soa\thirdparty\ApplicationAdapters\tools\iwae\bin
    

アプリケーション・エクスプローラ

デバッグやテストのためにWindows上でアプリケーション・エクスプローラを使用するには次のようにします。

  1. アプリケーション・エクスプローラがデプロイされているOracle WebLogic Serverが起動していることを確認します。

  2. 図9-1に示すように、Windowsの「スタート」メニューから「すべてのプログラム」「Oracle Application Adapters」の順に選択し、「Application Explorer」をクリックして、アプリケーション・エクスプローラを起動します。

    図9-1 Oracle Application Adaptersプログラム・メニュー

    Oracle Application Adaptersプログラム・メニュー
    「図9-1 Oracle Application Adaptersプログラム・メニュー」の説明

    次のディレクトリにあるae.batファイルを実行してアプリケーション・エクスプローラを起動することもできます。

    <ADAPTER_HOME>\soa\thirdparty\ApplicationAdapters\tools\iwae\bin\ae.bat
    

    デスクトップ上にae.batファイルへのショートカットを作成することをお薦めします。

    UNIXまたはLinuxプラットフォームを使用している場合は、iwae.shファイルを実行することによってアプリケーション・エクスプローラを起動できます。

エラー ソリューション
SAP R/3がアプリケーション・エクスプローラの「アダプタ」ノード・リストに表示されません。 sapjco.jarファイルとsapjcorfc.dllファイルがlibディレクトリに追加されたこと、およびWindowsのsystem32フォルダにlibrfc32.dllファイルが追加されたことを確認します。
アプリケーション・エクスプローラからOracle Application Adapter for SAP R/3に接続できません。

プログラムでアダプタをアクティブ化中

次の点を確認します:
  • SAP R/3が実行中です。

  • アプリケーション・サーバー名、システム番号、およびクライアント番号が正しい。

  • SAP R/3のユーザーIDとパスワードが正しい。

アプリケーション・エクスプローラを通じてSAP R/3ターゲットに接続できません。以下のエラー・メッセージが表示されます。

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

SAP R/3ターゲットへの接続時に入力した接続パラメータが正しいことを確認します。
アプリケーション・エクスプローラを通じてSAP R/3システムに接続できません。以下のエラー・メッセージが表示されます。

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

SAP R/3が実行中であること、およびアプリケーション・サーバーへの接続に正しいパラメータ値が使われていることを確認します。
SAP R/3が実行されているのにアプリケーション・エクスプローラを通じてSAP R/3システムに接続できません。以下のエラー・メッセージが表示されます。

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

sapjcorfc.dllファイルがlibディレクトリに追加されていること、およびlibrfc32.dllファイルがWindowsのsystem32フォルダに追加されていることを確認します。
dllが別のクラスローダーでロードされ(同じサーバー上にBSEとJ2CAがインストールされます)、以下のエラー・メッセージが表示されます。

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 loaded in another classloader]. java.library.path

サーバーのクラスパスにsapjco.jarを追加します。
Solaris環境でアプリケーション・エクスプローラを起動できません。次の例外がコンソールに表示されます。

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)

接続ファクトリを作成できませんでした。

JAVACMDがユーザーのシステムで設定されていません。アプリケーション・エクスプローラを起動する前に、次のようにJAVACMDをエクスポートします。

JAVACMD=/<jdk_home>/bin/java。ここで、<jdk_home>は、システム上でJDKがインストールされているディレクトリです。

実行時にログオン失敗エラーが発生します。 SAP R/3tシステムへの接続用のパスワードが、ターゲット作成時に指定されていない場合、またはアプリケーション・エクスプローラの「編集」オプションで指定されていない場合は、SAP R/3に接続できません。接続パスワードはrepository.xmlには保存されません。アプリケーション・エクスプローラの「編集」オプションを使用してパスワードを更新し、アプリケーション・サーバーを再起動してください。
ae.bat(iaexplorer.batではない)をアクティブ化してアプリケーション・エクスプローラを起動すると次の例外が発生します。

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

これは無害な例外です。アダプタの機能には影響しません。次のURLからBouncyCastleファイルをダウンロードします。

ftp://ftp.bouncycastle.org/pub


SAP R/3

エラー ソリューション
リクエストの実行時に以下のエラー・メッセージが表示されます。

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

入力XMLドキュメントの構文をチェックして、リモート関数モジュールの名前が正しく、SAP R/3で使用可能で、なおかつ有効になっていることを確認します。
リクエストの実行時に以下のエラー・メッセージが表示されます。

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

入力XMLドキュメントの構文をチェックし、さらにSAP R/3にビジネス・オブジェクトのタイプが存在していて、それが正しく、なおかつ有効になっていることを確認します。また、ドキュメントの名前が正しいことを確認してください。
リクエストの実行時に以下のエラー・メッセージが表示されます。

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

入力XMLドキュメントの構文をチェックし、さらにBAPIの名前が正しく、SAP R/3で使用可能で、なおかつ有効になっていることを確認します。
リクエストの実行時に以下のエラー・メッセージが表示されます。

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

入力XMLドキュメントの構文をチェックし、さらにIDocまたは拡張子のタイプが正しく、SAP R/3で使用可能で、なおかつ有効になっていることを確認します。
リクエストの実行時に以下のエラー・メッセージが表示されます。

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

使用しているユーザーIDが、SAP R/3で構成された正しい権限を備えていることを確認します。詳細についてはSAP R/3の管理者に確認してください。


注意:

アクティブ化はSAPの重要な概念です。オブジェクトがアクティブ化された状態で存在しない場合、そのオブジェクトはシステム上に存在するように見えても使用することはできません。これは、IDOCとSAPビジネス・オブジェクトにおいて特に重要です。詳細についてはSAPのドキュメントを参照してください。

Oracle Adapter J2CA

エラー ソリューション
Oracle Adapter J2CA構成への接続を試行すると、アプリケーション・エクスプローラに次のメッセージが表示されます。

JCAを初期化できませんでした

次の例に示すように、右ペインの「詳細」タブで、「ホーム」フィールドで正しいディレクトリが指定されていることを確認します。
<ADAPTER_HOME>\soa\thirdparty\ApplicationAdapters\tools\iwae\bin\..\..\..\

BSEエラー・メッセージ

このトピックでは、BSEを使用してWebサービスを処理する場合に発生する可能性がある様々なエラー・タイプについて説明します。

BSEでの一般的なエラー処理

BSEは、アダプタ・フレームワークへのSOAPゲートウェイととアダプタのエンジンの両方の役割を果たします。アダプタを使用するWebサービスを実行する時には、設計時と実行時の両方において、様々な条件が原因でBSEにエラーが発生する可能性があります。これらの条件とそれから生じるエラーはアダプタの別に関わらず同じように公開され、その他のエラーは使用するアダプタに応じ様々な形で公開されます。このトピックでは、より一般的なエラー条件が生じた場合にどのような事態が予想されるかということを、使用するアダプタに基づいて説明します。通常は、BSE内のSOAPゲートウェイ(エージェント)が、Webサービスに必要なアダプタにSOAPリクエスト・メッセージを渡します。エラーが発生した場合にそれがどのように公開されるかは、アダプタとAPI(またはアダプタが使用するインターフェース)によって異なります。いくつかのシナリオでは、SOAPゲートウェイがSOAPAフォルトを引き起こします。一般に、BSE内のSOAPエージェントが無効なSOAPリクエストを受信すると、SOAPレスポンス内にSOAPフォルト要素が生成されます。SOAPフォルト要素にはフォルト文字列とフォルト・コード要素が格納され、フォルト・コードにはSOAPエージェント・エラーの記述が格納されます。

BSEが無効なSOAPリクエストを受信すると、下に示すようなSOAPレスポンス・ドキュメントが作成されます。

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

この例では、BSEは、このWebサービスに必須のSOAPリクエスト・メッセージで要素を受信しませんでした。

アダプタ特定のエラー処理

アダプタでランタイム中に例外が発生すると、BSE内のSOAPエージェントは生成されたSOAPレスポンス内にSOAPフォルト要素を含めます。SOAPフォルト要素には、フォルト・コード要素およびフォルト文字列要素が含まれます。フォルト文字列には、アダプタのターゲット・システムからのネイティブ・エラー記述が含まれます。アダプタはターゲット・システムのインタフェースおよびAPIを使用するので、例外が発生するかどうかはターゲット・システムのインタフェースまたはAPIによるエラー条件の処理方法によって決定されます。BSE内のSOAPエージェントによってSOAPリクエスト・メッセージがアダプタに渡されるとき、リクエストがそのサービスのWSDLに基づいて無効な場合、アダプタはSOAPフォルトを起こす例外を生成することがあります。アダプタで起こる可能性があるすべてのエラー条件を予期することはほぼ不可能ですが、一般的なエラー条件をアダプタがどのように処理し、どのようにWebサービスのコンシューマ・アプリケーションに公開されるかについて次に説明します。

Oracle Application Adapter for SAP R/3の無効なSOAPリクエスト

Oracle WebLogic Server Application Adapter for SAP R/3が実行WebサービスのWSDLに準拠しないSOAPリクエスト・メッセージを受信すると、次のSOAPレスポンスが生成されます。

<?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>

SOAPリクエストによる空の結果

Oracle Application Adapter for SAP R/3がSOAPリクエスト・メッセージで渡された入力パラメータを使用してSAP R/3オブジェクトを実行した場合で、そのパラメータがSAP R/3のレコードに一致しない場合は、以下のSOAPレスポンスが生成されます。

<?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>

SAP R/3への接続の失敗

Oracle Application Adapter for SAP R/3がWebサービス実行時にSAP R/3に接続できない場合は、次のようなSOAPレスポンスが生成されます。

<?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>

無効なSOAPリクエスト

Oracle Application Adapter for SAP R/3が、実行するWebサービスのWSDLに適合しないSOAPリクエスト・メッセージを受け取った場合は、次のようなSOAPレスポンスが生成されます。

<?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>

Oracle Application Adapter for SAP R/3リクエストによる空の結果

Oracle Application Adapter for SAP R/3が渡された入力パラメータを使用してSOAPリクエストを実行した場合で、そのパラメータがターゲット・システムのレコードと一致しない場合は、次のようなSOAPレスポンスが生成されます。


注意:

このアダプタの条件では、SOAPフォルトは発生しません。

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