機械翻訳について

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

次のトピックでは、データ変換、切り詰め、および会話の起動に関する問題の判断と解決のための診断テクニックと支援について説明します。 また、デバッグ(トレース)オプションがオンのときにデータを収集する方法についても説明します。

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

トピック:

TIP定義エラー

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

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

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

  • デバッグ・リスト付きのPGAU REPORT GENERATEトレースおよびTIP

  • 「PG DD」ID番号が選択されている表と列

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

表8-1 対応するPG DD ID番号

PGAU REPORT/TIP 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に格納された定義との関連付けに使用できます。

PG DD診断リファレンスは、PKGEX(DR) オプションで生成されたTIPに、1行コメントとして表示されます:

-- PG DD type idno=nnn ...  

PG DD診断参照は、REPORTDEBUGリストに、関連定義エントリの前または右に末尾に区切られたコメントとして表示されます:

/* idno=nnn */ 

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

PG DD診断リファレンスによる問題分析

TIPは、PGAUのGENERATEコマンドとPKGEX(DR)診断オプションを使用して生成し、PG DDリファレンス・コメントをTIPに含める必要があります。 これらの診断参照はコメントのみであり、TIPのランタイム・オーバーヘッドには影響しません。 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 =基準

PG DD Selectスクリプトによる問題分析

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

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

名前 エントリ

SED

環境データの選択

定額法

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

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ディレクトリにロードされます。

データ変換エラー

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

  • データ型の誤った決定

    または

  • 間違ったデータ位置の指定

データ型の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、およびdataの値は、予期しない方法で競合する可能性があります。 たとえば、USAGE IS COMPなどのオプションは、データが表示形式の場合はオーバーライドされます。 コンパイラは時にはこのようなオーバーライドを正しく実行しますが、他の言語でコーディングされたシステムとデータを交換するときに予期しない結果を引き起こす可能性があります。

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

  • MAKE _NUMBER_TO_RAW_FORMAT

  • MAKE_RAW_TO_NUMBER_FORMAT

  • NUMBER_TO_RAW

  • RAW_TO_NUMBER

TIPランタイム・トレースによる問題分析

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トレース・パイプを空にするまで1分です。

    それ以外の場合は、関連するトレース情報が生成される前に、診断セッションを終了する例外"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の通常のトレースが「管理ユーティリティのサンプル」に表示されます。

TIPランタイム・トレース・コントロール

実行時トレース制御は、TIP初期化呼び出しで指定される第2パラメータです。 これは、次の形式のCHAR(8)データ型です:

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

「表8-4」は1〜4の位置の値を表します:

表8-4 TIPコールの2番目のパラメータの位置1〜4の値

項目 説明

position 1 (w)

UTL_RAW警告を制御します。 値0は警告を抑制します。値1は警告を出します。

ポジション2 (x)

機能の入力/終了トレースを制御します。 値0は、関数の入力/終了のトレースを抑制します。1の値を指定すると、関数の入力/終了のトレースが可能になります。

ポジション3 (y)

データ変換トレースを制御します。 0の値を指定すると、データ変換のトレースが抑制されます。値1はデータ変換トレースを有効にします。

ポジション4 (z)

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

ポジション5〜8は予約され無視されます。

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

PGAUを使用してTIPを再生成し、GENERATEパラメータDIAGNOSE(PKGEX(DC))を指定します。 これには、正しい、しかしおそらく予期しないNUMBER_TO_RAWRAW_TO_NUMBERの変換をテストして警告を表示するTIPのランタイムPL/SQLコードが含まれます。

このパラメータの詳細については、「手続き型ゲートウェイ管理ユーティリティ」GENERATEを参照してください。

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

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

TIPが再生成された後、ランタイム警告の発行はアプリケーションによって制御されます。 デフォルトでは、警告は抑制され、有効になっているときにのみ発行されます。

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

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

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

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

初期化時に、以下がTIPトレース・パイプ・イン・レットに入力されます:

"UTL_PG warnings enabled"

TIPランタイム関数の入力/終了トレースの制御

yourtipで関数の入力/終了トレースを有効にするには、クライアント・アプリケーションはTIP初期化関数を次の文で呼び出す必要があります:

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

初期化時に、以下がTIPトレース・パイプ・イン・レットに入力されます:

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

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

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

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

初期化時に、以下がTIPトレース・パイプ・イン・レットに入力されます:

'data conversion trace enabled'

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

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

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

初期化時に、以下がTIPトレース・パイプ・イン・レットに入力されます:

'gateway exchange trace enabled'

TIP警告とトレースの抑制

デバッグが終了したら、以下の2つの方法で抑止することができます:

  • データ変換のトレース

  • 変換警告

  • 機能の入力/終了トレース

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

次のことが可能です。

  1. 診断制御パラメータを渡すことなく、TIP初期化関数を呼び出します:

    rc := yourtip_init(trannum);
    
  2. すべてのトレースと警告を無効にする修正された診断制御パラメータを渡して、TIP初期化関数を呼び出します:

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

    メソッドCに記載されている第3のメソッドは:

    • データ変換のトレース

    • 変換警告

  3. 次をなしに再度TIPを生成:

    PKGEX(DC)
    

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

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

また、メソッドCはデータ変換のトレースと警告を抑制し、テストを回避することでオーバーヘッドを削減しますが、TIPを再生成したり、データ変換トレースと警告診断が組み込まれた代替バージョンを再コンパイルする必要がありません。

機能の入力/終了とゲートウェイ交換のトレースのロジックはすべてのTIPに含まれており、削除することはできません。 メソッドAまたはBで無効にすることができます。

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

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

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

下記のアイテム1〜4で参照されている適切な値と定義を確認するには、「TIPの作成」を参照してください:

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

  2. RHT送信バッファの長さが十分であることを確認してください。

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

    ゲートウェイがTCP/IPを使用している場合: RHT I/O PCBコールが正しい送信バッファをアドレス指定し、正しいデータ長を使用していることを確認してください

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

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

    DBMS_OUTPUTの呼び出しをクライアント・アプリケーションに挿入して、その動作をトレースすることができます。

    TIP関数を適切な順序で呼び出す方法の詳細については、インストール・ガイドのOracleデータベースの初回インストール時の構成に関する節を参照してください。

  6. 必要に応じて、診断トレースを含むTIPを再生成し、有効にします。 以下のトレースは特に有用です:

    • データ変換トレース

    • 機能の出入りのトレース

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

    トレースの詳細については、「"TIPランタイム・トレースによる問題分析"」を参照してください。「手続き型ゲートウェイ管理ユーティリティ」GENERATEも参照してください。

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

    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=255SET LOG_DESTINATION=/oracle/pga/12.2/dg4appc/logを設定

    トレースの詳細については、このガイドの「"ゲートウェイ・サーバーのトレース"」を参照してください。

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

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

    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およびUNIXベース・システムの場合$ORACLE_HOME/dg4appc/admin/initsid.ora SET LOG_DESTINATIONゲートウェイ・パラメータで指定されたデフォルトのディレクトリ・パスのログ・ファイルに書き込まれます。 たとえば、Microsoft Windowsでは次のように指定します。

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

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

    SET LOG_DESTINATION=$ORACLE_HOME/dg4appc/log/
    

    詳細については、「"ゲートウェイ・サーバーのトレース"」を参照してください。

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

ゲートウェイ・サーバーのトレース

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

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

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

このセクションでは、ゲートウェイへのトレース・ファイルの宛先を定義する方法、および初期化中にゲートウェイにトレース・ファイルを作成させる方法について説明します。 これはゲートウェイのトレースを有効にするものではなく、ゲートウェイのトレースが有効な場合に生成されるトレース出力の宛先を定義するだけであることに注意してください。

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

    続行する前に、新しいシステムIDが動作していることを確認してください。

  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にあります。 詳細については、「"データ変換および切り捨てエラーの問題分析"」に関する前述の説明を参照してください。

    注意:

    initsid.oraのスペル・ミスのパラメータ名は検出されません。 パラメータは無視されます。

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

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

sid_pid.log 

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

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

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

ゲートウェイ・サーバー・トレースが使用可能になる前に、「"ゲートウェイ・トレース宛先の定義"」にリストされているタスクを実行してください。

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

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), and HP-UX Itanium」またはOracle Database Gateway for APPCインストールと構成ガイドfor Microsoft Windowsの付録A、"SNAプロトコルのゲートウェイ初期化パラメータ"の"PGAパラメータ"を参照してください。

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

PL/SQLから動的にゲートウェイ・トレースを有効にする

以下は、ユーザー作成のTIPにのみ必要です。 PGAUが作成したTIPには、以下の施設が自動的に含まれています。 詳細については、「"TIPランタイム・ゲートウェイExchangeトレースの制御"」を参照してください。

リモートtransaction(s)を実行するためにトランザクション・インタフェース・パッケージを呼び出す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アプリケーションを再コンパイルして、新しいトレース呼び出しを取得します。