Oracle Fusion Middleware Oracle WebLogic Server Application Adapter for SAP R/3ユーザーズ・ガイド 11g リリース1(11.1.1.3.0) B61418-01 |
|
前 |
次 |
この章では、SAP R/3に接続する場合の制約事項と回避策について説明します。次のトピックが含まれています。
この章に記載しているアダプタ特定のエラーは、Oracle Adapter J2CAまたはOracle Adapter Business Services Engine(BSE)のいずれかの構成でアダプタを使用した場合に発生する可能性があります。
このトピックでは、SAP R/3に関するトラブルシューティング情報を次の4つのカテゴリに分けて説明します。
アプリケーション・エクスプローラ
SAP R/3
Oracle Adapter J2CA
Oracle Adapter Business Services Engine(BSE)
アプリケーション・エクスプローラ
デバッグやテストのためにWindows上でアプリケーション・エクスプローラを使用するには次のようにします。
アプリケーション・エクスプローラがデプロイされているOracle WebLogic Serverが起動していることを確認します。
図9-1に示すように、Windowsの「スタート」メニューから「すべてのプログラム」、「Oracle Application Adapters」の順に選択し、「Application Explorer」をクリックして、アプリケーション・エクスプローラを起動します。
次のディレクトリにあるae.batファイルを実行してアプリケーション・エクスプローラを起動することもできます。
<ADAPTER_HOME>
\soa\thirdparty\ApplicationAdapters\tools\iwae\bin\ae.bat
デスクトップ上にae.batファイルへのショートカットを作成することをお薦めします。
UNIXまたはLinuxプラットフォームを使用している場合は、iwae.shファイルを実行することによってアプリケーション・エクスプローラを起動できます。
SAP R/3
注意: アクティブ化はSAPの重要な概念です。オブジェクトがアクティブ化された状態で存在しない場合、そのオブジェクトはシステム上に存在するように見えても使用することはできません。これは、IDOCとSAPビジネス・オブジェクトにおいて特に重要です。詳細についてはSAPのドキュメントを参照してください。 |
Oracle Adapter J2CA
このトピックでは、BSEを使用してWebサービスを処理する場合に発生する可能性がある様々なエラー・タイプについて説明します。
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>