1 Oracle Database Gateway for APPCの概要
Oracle Database Gateway for APPCを使用すると、ユーザーは、リモートのオンライン・トランザクション・プロセッサ(OLTP)でトランザクション・プログラムの実行を開始できます。 Oracle Database Gateway for APPCは、SNA通信プロトコルを使用して、OLTPとの接続を確立することができます。 ゲートウェイは、TCP/IP for IMS Connectを使用して、TCP/IPを介して IMS/TMとの通信を確立することもできます。 ゲートウェイを使用すると、OracleアプリケーションからIBMメインフレームのデータやサービスに、リモート・プロシージャ・コール(RPC)処理を介してシームレスにアクセスすることができます。
動作保証されているハードウェア・プラットフォームおよびオペレーティング・システム・バージョンの最新のリストについては、「Oracle Databaseインストール・ガイド」およびMy Oracle Support Webサイトの動作保証マトリックスを参照してください。 My Oracle SupportのWebサイトは、次のURLから参照できます。
次の項では、Oracle Database Gateway for APPCのアーキテクチャ、使用方法および機能について説明します。
1.1 ゲートウェイの概要
Oracle Database Gateway for APPCは、Oracleデータベースで使用可能な RPC 機能を拡張します。 ゲートウェイを使用すると、すべてのクライアント・アプリケーションで PL/SQLを使用して、ホスト上に存在するリモート・トランザクションプログラム(RTP)の実行をリクエストできます。 ゲートウェイは、 SNA Advanced Program-to-Program Communication (APPC)プロトコルを使用するシステム、およびIMS Connectの TCP/IPサポートを使用するIMS/TMシステムにRPC処理を提供します。 このアーキテクチャにより、IBMメインフレームおよび IMSで使用可能なデータおよびトランザクションにそれぞれ効率的にアクセスできます。
ゲートウェイは、リモート・ホスト・システム上にOracleソフトウェアを必要としません。 このため、ゲートウェイは、リモート・ホスト上でプログラミング作業をほとんどまたはまったく行わずに、既存のトランザクションを使用します。
SNAのみを使用するゲートウェイの場合:
1.2 ゲートウェイの特長
Oracle Database Gateway for APPCには次の長所があります。
-
ゲートウェイは、最小限の通信量でプログラムをリモート実行できるように最適化されています。 ゲートウェイへのインタフェースは、 Oracleデータベースにプリコンパイルされた、最適化された PL/SQLストアド・プロシージャ仕様(TIPまたはトランザクション・インタフェース・パッケージと呼ばれます)です。 リモート・ホストには追加のソフトウェア・レイヤーがないため、オーバーヘッドが発生するのはプログラムの実行時のみです。
-
クライアント・アプリケーションがオペレーティング・システム固有である必要はありません。 たとえば、アプリケーションは、CICS Transaction Server for z/OSのプログラムをコールできます。 プログラムをAIX上のCICSリージョンに移動する場合、アプリケーションを変更する必要はありません。
-
ユーザーがリモート・トランザクション・プログラムを実行するアプリケーションを呼び出す場合、リクエストがホストに送信されることは意識されません。
-
ゲートウェイは、既存のプロシージャ・ロジックを使用するインタフェースとして使用することも、Oracleデータベース環境に新しいプロシージャ・ロジックを統合するために使用することもできます。
-
Oracleデータベースとゲートウェイを統合すると、ゲートウェイで、Oracleデータベースの既存および将来の機能を活用できます。 たとえば、ゲートウェイはOracleストアド・プロシージャまたはデータベース・トリガーから呼び出せます。
-
トランザクション・サポート
ゲートウェイとOracleデータベースでは、リモート転送更新とOracleデータベース更新を協調して実行することができます。
-
ゲートウェイは、PL/SQLをサポートするすべてのツールまたはアプリケーションをサポートします。
-
Oracle Database Gateway for APPCは、次のように強力な開発環境を備えています。
-
リモート・トランザクションに関する情報を格納するデータ・ディクショナリ
-
PL/SQLトランザクション・インタフェース・パッケージ(TIP)を生成するツール
-
ゲートウェイ・ディクショナリに格納された情報を表示するレポート・ユーティリティ
-
完備されたトレースおよびデバッグ機能
-
DB2、IMSおよびCICSなどのデータストアに対して製品の使用方法を示す充実した一連のサンプル
-
-
ゲートウェイはサイト自律性を提供するため、ユーザーにユーザー認証などのタスクの実行を許可します。 また、メインフレーム・コンピュータ上で稼働している任意のセキュリティ・パッケージと互換性がある、ロールに基づくセキュリティを提供します。
-
グローバリゼーション・サポート
-
IMS ConnectのTCP/IPサポート
このリリースのゲートウェイには、IMS ConnectのTCP/IPサポートが含まれており、ユーザーはSNAまたはTCP/IP通信プロトコルのどちらを使用するかを選択できます。 IMS ConnectはTCP/IPクライアントがIMSトランザクションの実行をトリガーできるようにするIBM製品です。 ゲートウェイは、TCP/IP通信プロトコルを使用して、IMSトランザクションの実行をトリガーするIMS Connectにアクセスすることができます。 この構成にSNAの関与はありません。
ゲートウェイのこの機能に関連するものは次のとおりです:
1.3 用語
このガイドでは、次の用語と定義を使用します:
ゲートウェイ初期化ファイル
このファイルは、 initsid.ora
と呼ばれ、ゲートウェイの操作を制御するパラメータが含まれています。 SNAプロトコルを使用している場合は、「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プロトコルのゲートウェイ初期化パラメータ」を参照してください。 プロトコルがTCP/IPの場合は、「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」の付録B 「TCP/IP通信プロトコルのゲートウェイ初期化パラメータ」を参照してください。
ゲートウェイ・リモート・プロシージャ
Oracle Database Gateway for APPCには、ビルトインのリモート・プロシージャが用意されています。 一般に、次の3つのリモート・プロシージャが使用されます。
-
PGAINIT
:トランザクションを初期化 -
PGAXFER
:データを転送 -
PGATERM
:トランザクションを終了
ゲートウェイ・リモート・プロシージャの詳細は、このガイドの「ゲートウェイRPCインタフェース」および「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」の第1章 のリモート・プロシージャ・コール関数を参照してください。
dg4pwd
dg4pwd
は、通常ゲートウェイ初期化ファイルに格納されているパスワードを暗号化するユーティリティです。 パスワードが暗号化された形式でパスワード・ファイルに格納されるため、情報の安全性が向上します。 dg4pwd
ユーティリティの動作の詳細は、「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」のセキュリティ要件の章のゲートウェイ初期化ファイルのパスワードを参照してください。
pg4tcpmapツール
このツールは、ゲートウェイがIMS ConnectのTCP/IPサポートを使用している場合にのみ適用できます。 この関数は、SNAパラメータ(サイド・プロファイル名など)をTCP/IPパラメータ(OLTPホスト名、IMS接続ポート番号、IMS宛先IDなど)にマップすることです。
PGA(プロシージャ・ゲートウェイ管理)
PGAは、Oracle Database Gateway for APPCを構成するすべてのコンポーネントまたはほとんどのコンポーネントに関する、このガイド内の一般的なリファレンスです。 この用語は、特定の製品またはコンポーネントを指すと狭すぎる場合に使用されます。
PGDL(プロシージャ・ゲートウェイ定義言語)
PGDLは、PGAUにトランザクションとデータを定義するために使用される文のコレクションです。
PL/SQLストアド・プロシージャ仕様(PL/SQLパッケージ)
これは、Oracleデータベースに格納されるプリコンパイル済のPL/SQLプロシージャです。
UTL_RAW PL/SQLパッケージ(UTL_RAWファンクション)
ゲートウェイのこのコンポーネントは、PL/SQL RAW変数とリモート・ホスト・データ用の一連のデータ変換ファンクションを表します。 実行する変換のタイプはリモート・ホスト・データの言語により異なります。 詳細は、このガイドの「データ型の変換」を参照してください。
UTL_PG PL/SQLパッケージ(UTL_PGファンクション)
ゲートウェイのこのコンポーネントは、一連のCOBOL数値データ変換関数を表します。 サポートされている数値データ型変換については、このガイドの「UTL_PGインタフェース」の「NUMBER_TO_RAWおよびRAW_TO_NUMBER引数値」を参照してください。
Oracle Database
これは、RPCを実行して RTPを実行するためにゲートウェイと通信するOracleデータベース・インスタンスです。 Oracleデータベースは、ゲートウェイと同一システム上または別のシステム上のどちらにも存在できます。 異なるシステム上の場合は、両方のシステム上にOracle Netが必要です。 ゲートウェイ・アーキテクチャのビューは、「図1-2」を参照してください。
OLTP (オンライン・トランザクション・プロセッサ)
OLTPは、CICS Transaction Server for z/OSやIMS/TMなど、他のベンダーから使用できる多数のオンライン・トランザクション・プロセッサです。
PGAU(プロシージャ・ゲートウェイ管理ユーティリティ)
PGAUは、 PL/SQLトランザクション・インタフェース・パッケージ(TIP)の定義および生成に使用されるツールです。 PGAUの詳細は、このガイドの「プロシージャ・ゲートウェイ管理ユーティリティ」を参照してください。
PG DD (プロシージャ・ゲートウェイ・データ・ディクショナリ)
ゲートウェイのこのコンポーネントは、リモート・ホスト・トランザクション定義およびデータ定義のリポジトリです。 PGAUは、TIPを生成する際にPG DDの定義にアクセスします。 PG DDは、PGAUをサポートしますが、カスタマにより直接アクセスされることを想定していないため、データ型依存性があります。 「PG DD」表のリストについては、このガイドの「Database Gateway for APPCデータ・ディクショナリ」を参照してください。
RPC (リモート・プロシージャ・コール)
RPCは、別のシステムからのリクエストに応答してシステム上でプログラム・ロジックを実行するプログラミング・コールです。 詳細は、「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」の付録C のゲートウェイ・リモート・プロシージャ、およびこのガイドの「ゲートウェイRPCインタフェース」を参照してください。
RTP (リモート・トランザクション・プログラム)
リモート・トランザクション・プログラムはOLTPの制御下で実行されているカスタマ作成トランザクションで、ユーザーはPL/SQLプロシージャを使用してリモートから呼び出します。 ゲートウェイを介してリモート・トランザクション・プログラムを実行するには、RPCを使用して、ゲートウェイ関数を呼び出すPL/SQLプログラムを実行する必要があります。
TIP(トランザクション・インタフェース・パッケージ)
TIPは、アプリケーションとリモート・トランザクション・プログラムの中間にあるOracle PL/SQLパッケージです。 トランザクション・インタフェース・パッケージ(TIP)は、ゲートウェイを介してRTPを起動する一連のPL/SQLストアド・プロシージャです。 ヒントは、PL/SQL関数およびUTL_RAW/UTL_PG
関数を使用して、リモート・ホスト・データの変換および再フォーマットを実行します。
「図1-1」は、前述の項で説明した用語がゲートウェイのアーキテクチャに適用される場所を示しています。
図1-1 ゲートウェイとOracle Databaseの関係

図1-1 GatewayとOracle Databaseの関係」の説明
1.4 ゲートウェイの例およびサンプル・ファイル
次のサンプル・ファイルおよび例は、このガイド全体を通して説明するために参照されています。 SNAプロトコルを使用するゲートウェイには、IMS Connect用のTCP/IPを使用するゲートウェイとは異なる例およびサンプル・ファイルがあります。
SNAを使用するゲートウェイの例およびサンプル・ファイル
SNA通信プロトコルを使用するゲートウェイの場合、このガイドではCICS-DB2照会を例として使用します。 トランザクション・インタフェース・パッケージ(ヒント) pgadb2i.pkb
および pgadb2i.pkh
は、従業員番号empno
をDB2アプリケーションに送信し、従業員レコードemprec
を受け取ります。
CICS-DB2照会サンプルおよびそれに関連するPGAUコマンドは、Windowsプラットフォームの%ORACLE_HOME%\dg4appc\demo\CICS
ディレクトリおよびUNIXプラットフォームの$ORACLE_HOME/dg4appc/demo/CICS
ディレクトリでも使用できます。 この章の例として使用されるサンプルのCICS-DB2照会は、ファイル pgadb2i.pkh
および pgadb2i.pkb
にあります。 サンプルのインストールおよび使用の詳細は、同じディレクトリにあるREADME.doc
ファイルを参照してください。 これは、Windowsの場合は%ORACLE_HOME%\dg4appc\demo\CICS
ディレクトリ、UNIXの場合は$ORACLE_HOME/dg4appc/demo/CICS
ディレクトリにあります。
TCP/IPを使用したゲートウェイの例およびサンプル・ファイル
ゲートウェイでTCP/IP通信プロトコルを使用している場合、このガイドではIMS照会を例として使用します。 トランザクション・インタフェース・パッケージ(ヒント)pgtflip.pkh
およびpgtflip.pkb
は、IMS Connectを介して入力をIMSに送信し、フリップした入力を出力として受信します。
IMS照会サンプル(FLIP)およびそれに関連するPGAUコマンドは、%ORACLE_HOME%\dg4appc\demo\IMS
ディレクトリ(Windowsの場合)および$ORACLE_HOME/dg4appc/demo/IMS
ディレクトリ(UNIXの場合)にあります。 TCP/IPを使用したゲートウェイの例として使用されるIMS照会のサンプルは、ファイルpgtflip.pkh
およびpgtflip.pkb
にあります。
他のIMSサンプルのインストールおよび使用の詳細は、README.doc
ファイルを参照してください。 これは、Windowsの場合は%ORACLE_HOME%\dg4appc\demo\IMS
ディレクトリ、UNIXの場合は $ORACLE_HOME/dg4appc/demo/IMS
ディレクトリにあります。
1.5 ゲートウェイのアーキテクチャ
Oracle Database Gateway for APPCのアーキテクチャはいくつかのコンポーネントで構成されています。
-
ゲートウェイとOracleデータベースの関係を確立するための様々なメソッドの説明は、インストール・ガイドの通信プロトコルに対応する構成セクションを参照してください。
Oracle Databaseは、ゲートウェイ以外のアプリケーションでも使用できます。
-
ゲートウェイ
Oracle Database Gateway for APPCは、必要なバージョンのオペレーティング・システムを実行できるサーバー上にインストールされる必要があります。
-
OLTPには、SNAまたはTCP/IP通信プロトコルを使用してゲートウェイからアクセスできる必要があります。 多数のOracleデータベースが同一のゲートウェイにアクセスすることができます。 システム・ゲートウェイを1つだけインストールして、複数のOLTPにアクセスするように構成することができます。
-
TCP/IPを使用するゲートウェイの場合: TCP/IPを介してサポートされる OLTPは、IMSからIMS Connect.The OLTPを介してのみ、TCP/IPプロトコルを使用してシステムにアクセスできる必要があります。 多数のOracleデータベースが同一のゲートウェイにアクセスすることができます。 システム・ゲートウェイを1つだけインストールして、複数のOLTPにアクセスするように構成することができます。 IMS Connectから複数のIMSシステムにアクセスすることができます。 多数のIMS Connectシステムを利用できる場合、そのいずれも、複数のIMSシステムに接続している可能性があります。
-
「図1-2」は、前の項で説明したように、SNAまたはTCP/IPを使用したOracle Database Gateway for APPCのアーキテクチャを示しています。
図1-2 SNAまたはTCP/IPプロトコルを搭載したゲートウェイ・アーキテクチャ

図1-2 SNAまたはTCP/IPプロトコルを搭載したゲートウェイ・アーキテクチャ」の説明
1.6 ゲートウェイとの通信
ユーザーまたはクライアント・プログラムとゲートウェイとの間の通信はすべて、Oracleデータベースで実行されるTIPを介して処理されます。 TIPは、次の関数を提供する標準の PL/SQLパッケージです:
-
リモート・トランザクション・プログラムと交換できるPL/SQL変数を宣言
-
通信における対話の開始、データの交換および対話の終了を処理するゲートウェイ・パッケージを呼び出します。
ゲートウェイ付属のPGAUは、自動的にTIP仕様を生成します。
ゲートウェイはデータベース・リンクを使用してOracleデータベースに識別されます。 データベース・リンクは他のOracleデータベースを識別するために使用される同一の構成要素です。 ゲートウェイでのファンクションは、PL/SQLで次のように参照されます。
function_name@dblink_name
1.7 RPC関数
Oracle Database Gateway for APPCは、 RPCを介してクライアントによってコールされる一連の関数を提供します。 これらの関数は、ゲートウェイに対して、開始、データ転送、および別のシステム上のOLTPの下で実行されているRTPの終了を指示します。
表1-1 に、RPC関数と、ゲートウェイとリモート・ホストで相互に連関して呼び出されるコマンドの一覧を示します。
表1-1 ゲートウェイとリモート・ホストのRPC関数とコマンド
アプリケーション | Oracleのヒント | ゲートウェイ | リモート・ホスト |
---|---|---|---|
|
|
|
プログラムの開始 |
|
|
|
データ交換 |
|
|
|
プログラムの終了 |
1.7.1 TIP機能
次の各項では、最初にリモート・ホストへの接続を確立し、次にターゲット・トランザクション・プログラムからデータを交換し、最後に会話を終了することによって、TIPがどのように機能するかを説明します。
1.7.1.1 リモート・トランザクションの開始
TIPは、ゲートウェイ関数PGAINIT
のいずれかを使用して、リモート・ホストへの接続を開始します。
通信プロトコルがSNAの場合: PGAINIT
は、入力として、ターゲット・トランザクション・プログラムとの会話を開始するために必要な SNAパラメータを提供します。 これらのパラメータは、会話識別子をPGAINIT
に戻すSNAネットワークを介して送信されます。 ターゲット・プログラムへの今後のコールでは、会話識別子を入力パラメータとして使用します。
通信プロトコルがTCP/IPの場合: PGAINIT
は、入力としてを提供し、ターゲット・トランザクション・プログラムとの会話を開始するために、必要なTCP/IP parameters.TheseパラメータがTCP/IPネットワークを介して送信されます。 TCP/IPネットワークは、 ソケット・ファイル記述子をPGAINIT
に戻します。 PGAXFER
や PGATERM
などの将来の呼出しでは、この同じソケット・ファイル記述子を入力パラメータとして使用します。
1.7.1.3 リモート・トランザクションの終了
リモート・プログラムとの通信が完了すると、ゲートウェイ関数PGATERM
はゲートウェイとリモート・ホスト間の会話を終了します。
通信プロトコルがSNAの場合: PGATERM
は、会話の終了をリクエストするための入力パラメータとして会話識別子を使用します。
通信プロトコルがTCP/IPの場合: PGATERM
は、TCP/IPのソケット・ファイル記述子を入力パラメータとして使用して、会話の終了をリクエストします。
ノート:
この時点で、通信プロトコルがSNAの場合は、次の項「SNAを使用したゲートウェイの概要」に進みます。
ゲートウェイ通信プロトコルがTCP/IPの場合は、「TCP/IPを使用したゲートウェイの概要」に進みます。
1.8 SNAを使用したゲートウェイの概要
SNA通信プロトコルを使用している場合は、次の項を参照して、ゲートウェイがOracleデータベースおよびメインフレームとどのように通信するか、およびゲートウェイに固有のトランザクション・タイプとTIPを記述するかについて理解を深めてください。
1.8.1 SNAを使用するゲートウェイのトランザクション・タイプ
Oracle Database Gateway for APPCでは、 の3タイプのトランザクションがサポートされており、リモート・ホスト・システムとの間でデータの読取りおよび書込みが行われます:
-
ワンショット
-
永続
永続トランザクションでは、対話を終了する前に、リモート・トランザクションとの間でデータを交換するための呼出しを複数回行うことができます。
-
複数会話
複数会話型トランザクションでは、データベース・ゲートウェイ・サーバーを使用して、リモート・トランザクション・プログラムへの1回の呼出しで複数のレコードを交換できます。
トランザクション・タイプの詳細は、このガイドの「クライアント・アプリケーション開発(SNAのみ)」の「リモート・ホストのトランザクション・タイプ」を参照してください。
1.8.2 Oracle Database (SNA)との単純なゲートウェイ通信
この項では、SNA通信プロトコルを使用するゲートウェイ上のメインフレームと Oracleデータベース間の単純な通信について説明します。 Oracle Database Gateway for APPCを使用すると、IBM CICS、IMS、APPC/MVSなど、IBMメインフレーム上のOracleデータベースと様々なプログラム間の情報の転送を開始するための独自のプロシージャを記述できます。
Oracle Database Gateway for APPCの通信機能の図については、Microsoft Windowsの%ORACLE_HOME%\dg4appc\demo\CICS\pgacics.sql
またはUNIXベースのプラットフォーム上の$ORACLE_HOME/dg4appc/demo/CICS/pgacics.sql
を参照してください。 これは、OracleデータベースとCICS Transaction Server for z/OS間のサンプル通信です。 この単純な PL/SQLプロシージャpgacics.sql
を実行すると、Oracleデータベースはデータベース・ゲートウェイを起動します。このデータベース・ゲートウェイでは、 SNAを使用してCICSの FLIP
トランザクションと対話します。 これらのステップの詳細は、「SNAを使用してゲートウェイとメインフレーム間で通信するステップ」を参照してください。 ゲートウェイの構成時に、ストアド・プロシージャがすでにコンパイルおよびリンクされていることに注意してください。
1.8.2.1 SNAを使用してゲートウェイとメインフレーム間で通信するステップ
次のステップでは、ゲートウェイとメインフレーム間で通信するための通信プロトコルがSNAの場合に、「図1-3」に示すWindowsからメインフレームへの通信プロセスについて説明します:
図1-3 SNAを使用した、Oracle Databaseとメインフレーム間の通信

図1-3 SNAを使用したOracle Databaseとメインフレーム間の通信」の説明
1.8.3 SNAを使用してPL/SQLプログラムを生成するためのヒントの記述
SNA通信プロトコルを使用するほとんどのトランザクションは、「図1-3」で参照されているサンプルpgacics.sql
ファイルよりもはるかに大きく複雑です。 さらに、標準サイズのRTPとの通信では、非常に長いPL/SQLファイルを作成する必要があります。 PGAU関数は、PL/SQLプロシージャを生成します。
次に、ヒントを生成するために必要なの4つのステップの簡単な説明を示します。 このプロシージャの詳細は、「ヒントの作成」を参照してください。PGAUの詳細は、「プロシージャ・ゲートウェイ管理ユーティリティ」を参照してください。
このセクションのすべてのパラメータ名は、Microsoft Windowsの%ORACLE_HOME%\pga4appc\demo\CICS
ディレクトリにあるpgadb2i.ctl
、またはUNIXベースのシステムの$ORACLE_HOME/pga4appc/demo/CICS
ディレクトリにあるファイルから取得されます。
1.8.3.1 SNAを使用してゲートウェイにTIPを書き込むステップ
次のステップに従って、ヒントを作成します。
- ステップ1 制御ファイルを作成します:
-
ユーザーが制御ファイルを書き込みます。 制御ファイルには、主に4タイプの PGAUコマンドがあります:
-
DEFINE DATA
. これは、COBOLデータ定義を使用して、入力フィールドと出力フィールドを定義するために使用されます。-
サンプル定義データ:
define data empno plsdname(empno) usage(pass) language(ibmvscobolii) infile("empno.cob");
-
-
DEFINE CALL
. これは、パッケージの一部として生成されるPL/SQL関数コールを定義するために使用されます。-
サンプル定義コール:
define call db2imain pkgcall(pgadb2i_main) parms((empno in),(emprec out));
-
-
DEFINE TRANSACTION
. これは、前述の関数をグループ化し、ヒントが依存するその他のパラメータを指定するために使用されます。-
サンプルの定義トランザクション:
define transaction db2i call(db2imain,db2idiag) sideprofile(CICSPGA) tpname(DB2I) logmode(oraplu62) synclevel(0) nls_language("american_america.we8ebcdic37c");
-
-
GENERATE
. これは、以前に格納されたデータ、コールおよびトランザクション定義からTIP仕様ファイルを生成するために使用されます。-
サンプルの生成トランザクション:
generate db2i pkgname(pgadb2i) pganode(pga) outfile("pgadb2i");
-
-
- ステップ2 PGAU内で制御ファイルを実行
-
PGAU内で制御ファイルを実行すると、データ、コールおよびトランザクション定義のPG DDエントリが作成され、 仕様ファイル(
pgadb2i.pkh
およびpgadb2i.pkb
など)が生成されます:Microsoft Windowsの場合:
C:\> pgau PGAU> CONNECT<userid>/<password>@<database>_specification_string> PGAU> @pgadb2i.ctl
UNIXベース・システムの場合:
$ pgau PGAU> CONNECT<userid>/<password>@<database>_specification_string> PGAU> @pgadb2i.ctl
- ステップ3 仕様ファイルを実行
-
仕様ファイルを実行すると、PL/SQLストアド・プロシージャが作成されます。 ヘッダー仕様ファイル (たとえば、
pgadb2i.pkh
)を最初に実行する必要があることに注意してください:Microsoft Windowsの場合:
C:\> sqlplus<userid>/<password>@<database_specification_string> SQL> @pgadb2i.pkh; SQL> @pgadb2i.pkb;
UNIXベース・システムの場合:
$ sqlplus<userid>/<password>@<database_specification_string> SQL> @pgadb2i.pkh; SQL> @pgadb2i.pkb;
- ステップ4 TIPを実行するドライバ・プロシージャの作成
-
これで、TIPを使用する準備ができました。 便宜上、通常は ドライバ・プロシージャ(
db2idriv
など)を使用してコールされます。 このドライバは、個々のストアドプロシージャを正しい順序で呼び出します。 ドライバ・プロシージャを作成して実行します:Microsoft Windowsの場合:
C:\> sqlplus <userid>/<password>@<database_specification string> SQL> @pgadb2id.sql SQL> execute db2idriv('000320');
UNIXベース・システムの場合:
$ sqlplus <userid>/<password>@<database_specification string> SQL> @pgadb2id.sql SQL> execute db2idriv('000320');
1.9 TCP/IPを使用したゲートウェイの概要
TCP/IP通信プロトコルを使用している場合は、次の項を参照して、ゲートウェイがOracleデータベースおよびメインフレームと通信する方法、およびゲートウェイに固有のトランザクション・タイプとTIPを記述する方法について理解を深めてください。
1.9.1 TCP/IPを使用したゲートウェイのトランザクション・タイプ
IMS ConnectのTCP/IPサポートを使用する Oracle Database Gateway for APPCでは、次の3つのタイプのトランザクション・ソケット接続がサポートされています:
-
トランザクション・ソケット
ソケット接続は1つのトランザクションの間だけ継続します。
-
ソケット接続は複数のトランザクションを通じて継続します。
-
ソケット接続は、1つの入力と1つの出力で構成される1回の交換の間だけ継続します。
ノート:
対話トランザクションを実装する場合は非永続ソケット・タイプを使用しないでください。複数の接続と切断が発生します。
これらのパラメータの機能および使用の詳細は、このガイドの「PG4TCPMAPコマンド(TCP/IPのみ)」の
pg4tcpmap
コマンドに関する項を参照してください。静的なSQLをDB2で実行するIMS/TMトランザクションを開始することができます。 これは、IMS Connect用のTCP/IPをサポートするOracle Database Gateway for APPCの機能を示しています。
1.9.2 Oracle Databaseとの単純なゲートウェイ通信(TCP/IP)
この項では、ゲートウェイとリモート・ホスト(IMS)間の通信プロトコルとして TCP/IP for IMS Connectが使用されている場合の、IMSと Oracleデータベース間の単純な通信について説明します。 Oracle Database Gateway for APPCを使用すると、独自のプロシージャを記述して、IMS上のOracleデータベースと I/O PCBプログラム間の情報の転送を開始できます。
IMS ConnectでTCP/IPを使用するゲートウェイの通信機能の図については、UNIXベースのシステムではMicrosoft Windowsまたは $ORACLE_HOME/dg4appc/demo/IMS/pgaims.sql
の%ORACLE_HOME%\dg4appc\demo\IMS\pgaims.sql
ファイルを参照してください。
単純な PL/SQLプロシージャpgaims.sql
を実行すると、Oracleデータベースはゲートウェイをコールします。ゲートウェイは、 TCP/IPを使用して、IMSのサンプル・トランザクション FLIP
と対話します。 PL/SQLプロシージャの実行時に行われる通信ステップの詳細は、「TCP/IPを使用したゲートウェイとIMS_間の通信ステップ」を参照してください。 ゲートウェイの構成時に、ストアド・プロシージャがすでにコンパイルおよびリンクされていることに注意してください。
1.9.2.1 TCP/IPを使用したゲートウェイの通信の準備
ゲートウェイでIMS ConnectのTCP/IPサポートを使用している場合は、pg4tcpmap
ツールを使用して、PGAINIT
パラメータとターゲット・システムのネットワーク・アドレス情報間の必要なマッピングを作成する必要があります。 pg4tcpmap
ツールは、DEFINE TRANSACTION
で指定されたサイド・プロファイル名をTCP/IPおよびIMS接続属性(ポート番号、IPアドレス(ホスト名)、IMSサブシステムIDなど)にマップします。 TCP/IPパラメータは、ターゲット・トランザクション・プログラムとの会話を開始するために使用されます。
IMS ConnectのTPC/IPサポートに依存するTIPを実行する前に、PGA_TCP_IMSC
表に移入するには、pg4tcpmap
ツールを実行する必要があります。
-
pg4tcpmap
コマンドを設定して実行し、PGA_TCP_IMSC
表に移入する手順の詳細は、このガイドの「PG4TCPMAPコマンド(TCP/IPのみ)」を参照してください。 「PG4TCPMAPコマンド(TCP/IPのみ)」では、PGA_TCP_IMSC
表の内容と、表の使用方法の例も説明します。 -
サンプル
pg4tcpmap
実行のトレース・ファイルは、このガイドの「トラブルシューティング」にあります。 -
画面出力ファイルは、「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」の付録B 「TCP/IP通信プロトコルのゲートウェイ初期化パラメータ」にあります。
1.9.2.2 TCP/IPを使用したゲートウェイとIMS間の通信ステップ
次のステップでは、通信プロトコルが TCP/IPの場合の「図1-4」に示すように、通信プロセスについて説明します:
「図1-4」は、前のステップ1から5で説明した通信プロセスを示しています。
図1-4 TCP/IPを使用した、Oracle Databaseとメインフレーム間の通信

図1-4 TCP/IPを使用したOracle Databaseとメインフレーム間の通信」の説明
1.9.3 TCP/IPを使用してPL/SQLプログラムを生成するためのヒントの記述
ほとんどのトランザクションは、「図1-4」で参照されているサンプルpgaims.sql
ファイルよりもはるかに大きく複雑です。 さらに、標準サイズのRTP (リモート・トランザクション・プログラム)との通信では、非常に長いPL/SQLファイルを作成する必要があります。 Oracle Database Gateway for APPCのTIP関数は、PL/SQLプロシージャを生成します。
次に、ヒントを生成するために必要なの4つのステップの簡単な説明を示します。 このプロシージャの詳細は、「ヒントの作成」を参照してください。PGAUの詳細は、「プロシージャ・ゲートウェイ管理ユーティリティ」を参照してください。
このセクションのすべてのパラメータ名は、Microsoft Windowsの%ORACLE_HOME%\pga4appc\demo\IMS
ディレクトリのpgtflip.ctl
またはUNIXベースのシステムの$ORACLE_HOME/pga4appc/demo/IMS
ディレクトリから取得されます。
1.9.3.1 TCP/IPを使用してゲートウェイにヒントを書き込むステップ
次のステップに従って、ヒントを作成します。
- ステップ1 制御ファイルを作成します:
-
ユーザーが制御ファイルを書き込みます。 制御ファイルには、主に4タイプの PGAUコマンドがあります:
-
DEFINE DATA
. これは、COBOLデータ定義を使用して、入力フィールドと出力フィールドを定義するために使用されます。-
サンプル定義データ:
define data flipin plsdname(flipin) usage(pass) language(ibmvscobolii) ( 01 msgin pic x(20). ) define data flipout plsdname(flipout) usage(pass) language(ibmvscobolii) ( 01 msgout pic x(20). )
-
-
DEFINE CALL
. これは、パッケージの一部として生成されるPL/SQL関数コールを定義するために使用されます。-
サンプル定義コール:
define call flipmain pkgcall(pgtflip_main) parms((flipin in),(flipout out));
-
-
DEFINE TRANSACTION
. これは、前述の関数をグループ化し、ヒントが依存するその他のパラメータを指定するために使用されます。-
サンプルの定義トランザクション:
define transaction imsflip call(flipmain) sideprofile(pgatcp) tpname(flip) nls_language("american_america.us7ascii");
ノート:
TCP/IPを使用するゲートウェイでは、サイド・プロファイル名の値は実際には、ネットワークの構成中にユーザーが値、ホスト名、ポート番号、およびその他の多くのIMS Connect値を指定したときに定義されたTCP/IPの一意の名前です。
-
-
GENERATE
. これは、以前に格納されたデータ、コールおよびトランザクション定義からTIP仕様ファイルを生成するために使用されます。-
サンプルの生成トランザクション:
generate imsflip pkgname(pgtflip) pganode(pga10ia) outfile("pgtflip") diagnose(pkgex(dc,dr));
-
-
- ステップ2 PGAU内で制御ファイルを実行
-
PGAU内で制御ファイルを実行すると、データ、コールおよびトランザクション定義のPG DDエントリが作成され、 仕様ファイル(
pgtflip.pkh
およびpgtflip.pkb
など)が生成されます:Microsoft Windowsの場合:
C:\> cd %ORACLE_HOME%\dg4appc\demo\IMS C:\> pgau PGAU> CONNECT userid/password@database_specification_string PGAU> @pgtflip.ctl
UNIXベース・システムの場合:
$ pgau PGAU> CONNECT userid/password@database_specification_string PGAU> @pgtflip.ctl
- ステップ3 仕様ファイルを実行
-
仕様ファイルを実行すると、PL/SQLストアド・プロシージャが作成されます。 ヘッダー指定ファイル(
pgtflip.pkh
など)を最初に実行する必要があることに注意してください:Microsoft Windowsの場合:
C:\> sqlplus userid/password@database_specification_string SQL> @pgtflip.pkh; SQL> @pgtflip.pkb;
UNIXベース・システムの場合:
$ sqlplus userid/password@database_specification_string SQL> @pgtflip.pkh; SQL> @pgtflip.pkb;
- ステップ4 TIPを実行するドライバ・プロシージャの作成
-
これで、TIPを使用する準備ができました。 便宜上、通常は ドライバ・プロシージャ(
pgtflipd
など)を使用してコールされます。 このドライバは、個々のストアドプロシージャを正しい順序で呼び出します。 ドライバ・プロシージャを作成して実行します:Microsoft Windowsの場合:
C:\> sqlplus <userid>/<password>@<database_specification string> SQL> @pgtflip.sql SQL> execute pgtflipd('hello');
UNIXベース・システムの場合:
$ sqlplus <userid>/<password>@<database_specification string> SQL> @pgtflip.sql SQL> execute pgtflipd('hello');