機械翻訳について

1 Oracle Database Gateway for APPCの紹介

Oracle Database Gateway for APPCを使用すると、ユーザーはリモートのオンライン・トランザクション・プロセッサ(OLTP)でトランザクション・プログラムの実行を開始できます。 Oracle Database Gateway for APPCは、SNA通信プロトコルを使用して、OLTPとの接続を確立することができます。 ゲートウェイは、IMS Connect用のTCP/IPを使用して、TCP/IPを介してIMS/TMとの通信を確立することもできます。 ゲートウェイを使用すると、OracleアプリケーションからIBMメインフレームのデータやサービスに、リモート・プロシージャ・コール(RPC)処理を介してシームレスにアクセスすることができます。

認定ハードウェア・プラットフォームおよびオペレーティング・システムの最新バージョンについては、Oracle Databaseインストール・ガイドおよびMy Oracle Support Webサイトの認定マトリクスを参照してください。 My Oracle Support Webサイトは次の場所にあります:

https://support.oracle.com

以下のセクションでは、Oracle Database Gateway for APPCのアーキテクチャ、使用方法、および機能について説明します。

ゲートウェイの概要

Oracle Database Gateway for APPCは、Oracleデータベースで使用可能な RPC ファシリティを拡張しています。 ゲートウェイは、任意のクライアント・アプリケーションがPL/SQLを使用してホスト上に存在するリモート・トランザクション・プログラム(RTP)の実行をリクエストすることを可能にします。 ゲートウェイは、SNA拡張プログラム間通信(APPC)プロトコルを使用してシステムにRPC処理を提供し、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を使用できるすべてのアプリケーションにアクセスできます。

ゲートウェイの特長

Oracle Database Gateway for APPCには次の長所があります。

  • 高速インタフェース

    ゲートウェイは、最小限の通信量でプログラムをリモート実行できるように最適化されています。 ゲートウェイへのインタフェースは、Oracleデータベースにプリコンパイルされた最適化されたPL/SQLストアド・プロシージャ仕様(TIPまたはトランザクション・インタフェース・パッケージと呼ばれます)です。 リモート・ホスト上に追加のソフトウェア・レイヤーがないため、オーバーヘッドはプログラムの実行時にのみ発生します。

  • 位置の透過性

    クライアント・アプリケーションがオペレーティング・システム固有である必要はありません。 例えば、アプリケーションは、z/OSのためにCICS Transaction Server内のプログラムを呼び出すことができます。 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 Side Profile Nameの情報をTCP/IPホスト名とポート番号にマップするためのツール( pg4tcpmap)が含まれています。

      注意:

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

このガイドでは、次の用語と定義が使用されています:

ゲートウェイ初期化ファイル

このファイルはinitsid.oraという名前で、ゲートウェイの動作を管理するパラメータが含まれています。 SNAプロトコルを使用している場合は、または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), and 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 Microsoft Windowsの第1章 の"リモート・プロシージャ・コール関数"を参照してください。

dg4pwd

dg4pwdは、ゲートウェイ初期化ファイルに通常格納されるパスワードを暗号化するユーティリティです。 パスワードが暗号化された形式でパスワード・ファイルに格納されるため、情報の安全性が向上します。 dg4pwdユーティリティの動作の詳細については、dg4pwdおよび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

これは、RTPを実行するためにRPCを実行するためにゲートウェイと通信する任意のOracleデータベース・インスタンスです。 Oracleデータベースは、ゲートウェイと同一システム上または別のシステム上のどちらにも存在できます。 異なるシステム上の場合は、両方のシステム上にOracle Netが必要です。 ゲートウェイのアーキテクチャについては、「図1-2」を参照してください。

OLTP (オンライン・トランザクション・プロセッサ)

OLTPは、z/OSおよびIMS/TM用のCICS Transaction Serverを含む、他のベンダーから入手可能な多数のオンライン・トランザクション・プロセッサのいずれかです。

注意:

通信プロトコルが 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は、別のシステムからのリクエストに応答してシステム上でプログラム・ロジックを実行するプログラミング・コールです。 詳細については、or 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ストアド・プロシージャです。 TIPは、PL/SQLファンクションとUTL_RAW/UTL_PGファンクションを使用して、リモート・ホスト・データの変換と再フォーマットを実行します。

「図1-1」は、前のセクションで説明した用語がゲートウェイ・アーキテクチャに適用される場所を示しています。

図1-1 ゲートウェイとOracle Databaseの関係

図1-1の説明が続く
「図1-1ゲートウェイとOracle Databaseの関係の説明」

ゲートウェイの例とサンプル・ファイル

このガイドでは、次のサンプル・ファイルとサンプルを図解のために参照しています。 SNAプロトコルを使用するゲートウェイのサンプルおよびサンプル・ファイルは、IMS Connect用のTCP/IPを使用するゲートウェイとは異なるものがあります。

SNAを使用するゲートウェイの例とサンプル・ファイル

このガイドでは、SNA通信プロトコルを使用するゲートウェイの場合、CICS-DB2照会を例として使用します。 トランザクション・インタフェース・パッケージ(TIP) pgadb2i.pkbおよび pgadb2i.pkhは、DB2アプリケーションに従業員番号empnoを送信し、従業員レコード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照会を使用しています。 トランザクション・インタフェース・パッケージ(TIPs)pgtflip.pkhおよびpgtflip.pkbは、IMS Connectを介してIMSに入力を送信し、反転した入力を出力として受け取ります。

IMS照会サンプル(FLIP)および関連するPGAUコマンドは、Windowsの場合は%ORACLE_HOME%\dg4appc\demo\IMSディレクトリに、UNIXの場合は$ORACLE_HOME/dg4appc/demo/IMSディレクトリにあります。 TCP/IPを使用するゲートウェイのサンプルとして使用されるサンプルIMS照会は、ファイルpgtflip.pkhおよびpgtflip.pkbにあります。

他のIMSサンプルのインストールと使用の詳細については、README.docファイルを参照してください。 Windowsの場合は%ORACLE_HOME%\dg4appc\demo\IMSディレクトリ、UNIXの場合は $ORACLE_HOME/dg4appc/demo/IMS ディレクトリにあります。

ゲートウェイのアーキテクチャ

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プロトコルを実装したゲートウェイ・アーキテクチャの説明」

ゲートウェイとの通信

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

  • リモート・トランザクション・プログラムと交換できるPL/SQL変数を宣言

  • 通信における対話の開始、データの交換および対話の終了を処理するゲートウェイ・パッケージを呼び出します。

  • PL/SQLデータ型とターゲット・プログラムのデータ型間のすべてのデータ型変換を処理します。

ゲートウェイ付属のPGAUは、自動的にTIP仕様を生成します。

ゲートウェイはデータベース・リンクを使用してOracleデータベースに識別されます。 データベース・リンクは他のOracleデータベースを識別するために使用される同一の構成要素です。 ゲートウェイでのファンクションは、PL/SQLで次のように参照されます。

function_name@dblink_name 

RPC関数

Oracle Database Gateway for APPCは、 RPCを通じてクライアントによって呼び出される一連の関数を提供します。 これらの機能は、ゲートウェイが別のシステム上でOLTPのもとで実行を開始し、データを転送し、終了するようにゲートウェイに指示します。

表1-1 に、RPC関数と、ゲートウェイとリモート・ホストで相互に連関して呼び出されるコマンドの一覧を示します。

表1-1 ゲートウェイとリモート・ホストのRPC関数とコマンド

アプリケーション Oracle TIP ゲートウェイ リモート・ホスト

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

プログラムの終了

TIP機能

以下のセクションでは、まずリモート・ホストへの接続を確立し、次にターゲット・トランザクション・プログラムからデータを交換し、最後に会話を終了することによってTIPが動作する方法を説明します。

リモート・トランザクションの開始

TIPは、ゲートウェイ機能PGAINITの1つを使用してリモート・ホストへの接続を開始します。

通信プロトコルがSNAの場合: PGAINIT は、ターゲット・トランザクション・プログラムとの会話を開始するために必要なSNAパラメータを入力として提供します。 これらのパラメータはSNAネットワークを横断して送信され、PGAINITに対話IDが返されます。 ターゲット・プログラムへの今後の呼び出しは、対話識別子を入力パラメータとして使用します。

通信プロトコルがTCP/IPの場合: PGAINIT は、が入力として、必要なTCP/IP parameters.TheseパラメータがTCP/IPネットワークを介して送信され、ターゲット・トランザクション・プログラムとの会話を開始します。 TCP/IPネットワークからPGAINITソケット・ファイル記述子が返されます。 PGAXFER PGATERMなどの将来の呼び出しでは、この同じソケット・ファイル記述子を入力パラメータとして使用します。

データ交換

対話が確立されると、PGAXFERと呼ばれるデータベース・ゲートウェイ関数は、入力変数および出力変数の形態でデータを交換することができます。 PGAXFERは、ターゲット・トランザクション・プログラムとの間でバッファを送受信します。 ゲートウェイでは、バッファはバイトのRAWストリームとしてのみ認識されます。 OracleデータベースにあるTIPは、バッファをゲートウェイに送信する前に、アプリケーションのPL/SQLデータ型をRAWに変換します。 また、結果をアプリケーションに返す前にRAWをPL/SQLデータ型に変換することも担当します。

リモート・トランザクションの終了

リモート・プログラムとの通信が完了すると、ゲートウェイ関数PGATERMがゲートウェイとリモート・ホストの対話を終了させます。

通信プロトコルがSNAの場合: PGATERMは、会話終了をリクエストするために、会話識別子を入力パラメータとして使用します。

通信プロトコルがTCP/IPの場合: PGATERMは、TCP/IPのソケット・ファイル記述子を入力パラメータとして使用して、会話の終了をリクエストします。

注意:

この時点で、通信プロトコルがSNAの場合は、次のセクション「SNAを使用するゲートウェイの概要」に進みます。

ゲートウェイ通信プロトコルがTCP/IPの場合は、「TCP/IPを使用したゲートウェイの概要」に進みます。

SNAを使用するゲートウェイの概要

SNA通信プロトコルを使用している場合は、次のセクションを読んで、ゲートウェイがOracleデータベースおよびメインフレームと通信する方法、およびゲートウェイ固有のトランザクション・タイプとTIPの記述方法を理解してください。

SNAを使用するゲートウェイのトランザクション・タイプ

Oracle Database Gateway for APPCは、リモート・ホスト・システムとの間でデータを読み書きするトランザクションの3つのタイプをサポートしています:

  • ワンショット

    ワン・ショット・トランザクションでは、アプリケーションは1回の呼び出しで接続を開始し、データを交換し、接続を終了します。

  • 永続

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

  • multi-conversational

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

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

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

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

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

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

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

Oracle Database (SNA)との単純なゲートウェイ通信

このセクションでは、メインフレームと、SNA通信プロトコルを使用するゲートウェイ上のOracleデータベース間の単純な通信について説明します。 Oracle Database Gateway for APPCでは、IBM CICS、IMS、APPC/MVSなどのIBMメインフレーム上のさまざまなプログラムと、Oracleデータベース間で情報の転送を開始する独自の手順を記述できます。

Oracle Database Gateway for APPCの通信機能の説明は、UNIXベースのプラットフォームのMicrosoft Windowsまたは$ORACLE_HOME/dg4appc/demo/CICS/pgacics.sql%ORACLE_HOME%\dg4appc\demo\CICS\pgacics.sqlを参照してください。 これは、z/OS用のOracleデータベースとCICS Transaction Serverの間のサンプル通信です。 この単純なPL/SQLプロシージャpgacics.sqlを実行すると、OracleデータベースはSNAを使用してCICSの FLIPトランザクションと対話するデータベース・ゲートウェイを呼び出します。 これらのステップについては、「ゲートウェイとメインフレーム間のSNAを使用した通信ステップ」で詳しく説明しています。 ゲートウェイの構成時に、ストアド・プロシージャをコンパイルしてリンクしていることに注意してください。

ゲートウェイとメインフレーム間の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を介してz/OS用のCICS Transaction Serverとの通信を開始し、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 Oracle Databaseとメインフレームとの通信、SNAの使用

図1-3の説明が続きます
「図1-3 SNAを使用したOracle Databaseとメインフレーム間の通信の説明」

SNAを使用してPL/SQLプログラムを生成するためのTIPの作成

SNA通信プロトコルを使用するほとんどのトランザクションは、「図1-3」で参照されるサンプルpgacics.sqlファイルよりもはるかに大きく複雑です。 さらに、通常のサイズのRTPとの通信では、非常に長いPL/SQLファイルを作成する必要があります。 PGAU関数は、PL/SQLプロシージャを生成します。

以下は、TIPを生成するために必要な4つのステップの簡単な説明です。 この手順の詳細については、「TIPの作成」を参照し、PGAUの詳細については、「手続き型ゲートウェイ管理ユーティリティ」を参照してください。

このセクションのすべてのパラメータ名は、Microsoft Windowsの%ORACLE_HOME%\pga4appc\demo\CICSディレクトリまたはUNIXベースのシステムの$ORACLE_HOME/pga4appc/demo/CICSディレクトリにあるpgadb2i.ctlというファイルから取得されます。

SNAを使用してゲートウェイにTIPを書き込むステップ

TIPを書くには、以下のステップに従ってください。

Step 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 これは先行する機能をグループ化し、TIPが依存する他のパラメータを指定するために使用されます。

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

      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");
      
Step 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ストアド・プロシージャが作成されます。 ヘッダー指定ファイル(for example, 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;
Step 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');

TCP/IPを使用したゲートウェイの概要

TCP/IP通信プロトコルを使用している場合は、次のセクションを読んで、ゲートウェイがOracleデータベースおよびメインフレームと通信する方法、およびゲートウェイ固有のトランザクション・タイプとTIPの記述方法を理解してください。

TCP/IPを使用するゲートウェイのトランザクション・タイプ

IMS ConnectのTCP/IPサポートを使用するOracle Database Gateway for APPCは、3タイプのトランザクション・ソケット接続をサポートしています:

  • トランザクション・ソケット

    ソケット接続は1つのトランザクションの間だけ継続します。

  • 永続ソケット

    ソケット接続は複数のトランザクションを通じて継続します。

  • 非永続ソケット

    ソケット接続は、1つの入力と1つの出力で構成される1回の交換の間だけ継続します。

    注意:

    複数の接続と切断が発生するため、会話型トランザクションを実装する予定がある場合は、非永続ソケット型を使用しないでください。

    これらのパラメータの機能と使用法の詳細については、このガイドのpg4tcpmapコマンドについてのセクションを参照してください。

    静的なSQLをDB2で実行するIMS/TMトランザクションを開始することができます。 これは、IMS ConnectのTCP/IPをサポートするOracle Database Gateway for APPC機能の機能を示しています。

Oracle Database (TCP/IP)との単純なゲートウェイ通信

このセクションでは、ゲートウェイとリモート・ホスト(IMS)間の通信プロトコルとしてIMS Connect用のTCP/IPが使用されている場合に、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_間の通信ステップ」で詳しく説明しています。 ゲートウェイの構成時に、ストアド・プロシージャをコンパイルしてリンクしていることに注意してください。

TCP/IPを使用して通信するようにゲートウェイを準備する

ゲートウェイがIMS ConnectのTCP/IPサポートを使用している場合は、PGAINITパラメータとターゲット・システム・ネットワーク・アドレス情報の間に必要なマッピングを作成するためにpg4tcpmapツールを使用する必要があります。 pg4tcpmapツールは、DEFINE TRANSACTIONで指定されたサイド・プロファイル名をTCP/IPおよびIMS Connect属性(ポート番号、IPアドレス(ホスト名)、IMSサブシステムIDなど)にマップします。 TCP/IPパラメータは、ターゲット・トランザクション・プログラムとの会話を開始するために使用されます。

IMS ConnectのTPC/IPサポートに依存するTIPを実行する前に、pg4tcpmapツールを実行してPGA_TCP_IMSC表を設定する必要があります。

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 Oracle Databaseとメインフレーム間の通信、TCP/IPの使用

図1-4の説明が続きます
「図1-4 TCP/IPを使用したOracle Databaseとメインフレーム間の通信の説明」

TCP/IPを使用したPL/SQLプログラムを生成するためのTIPの作成

ほとんどのトランザクションは、「図1-4」で参照されているサンプルpgaims.sqlファイルよりはるかに大きく複雑です。 さらに、通常のサイズのRTP (リモート・トランザクション・プログラム)との通信では、非常に長いPL/SQLファイルを作成する必要があります。 Oracle Database Gateway for APPC TIP関数は、PL/SQLプロシージャを生成します。

以下は、TIPを生成するために必要な4つのステップの簡単な説明です。 この手順の詳細については、「TIPの作成」を参照し、PGAUの詳細については「手続き型ゲートウェイ管理ユーティリティ」を参照してください。

このセクションのすべてのパラメータ名は、UNIXベースのシステムのMicrosoft Windowsディレクトリまたは$ORACLE_HOME/pga4appc/demo/IMSディレクトリの%ORACLE_HOME%\pga4appc\demo\IMSディレクトリにあるpgtflip.ctlというファイルから取得されます。

TCP/IPを使用してゲートウェイにTIPを書き込むステップ

TIPを書くには、以下のステップに従ってください。

Step 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 これは先行する機能をグループ化し、TIPが依存する他のパラメータを指定するために使用されます。

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

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

      注意:

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

  4. GENERATE これは、以前に格納されたデータ、コール、およびトランザクション定義からTIP仕様ファイルを生成するために使用されます。

    • サンプル生成トランザクション:

      generate imsflip pkgname(pgtflip) pganode(pga10ia) outfile("pgtflip") diagnose(pkgex(dc,dr));
Step 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;
Step 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');