機械翻訳について

8 トラブルシューティング

次のトピックでは、データ変換、切捨ておよび会話の開始に関する問題を特定および解決するための診断手法と支援について説明します。 また、デバッグ(トレース)オプションがオンの場合にデータを収集する方法についても説明します。

PL/SQLストアド・プロシージャは、問題が疑われる場合にのみトレースします。 パフォーマンスに影響するため、通常の操作中はトレースを有効にしないでください。

トピック:

8.1 TIP定義エラー

TIP定義エラーは、PG DDのTRANSACTIONCALLまたはDATAエントリが正しく定義されていない場合に発生します。

REPORTDEBUG文とともに使用してPG DDの内容をリストし、対応するID番号をTIPに含めるGENERATE DIAGNOSE(PKGEX(DR))オプションを使用します。

「表8-1」は、ID番号を表すために使用されるニーモニックと、次のものへの対応を示します:

  • デバッグ・リスト、 GENERATEトレースおよびヒントを含むPGAU REPORT

  • ID番号が選択される「PG DD」表および列

  • ID番号の起点となるOracle順序オブジェクト

表8-1 対応のPG DD ID番号

PGAUレポート/ヒント PDGG table(col) 順序オブジェクト

v# transaction version

pga_trans(version)

pga.transvers

v# call version

pga_call(version)

pga.callvers

v# data version

pga_data(version)

pga.datavers

t# transaction id#

pga_trans(trans#)

pga.transeq

c# call id#

pga_call(call#)

pga_call_parm(call#)

pga.callseq

d# data id#

pga_call_parm(data#)

pga_data(data#)

pga_fields(data#)

pga.dataseq

f# field id#

pga_fields(fld#)

pga.fieldseq

q# qualifier id#

pga_data_values(qual#)

pga.fieldseq

a# trans attribute id#

pga_trans_values(attr#)

pga_trans_attr(attr#)

pga.tattrseq

a# field attribute id#

pga_data_values(attr#)

pga_data_attr(attr#)

pga.dtattseq

e# environment

pga_environments(env#)

pga.envrseq

l# compiler/language

pga_compilers(comp#)

pga.compseq

これらのID番号を使用して、TIPで実行される変換をPG DDに格納されている定義に関連付けることができます。

P G DD診断参照は、PKGEX(DR) オプションで生成されたヒントに単一行として表示されます。コメント:

-- PG DD type idno=nnn ...  

PG DD診断参照はREPORTに表示され、関連する定義エントリの前または右側にDEBUGリストが終了区切りコメントとして表示されます:

/* idno=nnn */ 

PG DDの詳細は、ディクショナリ表の完全なリストなど、「Database Gateway for APPCデータ・ディクショナリ」を参照してください。

8.2 PG DD診断参照の問題分析

TIPは、PG DD参照コメントをTIPに含めるために、PKGEX(DR)診断オプションを指定してPGAU GENERATEコマンドで生成する必要があります。 これらの診断参照はコメントのみであり、ヒントの実行時のオーバーヘッドには影響しません。 PKGEX (DR)パラメータの詳細は、「プロシージャ・ゲートウェイ管理ユーティリティ」GENERATEを参照してください。

  1. PL/SQLパッケージを定義する前に、TIP内のTIP仕様からトランザクション名、ID番号(t#)およびバージョン(v#)を特定します。
  2. 同じトランザクション名とバージョンを指定して、PGAU REPORT WITH DEBUGを起動します。

    REPORT は、PG DDから定義を選択し、DATACALLおよびTRANSACTIONの定義と、ユーザーが指定した各定義のID番号を示すリストを生成します。

  3. レポートされた定義をリモート・トランザクション・プログラムで使用されている定義と比較し、対応するすべての交換および送信されるデータ形式を識別します。
  4. 次のような不一致を探して調査します:
    • 異なる送信/受信コール数

    • 異なる送信/受信コールのシーケンス

    • 送信/受信コールの異なるパラメータ・リスト

    • 各交換パラメータ内の異なるデータ・フィールド

    • 交換されたパラメータごとに異なる長さ

    • 交換パラメータごとにサポートされていないデータ型

    • 正しく初期化されていない制御フィールド:

      • 繰返しグループ数

        IBMVSCOBOLII 影響を受ける句には次が含まれます

        OCCURS n TIMES DEPENDING ON field

      • 再マップされたグループ基準

        IBMVSCOBOLII 影響を受ける句には次が含まれます

        REDEFINES field1 WHEN field2 =条件

8.3 PG DD選択スクリプトの問題分析

PGAUのGENERATEエラー・メッセージおよびTRACE(OC)エントリは、SQLのSELECT文を参照します。 各エントリの名前指定の意味については、「表8-2」を参照してください。

表8-2 TRACE(OC)出力の意味

名前 エントリ

SED

環境データの選択

STL

トランザクションの選択(最新バージョン)

STV

トランザクションの選択(特定のバージョン)

STC

トランザクション・コールの選択

SPD

パラメータ・データの選択

SF

フィールドの選択

SFA

フィールド属性の選択

SXF

変換書式の選択

SXA

属性変換の選択

「表8-3」 SQL*Plusテスト・スクリプトは、GENERATEが実行する同じSELECTSを実行して、TIPの生成時に使用されるPG DD行を決定するために提供されます。 これらのファイルは、インストール時に、Microsoft Windowsの%ORACLE_HOME%\dg4appc\adminディレクトリまたはUNIXベースのシステムの$ORACLE_HOME/dg4appc/adminディレクトリにロードされます。

表8-3 SQL*Plusテスト・スクリプトとその対応するエントリ

スクリプト エントリ

pgddsed.sql

環境データの選択

pgddstl.sql

トランザクションの選択(最新バージョン)

pgddstv.sql

トランザクションの選択(特定のバージョン)

pgddstc.sql

トランザクション・コールの選択

pgddspd.sql

パラメータ・データの選択

pgddsf.sql

フィールドの選択

pgddsfa.sql

フィールド属性の選択

pgddsxf.sql

変換フォーマットの選択

pgddsxa.sql

属性変換の選択

スクリプトは、GENERATEで使用されるのと同じ順序で表示され、各スクリプトは、SQL*Plusユーザーに必要な入力を求めるプロンプトを表示します。 以前の選択から取得した情報は、多くの場合、後続の選択への入力として使用されます。 「PG DD」フィールド・エントリで不正確なデータが生成されたと疑われる場合は、前述の.sqlファイルを参照して問題の原因を特定します。 これらのファイルは、インストール時に、Microsoft Windowsの%ORACLE_HOME%\dg4appc\adminディレクトリまたはUNIXベースのシステムの$ORACLE_HOME/dg4appc/adminディレクトリにロードされます。

8.4 データ変換エラー

データ変換エラーは通常、次の結果になります:

  • データ型の決定が正しくありません

    または

  • データ位置の指定が正しくありません

データ型のPGAU決定は、PG DD、pga_fields (mask)およびpga_fields (maskopts)列にある値に基づきます。 PGAUは、マスク値に基づいて変換を実行する PL/SQLコードを生成します:

  • PIC Xは、文字長が同じCHARに変換されます

  • PIC Gは、文字長が同じCHARに変換されます

  • PIC 9NUMBERに変換

文字データ型は、すべてのPIC XおよびPIC Gマスク値で想定され、変換エラーは、位置、長さおよび正当化エラーの結果である可能性が高くなります。

数値データ型の決定は、maskとmaskopts値の組合せや、内部形式の実際のリモート・ホスト・データへの適用方法など、いくつかのファクタによって異なります。 mask、maskopts、およびdataの値は、予期しない方法で競合する可能性があります。 たとえば、データが表示形式の場合は、USAGE IS COMPなどのオプションがオーバーライドされる場合があります。 コンパイラはこのようなオーバーライドを正しく実行することがありますが、ほかの言語でコーディングされたシステムとデータを交換すると、予期しない結果が発生する可能性があります。

このようなオーバーライドをユーザーに通知するために、次のUTL_PG関数に警告関数が含まれています:

  • MAKE _NUMBER_TO_RAW_FORMAT

  • MAKE_RAW_TO_NUMBER_FORMAT

  • NUMBER_TO_RAW

  • RAW_TO_NUMBER

8.5 TIPランタイム・トレースの問題分析

TIPデータ変換トレース・ロジックをTIPに含めるには、 PKGEX(DC)診断オプションを指定してPGAU GENERATEコマンドでヒントを生成する必要があります。 TIP関数コール・トレース・ロジックは、すべてのTIPに常に含まれます。 これはランタイム・トレース・インストゥルメンテーションであり、トレースを有効にするとオーバーヘッドが発生しますが、トレースを無効にするとオーバーヘッドはほとんど発生しません。 詳細は、「プロシージャ・ゲートウェイ管理ユーティリティ」GENERATEを参照してください。

  1. PKGEX(DC, DR)オプションを使用してTIPを再生成し、TIP本文ファイル tipname.pkbを再コンパイルします。 TIP仕様の再コンパイルは避けてください。

  2. TIP初期化関数(tipname _init)をコールするアプリケーションを改訂し、データ変換および関数コール・トレースを有効にしてトレース・フラグ・パラメータを渡します。 TIPランタイム・データ変換トレースの制御を参照してください。

    問題によってTIPで例外が発生し、アプリケーションに例外ハンドラが含まれている場合は、アプリケーション例外ハンドラをコメント・アウトして、例外を処理しないようにし、例外発生元がレポートされないようにする必要があります。 次にTIP例外が発生すると、TIP内のソース明細番号がレポートされます。 この情報を記録します。

  3. 診断TIP初期化を使用してアプリケーションを実行します。

    TIPトレース・パイプ・イン・レットにTIPがトレース・メッセージを書き込む原因となったアプリケーション・コールが原因で、TIPトレース・パイプ・イン・レットがオーバーフローした場合、オーバーフロー状態の開始からステップ4を開始し、TIPトレース・パイプを空にします。

    それ以外の場合は、例外"ORA-20703 PGA-TIP: pipe send error"が発行され、関連するトレース情報が生成される前に診断セッションが終了します。

  4. TIPトレース・メッセージ・ストリームを取得して記録します。

    SQL*Plusを使用して、アプリケーションを実行している同じOracleユーザーID、またはTIPが実行されるユーザーIDに接続します。 これにより、トレース・パイプの出口を読み取ることができる2番目のセッションが確立され、TIPトレース・パイプの入口でTIPトレース・パイプがオーバーフローするのを防ぎます。

    1. 次のコマンドを発行します。

      set serveroutput on size nnnnn
      
    2. コマンドを発行してトレース出力を記録します:

      spool tipname.trc
      
    3. トレース・ストリームを取得するコマンドを発行します:

      exec rtrace('tipname');
      

      アプリケーションが長時間実行されている場合は、すべてのトレース・メッセージが取得されるまで、必要に応じてこのコマンドを繰り返します。

  5. 例外が発生した場合は、そのプレフィクス、番号および完全なメッセージ・テキストを書き留めます。

  6. TIPトレース・メッセージ・ストリームを分析します。 「管理ユーティリティの例」pgadb2iヒントの通常のトレースが表示されます。

8.6 TIPランタイム・トレース制御

実行時トレース制御は、TIP初期化コールで指定された2番目のパラメータです。 これは、次の形式のCHAR(8)データ型です:

rc := yourtip_init(trannum,'wxyz0000');
  

「表8-4」は、位置1から4の値を示します:

表8-4 TIPコールの2番目のパラメータのポジション1から4の値

項目 説明

位置1 ( w)

UTL_RAW警告を制御します。 値0は警告を抑制し、値1は警告を発行します。

位置2 ( x)

関数エントリ/終了トレースを制御します。 値0を指定すると、関数のエントリ/終了トレースが抑制され、値1を指定すると、関数のエントリ/終了トレースが有効になります。

位置3 ( y)

データ変換トレースを制御します。 値0はデータ変換トレースを抑制し、値1はデータ変換トレースを有効にします。

位置4 ( z)

ゲートウェイ交換トレースを制御します。 値0はゲートウェイ交換トレースを抑制し、値1はゲートウェイ交換トレースを有効にします。

位置5から8は予約され、無視されます。

8.6.1 ランタイム・データ変換トレースおよび警告サポートの生成

PGAUを使用してTIPを再生成し、GENERATEパラメータDIAGNOSE(PKGEX(DC))を指定します。 これには、TIPの実行時のPL/SQLコードが含まれます。このコードは、正しいが、予期しないNUMBER_TO_RAWおよびRAW_TO_NUMBER変換の警告をテストして表示します。

このパラメータの詳細は、「プロシージャ・ゲートウェイ管理ユーティリティ」GENERATEを参照してください。

TIP本文をSQL*Plusの下に再コンパイルします。 TIP仕様の再コンパイルは避けてください。

8.6.2 TIPランタイム変換警告の制御

ヒントが再生成されると、実行時警告の発行がアプリケーションで制御されます。 デフォルトでは、警告は抑制され、有効になっている場合にのみ発行されます。

エラーと例外は、発生した場合は常に発行されます。

警告の発行を有効にするには、TIP初期化関数のコール時に追加パラメータを指定する必要があります。 このパラメータはCHAR(8) データ型で、各文字位置は特定のTIPランタイム診断関数を制御します。

yourtipで警告を有効にするには、クライアント・アプリケーションで次の文を使用してTIP初期化関数をコールする必要があります:

rc := yourtip_init(trannum,'10000000');

初期化時のTIPトレース・パイプ入口への入力は次のとおりです:

"UTL_PG warnings enabled"

8.6.3 TIPランタイム関数のエントリ/終了トレースの制御

yourtipで関数のエントリ/終了トレースを有効にするには、クライアント・アプリケーションで次の文を使用してTIP初期化関数をコールする必要があります:

rc := yourtip_init(trannum,'01000000');

初期化時のTIPトレース・パイプ入口への入力は次のとおりです:

'function entry/exit trace enabled'
'tipname_init entered'
'time date/time stamp'

8.6.4 TIPランタイム・データ変換トレースの制御

yourtipでデータ変換トレースを有効にするには、クライアント・アプリケーションで次の文を使用してTIP初期化関数をコールする必要があります:

rc := yourtip_init(trannum,'00100000');

初期化時のTIPトレース・パイプ入口への入力は次のとおりです:

'data conversion trace enabled'

8.6.5 TIPランタイム・ゲートウェイ交換トレースの制御

yourtipでランタイム・ゲートウェイ交換トレースを有効にするには、クライアント・アプリケーションで次の文を使用してTIP初期化関数をコールする必要があります:

rc := yourtip_init(trannum,'00010000');

初期化時のTIPトレース・パイプ入口への入力は次のとおりです:

'gateway exchange trace enabled'

8.7 ヒント警告およびトレースの抑制

デバッグが終了すると、次の2つの方法で抑制できます:

  • データ変換トレース

  • 変換の警告

  • 関数エントリ/終了トレース

  • ゲートウェイ交換トレース

次のことが可能です。

  1. 診断制御パラメータを渡さずに、TIP初期化関数をコールします:

    rc := yourtip_init(trannum);
    
  2. すべてのトレースおよび警告を無効にする修正済診断制御パラメータを渡すTIP初期化関数をコールします:

    rc := yourtip_init(trannum,'00000000');
    

    メソッドCで説明されている3番目のメソッドは、次のロジックを削除します:

    • データ変換トレース

    • 変換の警告

  3. 次を使用せずにTIPを再生成します:

    PKGEX(DC)
    

または、TIP本文が保存されている場合は、以前のバージョンのTIP本文を再コンパイルできます。

メソッドAとBでは、トレースや警告なしに、変更せずに同じTIPを使用できます。 これらのメソッドは、TIPの変更または交換なしで可逆的です。 トレースおよび警告は、問題が再発した場合に再表示できます。

また、メソッドCは、データ変換トレースおよび警告を抑制し、テストを回避することでオーバーヘッドを削減しますが、TIPを再生成したり、データ変換トレースおよび警告診断が埋め込まれた代替バージョンを再コンパイルすることなく元に戻すことはできません。

関数エントリ/終了およびゲートウェイ交換トレースのロジックは、すべてのヒントに含まれており、削除できません。 これは、メソッドAまたはBで無効にできます。

8.8 データ変換および切捨てエラーの問題分析

Oracle Database Gateway for APPCデータ長は、 PL/SQLによって、APPC交換およびPL/SQL変数ごとに32,763バイトに制限されます。

次のステップを使用して、データ変換エラーまたは切捨てエラーを診断できます。

次のアイテム1から4で参照される適切な値および定義を確認するには、「ヒントの作成」を参照してください:

  1. RHTで使用されるCOBOL定義がPGAUへの入力と一致することを確認

  2. RHT送信バッファの長さが十分であることを確認

  3. ゲートウェイがSNAを使用する場合: RHT APPCコールが正しい伝送バッファに対処し、正しいデータ長を使用していることを確認

    ゲートウェイでTCP/IPを使用する場合: RHT I/O PCBコールが正しい転送バッファに対処し、正しいデータ長を使用していることを確認

  4. クライアント・アプリケーションが、TIPコールで引数として使用される正しいTIPデータ型を宣言していることを確認します。

  5. クライアント・アプリケーションが適切な順序(init、ユーザー定義...、term)でTIP関数をコールしていること、およびRHTへの入力データが正しいことを確認してください。 また、複数のユーザー定義関数が存在する場合は、それらの関数が適切な順序でコールされ、正しい入力値(ある場合)が渡されていることを確認します。

    DBMS_OUTPUTコールをクライアント・アプリケーションに挿入して、その動作をトレースできます。

    適切な順序でのTIP関数のコールの詳細は、インストール・ガイドでOracleデータベースの最初のインストールの構成に関する項を参照してください。

  6. オプションで、診断トレースを含めてTIPを再生成し、有効にします。 次のトレースが特に役立ちます:

    • データ変換トレース

    • 関数の入口/出口トレース

    • ゲートウェイ交換トレース

    トレースの詳細は、TIPランタイム・トレースの問題分析を参照してください。「プロシージャ・ゲートウェイ管理ユーティリティ」GENERATEも参照してください。

    トレースの出力は、SNAを使用するゲートウェイと、TCP/IPを使用するゲートウェイで異なることに注意してください。 ただし、トレースを起動するメソッドは、使用している通信プロトコルに関係なく同じです。

    Microsoft Windowsでは、ゲートウェイ・サーバーのトレースも%ORACLE_HOME%\dg4appc\admin\initsid.oraで有効にする必要があります。 パラメータ SET TRACE_LEVEL=255および SET LOG_DESTINATION=C:\oracle\pga\12.2\dg4appc\logを設定

    UNIXベースのシステムでは、ゲートウェイ・サーバーのトレースも$ORACLE_HOME/dg4appc/admin/initsid.oraで有効にする必要があります。 パラメータ SET TRACE_LEVEL=255およびSET LOG_DESTINATION=/oracle/pga/12.2/dg4appc/logを設定

    トレースの詳細は、このガイドのGateway Serverトレースを参照してください。

    クライアント・アプリケーションを再実行し、トレースを確認します(詳細は、次のステップを参照してください)。

    トレースを無効にするには、リセット

    SET TRACE_LEVEL=0

  7. トレース出力を確認します。

    TIPトレース出力は、次のようなスプール・ファイルに保存できます:

    spool tipname.trc
    

    TIPトレース出力は、名前付きDBMS_PIPEに書き込まれ、次のコマンドを発行してSQL*Plusで取得できます:

    exec rtrace('tipname');

    または、次のコマンドを発行してパージできます:

    exec ptrace('tipname');  
    

    ノート:

    tipnameは大/小文字が区別され、TIPの場合とまったく同じように指定する必要があります。

    ゲートウェイ・サーバーのトレース出力は、Microsoft Windowsの場合は%ORACLE_HOME%\dg4appc\admin\initsid.ora SET LOG_DESTINATIONゲートウェイ・パラメータ、UNIXベースのシステムでは$ORACLE_HOME/dg4appc/admin/initsid.ora で指定されたデフォルトのディレクトリ・パスでログ・ファイルに書き込まれます。 たとえば、Microsoft Windowsで:

    SET LOG_DESTINATION=C:\oracle\pga\12.2\dg4appc\log
    

    UNIXベース・システムの場合:

    SET LOG_DESTINATION=$ORACLE_HOME/dg4appc/log/
    

    詳細は、Gateway Serverトレースを参照してください。

    ゲートウェイ・サーバーのログファイルは、ファイルを編集するか、ファイルの内容を表示するほかのシステム・コマンドを発行することによって表示できます。 ログ・ファイルをコピーして、問題の症状を記録するために保存することもできます。

8.9 Gateway Serverトレース

ゲートウェイには、ゲートウェイ・リモート・プロシージャ・コール(RPC)およびAPPC固有のコードに広範なトレース・ロジックが含まれています。 トレースは、ゲートウェイ初期化パラメータまたはゲートウェイへの動的RPCコールを介して有効化されます。 このトレースは、ゲートウェイRPC関数の実行とAPPCインタフェースの実行に関する情報を提供します。 トレース・ファイルには、イベントの時系列順に書き込まれたテキスト・ストリームが含まれます。 トレースは、アプリケーション・プログラマがOLTPトランザクション・プログラムと、ゲートウェイを介してそれらのトランザクション・プログラムと通信するOracle applicationsのデバッグを支援するように設計されています。

データベース・リンクがオープンされてからクローズされるまで、ゲートウェイ・セッション全体に対して単一のトレース・ファイルが作成されます。 トレースは、特定のパス/ファイル名またはパス(ディレクトリ)にのみ転送できます。 最初のケースでは、トレース対象のゲートウェイに対して新しいセッションが開始されるたびにファイルが上書きされます。 トレース・ターゲットがディレクトリの場合、生成された名前(オペレーティング・システムのプロセスIDを含む)を持つ個別のファイルがゲートウェイ・セッションごとに書き込まれます。 後者のアプローチは、トレース対象のゲートウェイが、目的のトレースが書き込まれた後、コピーして保存する前に、新しいセッションのターゲットになる場合には必ず使用する必要があります。 逆に、場合によっては、トレースのみに使用される個別のゲートウェイ・システム識別子を作成し、そのトレースを単一の特定のファイル名に誘導することを選択できます。 これにより、問題を再現またはデバッグするために繰り返し試行する必要がある場合などに、増加するトレース・ファイルのセットの問題が回避されます。 予期しないゲートウェイ・セッションが有用なトレースをオーバーレイする可能性がある場合は、固定ファイル名を使用しないでください。

8.9.1 ゲートウェイ・トレース宛先の定義

この項では、ゲートウェイへのトレース・ファイルの宛先を定義する方法、および初期化中にゲートウェイでトレース・ファイルを作成する方法を説明します。 これはゲートウェイ・トレースを有効にせず、ゲートウェイ・トレースを有効にしたときに生成されるトレース出力の宛先を定義するだけです。

  1. トレースするゲートウェイ・システム識別子を選択します。 既存のゲートウェイ・システム識別子をトレースするか、トレース用に特別に作成された新しいゲートウェイ・システム識別子をトレースするかを決定します。 新しいシステム識別子を使用する場合は、新しい initsid.ora (古いもののコピー)、必要に応じてlistener.oraのエントリ、および新しいOracleデータベース・リンクを作成して、新しいシステム識別子を古いものとまったく同じように構成します。

    続行する前に、新しいシステム識別子をテストして動作することを確認します。

  2. Microsoft Windowsの場合は、%ORACLE_HOME%\dg4appc\adminで、 initsid.oraファイルを編集して、次のものを含めます:

    SET TRACE_LEVEL=255
    SET LOG_DESTINATION=logdest 
    

    UNIXベースのシステムの場合、$ORACLE_HOME/dg4appc/adminで、 initsid.oraファイルを編集して、次のものを含めます:

    SET TRACE_LEVEL=255
    SET LOG_DESTINATION=logdest 
    

    ここで、logdestはトレース出力のディレクトリ・パスです。 ログ・ファイルは、通常、Microsoft Windowsの場合は%ORACLE_HOME%\dg4appc\log、UNIXベースのシステムでは$ORACLE_HOME/dg4appc/logです。 詳細は、データ変換および切捨てエラーの問題分析に関する前の説明を参照してください。

    ノート:

    init 「サイド」.ora内のスペル・ミスのパラメータ名は検出されません。 パラメータは無視されます。

これらの2つのステップが完了すると、ゲートウェイは初期化中に指定されたトレース・ファイルを開きます。 このシステム識別子の各セッションは、前述のステップ2で説明した SET LOG_DESTINATIONパラメータで指定されたトレース・ファイルを書き込みます。

ディレクトリ・パスが指定されている場合、各トレース・ファイルの名前は、次の形式になります:

sid_pid.log 

ここで、sidはゲートウェイsid、pidは10進数で表されるゲートウェイ・サーバーのオペレーティング・システム・プロセスIDです。

8.9.2 ゲートウェイ・トレースの有効化

ゲートウェイ・サーバーのトレースを有効にするには、2つの方法があります。 1つ目は、ゲートウェイ初期化ファイル initsid.oraでトレース・オプションを設定することです。 2つ目は、追加のPGAリモート・プロシージャ・コール(RPC)関数PGATCTLを使用して、Oracleアプリケーション内からトレースを動的に制御することです。 最初のメソッドでは、ゲートウェイ・システム識別子のすべてのユーザーに対してトレースが実行され、ゲートウェイ・システム識別子の使用を、実際にトレースを必要とするユーザーに制限できる場合にのみ推奨されます。 2つ目のメソッドはより柔軟で、アプリケーション・プログラマは、他のユーザーのゲートウェイ・セッションの操作に影響を与えることなく、単一のゲートウェイ・セッションでイベントを選択的にトレースできます。

ゲートウェイ・サーバーのトレースを有効にする前に、ゲートウェイ・トレース宛先の定義にリストされているタスクを実行します。

8.9.2.1 初期化パラメータを使用したゲートウェイ・トレースの有効化

initsid.oraファイルを編集し、ファイルの最後に次の行を追加します(または、 SET TRACE_LEVELパラメータがすでに指定されている場合は変更します):

SET TRACE_LEVEL=trace 

ここで、traceは、有効にするトレースを示す1から255の数値です。 このパラメータの使用方法の詳細は、Oracle Database Gateway for APPCインストレーションおよび構成ガイドfor IBM AIX on POWER Systems (64-Bit)、Linux x86-64、Oracle Solaris on SPARC (64-Bit)およびHP-UX ItaniumまたはOracle Database Gateway for APPCインストレーションおよび構成ガイドfor Microsoft Windowsの付録A 「SNAプロトコルのゲートウェイ初期化パラメータ」のPGAパラメータに関する項を参照してください

このステップが完了すると、目的のゲートウェイ・システム識別子のトレースが有効になります。

8.9.2.2 PL/SQLからのゲートウェイ・トレースの動的な有効化

次は、ユーザーが作成したヒントにのみ必要です。 PGAUで生成されたTIPには、次の機能が自動的に含まれます。 詳細は、TIPランタイム・ゲートウェイ交換トレースの制御を参照してください。

トランザクション・インタフェース・パッケージをコールしてリモート・トランザクションを実行するPL/SQLアプリケーションに対して、次の変更を行います。

  1. TIP初期化関数のコールが行われる前に、PGATCTLへのコールを追加します:

    PGATCTL@dblink(convid,
                   traceF,
                   traceS);
    

    ここで、表8-5PGATCTLのパラメータを示します:

    表8-5 PGATCTLパラメータ

    パラメータ 説明

    dblink

    ゲートウェイへのデータベース・リンクの名前です

    convid

    SNAを使用するゲートウェイの場合: 会話の識別に使用されるPGAINIT関数によって返される会話識別子。

    使用するゲートウェイの場合 TCP/IP: 会話の識別に使用されるPGAINIT関数によって返されるソケット・ファイル記述子

    traceF

    実行するトレース制御関数です。

    traceS

    SET TRACE_LEVEL初期化パラメータの説明で前述したように、有効にするトレースを指定します。

    このコールは、traceSで指定された値へのコール後に開始されたすべての新規会話のトレース・フラグを設定します。

  2. PL/SQLアプリケーションを再コンパイルして、新しいトレース・コールを取得します。