A SNAプロトコル用のゲートウェイ初期化パラメータ
このトピックでは、ゲートウェイ初期化ファイルのロケーションについて説明し、Oracle Database Gateway for APPCでサポートされている ゲートウェイ初期化パラメータを、特にSNAプロトコル用にリストします。 これらのパラメータの詳細は、「SNAプロトコルを使用した既存のゲートウェイ・インスタンスの新規リリースへの移行」 「SNAプロトコルを使用した既存のゲートウェイ・インスタンスの新規リリースへの移行」を参照してください。 また、次のトピックでは、SNAを使用するゲートウェイのサンプルlistener.oraおよびtnsnamesファイルを示します。
ゲートウェイの パラメータ・ファイルは、%ORACLE_HOME%\dg4appc\adminディレクトリにあり、 initsid.oraと呼ばれます。
ノート:
initsid.oraファイルには、SNAパラメータとTCP/IPパラメータの両方が含まれています。 これらのファイルを変更してパラメータを適切にする必要があります。
A.1 PGAパラメータ
PGA パラメータは、ゲートウェイのAPPCインタフェース部分を制御します。
PGAパラメータは、SET ゲートウェイ初期化パラメータを使用して指定します。 たとえば:
SET pga_parm=value
説明:
-
pga_parmは、次のリストにあるPGAパラメータ名の1つです -
valueは、pga_parmに依存する内容を含む文字列です
表A-1に、PGAパラメータのリストと説明を示します。
表A-1 SNAを使用したOracle Database Gateway for APPCのPGAパラメータ
| パラメータ | 説明 |
|---|---|
|
説明:
|
|
|
PGAトランザクション機能。 これはゲートウェイを介する更新を許可するかどうかを制御します。 次に示す値が有効です。
デフォルトは |
|
|
受信
デフォルトは |
|
|
ゲートウェイがトランザクション・ログを維持するOracleデータベースのOracle Netサービス名。 このパラメータの長さは、 デフォルト値はありません。 |
|
|
デフォルト値はありません。 |
|
|
デフォルト値はありません。 |
|
|
デフォルト値はありません。 |
|
|
コミット確認 デフォルト値は |
|
|
デフォルト値はありません。 |
|
|
APPC対話セキュリティ・オプション。 これは、対話割当て時に、どのようなセキュリティ・パラメータがFMH-5でOLTPに送信されるかを制御します。 次に示す値が有効です。
デフォルトは、 これらのオプションの詳細は、「セキュリティ要件」を参照してください。 |
|
|
PGAトレース・レベル。 これは、 デフォルトは
|
A.2 PGA_CAPABILITYパラメータの考慮事項
PGA_CAPABILITYパラメータの設定を選択する場合は、RTPの実行内容に基づいて正しい設定が使用されていることを確認してください。
READ_ONLY設定は、 RTPが読取り専用の場合、つまりRTPがデータベース更新を実行しない場合、常に使用する必要があります。 READ_ONLYは、RTPがデータベース更新を実行する場合には使用しないでください。 たとえば、READ_ONLY設定を選択し、ゲートウェイによってコールされたRTPが外部データベースへの更新を実行する場合、 Oracleデータベースはそれらの更新に対する整合性保護を提供しません。 さらに、READ_ONLYモードでは、ゲートウェイ・トランザクションを、他の複数のデータベースを更新する分散トランザクションの一部にすることができます。 ゲートウェイがこの状況で更新を行うRTPを呼び出す場合、障害が発生すると、RTPによって更新されたデータベースは他のデータベースと同期していません。
RTPが外部データベースに対する更新を実行する場合、PGA_CAPABILITYには の2つのオプションがあります:
-
SINGLE_SITE -
COMMIT_CONFIRM
これらの各オプションは、 COMMITおよび ROLLBACKリクエストをRTPに転送し、ゲートウェイの分散更新およびリカバリ機能について Oracleデータベースに通知することで、データ整合性の問題に対する保護を提供します。 選択される個別のオプションは、RTPの設計や、プログラムが実行されるOLTPの機能により異なります。
OLTPでLU6.2 SYNCLEVEL 1 または2がサポートされている場合、 COMMIT_CONFIRM機能は、 OracleデータベースとOLTPの間に限定された2フェーズ・コミットを提供しますが、他のコミット確認サイト(ゲートウェイまたはOracle)は分散トランザクションの一部にできないという制限があります。 COMMIT_CONFIRMを使用できない場合、SINGLE_SITE機能は、Oracleデータベースと OLTPの間で更新機能を提供します。OLTPのみが更新を実行でき、Oracle側では更新を実行できないという制限があります。
更新制御用の各PGA_CAPABILITYオプションは、RTPおよびOLTPに特定の要件を課します。 COMMIT_CONFIRM機能の場合、これらの要件については、「Oracle Database Gateway for APPCユーザー・ガイド」の第5章、「コミット確認の実装」で詳しく説明します。 このガイドの「コミット確認のためのOLTPの構成」 「コミット確認のためのOLTPの構成」も参照してください。 SINGLE_SITE機能の場合、RTPは、 Oracleデータベースのかわりにゲートウェイから受信したCOMMITおよびROLLBACKリクエストに応じて、適切なタスクを実行します。 ゲートウェイは、APPC CONFIRMおよびSEND_ERRリクエストを使用して、それぞれCOMMITおよびROLLBACKを実装します。 CONFIRMコマンドを受信すると、RTPはCOMMIT処理を実行してから、APPC CONFIRMEDレスポンスでゲートウェイに応答する必要があります。 SEND_ERRコマンドを受信すると、RTPはROLLBACK処理を実行する必要があります。
Oracleデータベースの分散トランザクション機能は、ゲートウェイで使用されるPGA_CAPABILITYオプションの影響を受けるため、問合せを分離し、それぞれに異なるゲートウェイ・インスタンスを使用してアプリケーションを更新することをお薦めします。 1つのゲートウェイは、PGA_CAPABILITYをREAD_ONLYに設定し、PGA_CAPABILITYをSINGLE_SITEまたはCOMMIT_CONFIRMに設定して定義できます。
これにより、読取り専用トランザクション・プログラムは、Oracleデータベースの制御下で分散トランザクションに参加できます。 たとえば、DB2からのデータは、問合せのみのRTPによってREAD_ONLYゲートウェイを介して取得でき、その後、Oracleデータベース上のデータベース更新への入力としてすべて1つのOracleトランザクションで使用できます。 SINGLE_SITEゲートウェイは、Oracleデータベースの制御の範囲外で外部データベースに対する更新を実行するRTPへのアクセスにのみ使用できます。 データは、Oracleデータベースからアクセス可能な任意のデータベースから読み取ることができ、そのデータを使用してゲートウェイを介した更新を実行できます。
Oracle側とOLTP側の両方でリソースを更新する必要がある場合は、OLTPとRTPがCOMMIT_CONFIRMを実装するように設定されていれば、COMMIT_CONFIRMゲートウェイを使用できます。
複数のゲートウェイ・インスタンスをセットアップするために必要なのは、各インスタンスについて次をセットアップすることのみです。
-
listener.oraで定義されているゲートウェイ・インスタンスへの接続に使用する別名を定義する、tnsnames.oraファイルのエントリ -
USINGパラメータでtnsnames.oraファイルに定義されている別名を指定する、Oracleデータベースのデータベース・リンク。
ゲートウェイ・インスタンスが1つの共有ディレクトリ構造を共有でき、同一の実行可能ファイルを使用することに注意してください。
たとえば、 PGAIと PGAUの2つのゲートウェイ(それぞれ照会および更新使用の場合)を設定するには、次のステップが必要です:
-
2つの
sid、PGAIおよびPGAUのエントリをlistener.oraに定義します。 -
最後に、初期化ファイル
initPGAI.oraおよびinitPGAU.oraを作成します。initPGAI.oraで、PGA_CAPABILITYをREAD_ONLYに設定し、initPGAU.oraで、PGA_CAPABILITYをSINGLE_SITEまたはCOMMIT_CONFIRMに設定します。 次に、問合せのみのトランザクションにPGAIゲートウェイを使用し、更新トランザクションにPGAUゲートウェイを使用します。ゲートウェイ・インスタンスをさらに追加する場合にも、同一のステップを使用します。
A.3 PGA_CONFIRMパラメータの考慮事項
PGA_CONFIRM パラメータの設定を決定する場合は、各設定の影響を理解することが重要です。 まず、このパラメータは、SYNCLEVEL 1で実行されている会話にのみ影響することに注意してください。 デフォルト設定であるPGA_CONFIRM=REJECTは、ほとんどのアプリケーションに適しています。 この設定では、リモート・トランザクション・プログラムからCONFIRMリクエストを受信すると、ゲートウェイはエラーを生成します。 CONFIRMを使用してゲートウェイがデータを受信したことを確認するリモート・トランザクションがある場合は、PGA_CONFIRM=ACCEPTを使用して、ゲートウェイがCONFIRMEDレスポンスで受信したCONFIRMリクエストに応答できるようにする必要があります。 OracleアプリケーションがCOMMITリクエストを発行したときに、ゲートウェイがCONFIRMリクエストをリモート・トランザクションに送信することに注意してください。 COMMIT処理を正しく動作させるには、リモート・トランザクションを書き込んで、ゲートウェイからCONFIRMリクエストを受信するたびにローカル・コミット処理を実行し、コミット処理が正常に完了した後にCONFIRMEDでゲートウェイに応答する必要があります。 コミット処理中にエラーが発生した場合、リモート・トランザクションは、コミットが失敗したことを示すSEND_ERRを使用してゲートウェイに応答する必要があります。
PGA_CONFIRM=ACCEPTを使用する特別なケースの1つは、IMS/TMバージョン7です。 IMS/TMバージョン7で提供される暗黙のAPPCサポートを使用する場合、SYNCLEVEL 1 で実行される会話は、SYNCLEVEL 0.で実行される会話とは異なる方法で処理されます IMS/TMは、会話がSYNCLEVEL 1にあるときに、各APPC SENDの後にCONFIRMリクエストを自動的に生成します。 ゲートウェイ側では、PGA_CONFIRM=ACCEPTが指定されていない場合、IMS/TMによって送信されたCONFIRMリクエストによって、ゲートウェイによってエラーが生成されます。 PGA_CONFIRM=ACCEPTを使用すると、この問題が軽減され、ゲートウェイがCONFIRMEDレスポンスで受信CONFIRMリクエストに応答できるようになります。 この方法を実行する唯一の制限は、IMSによって提供される暗黙のAPPCサポートが、ゲートウェイからCONFIRMリクエストを受信したときにアプリケーションに通知しないことです。 つまり、ゲートウェイはCONFIRMを使用してCOMMITを実装できないため、COMMIT/ROLLBACKを使用して会話のIMS側での更新を制御できません。
A.4 SNAを使用するゲートウェイのサンプルlistener.oraファイル
LISTENER =
(ADDRESS_LIST =
(ADDRESS=
(COMMUNITY= TCP.world)
(Host = bay)
(PROTOCOL= TCP)
(Port= 2621)
)
(ADDRESS=
(COMMUNITY= TCP.world)
(Host = bay)
(PROTOCOL= TCP)
(Port= 2623)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PGA)
(ORACLE_HOME = C:\oracle\pga\12.2)
(PROGRAM = pg4asrv)
)
)A.5 SNAを使用するゲートウェイのサンプルtnsnames.oraファイル
ORA920 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = bay.us.example.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORA920.bay)
)
)
PGA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = bay)(PORT = 2621))
)
(CONNECT_DATA =
(SID = PGA)
)
(HS = OK)
)