B ゲートウェイRPCインタフェース
Oracle Database Gateway for APPCを使用してリモート・トランザクション・プログラムを実行するには、PL/SQLプログラムを実行して、リモート・プロシージャ・コール(RPC)を使用してゲートウェイ関数をコールする必要があります。 ゲートウェイ関数は、リモート・トランザクション・プログラムとのゲートウェイ会話の開始、データ交換および終了を処理します。
Oracle Database Gateway for APPCには、COBOLレコード・レイアウトおよび PGDL (Procedural Gateway Definition Language)の形式で指定した定義に基づいて、 PL/SQLパッケージ(TIP)を自動的に生成するツールPGAUが含まれています。
ゲートウェイ関数は、すべてリモート・プロシージャ・コール(RPC)を介して実行されます。 関数は、次のように PL/SQLコードからコールされます:
function@dblink(parm1,parm2,...,parmn);
ここで、「表B-1」は、次の構文のパラメータを示します:
表B-1 ゲートウェイ関数
項目 | 説明 |
---|---|
|
呼び出される関数の名前です。 |
|
Windowsシステム上のゲートウェイ・サーバーへの事前定義済データベース・リンクの名前です。 |
|
この付録の後半で説明する関数固有のパラメータです。 |
関数名の後に@dblink
表記法を使用してPL/SQLコード内の関数をコールすることは、リモート・プロシージャ・コールです。
B.1 PGAINITおよびPGAINIT_SEC
PGAINIT
およびPGAINIT_SEC
は、指定されたトランザクション・プログラムとのAPPC対話を開始するリモート・プロシージャ・コールです。 2つの違いは、PGAINIT_SEC
には、ゲートウェイ会話セキュリティ・ユーザーIDとパスワードを現在のOracleユーザーIDとパスワード以外の値に設定できる追加機能が含まれていることです。 いずれかの関数が正常に完了すると、会話はリモート・トランザクション・プログラムにデータを送信する準備が整います。
「表B-2」は、両方のプロシージャで共通するPGAINIT
およびPGAINIT_SEC
パラメータを示します。 各パラメータのタイプ、データ型および説明をリストします:
表B-2 一般的なPGAINITおよびPGAINIT_SECパラメータ
パラメータ | タイプ | データ型 | 説明 |
---|---|---|---|
|
|
|
SNAを使用するゲートウェイの場合: TCP/IPを使用するゲートウェイの場合: |
|
|
|
会話を確立するリモート・トランザクション・プログラムのトランザクション・プログラム名。 ほとんどのOLTPでは、その名前はOLTPに定義されているトランザクション名である必要があります。 この名前は、 「ノート: TCP/IPサポートの場合」。最大サイズは8文字です。 詳細は、「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通信プロトコルのゲートウェイ初期化パラメータ」を参照してください。 |
|
|
|
SNAを使用するゲートウェイの場合: リモート・トランザクション・プログラムが実行されるOLTPのLU名。 このパラメータは完全修飾LU名または別名で、長さは1-17文字です。 TCP/IPを使用するゲートウェイの場合: このパラメータは適用できません。 |
|
|
|
SNAを使用するゲートウェイの場合: リモート・ホスト上のlogmode表エントリのログ・モード・エントリ名。APPC対話のセッション特性を定義します。 この名前は、1から8文字で入力します。 TCP/IPを使用するゲートウェイの場合: このパラメータは適用できません。 |
|
|
|
会話を定義するSNA側情報プロファイルのプロファイル名。 この名前は、1から8文字で入力します。 TCP/IPを使用するゲートウェイの場合: この名前は、同様のTCP/IP属性とIMS Connect属性に類似したIMSトランザクションのグループを表します。 |
|
|
|
この会話の場合は
|
「表B-3」は、プロシージャに固有のPGAINIT_SEC
パラメータをリストします:
表B-3 PGAINIT_SECプロシージャに固有のパラメータ
パラメータ | タイプ | データ型 | 説明 |
---|---|---|---|
|
|
|
ターゲットOLTPに渡される会話セキュリティ・ユーザーID。 値は1から8文字までの長さである必要があります。 |
|
|
|
ターゲットOLTPに渡される会話セキュリティ・パスワード。 値は1から8文字までの長さである必要があります。 |
SNAプロトコルを使用するゲートウェイの場合:
PROFNAME
とLUNAME
/TPNAME
/MODENAME
の間には相互関係があります。 PROFNAME
が空白またはNULL値に設定されている場合、LUNAME
、TPNAME
およびMODENAME
パラメータはすべて空白以外の値である必要があります。 すべてが空白以外の値に設定されていない場合は、例外が生成されます。 ただし、PROFNAME
が有効な Side Information Profile名に設定されている場合は、Side Informationプロファイルによって会話を確立するために必要なすべての情報が指定されるため、LUNAME
、TPNAME
およびMODENAME
パラメータをnullまたは空白にできます。 この場合、LUNAME
、TPNAME
またはMODENAME
に指定された空白でないnull以外の値は、Side Informationプロファイルで設定された値をオーバーライドします。 PROFNAME
は設定する必要があり、空白またはnullにできません。
TCP/IPプロトコルを使用するゲートウェイの場合:
PROFNAME
およびTPNAME
は設定する必要があり、空白またはnullにできません。
B.2 PGAXFER
PGAXFER
は、PGAINIT
によって初期化されるゲートウェイ会話上のリモート・トランザクション・プログラムとの間でデータを転送するためにコールされます。 関数は、コール元パラメータに基づいてデータ・アイテムを送受信します。
「表B-4」は、PGAXFER
パラメータのタイプ、データ型および説明をリストします:
表B-4 PGAXFERパラメータ
パラメータ | タイプ | データ型 | 説明 |
---|---|---|---|
|
|
|
SNAを使用するゲートウェイの場合: 会話の識別に使用される TCP/IPを使用するゲートウェイの場合: 会話の識別に使用される |
|
|
|
リモート・トランザクション・プログラムに送信されるすべてのデータ・アイテムを含むバッファ。 データ・アイテムはそのまま送信され、変更は行われません。 データ・アイテムは、リモート・トランザクション・プログラムが受信する順序どおりにバッファ内に存在する必要があります。 すべてのデータ・アイテムの合計サイズが、1つのゲートウェイ送信の最大サイズ(マップされたゲートウェイ会話の |
|
|
|
|
|
|
|
最大 |
|
|
|
リモート・トランザクション・プログラムから受信したすべてのデータ・アイテムを格納するバッファ。 データ・アイテムは、リモート・トランザクション・プログラムが送信する正確な順序でこのバッファに格納されます。 すべてのデータ・アイテムの合計サイズは、 |
|
|
|
受信バッファの合計長。 範囲は |
|
|
|
最大 |
PGAXFER
がコールされる場合、SENDBUFL
とRECVBUFL
のいずれかまたは両方をゼロ以外にする必要があります。つまり、リモート・トランザクション・プログラムに対して少なくとも1つのデータ・アイテムを送信または受信する必要があります。 送信または受信するデータ・アイテムなしでPGAXFER
がコールされると、例外が生成されます。
ノート:
PGAXFER
コールごとに、すべての送信処理が最初に実行され、その後にすべての受信処理が実行されます。 トランザクションが複数の送信および受信セットを必要とする方法で動作する場合、トランザクションに対応するためにPGAXFER
を複数回コールできます。 32,763
バイトを超えるデータを送信または受信する場合は、PGAXFER
に対して複数のコールを実行する必要があります。
B.3 PGATERM
PGATERM
は、PGAINIT
への以前のコールによって開始されたゲートウェイ会話を終了するためにコールされます。 この関数が正常に完了すると、会話は割当て解除され、それに関連付けられたすべてのストレージが解放されます。
「表B-5」は、PGATERM
パラメータのタイプ、データ型および説明を示します:
表B-5 PGATERMパラメータ
パラメータ | タイプ | データ型 | 説明 |
---|---|---|---|
|
|
|
SNAを使用するゲートウェイの場合: 会話の識別に使用される 使用するゲートウェイの場合 TCP/IP: 会話の識別に使用される |
|
|
|
実行する終了のタイプ。 |
B.4 PGATCTL
PGATCTL
は、%ORACLE_HOME%\dg4appc\admin\initsid.ora
ファイルのTRACE_LEVEL
パラメータ(Microsoftの場合)またはUNIXベースのシステムの$ORACLE_HOME/dg4appc/admin/initsid.ora
ファイルでコールされます。 PGATCTL
を使用すると、トレース・レベルを PL/SQLストアド・プロシージャ内から動的に変更できます。 この機能は、新しいPL/SQLアプリケーションをデバッグする場合に便利です。
表B-6は、PGATCTL
内のパラメータのタイプ、データ型および説明を示します:
表B-6 PGATCTLパラメータ
パラメータ | タイプ | データ型 | 説明 |
---|---|---|---|
|
|
|
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通信プロトコルのゲートウェイ初期化パラメータ」を参照してください。 |
B.5 PGATRAC
この関数は、ユーザー・データの行をPGAトレース・ファイルに書き込むためにコールされます。 PGATRAC
を使用すると、PL/SQLプロシージャ内のフローは、トレースされるイベントとともに、Microsoft Windowsの場合は%ORACLE_HOME%\dg4appc\admin\initsid.ora
のTRACE_LEVEL
、UNIXベースのシステムでは$ORACLE_HOME/dg4appc/admin/initsid.ora
に基づいてトレースできます。 これは、新しいPL/SQLアプリケーションを開発する際に便利なデバッグ・ツールです。
「表B-7」は、PGATRAC
パラメータのタイプ、データ型および説明を示します:
表B-7 PGATRACパラメータ
パラメータ | タイプ | データ型 | 説明 |
---|---|---|---|
|
|
|
ゲートウェイ・トレース・ファイルに書き込まれるユーザー・データの行。 内容は印刷可能文字である必要があります。 |