機械翻訳について

3 TIPの作成

この以降のセクションでは、トランザクション・インタフェース・パッケージ(TIP)を定義、生成、コンパイルする方法について詳しく説明します。 これは、リモート・ホスト・トランザクション・プログラム(RTP)がすでに存在することを前提としています。 このトランザクション・プログラムは、TIPがどのように定義されているか、およびTIPがクライアント・アプリケーションによってどのように使用されているかを指示する操作上の特徴を有します。

次のステップでは、リモート・ホスト・トランザクション(RHT)で使用するためのTIPを作成します:

  • RHTを評価

  • PGAUステートメントを作成

  • TIPの定義と生成

  • TIPのコンパイル

TIPクリエータのための特権の付与

すべてのTIP開発者は、Oracleデータベースに付属している次のPL/SQLパッケージにアクセスする必要があります:

Microsoft Windowsの場合:

  • %ORACLE_HOME%\rdbms\adminDBMS_PIPE

  • %ORACLE_HOME%\rdbms\adminUTL_RAW

  • %ORACLE_HOME%\rdbms\adminUTL_PG

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

  • $ORACLE_HOME/rdbms/adminDBMS_PIPE

  • $ORACLE_HOME/rdbms/adminUTL_RAW

  • $ORACLE_HOME/rdbms/adminUTL_PG

ユーザー PGAADMIN以外のユーザーがTIPを開発する場合は、これらの操作を実行するために明示的な許可が必要です。 プライベートおよびパブリック許可の詳細については、インストール・ガイドの通信プロトコルに適した構成セクションのオプションの構成ステップを参照してください。

RHTの評価

以下のステップに従って、リモート・ホストのトランザクション・データ交換を識別し、慣れてください。

  1. リモート・ホスト・トランザクションの識別
  2. PGAU DEFINE CALLコマンド
  3. PGAU DEFINE DATAコマンド
  4. SNAを使用するゲートウェイでのPGAU DEFINE TRANSACTIONコマンド
  5. TCP/IPを使用したゲートウェイ上のPGAU DEFINE TRANSACTIONコマンド
  6. PGAU文の作成
  7. PGAUスクリプト・ファイルの作成

リモート・ホスト・トランザクションの識別

まず、RHTのデータ交換ステップを特定する必要があります。 これらは、RHTプログラムに組み込まれた送受信呼び出しです。

ゲートウェイがSNA通信プロトコルを使用している場合は、次のようにします:

RHTのデータ交換ステップは、次の言語で識別されます:

  • COBOLは次の目的で使用できます:

    • CICS

    • IMS

  • IBM 370アセンブラを使用することができます:

    • CICS

    • IMS

  • IBM REXXを以下の目的で使用することができます:

    • CICS

    • IMS

    • z/OS

ゲートウェイがTCP/IP通信プロトコルを使用している場合は、次のようにします:

IMSは、ゲートウェイがIMS ConnectのTCP/IPサポートを使用している場合にサポートされる唯一のOLTPです。 RHTプログラムは組み込みI/O PCB関数呼び出しを使用する必要があります。 この関数は、COBOLおよびアセンブラ言語でのみ識別されます。

PGAU DEFINE CALLコマンド

すべてのデータ交換のコール・リストを作成します。 このリストは一連のPGAUのDEFINE CALL文を指示します。 このPGAUコマンドの詳細については、「手続き型ゲートウェイ管理ユーティリティ」"DEFINE CALL"を参照してください。

各コールで使用する3つの重要なパラメータは次のとおりです:

  • cname: 作成されるコール定義の名前。

  • dname: 交換されるデータ構造の名前。そして

  • それがsend (OUT)であるかreceive (IN)であるかにかかわらず、

RHT sendはTIP OUTに対応し、RHT receiveはTIP INに対応します。

通信プロトコルがSNAの場合: PGAUのDEFINE CALLコマンドの詳細については、フレキシブルなコール・シーケンスを参照してください。

通信プロトコルがTCP/IPの場合: PGAUのDEFINE CALLコマンドの詳細については、フレキシブルなコール・シーケンスを参照してください。

PGAUコール・エントリは一度だけ定義されるため、重複を排除します。

このコール・リストは、使用される順番ではなく、TIP関数呼び出しを定義します。 各呼び出しが行われる順序はトランザクションの振る舞いであり、上位レベルのアプリケーションによってTIPに行われた呼び出しの順序が決定され、TIPはデータベース・ゲートウェイ・サーバーを介してRHTを呼び出します。 この呼び出しシーケンスは、アプリケーションとRHT間の同期を維持するために重要ですが、TIPはアプリケーションのアクセス・メソッドに過ぎず、呼び出しの上位レベルの順序についての知識はありません。

PGAU DEFINE DATAコマンド

RHT呼び出しリストの各呼び出しについて、呼び出しバッファ内で送受信されるRHTデータ構造を識別します。

そのようなすべての構造のデータ・リストを作成します。 このリストは一連のPGAUのDEFINE DATA文を指示します。

DEFINE DATAに使用する2つの重要なパラメータは次のとおりです:

  • dname:作成するデータ定義の名前。そして

  • dname.ext:は、データ定義が格納されているファイルです。

PGAUのデータ入力は一度しか定義されていないので、重複を排除します。

注意:

COBOLのレコード・レイアウト(コピーブック)をゲートウェイ・システムに移動します。

PGAUは、データ・アイテムを定義するときに、コピーブックを入力として使用できます。 交換するデータ・アイテムを特定したら、ファイル転送プログラムを使用してコピーブックをゲートウェイ・システムにダウンロードします。 コピーブックは後でデータ・アイテムを定義するために使用される。 この例で使用されているサンプルのコピーブックは、「管理ユーティリティのサンプル」に文書化されています。

SNAを使用するゲートウェイでのPGAU DEFINE TRANSACTIONコマンド

RHTプログラムのネットワーク・アドレス情報を決定します。 ネットワークまたはOLTPシステム・プログラマがこの情報を提供できます。

PGAU DEFINE TRANSACTIONに使用する5つの重要なパラメータは次のとおりです:

  • サイド・プロファイル名

  • TP name

  • LU name

  • LOGMODE

  • SYNCLEVEL

また、OLTPがデータを期待する言語のグローバリゼーション・サポート・キャラクタ・セット(charset)も識別する必要があります。

この時点で、ゲートウェイがSNAを使用している場合は、「PGAU文の作成」に進みます。

TCP/IPを使用するゲートウェイでのPGAU DEFINE TRANSACTIONコマンド

このコマンドを使用する前に、 PGA_TCP_IMSC表内の列として定義されているIMS Connectホスト名(またはTCP/IPアドレス)、ポート番号、およびその他のIMS Connectパラメータを知る必要があります。 pg4tcpmapツールを使用してパラメータをTCP/IPにマッピングするための準備については、「PG4TCPMAPコマンド(TCP/IPのみ)」を参照してください。

pg4tcpmapツールを実行するときは、一意の名前(サイド・プロファイル名)を指定する必要があります。 その名前は、あなたのTIPを作成するためにここで使用しているのと同じ名前でなければなりません。

ゲートウェイをSNAからTCP/IP通信プロトコルに変換してIMSトランザクションを呼び出す場合は、TIPを再生成する必要があります。

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

PGAU文の作成

RHTを評価した後、PG DDに配置するためのTIPからPGAUを定義します。

  1. データ・リストの各エントリに対して DEFINE DATA文を記述します。 たとえば、RHTに3つの異なるデータ構造がある場合、データ定義は次のようになります:

    DEFINE DATA dname1 LANGUAGE(IBMVSCOBOLII) INFILE(dnamel.ext);
    DEFINE DATA dname2 LANGUAGE(IBMVSCOBOLII) INFILE(dname2.ext);
    DEFINE DATA dname3 LANGUAGE(IBMVSCOBOLII) INFILE(dname3.ext);
    

    次に、これらのデータ定義を含むソース・ファイルをPGAUが入力として読み取ることができるディレクトリにコピーまたは転送する必要があります。

  2. コール・リストの各エントリの DEFINE CALL文を記述します。 例えば、あなたのRHTが受信センド受信セン・ドシーケンスを持っていたなら、あなたのコール定義は次のようになります:

    DEFINE CALL cname1 PARMS((dnamel IN));
    DEFINE CALL cname2 PARMS((dname2 OUT));
    DEFINE CALL cname3 PARMS((dname3 IN));
    DEFINE CALL cname4 PARMS((dname2 OUT));

    注意:

    必要に応じて、データ送信シーケンスを変更しない限り、コール定義を書き換えて、データ送信をより少ないチェンジに統合することができます。 次に例を示します。

    DEFINE CALL cname1 PARMS((dname1 IN),

    (dname2 OUT));

    DEFINE CALL cname3 PARMS((dname3 IN),

    (dname2 OUT));

    これにより、アプリケーションとTIP間の呼び出しが、4回の呼び出しから各呼び出しでINおよびOUTパラメータを渡す2回の呼び出しに削減されます。 TIPは、OUTパラメータの前に常にINパラメータを処理するため、データ送信シーケンスは変更されません。 しかし、この統合は必ずしも可能ではありません。

    通信プロトコルがSNAの場合: PGAUのDEFINE CALLコマンドの詳細については、フレキシブルなコール・シーケンスを参照してください。

    通信プロトコルがTCP/IPの場合: PGAUのDEFINE CALLコマンドの詳細については、フレキシブルなコール・シーケンスを参照してください。

  3. ネットワーク・アドレスとグローバリゼーション・サポート情報を指定して、すべての呼び出しを含む DEFINE TRANSACTION 文を作成します:

    DEFINE TRANSACTION tname CALLS(cname1
                                   cname2, ....
                                   cnameN)
                       ENVIRONMENT(IBM370)
                       SIDEPROF(profname) |
                         TPNAME(tpid) LUNAME(luname) LOGMODE(mode)
                       SYNCLEVEL(n)
                       NLS_LANGUAGE(charset);
    
  4. a GENERATE文を追加すると、TIP仕様を作成できます:

    GENERATE tname 

    注意:

    REPORT文を追加して、tnameのPG DDエントリをリストすることもできます:

    REPORT TRANSACTION tname with CALLS with DATA;

    また、注釈でスクリプトに注釈を付けます:

    REM this is a Comment

PGAUスクリプト・ファイルの作成

前のセクションでは、PGAUコマンドライン・プロセッサを介してPGAU文を実行するために必要なステップについて説明します。 時間を節約する手段として、すべての文(DEFINE DATADEFINE CALL、およびDEFINE TRANSACTION)を、tname.ctlという名前の単一の PGAUスクリプト・ファイルに、次の順序で記述することができます:

  1. データを定義

  2. コールを定義

  3. トランザクションを定義

  4. generate

    注意:

    おそらく、このスクリプトを複数回実行することになるので、まずPG DD内の以前のエントリを削除するために、 UNDEFINE文をインクルードする必要があります。

これは、tname.ctl PGAUスクリプト・ファイルの例です:

UNDEFINE TRANSACTION tname Version(all);
UNDEFINE CALL cname1 Version(all);
UNDEFINE CALL cname2 Version(all);
UNDEFINE DATA dname1 Version(all);
UNDEFINE DATA dname2 Version(all);
UNDEFINE DATA dname3 Version(all);
DEFINE DATA dname1 LANGUAGE(IBMVSCOBOLII) INFILE(dnamel.ext);
DEFINE DATA dname2 LANGUAGE(IBMVSCOBOLII) INFILE(dname2.ext);
DEFINE DATA dname3 LANGUAGE(IBMVSCOBOLII) INFILE(dname3.ext);
DEFINE CALL cname1 PARMS(dname1 IN),
                          (dname2 OUT));
DEFINE CALL cname2 PARMS(dname3 IN),
                         (dname2 OUT));
DEFINE TRANSACTION tname CALLS(cname1,
                              cname2, ....
                              cnameN)
                   ENVIRONMENT(IBM370)
                   SIDEPROF(profname) |
                     TPNAME(tpid) LUNAME(luname) LOGMODE(mode)
                   SYNCLEVEL(n)
                   NLS_LANGUAGE(charset);
Generate tname

TIPの定義と生成

制御ファイルを作成したら、PGAUを使用してPG DDエントリとTIP仕様ファイルを作成します。

注意:

PGAUを実行するユーザーIDには、次のものが必要です:

  • 指定ファイル(pgau.pkh, pgau.pkb、およびpgau.doc)を出力するための書き込みアクセス。ここで、pgauはデフォルト名です。そして

  • データ定義ソース・ファイル(dname.ext)への読み取りアクセス。ここで、dname.extはPGAU DEFINE DATA文で指定されます。

Oracle Database Gateway for APPC管理者ユーザーIDに格納されているPG DDに対してPGAUを呼び出します:

Microsoft Windowsの場合:

C:\> pgau
PGAU> connect pgaadmin\pw@database_specification_string 

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

$ pgau
PGAU> connect pgaadmin/pw@database_specification_string 

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

PGAU> set echo on
PGAU> spool tname.def
PGAU> @tname.ctl
PGAU> spool off

TIPは今すぐコンパイルする準備ができています。 デフォルトでは、 GENERATE文は、現在のディレクトリの次の出力ファイルにTIP仕様を書き込みます:

pgau.pkh (TIP Header)
pgau.pkb (TIP Body)
pgau.doc (TIP content documentation)

注意:

必要に応じて、 spoolおよびechoをスクリプト(tname.ctl)に追加するか、PG DDロールを使用するなどの他の拡張機能を作成し、共有PG DDのPGAU GROUP文を作成することもできます。

TIPのコンパイル

PGAUを終了します。 現在のディレクトリに残り、 SQL*Plusを呼び出します。

Microsoft Windowsの場合:

C:\> sqlplus userid/pw@database_specification_string 
SQL> set echo on
SQL> @pgau.pkh
SQL> @pgau.pkb

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

$ sqlplus userid/pw@database_specification_string 
SQL> set echo on
SQL> @pgau.pkh
SQL> @pgau.pkb

最後の2つのコマンドはそれぞれTIP仕様と本文をコンパイルします。

これで、クライアント・アプリケーションから呼び出せるTIPがコンパイルされました。 クライアント・アプリケーションがすでに書かれている場合は、テストを開始することができます。

クライアント・アプリケーションの設計とTIPのコンパイルの詳細については、「Oracle Database Gateway for APPCの紹介」「TIP内部」を参照してください。

ゲートウェイがSNAを使用している場合: PGAU文の構文と使用法については、クライアント・アプリケーション開発(SNAのみ)を参照してください。

ゲートウェイがIMS ConnectのTCP/IPサポートを使用している場合: PGAU文の構文と使用法については、クライアント・アプリケーション開発(TCP/IPのみ)を参照してください。

TIPコンテンツ・ドキュメント(tipname.doc)

このセクションでは、ユーザーがPGAUのGENERATEコマンドを発行したときに生成されるTIPドキュメンテーション・ファイルについて説明します。 このTIPコンテンツ・ファイルは、TIPで利用可能な関数呼び出しとPL/SQL変数とデータ型を記述します。

PGAU GENERATEは、常にtipname .docという名前のTIPコンテンツ・ファイルを生成します。 ファイル名はPGAUのGENERATEコマンドで指定されたトランザクションの名前であり、ファイル・タイプは常に.docです。 このTIPコンテンツ・ファイルには、次のセクションが含まれています:

  • GENERATIONステータス

    このセクションには、TIPが生成されるステータスが含まれています。

  • TIP取引

    このセクションでは、定義されたトランザクション属性を識別します。 これらはPGAU DEFINE TRANSACTIONの定義の結果です。

  • TIPデフォルト・コール

    このセクションでは、トランザクションを初期化および終了するためにユーザー・アプリケーションによって行われた呼び出しの構文を示します。 PGAUは、TIPまたはトランザクションの定義方法に関係なく、すべてのTIPにこれらのコールを生成します。

  • TIPユーザー・コール

    このセクションでは、アプリケーションがトランザクションと対話するためにユーザーが定義するコールの構文を示します。

  • TIPユーザー宣言

    このセクションでは、各呼び出しパラメータで指定されたユーザー・データ定義によって暗示される、TIPパッケージのパブリック・データ型宣言を識別します。

  • TIPユーザー変数

    このセクションには、アプリケーションによって参照されるか、またはアプリケーションによって参照されるTIP変数が含まれています。