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

前
 
次
 

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

この章では、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. 図10-1に示すように、Windowsの「スタート」メニューから「すべてのプログラム」「Oracle Application Adapters」の順に選択し、「アプリケーション・エクスプローラ」をクリックして、アプリケーション・エクスプローラを起動します。

    図10-1 アプリケーション・エクスプローラのメニュー選択肢

    Oracle Application Adaptersプログラム・メニュー
    「図10-1 アプリケーション・エクスプローラのメニュー選択肢」の説明

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

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

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

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

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

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

次の点を確認します:
  • SAP R/3が動作していること

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

  • SAP R/3のユーザーIDとパスワードが適切であること

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

ターゲット[SAP]の取得中にエラーが発生しました - java.lang.Exception: SAPシステムへのログオン・エラー

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

アダプタのアクティブ化で問題が発生しました。(com.ibi.sapr3.SapAdapterException: com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: SAPゲートウェイへの接続に失敗しましたConnect_PM GWHOST=isdsrv8, GWSERV=sapgw00, ASHOST=isdsrv8, SYSNR=00 LOCATION CPIC (TCP/IP) ローカル・ホスト上ERRORパートナに達していません(host isdsrv8, service 3300) TIME Fri Aug 27 11:49:14 2004 RELEASE 620 COMPONENT NI (ネットワーク・インタフェース) VERSION 36 RC -10 MODULE ninti.c LINE 979 DETAIL NiPConnect2 SYSTEM CALL SO_ERROR ERRNO 10061 ERRNO TEXT WSAECONNREFUSED: 接続がCOUNTER 1を拒否しました).詳細はログを確認してください。

SAP R/3が動作中であること、およびアプリケーション・サーバーへの接続に正しいパラメータ値を使用していることを確認してください。
SAP R/3システムが動作中であっても、アプリケーション・エクスプローラ経由でSAP R/3にシステム接続できません。次のエラー・メッセージが表示されます。

アダプタのアクティブ化で問題が発生しました。(com.ibi.sapr3.SapAdapterException: java.lang.ExceptionInInitializerError: JCO.classInitialize(): ミドルウェア・レイヤー'com.sap.mw.jco.rfc.MiddlewareRFC'をロードできませんでした。 JCO.nativeInit(): 動的リンク・ライブラリsapjco3を初期化できませんでした[sapjco3がjava.library.pathにありません]. java.library.path

sapjco3.dllファイルがlibディレクトリおよびWindowsの「system32」フォルダに追加されていることを確認してください。
dllが別のクラスローダに読み込まれています(BSEとJ2CAは同じサーバーにインストールされています)。次のエラー・メッセージが表示されます。

com.ibi.sapr3.SapAdapterException: java.lang.ExceptionInInitializerError: JCO.classInitialize(): ミドルウェア・レイヤー'com.sap.mw.jco.rfc.MiddlewareRFC'をロードできませんでしたJCO.nativeInit(): 動的リンク・ライブラリsapjco3を初期化できませんでした[ネイティブ・ライブラリF:\iWay55.008.0628\lib\sapjco3.dllがすでに別のクラスローダにロードされています]. java.library.path

sapjco3.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/3システムへの接続用のパスワードが、ターゲットの作成時またはアプリケーション・エクスプローラの「編集」オプションで指定されていない場合、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: 関数モジュールCUSTOMER_GETDETAIL2が存在しません。

入力XMLドキュメントの構文をチェックし、リモート関数モジュールの名前が正しいこと、SAP R/3で利用可能なこと、およびアクティブ化されていることを確認してください。
リクエストの実行時に次のエラー・メッセージが表示されます。

AdapterException: java.lang.Exception: ビジネス・オブジェクトに未知のオブジェクト型: CUST

入力XMLドキュメントの構文をチェックし、ビジネス・オブジェクト型がSAP R/3に存在して正しいこと、およびアクティブ化されていることを確認してください。また、ドキュメント名が正しいことを確認してください。
リクエストの実行時に次のエラー・メッセージが表示されます。

AdapterException: java.lang.Exception: BAPI名を取得できません。: CUSTOMER.DETAIL2

入力XMLドキュメントの構文をチェックし、BAPIの名前が正しいこと、SAP R/3で利用可能なこと、およびアクティブ化されていることを確認してください。
リクエストの実行時に次のエラー・メッセージが表示されます。

java.lang.RuntimeException: com.sap.mw.jco.JCO$AbapException: (126) OBJECT_UNKNOWN: 基本型または拡張型が存在しません。

入力XMLドキュメントの構文をチェックし、IDoc型または拡張型が正しいこと、SAP R/3で利用可能なこと、およびアクティブ化されていることを確認してください。
リクエストの実行時に次のエラー・メッセージが表示されます。

AdapterException: java.lang.Exception: BapiError/BapiAbort: 顧客を表示する権限がありません。

使用中のユーザー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ゲートウェイ(エージェント)は、SOAPリクエスト・メッセージをWebサービスに必要なアダプタに渡します。エラーが発生した場合、はアダプタおよびAPI、またはアダプタで使用されるインタフェースによって異なります。いくつかのシナリオで、SOAPゲートウェイでSOAPフォルトが生成されます。一般に、BSE内のSOAPエージェントが無効なSOAPリクエストを受信するたびに、SOAPフォルト要素がSOAPリスポンスで生成されます。SOAPフォルト要素にはフォルト・ストリングおよびフォルト・コード要素が含まれます。フォルト・コードには、SOAPエージェント・エラーの記述が含まれます。

次のSOAPレスポンス・ドキュメントは、BSEが無効な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で、実行される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.sapjco3.SapCallableStatement: execute() j java.util.NoSuchElementException</faultstring>
  </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

SOAPリクエストからの空の結果

OracleAS Adapter for SAPがSOAPリクエスト・メッセージで渡された入力パラメータを使用してSOAPオブジェクトを実行する場合に、そのパラメータがSAP内のレコードと一致しないと、次の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.sapjco3.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への接続の失敗

Webサービスの実行時にOracle Application Adapter for 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[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>