機械翻訳について

E ヒント内部

PGAUは、ほとんどの状況で完全で操作可能なヒントを生成します。 TIP内部情報は、PGAUで生成されたTIPの問題の診断や、カスタムTIPの作成(選択する場合)を支援するために提供されます。

  • ゲートウェイがSNA通信プロトコルを使用している場合:

    この付録では、pgadb2iというサンプルを参照します。 このヒントのソースは、Microsoft Windowsの場合は%ORACLE_HOME%\dg4appc\demo\CICSディレクトリの pgadb2i.sqlファイル、UNIXベースのシステムでは$ORACLE_HOME/dg4appc/demo/CICSディレクトリにあります。

  • ゲートウェイがTCP/IP通信プロトコルを使用している場合:

    この付録では、pgaimsというサンプルを参照します。 このヒントのソースは、UNIXベースのシステムのMicrosoft Windowsおよび$ORACLE_HOME/dg4appc/demo/IMSディレクトリの%ORACLE_HOME%\dg4appc\demo\IMSディレクトリのファイルpgtflipd.sqlにあります。

トピックス:

E.1 バックグラウンド読取値

TIPの操作および開発を理解するには、いくつかのトピックが重要です。次に、TIP操作の鍵となる概念と、詳細を参照できる推奨ソースを示します。

E.2 PL/SQLパッケージとヒント・ファイルの分離

PGAU GENERATEは、各出力TIPを標準の PL/SQLパッケージ仕様ファイルおよび本文ファイルに書き込みます。 この分離は有益で重要です。 詳細は、Oracle Database開発ガイドおよびOracle Database PL/SQL言語リファレンスを参照してください。 PL/SQLパッケージのビルドの詳細は、「プロシージャ・ゲートウェイ管理ユーティリティ」" GENERATE "も参照してください。

ヒントは、 PL/SQLパッケージです。 パッケージ仕様部が再コンパイルされるたびに、そのパッケージに依存するすべてのオブジェクトは、その仕様部が変更されていなくても、参照時に無効になり、暗黙的に再コンパイルされます。

TIP仕様に依存するオブジェクトには、TIPをコールしてリモート・ホスト・トランザクションと対話するクライアント・アプリケーションが含まれます。

次の理由により、TIP本文を変更することが重要になる場合があります:

TIP仕様を変更または再コンパイルする必要がない場合は、 TIP本文を再生成および再コンパイルして、TIPをコールするクライアント・アプリケーションの無効化および暗黙的な再コンパイルを行わずに変更をピック・アップできます。

このため、PGAUは出力TIPを仕様ファイルと本文ファイルに分離するようになりました。 ファイル識別の詳細は、「プロシージャ・ゲートウェイ管理ユーティリティ」" GENERATE "を参照してください。

E.2.1 独立したTIP本文の変更

独立したTIP本文の変更は内部であり、TIP仕様を変更する必要はありません。 このような変更の例を次に示します: UTL_RAWまたはUTL_PG変換の変更、診断の包含、またはネットワーク・トランザクション・パラメータの変更。

このような場合、PGAUを使用してTIPを再生成すると、新しい TIP仕様ファイルを保存または破棄できますが、再コンパイルしないでください。 新しいTIP本文は、 SQL*Plusの下に再コンパイルする必要があります。 TIP本文の変更が独立している場合、新しい本文コンパイルはエラーなしで完了し、以前のTIP仕様は有効のままです。

E.2.1.1 仕様が有効であるかどうかの判別

仕様が有効であるかどうかを判断するには、通信プロトコルに応じて、SQL*Plusから次の文を発行します:

  • 「ゲートウェイがSNA通信プロトコルを使用している場合、」は、次を発行します:

    SQL>  column ddl_date format A22 heading 'LAST_DDL'
    SQL> select object_name,
      2   object_type,
      3   to_char(last_ddl_time,'MON-DD-YY HH:MM:SS') ddl_date,
      4   status
      5   from all_objects where owner = 'PGAADMIN' 
      6   order by object_type, object_name;
    
    OBJECT_NAME  OBJECT_TYPE   LAST_DDL                 STATUS 
    -----------  -----------   --------------------     ---------
    PGADB2I      PACKAGE       NOV-24-1999 09:09:13     VALID
    PGADB2I      PACKAGE BODY  NOV-24-1999 09:11:44     VALID
    DB2IDRIV     PROCEDURE     DEC-30-1999 12:12:14     VALID
    DB2IDRVM     PROCEDURE     DEC-30-1999 12:12:53     VALID
    DB2IFORM     PROCEDURE     DEC-14-1999 11:12:24     VALID
    

    LAST_DDL列は、オブジェクトに対する最後のDDL変更が実行された日時です。 コンパイルの順序は次のとおりです:

    PGADB2I PACKAGE (the specification)
    DB2IDRVM PROCEDURE (1st client application depending on PGADB2I)
    DB2IFORM PROCEDURE (2nd client application depending on PGADB2I)
    DB2IDRIV PROCEDURE (3rd client application depending on PGADB2I)
    PGADB2I PACKAGE BODY (a recompilation of the body)
    

    本文の再コンパイルによって、依存オブジェクト、仕様またはクライアント・アプリケーションが間接的に無効になることはありません。

  • 「ゲートウェイがTCP/IP通信プロトコルを使用している場合、」は、次のSQL*Plusを発行します:

    SQL>  column ddl_date format A22 heading 'LAST_DDL'
    SQL> select object_name,
      2   object_type,
      3   to_char(last_ddl_time,'MON-DD-YY HH:MM:SS') ddl_date,
      4   status
      5   from all_objects where owner = 'PGAADMIN' 
      6   order by object_type, object_name;
    
    OBJECT_NAME  OBJECT_TYPE   LAST_DDL                 STATUS 
    -----------  -----------   --------------------     ---------
    PGTFLIP      PACKAGE       APR-24-03 03:04:58       VALID
    PGTFLIP      PACKAGE BODY  APR-24-03 03:04:02       VALID
    PGTFLIPD     PROCEDURE     APR-24-03 03:04:09       VALID

    LAST_DDL列は、オブジェクトに対する最後のDDL変更が実行された日時です。 コンパイルの順序は次のとおりです:

    PGTFLIP PACKAGE (the specification)
    PGTFLIPD PROCEDURE (client application depending on PGADB2I)
    PGTFLIP PACKAGE BODY (a recompilation of the body)
    

本文の再コンパイルによって、依存オブジェクト、仕様またはクライアント・アプリケーションが間接的に無効になることはありません。

E.2.2 依存TIP本文または仕様変更

また、リモート・ホスト・トランザクションのデータ構造を変更したり、交換シーケンスを呼び出すこともできます。 ただし、 TIP仕様のパブリック・データ型または関数も変更され、再コンパイルが必要となるため、この種の変更は依存クライアント・アプリケーションに公開されます。このため、Oracleデータベースはこのような依存クライアント・アプリケーションを再コンパイルします。

  • 「ゲートウェイがSNA通信プロトコルを使用している場合」、次を発行します:

    SQL> column ddl_date format A22 heading 'LAST_DDL'
    SQL> select object_name,
      2   object_type,
      3   to_char(LAST_DDL_TIME,'MON-DD-YY HH:MM:SS') ddl_date,
      4   status
      5   from all_objects where owner = 'PGAADMIN'
      6   order by object_type, object_name;
    
    OBJECT_NAME    OBJECT_TYPE      LAST_DDL                 STATUS
    ----------     -----------      ---------------------    ---------
    PGADB2I        PACKAGE          NOV-24-1999 09:09:13     VALID
    PGADB2I        PACKAGE BODY     NOV-24-1999 09:11:44     INVALID
    DB2IDRIV       PROCEDURE        DEC-30-1999 12:12:14     INVALID
    DB2IDRVM       PROCEDURE        DEC-30-1999 12:12:53     INVALID
    DB2IFORM       PROCEDURE        DEC-14-1999 11:12:24     INVALID
    
  • 「ゲートウェイがTCP/IP通信プロトコルを使用している場合、」は、次を発行します:

    SQL> column ddl_date format A22 heading 'LAST_DDL'
    SQL> select object_name,
      2   object_type,
      3   to_char(LAST_DDL_TIME,'MON-DD-YY HH:MM:SS') ddl_date,
      4   status
      5   from all_objects where owner = 'PGAADMIN'
      6   order by object_type, object_name;
    
    OBJECT_NAME    OBJECT_TYPE      LAST_DDL                 STATUS
    ----------     -----------      ---------------------    ---------
    PGTFLIP        PACKAGE          APR-24-03 03:04:58       VALID
    PGTFLIP        PACKAGE BODY     APR-24-03 05:03:52       INVALID
    PGTFLIP        PROCEDURE        APR-24-03 05:04:29       INVALID
     
E.2.2.1 TIP本文の再コンパイル

仕様の再コンパイルによって、パッケージ本文に加えて、3つのクライアント・アプリケーションという依存オブジェクトが無効になっていることに注意してください。 これらの変更を完了するには、本文を再コンパイルして仕様に準拠し、3つのクライアント・アプリケーションを手動でコンパイルするか、Oracleデータベースで参照時に自動的にコンパイルする必要があります。

クライアント・アプリケーションが参照時にOracleデータベースによって再コンパイルされる場合、再コンパイル時に1回かぎりの遅延が発生します。

クライアント・アプリケーションの再コンパイル・エラー(ある場合):

  • クライアント・アプリケーション・ソースでの顧客の変更

  • TIPが再生成された場合、TIPに対する変更されたPG DD定義

  • ヒントが再生成されている場合、PG DDに保存されている複数のトランザクション入力バージョンから誤ったバージョンが生成されています

E.2.3 TIP仕様の不注意な変更

ヒントの生成時に誤りを犯した場合(たとえば、PG DDトランザクション定義を変更した場合、または再生成中に間違ったバージョンを誤って指定した場合)、再コンパイルされた本文は格納された仕様と一致しません。その結果、Oracleデータベースは仕様および依存クライアント・アプリケーションを無効化します。

正しい操作をリストアするには、TIPとその依存クライアント・アプリケーションを再生成および再コンパイルする必要がある場合があります。