このセクションでは、ABAP Extension Module の始動時または実行時に発生する可能性のある問題について説明します。以下の 3 つの項目に関するトラブルシューティングについて説明します。
ABAP Extension Module 用のアダプターのトランスポート・ファイルをインストールする際に エラーが発生した場合には、以下のように対処します。
例えば、あるトランスポート・ファイルは、あるテーブルに対するデータ・エレメントを作成し、別のトランスポートは、そのデータ・エレメントに対するテーブルを作成するとします。テーブルが先に作成されていないと、システムはエラーを戻します。
詳細については、コネクター・トランスポート・ファイルを参照 してください。
コネクターは 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 (SAP JCo) で行った変更によって発生します。
この問題を修正するには、アダプターが提供するイベント要求機能モジュールおよびイベント戻り機能モジュールのみを変更するパッチ・トランスポートをロードします。このパッチ・トランスポートを、ネ ーム・スペース (/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 アプリケーションのコネクター・ログを検査してください。失敗したイベントに関するエントリーは赤で表示されます。イベントは、再処理ツールを使用して再処理します。再処理ツールを使用すると、トランザクションを段階ごとにたどりながら、コードにブレークポイントを設定することができます。オブジェクトの再処理の詳細については、アーカイブされたオブジェクトの再処理を参照してください。
現在のイベント表、および将来の イベント表において、一度に多数のイベントが追加されたときに、デッドロック状態が発生する可能性があります。この状況は、データベースのチューニングのため に、イベント表の索引が使用されない場合に生じます。チューニングは通常は、イベント表内のイベントが少ないか 存在しないオフピーク時に行われます。データベース表上のエントリーが少 ないかまたは存在しない場合には、テーブルの読み出しに索引を使 用しない方が効率的です。デッドロック状態を回避するには、データベース・チューニ ング・ユーティリティーの実行時に現在のイベント表と将来のイベント表を除外します。
ラージ・オブジェクトを正常に処理するには、追加の変更が 必要となります。ABAP Extension Module オブジェクトは、データを SAP ア プリケーションに渡す前にフラット構造に変換されるか、またはデータを SAP アプリケーションから受信するときにフラット構造から変換されます。詳細については、ビジネス・オブジェクトのフラット構造への変換を参照してください。このフラット構造は、構造内の行となるオブ ジェクト・インスタンスの各属性と共に、メモリー内に保持されます。各属性に対して 373 バイトのデータが コネクターと SAP アプリケーション間で受け渡されます。属性の数に 373 を掛けた値がフラット構 造のサイズの近似値です。同様に、オブジェクトのインスタンスもメモリー上にあります。そのため、メモリー不足エラーを回避す るために、オブジェクトに多数の子オブジェクト (セグメント) がある場合は、コネクターの Java プロセスの始動スクリプト内で Java ヒープ・ サイズを変更する必要があるかもしれません。
start_SAP.bat スクリプト内で、Java ヒープ・サイズ・オプション・パラ メーターのデフォルト値の -mx128m を、フラット構造とオ ブジェクトのインスタンスを処理するために充分大きな値に変更します。Java プロセスが実行されるマシンで 使用可能なメモリーより大きな値を指定した場合にも、メモリー不足エラー が発生します。128m は 128 MB の最大 Java ヒープ・サイズを表 します。
CWConnEnv.sh スクリプト内で、JVM_FLAGS 環境変数の Java ヒープ・サイズ・オプション・パラメーターのデフォルト値 -Xmx128m を、フラット構造とオブジェクトのインスタンスを処理するために充分大きな値に変更します。Java プロセスが実行されるマシンで 使用可能なメモリーより大きな値を指定した場合にも、メモリー不足エラー が発生します。128m は 128 MB の最大 Java ヒープ・サイズを表 します。
SAP アプリケーションは、ラージ・オブジェクトを正常に処理するために、ABAP タイムア ウト・パラメーターの変更も必要とします。