このセクションでは、 ABAP Extension Module の始動時または実行時に発生する可能性のある問題について説明します。以下の 3 つの項目に関するトラブルシューティングについて説明します。
ABAP Extension Module 用のアダプターのトランスポート・ファイルをインストールする際にエラーが発生した場合には、以下のように対処します。
例えば、あるトランスポート・ファイルは、あるテーブルに対するデータ・エレメントを作成し、別のトランスポートは、そのデータ・エレメントに対するテーブルを作成するとします。テーブルが先に作成されていないと、システムはエラーを戻します。
少なくとも、Primary、Utilities、Request、および Delivery トランスポート・ファイルをインストールする必要があります。詳細については、コネクター・トランスポート・ファイルを参照してください。
コネクターは SAP アプリケーションに正常にログインしたが、SAP アプリケーション内のコネクターのログに何も記録されない場合には、以下のように対処します。
数値範囲を検査するには、トランザクション SNRO に移動し、「Number Range Object」フィールドに /CWLD/LOG と入力します。「Number Ranges」ボタンをクリックし、「Display Intervals」ボタンをクリックして、数値範囲オブジェクト番号をメモします。コネクター・ログを開き、最初のエントリーの番号をメモします。この番号が数値範囲オブジェクト番号よりも大きい場合は、コネクター・ログのログ・エントリー番号を 1 つ上の番号に変更する必要があります。詳細については、トランスポート・オブジェクトの数値範囲の検証を参照してください。
以下の条件下では、Windows 上で IBM CrossWorlds Connector for SAP バージョン 4.2.7 にアップグレードした後、イベントがイベント表に残り、コネクターによって選出されず、処理されなくなります。
この問題は、SAP がそれ自身の java API (SAPJCo) で行った変更によって発生します。
この問題を修正するには、Connector for mySAP.com が提供するイベント要求機能モジュールおよびイベント戻り機能モジュールのみを変更するパッチ・トランスポートをロードします。このパッチ・トランスポートを、ネーム・スペース (/CWLD/) インフラストラクチャーを持たない 4.0 および 4.5 SAP システムにロードします。
以下のサブセクションでは、イベント処理の問題に関する推奨事項を示します。
サブスクライブしているビジネス・オブジェクトが ABAP Extension Module によって処理されない場合には、以下のように対処します。
コネクターが SAP アプリケーションからイベントを選出しない場合には、以下のように対処します。
同じビジネス・オブジェクトに複数のコネクターがサブスクライブされている場合、一方のコネクターが間違ったイベントを処理している可能性があります。複数コネクター間のイベント分配についての詳細については、***『イベント分配』を参照してください。
SAP アプリケーションのイベント表を検査し、そのイベントの状況が L (Locked) であるかどうかを調べてください。状況が L の場合は、ほとんどの場合、コネクターではなく SAP アプリケーションで問題が発生しています。
イベントが宛先に到達していない場合は、状況を R から Q (Queued) に変更します。状況が Q のイベントは、次のポーリング間隔でコネクターによって選出されます。状況を R から Q に変更するには、イベント表に移動し、イベントを選択してから、「編集」ボタンをクリックします。表示されるウィンドウで、「Event Status」フィールドを R から Q に変更します。
ビジネス・オブジェクトが正常に処理されなかった場合は、SAP アプリケーションのコネクター・ログを検査してください。失敗したイベントに関するエントリーは赤で表示されます。イベントは、再処理ツールを使用して再処理します。再処理ツールを使用すると、トランザクションをステップごとにたどりながら、コードにブレークポイントを設定することができます。オブジェクトの再処理の詳細については、アーカイブされたオブジェクトの再処理を参照してください。
重要: 再処理ツールを使用すると、WebSphere Business Integration システムと SAP アプリケーションが同期しなくなるため、再処理ツールは実稼働環境では使用しないでください。
現在のイベント表、および将来のイベント表において、一度に多数のイベントが追加されたときに、デッドロック状態が発生する可能性があります。この状況は、データベースのチューニングのために、イベント表の索引が使用されない場合に生じます。チューニングは通常は、イベント表内のイベントが少ないか存在しないオフピーク時に行われます。データベース表上のエントリーが少ないかまたは存在しない場合には、テーブルの読み出しに索引を使用しない方が効率的です。デッドロック状態を回避するには、データベース・チューニング・ユーティリティーの実行時に現在のイベント表と将来のイベント表を除外します。
ラージ・オブジェクトを正常に処理するには、追加の変更が必要となります。ABAP Extension Module オブジェクトは、データを SAP アプリケーションに渡す前にフラット構造に変換されるか、またはデータを SAP アプリケーションから受信するときにフラット構造から変換されます。詳細については、ビジネス・オブジェクトのフラット構造への変換を参照してください。このフラット構造は、構造内の行となるオブジェクト・インスタンスの各属性と共に、メモリー内に保持されます。各属性に対して 373 バイトのデータがコネクターと SAP アプリケーション間で受け渡されます。属性の数に 373 を掛けた値がフラット構造のサイズの近似値です。同様に、オブジェクトのインスタンスもメモリー上にあります。そのため、メモリー不足エラーを回避するために、オブジェクトに多数の子オブジェクト (セグメント) がある場合は、コネクターの Java プロセスの始動スクリプト内で Java ヒープ・サイズを変更する必要があるかもしれません。
Windows |
---|
start_SAP.bat スクリプト内で、Java ヒープ・サイズ・オプション・パラメーターのデフォルト値の -mx128m を、フラット構造とオブジェクトのインスタンスを処理するために充分大きな値に変更します。Java プロセスが実行されるマシンで使用可能なメモリーより大きな値を指定した場合にも、メモリー不足エラーが発生します。128m は 128 MB の最大 Java ヒープ・サイズを表します。 |
Linux |
---|
CWConnEnv.sh スクリプト内で、JVM_FLAGS 環境変数の Java ヒープ・サイズ・オプション・パラメーターのデフォルト値 -Xmx128m を、フラット構造とオブジェクトのインスタンスを処理するために充分大きな値に変更します。Java プロセスが実行されるマシンで使用可能なメモリーより大きな値を指定した場合にも、メモリー不足エラーが発生します。128m は 128 MB の最大 Java ヒープ・サイズを表します。 |
OS/400 |
---|
CWConnEnv.sh スクリプト内で、JVM_FLAGS 環境変数の Java ヒープ・サイズ・オプション・パラメーターのデフォルト値 -Xmx128m を、フラット構造とオブジェクトのインスタンスを処理するために充分大きな値に変更します。Java プロセスが実行されるマシンで使用可能なメモリーより大きな値を指定した場合にも、メモリー不足エラーが発生します。128m は 128 MB の最大 Java ヒープ・サイズを表します。 |
SAP アプリケーションは、ラージ・オブジェクトを正常に処理するために、ABAP タイムアウト・パラメーターの変更も必要とします。