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を介してOLTPとの通信を確立することもできます。 ゲートウェイを使用すると、OracleアプリケーションからIBMメインフレームのデータやサービスに、リモート・プロシージャ・コール(RPC)処理を介してシームレスにアクセスすることができます。 ゲートウェイは、CPI-C APIを使用できる任意のアプリケーションに、直接、またはCICSなどのTPモニターを介してアクセスすることができます。
次のトピックでは、ゲートウェイのアーキテクチャ、使用方法および機能について説明します。
1.1 ゲートウェイの概要
Oracle Database Gateway for APPCは、Oracleデータベースで使用できるリモート・プロシージャ・コール(RPC)の機能を拡張します。 ゲートウェイを使用すると、任意のクライアント・アプリケーションから、PL/SQLを使用して、ホスト上にあるリモート・トランザクション・プログラム(RTP)の実行をリクエストできます。 ゲートウェイは、SNA APPC(Advanced Program-to-Program Communication)プロトコルを使用するシステム、およびTCP/IP for IMS Connectプロトコルを使用するシステムに、RPC処理を提供します。 このアーキテクチャは、それぞれIBMメインフレームおよびIMS上で利用できるデータとトランザクションへの効率的アクセスを可能にします。
ゲートウェイは、リモート・ホスト・システム上にOracleソフトウェアを必要としません。 このため、ゲートウェイで既存のトランザクションを使用する場合、リモート・ホスト上でプログラミングする必要はほとんど、またはまったく不要です。
SNAを使用するゲートウェイの場合:
汎用の標準プロトコルであるAPPCを使用することで、ゲートウェイから多数のシステムにアクセスできます。 ゲートウェイは、あらゆるプラットフォーム上でのIBM社のCICS 、IBM社のIMSおよびAPPC/MVSなど、実質的にすべてのAPPC対応システムと通信することができます。 これらのトランザクション・モニターを使用すると、ゲートウェイがVSAM、DB2(静的SQL)、IMSなど多くのデータストアにアクセスできるため、広範囲のシステムにアクセスできます。
ゲートウェイは、CPI-C APIを使用できる任意のアプリケーションに、直接、またはCICSなどのTPモニターを介してアクセスすることができます。
1.2 ゲートウェイの特長
Oracle Database Gateway for APPCには次の長所があります。
-
IMS ConnectのTCP/IPサポート
このリリースのゲートウェイにはTCP/IP support for IMS Connectが含まれているため、通信プロトコルはSNAとTCP/IPのどちらかを選択することができます。 IMS ConnectはTCP/IPクライアントがIMSトランザクションの実行をトリガーできるようにするIBM製品です。 ゲートウェイは、TCP/IP通信プロトコルを使用して、IMSトランザクションの実行をトリガーするIMS Connectにアクセスすることができます。 TCP/IPの使用を選択した場合、その構成にSNAは関与しません。 ゲートウェイのこの新機能に関連するのは、次のものです。
-
pg4tcpmap
ツール。 このリリースのゲートウェイには、サイド・プロファイル名からTCP/IPおよびIMS Connectに情報をマップする目的を持つ新しいツールが含まれています。 ゲートウェイ・マッピング・ツールの詳細は、「Oracle Database Gateway for APPCユーザー・ガイド」の第6章、およびこのガイドの「TCP/IP通信プロトコルを使用したゲートウェイ構成」を参照してください。
-
-
高速インタフェース
ゲートウェイは、最小限の通信量でプログラムをリモート実行できるように最適化されています。 ゲートウェイへのインタフェースは、トランザクション・インタフェース・パッケージ(TIP)と呼ばれる、最適化されたPL/SQLストアド・プロシージャ仕様で、Oracleデータベースにプリコンパイルされています。 リモート・ホスト・システム上に追加ソフトウェア・レイヤーがないため、プログラムの処理中にのみオーバーヘッドが発生します。
-
位置の透過性
クライアント・アプリケーションがオペレーティング・システム固有である必要はありません。 たとえば、アプリケーションからCICS Transaction Server for z/OS上のプログラムを呼び出すことができます。 プログラムをpSeries上のCICS領域に移動する場合も、アプリケーションを変更する必要はありません。
-
アプリケーションの透過性
ユーザーがリモート・トランザクション・プログラムを実行するアプリケーションを呼び出す場合、リクエストがホストに送信されることは意識されません。
-
柔軟なインタフェース
ゲートウェイは、既存のプロシージャ・ロジックを使用するインタフェースとして使用することも、Oracleデータベース環境に新しいプロシージャ・ロジックを統合するために使用することもできます。
-
Oracleデータベース統合
Oracleデータベースとゲートウェイを統合すると、ゲートウェイで、既存の、および今後実装されるOracle機能を活用できます。 たとえば、ゲートウェイはOracleストアド・プロシージャまたはデータベース・トリガーから呼び出せます。
-
トランザクション・サポート
ゲートウェイとOracleデータベースでは、リモート転送更新とOracleデータベース更新を協調して実行することができます。
-
幅広いツールの選択
ゲートウェイは、PL/SQLをサポートするすべてのツールまたはアプリケーションをサポートします。
-
PL/SQLコード生成機能
Oracle Database Gateway for APPCは、次のように強力な開発環境を備えています。
-
リモート・トランザクションに関する情報を格納するデータ・ディクショナリ
-
PL/SQLトランザクション・インタフェース・パッケージ(TIP)を生成するツール
-
ゲートウェイ・ディクショナリに格納された情報を表示するレポート・ユーティリティ
-
完備されたトレースおよびデバッグ機能
-
DB2、IMSおよびCICSなどのデータストアに対して製品の使用方法を示す充実した一連のサンプル
-
-
サイトの自律性とセキュリティ
ゲートウェイはサイト自律性を提供するため、ユーザーにユーザー認証などのタスクの実行を許可します。 また、メインフレーム・コンピュータ上で稼働している任意のセキュリティ・パッケージと互換性がある、ロールに基づくセキュリティを提供します。
-
自動変換
TIPを介して次の変換が実行されます。
-
ASCIIとEBCDICの間
-
リモート・トランザクション・プログラムの各データ型とPL/SQLの各データ型の間
-
多数の言語での各国語サポート
-
1.3 用語
このガイドを通じて、次の用語と定義を使用します。 ゲートウェイ、そのコンポーネントおよび関数に関連する用語および定義のより詳細なリストは、「ゲートウェイ用語」を参照してください。
Oracle Database
これは、リモート・トランザクション・プログラム(RTP)を実行するリモート・プロシージャ・コールを実行する目的でゲートウェイと通信する、任意のOracleデータベース・インスタンスです。 Oracleデータベースは、ゲートウェイと同一システム上または別のシステム上のどちらにも存在できます。 異なるシステム上の場合は、両方のシステム上にOracle Netが必要です。 ゲートウェイ・アーキテクチャのビューは、「図1-2」を参照してください。
OLTP
Online Transaction Processor(OLTP)とは、CICS Transaction Server for z/OS、IMS/TMおよびz/OSなど、他のベンダーから入手できる多数のオンライン・トランザクション・プロセッサのいずれかです。
PGAU
プロシージャ・ゲートウェイ管理ユーティリティ(PGAU)は、PL/SQLトランザクション・インタフェース・パッケージ(TIP)を定義および生成するために使用されるツールです。 PGAUの詳細は、「Oracle Database Gateway for APPCユーザー・ガイド」の第2章、「プロシージャ・ゲートウェイ管理ユーティリティ」を参照してください。
PG DD
プロシージャ・ゲートウェイ・データ・ディクショナリ(PG DD)は、リモート・ホスト・トランザクション(RHT)定義とデータ定義のリポジトリです。 PGAUは、TIPを生成する際にデータ・ディクショナリ(PG DD)の定義にアクセスします。 PG DDは、PGAUをサポートしますが、カスタマにより直接アクセスされることを想定していないため、データ型依存性があります。 「PG DD」表のリストは、「Oracle Database Gateway for APPCユーザー・ガイド」の付録A 「Database Gateway for APPCデータ・ディクショナリ」を参照してください。
RPC
リモート・プロシージャ・コール(RPC)は、別のシステムからのリクエストに応答してシステム上でプログラム・ロジックを実行するプログラミング・コールです。 詳細は、「ゲートウェイ用語」を参照してください。また、「Oracle Database Gateway for APPCユーザー・ガイド」の付録C 「ゲートウェイRPCインタフェース」も参照してください。
RTP
リモート・トランザクション・プログラム(RTP)はOLTPの制御下で実行されているカスタマ作成トランザクションで、ユーザーはPL/SQLプロシージャを使用してリモートから呼び出します。 ゲートウェイを介してRTPを実行するには、RPCを使用して、ゲートウェイ関数を呼び出すPL/SQLプログラムを実行する必要があります。
進行中取引
トランザクション・インタフェース・パッケージ(TIP)は、アプリケーションとリモート・トランザクション・プログラムの中間にあるOracle PL/SQLパッケージです。 TIPは、ゲートウェイを介してリモート・トランザクション・プログラムを呼び出す一連のPL/SQLストアド・プロシージャです。 TIPは、PL/SQL関数とUTL_RAW
関数またはUTL_PG
関数を使用して、リモート・ホスト・データの変換および再フォーマットを実行します。
「図1-1」は、前述の項で説明した用語がゲートウェイのアーキテクチャ内で適用される場所を示しています。
図1-1 WindowsでのゲートウェイとOracleデータベースの関係

「図1-1 WindowsでのゲートウェイとOracleデータベースの関係」の説明
1.4 ゲートウェイのアーキテクチャ
Oracle Database Gateway for APPCのアーキテクチャはいくつかのコンポーネントで構成されています。
-
Oracleデータベース
-
ゲートウェイ
Oracle Database Gateway for APPCは、必要なバージョンのオペレーティング・システムを実行できるサーバー上にインストールされる必要があります。
-
OLTP
OLTPは、SNAまたはTCP/IP通信プロトコルを使用してゲートウェイからアクセス可能である必要があります。 多数のOracleデータベースが同一のゲートウェイにアクセスすることができます。 システム・ゲートウェイを1つだけインストールして、複数のOLTPにアクセスするように構成することができます。
-
TCP/IP support for IMS Connectを使用するゲートウェイの場合: TCP/IPを介してサポートされているOLTPは、IMS Connectを介するIMSだけです。
OLTPは、TCP/IPプロトコルを使用するシステムにアクセスできる必要があります。 多数のOracleデータベースが同一のゲートウェイにアクセスすることができます。 システム・ゲートウェイを1つだけインストールして、複数のOLTPにアクセスするように構成することができます。 IMS Connectから複数のIMSにアクセスすることができます。 多数のIMS Connectシステムを利用できる場合、そのいずれも、複数のIMSシステムに接続している可能性があります。
図1-2は、前の項で説明した、SNAまたはTCP/IPを使用するOracle Database Gateway for APPCのアーキテクチャを示しています。
図1-2 ゲートウェイ・アーキテクチャ

「図1-2 ゲートウェイ・アーキテクチャ」の説明
1.5 ゲートウェイの実装
通信プロトコルがSNAとTCP/IP support for IMS Connectのいずれであるかに関係なく、ゲートウェイの基本的な構造は同一です。 ゲートウェイのコンポーネントの一部は、Microsoft Windows上のOracleデータベース・インスタンスと同一です。 この項では、次のコンポーネントについて説明します。
-
ホーム・ディレクトリ(Oracleインスタンスの
ORACLE_HOME
環境変数に関連付けられているディレクトリと同様) -
sid
またはORACLE_SID
として識別されるシステム識別子 -
初期化パラメータ・ファイル(Oracleデータベースの
init
sid
.ora
ファイルと同様)。
ゲートウェイには、次のコンポーネントは含まれません。
-
制御ファイル、REDOログ・ファイルまたはデータベース・ファイル
-
インストールされたOracleデータベースに関連付けられているサブディレクトリおよび付随ファイル一式
ゲートウェイにはバックグラウンド・プロセスがなく、Oracle Enterprise Managerなどの管理ユーティリティを必要としないため、ゲートウェイ製品を起動する必要はありません。 特定のゲートウェイにアクセスする各Oracleデータベース・ユーザー・セッションは、Windows上で独立したプロセスを作成します。これにより、ゲートウェイ・サーバーが実行され、OLTPと通信するためにSNAまたはTCP/IP関数が実行されます。
1.6 ゲートウェイとの通信
ユーザーまたはクライアント・プログラムとゲートウェイの間のすべての通信は、Oracleデータベース上で実行されるTIPを介して処理されます。 TIPは次の機能を提供する標準PL/SQLパッケージです。
-
RTPで交換されるPL/SQL変数を宣言します。
-
通信における対話の開始、データの交換および対話の終了を処理するゲートウェイ・パッケージを呼び出します。
-
PL/SQLデータ型とターゲット・プログラムのデータ型間のすべてのデータ型変換を処理します。
ゲートウェイ付属のPGAUは、自動的にTIP仕様を生成します。
ゲートウェイはデータベース・リンクを使用してOracleデータベースに識別されます。 データベース・リンクは他のOracleデータベースを識別するために使用される同一の構成要素です。 ゲートウェイでのファンクションは、PL/SQLで次のように参照されます。
function_name@dblink_name
1.7 リモート・プロシージャ・コール関数
Oracle Database Gateway for APPCには、クライアントがリモート・プロシージャ・コール(RPC)を介して呼び出す関数がひととおり用意されています。 これらの関数は、ゲートウェイに対して、開始、データ転送、および別のシステム上のOLTPで実行されているRTPの終了を指示します。
表1-1 に、RPC関数と、ゲートウェイとリモート・ホストで相互に連関して呼び出されるコマンドの一覧を示します。
表1-1 Oracle Database Gateway for APPCおよびリモート・ホストのRPC関数およびコマンド
アプリケーション | Oracleのヒント | ゲートウェイ | リモート・ホスト |
---|---|---|---|
|
|
|
プログラムの開始 |
|
|
|
データ交換 |
|
|
|
プログラムの終了 |
1.7.1 RPC関数の説明
次の項では、SNAまたはTCP/IP通信プロトコルを使用するゲートウェイ上で、RPC関数がどのように実行されるかを説明します。
1.7.1.1 リモート・トランザクションの開始
TIPは、ゲートウェイ関数PGAINIT
のいずれかを使用して、リモート・ホスト・システムへの接続を開始します。
通信プロトコルがSNAの場合: PGAINIT
は、入力として、ターゲット・トランザクション・プログラムとの会話を開始するために必要なSNAパラメータを提供します。 これらのパラメータは、会話識別子をPGAINIT
に戻すSNAネットワークを介して送信されます。 ターゲット・プログラムへの今後のコールでは、会話識別子がINPUT
パラメータとして使用されます。
通信プロトコルがTCP/IPの場合: PGAINIT
は、入力として必要なTCP/IPパラメータを提供します。 pg4tcpmapツールを使用してパラメータをマップします。 これらのパラメータは、ターゲット・トランザクション・プログラムとの会話を開始するためにTCP/IPネットワークを介して送信され、TCP/IPネットワークはソケット・ファイル記述子をPGAINIT
に戻します。 PGAXFER
およびPGATERM
によって実行されるターゲット・プログラムへの今後のコールでは、入力パラメータとしてソケット・ファイル記述子が使用されます。
pg4tcpmap
ツールの機能および使用の詳細は、このガイドの「TCP/IP通信プロトコルのゲートウェイ初期化パラメータ」、および「Oracle Database Gateway for APPCユーザー・ガイド」の第6章 を参照してください。
1.7.1.2 データ交換
会話が確立されると、PGAXFER
というデータベース・ゲートウェイ関数は、入力変数と出力変数の形式でデータを交換できます。 PGAXFER
は、ターゲット・トランザクション・プログラムとの間でバッファを送受信します。 ゲートウェイでは、バッファはバイトのRAWストリームとしてのみ認識されます。 Oracleデータベースに存在するヒントは、バッファをゲートウェイに送信する前に、アプリケーションのPL/SQLデータ型をRAWに変換する役割を果たします。 また、結果をアプリケーションに戻す前にも、RAWからPL/SQLデータ型に変換します。
1.8 SNAを使用するゲートウェイのトランザクション・タイプ
Oracle Database Gateway for APPCは、リモート・ホスト・システムとの間でデータの読み書きを行うトランザクションとして、次の3種類をサポートしています。
-
ワンショット
ワンショット・トランザクションでは、アプリケーションは1回の呼出しで接続を初期化し、データを交換して、接続を終了します。
-
永続
永続トランザクションでは、対話を終了する前に、リモート・トランザクションとの間でデータを交換するための呼出しを複数回行うことができます。
-
複数対話
複数対話トランザクションでは、データベース・ゲートウェイ・サーバーを使用して、1回のRTP呼出しで複数のレコードを交換することができます。
トランザクション・タイプの詳細は、「Oracle Database Gateway for APPCユーザー・ガイド」の第4章、「クライアント・アプリケーションの開発」の「リモート・ホスト・トランザクション・タイプ」を参照してください。
次に、Oracle Database Gateway for APPCの機能を示します。
-
メインフレーム上でCICSトランザクションを開始して、PCアプリケーション用のVSAMファイルからデータを取得することができます。
-
リモート・プロセス制御コンピュータの動作を変更および監視できます。
-
静的なSQLをDB2で実行するIMS/TMトランザクションを開始することができます。
-
1回の呼出しで複数のレコードを戻すCICSトランザクションを開始することができます。
1.9 TCP/IPを使用するゲートウェイのトランザクション・タイプ
TCP/IP for IMS Connectを使用するOracle Database Gateway for APPCは、次の3種類のトランザクション・ソケット接続をサポートしています。
-
トランザクション・ソケット
ソケット接続は1つのトランザクションの間だけ継続します。
-
永続ソケット
ソケット接続は複数のトランザクションを通じて継続します。
-
非永続ソケット
ソケット接続は、1つの入力と1つの出力で構成される1回の交換の間だけ継続します。
ノート:
対話トランザクションを実装する場合は非永続ソケットタイプを使用しないでください。接続と切断が何度も発生します。
これらのパラメータの入力方法の詳細は、「Oracle Database Gateway for APPCユーザー・ガイド」の第6章 の
pg4tcpmap
コマンドに関する項およびこのガイドの「TCP/IP通信プロトコルを使用したゲートウェイ構成」を参照してください。静的なSQLをDB2で実行するIMS/TMトランザクションを開始できます。これは、TCP/IP for IMS ConnectをサポートするOracle Database Gateway for APPCの機能を示しています。