機械翻訳について

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から参照できます。

https://support.oracle.com

次の項では、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のみを使用するゲートウェイの場合:

汎用および標準プロトコルであるAPPCを使用すると、ゲートウェイは多数のシステムにアクセスできます。 ゲートウェイは、あらゆるプラットフォーム上でのIBM社のCICS 、IBM社のIMSおよびAPPC/MVSなど、実質的にすべてのAPPC対応システムと通信することができます。 これらのトランザクション・モニターを使用すると、ゲートウェイがVSAM、DB2(静的SQL)、IMSなど多くのデータストアにアクセスできるため、広範囲のシステムにアクセスできます。

ゲートウェイは、直接またはCICSなどのTPモニターを介して、CPI-C APIを使用できるすべてのアプリケーションにアクセスできます。

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データベースでは、リモート転送更新とOracleデータベース更新を協調して実行することができます。

  • 選択範囲の広いツール

    ゲートウェイは、PL/SQLをサポートするすべてのツールまたはアプリケーションをサポートします。

  • PL/SQLコード生成機能

    Oracle Database Gateway for APPCは、次のように強力な開発環境を備えています。

    • リモート・トランザクションに関する情報を格納するデータ・ディクショナリ

    • PL/SQLトランザクション・インタフェース・パッケージ(TIP)を生成するツール

    • ゲートウェイ・ディクショナリに格納された情報を表示するレポート・ユーティリティ

    • 完備されたトレースおよびデバッグ機能

    • DB2、IMSおよびCICSなどのデータストアに対して製品の使用方法を示す充実した一連のサンプル

  • サイトの自律性とセキュリティ

    ゲートウェイはサイト自律性を提供するため、ユーザーにユーザー認証などのタスクの実行を許可します。 また、メインフレーム・コンピュータ上で稼働している任意のセキュリティ・パッケージと互換性がある、ロールに基づくセキュリティを提供します。

  • 自動変換

    TIPを介して次の変換が実行されます。

    • ASCIIとEBCDICの間

    • リモート・トランザクション・プログラムの各データ型とPL/SQLの各データ型の間

    • 多数の言語での各国語サポート

  • グローバリゼーション・サポート

  • IMS ConnectのTCP/IPサポート

    このリリースのゲートウェイには、IMS ConnectのTCP/IPサポートが含まれており、ユーザーはSNAまたはTCP/IP通信プロトコルのどちらを使用するかを選択できます。 IMS ConnectはTCP/IPクライアントがIMSトランザクションの実行をトリガーできるようにするIBM製品です。 ゲートウェイは、TCP/IP通信プロトコルを使用して、IMSトランザクションの実行をトリガーするIMS Connectにアクセスすることができます。 この構成にSNAの関与はありません。

    ゲートウェイのこの機能に関連するものは次のとおりです:

    • ゲートウェイ・マッピング・ツール。 このリリースのゲートウェイには、SNAサイド・プロファイル名からTCP/IPホスト名およびポート番号に情報をマップすることを目的としたツール( pg4tcpmap)が含まれています。

      ノート:

      通信プロトコルが TCP/IPの場合、IMSのみがOLTPとしてサポートされます。

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など、他のベンダーから使用できる多数のオンライン・トランザクション・プロセッサです。

ノート:

通信プロトコルが TCP/IPの場合、IMSのみがOLTPとしてサポートされます。

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の説明が続きます
図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のアーキテクチャはいくつかのコンポーネントで構成されています。

  1. Oracle Database

    ゲートウェイとOracleデータベースの関係を確立するための様々なメソッドの説明は、インストール・ガイドの通信プロトコルに対応する構成セクションを参照してください。

    Oracle Databaseは、ゲートウェイ以外のアプリケーションでも使用できます。

  2. ゲートウェイ

    Oracle Database Gateway for APPCは、必要なバージョンのオペレーティング・システムを実行できるサーバー上にインストールされる必要があります。

  3. OLTP

    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の説明が続きます。
図1-2 SNAまたはTCP/IPプロトコルを搭載したゲートウェイ・アーキテクチャ」の説明

1.6 ゲートウェイとの通信

ユーザーまたはクライアント・プログラムとゲートウェイとの間の通信はすべて、Oracleデータベースで実行されるTIPを介して処理されます。 TIPは、次の関数を提供する標準の PL/SQLパッケージです:

  • リモート・トランザクション・プログラムと交換できる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のヒント ゲートウェイ リモート・ホスト

call tip_init

tip_init

call pgainit@gateway

PGAINIT

プログラムの開始

call tip_main

tip_main

call pgaxfer@gateway

PGAXFER

データ交換

call tip_term

tip_term

call pgaterm@gateway

PGATERM

プログラムの終了

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.2 データ交換

会話が確立されると、 PGAXFERというデータベース・ゲートウェイ関数は、入力変数と出力変数の形式でデータを交換できます。 PGAXFER は、ターゲット・トランザクション・プログラムとの間でバッファを送受信します。 ゲートウェイでは、バッファはバイトのRAWストリームとしてのみ認識されます。 Oracleデータベースに存在するヒントは、バッファをゲートウェイに送信する前に、アプリケーションのP L/SQLデータ型をRAWに変換する役割を果たします。 また、RAWをPL/SQLデータ型に変換してから、結果をアプリケーションに戻します。

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回の呼出しで終了します。

  • 永続

    永続トランザクションでは、対話を終了する前に、リモート・トランザクションとの間でデータを交換するための呼出しを複数回行うことができます。

  • 複数会話

    複数会話型トランザクションでは、データベース・ゲートウェイ・サーバーを使用して、リモート・トランザクション・プログラムへの1回の呼出しで複数のレコードを交換できます。

トランザクション・タイプの詳細は、このガイドの「クライアント・アプリケーション開発(SNAのみ)」リモート・ホストのトランザクション・タイプを参照してください。

次のリストは、 Oracle Database Gateway for APPCの機能の例を示しています:

  • メインフレーム上でCICSトランザクションを開始して、PCアプリケーション用のVSAMファイルからデータを取得することができます。

  • リモート・プロセス制御コンピュータの動作を変更および監視できます。

  • 静的なSQLをDB2で実行するIMS/TMトランザクションを開始することができます。

  • 1回の呼出しで複数のレコードを戻すCICSトランザクションを開始することができます。

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. SQL*Plusから、pgacicsを実行します。 これにより、Oracleデータベース内の PL/SQLストアド・プロシージャが起動されます。

    Microsoft Windowsの場合:

    C:\> sqlplus <userid>/<password>@<database_specification_string>
    SQL> execute pgacics('==< .SCIC htiw gnitacinummoc si yawetag ruoy ,snoitalutargnoC >==');
    

    UNIXベースのプラットフォームの場合:

    $ sqlplus <userid>/<password>@<database_specification_string>
    SQL> execute pgacics('==< .SCIC htiw gnitacinummoc si yawetag ruoy ,snoitalutargnoC >==');
    
  2. pgacics PL/SQLストアド・プロシージャは、ゲートウェイを起動します。 ゲートウェイは、SNAを介して CICS Transaction Server for z/OSとの通信を開始し、FLIPをコールします。
  3. FLIPは、入力を処理し、出力を生成して、出力をデータベース・ゲートウェイに戻します。
  4. 最後に、データベース・ゲートウェイは、出力をOracleデータベースのPL/SQLストアド・プロシージャに送り返します。 結果は、SQL*Plusに表示されます:
    ==> Congratulations, your gateway is communicating with CICS. <==
    PL/SQL procedure successfully completed.
    

    「図1-3」は、ステップ1から4で説明されている通信プロセスを示しています。

図1-3 SNAを使用した、Oracle Databaseとメインフレーム間の通信

図1-3の説明が続きます
図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コマンドがあります:

  1. DEFINE DATA. これは、COBOLデータ定義を使用して、入力フィールドと出力フィールドを定義するために使用されます。

    • サンプル定義データ:

      define data empno plsdname(empno) usage(pass) language(ibmvscobolii)
                        infile("empno.cob");
      
  2. DEFINE CALL. これは、パッケージの一部として生成されるPL/SQL関数コールを定義するために使用されます。

    • サンプル定義コール:

      define call db2imain pkgcall(pgadb2i_main) 
                           parms((empno in),(emprec out));
      
  3. DEFINE TRANSACTION. これは、前述の関数をグループ化し、ヒントが依存するその他のパラメータを指定するために使用されます。

    • サンプルの定義トランザクション:

      define transaction db2i call(db2imain,db2idiag)
                              sideprofile(CICSPGA) 
                              tpname(DB2I)
                              logmode(oraplu62)
                              synclevel(0)
                              nls_language("american_america.we8ebcdic37c");
      
  4. 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ツールを実行する必要があります。

1.9.2.2 TCP/IPを使用したゲートウェイとIMS間の通信ステップ

次のステップでは、通信プロトコルが TCP/IPの場合の「図1-4」に示すように、通信プロセスについて説明します:

  1. SQL*Plusから、pgaims.sqlを実行します。 これにより、Oracleデータベース内の PL/SQLストアド・プロシージャが起動されます。

    Microsoft Windowsの場合:

    C:\> sqlplus <userid>/<password>@<database_specification_string>
    SQL> execute pgaims 'snoitalutargnoC';
    

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

    $ sqlplus <userid>/<password>@<database_specification_string>
    SQL> execute pgaims 'snoitalutargnoC';
    

    pgaims.sqlストアド・プロシージャは、ゲートウェイを起動します。

  2. APPC情報を持つゲートウェイは、マッピング表( PGA_TCP_IMSC)をコールします。 マッピング表は、ホスト名(TCP/IPアドレス)とポート番号を持つように情報をマップします。

    ノート:

    PGA_TCP_IMSCマッピング表は、手動で挿入、削除または更新するのではなく、 pg4tcpmapツールを使用して行う必要があります。 SELECT文を使用して、行を問い合せることができます。

  3. ゲートウェイのポート番号とホスト名は、TCP/IPを介してIMS Connectとの通信を開始し、IMSを介してFLIPをコールします。
  4. FLIPは、入力を処理し、出力を生成して、出力をゲートウェイに送り返します。
  5. 最後に、ゲートウェイは出力をOracleデータベースのPL/SQLストアド・プロシージャに送り返します。 結果は、SQL*Plusに表示されます:
    Congratulations
    PL/SQL procedure successfully completed.
    

「図1-4」は、前のステップ1から5で説明した通信プロセスを示しています。

図1-4 TCP/IPを使用した、Oracle Databaseとメインフレーム間の通信

図1-4の説明が続きます
図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コマンドがあります:

  1. 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).
      )
      
  2. DEFINE CALL. これは、パッケージの一部として生成されるPL/SQL関数コールを定義するために使用されます。

    • サンプル定義コール:

      define call flipmain pkgcall(pgtflip_main) 
                           parms((flipin in),(flipout out));
      
  3. DEFINE TRANSACTION. これは、前述の関数をグループ化し、ヒントが依存するその他のパラメータを指定するために使用されます。

    • サンプルの定義トランザクション:

      define transaction imsflip call(flipmain)
                              sideprofile(pgatcp) 
                              tpname(flip)
                              nls_language("american_america.us7ascii");

      ノート:

      TCP/IPを使用するゲートウェイでは、サイド・プロファイル名の値は実際には、ネットワークの構成中にユーザーが値、ホスト名、ポート番号、およびその他の多くのIMS Connect値を指定したときに定義されたTCP/IPの一意の名前です。

  4. 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');