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 Oracle Database Gateway for APPCのPGAパラメータ(SNAの使用)
| パラメータ | 説明 |
|---|---|
|
説明:
|
|
|
PGAトランザクション機能。 これはゲートウェイを介する更新を許可するかどうかを制御します。 次に示す値が有効です。
デフォルトは |
|
|
着信
デフォルトは |
|
|
ゲートウェイがトランザクション・ログを維持するOracleデータベースのOracle Netサービス名。 このパラメータの長さは デフォルト値はありません。 |
|
|
デフォルト値はありません。 |
|
|
デフォルト値はありません。 |
|
|
APPC対話を、 デフォルト値はありません。 |
|
|
コミット確認の デフォルト値は |
|
|
APPC対話を、 デフォルト値はありません。 |
|
|
APPC対話セキュリティ・オプション。 これは、対話割当て時に、どのようなセキュリティ・パラメータがFMH-5でOLTPに送信されるかを制御します。 次に示す値が有効です。
デフォルトは これらのオプションの詳細については、「セキュリティ要件」を参照してください。 |
|
|
PGAトレース・レベル。 これは、 デフォルトは
|
A.2 PGA_CAPABILITYパラメータの考慮事項
PGA_CAPABILITYパラメータの設定を選択するときは、RTPが何をしているかに基づいて正しい設定が使用されるように注意してください。
RTPが読取り専用の場合、つまりRTPがデータベース更新を行わない場合は、必ずREAD_ONLY設定を使用してください。 RTPがデータベース更新を行う場合は、決してREAD_ONLYを使用しないでください。 たとえば、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フェーズ・コミットを提供しますが、他の commit-confirmサイト(ゲートウェイまたはOracle)分散トランザクション。 COMMIT_CONFIRMを使用することができない場合、SINGLE_SITE機能は、OracleデータベースとOLTP間の更新機能を提供します。これは、OLTPのみが更新を実行でき、Oracle側では更新が行えないという制限です。
更新制御のためのPGA_CAPABILITYオプションは、それぞれ固有の要件をRTPとOLTPに課します。 COMMIT_CONFIRM機能の場合、これらの要件については、「Oracle Database Gateway for APPCユーザーズ・ガイド」の第5章 "Commit-Confirmの実装"で詳しく説明しています。 このガイドの「Commit-ConfirmのためのOLTPの構成」 「Commit-ConfirmのためのOLTPの構成」も参照してください。 SINGLE_SITE機能の場合、RTPは、ゲートウェイから受信したCOMMITおよびROLLBACKリクエストへのレスポンスとして、Oracleデータベースに代わって適切なタスクを実行します。 ゲートウェイは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ファイル内のエントリ。 -
tnsnames.oraファイル内のUSINGパラメータで定義されている別名を指定しているOracleデータベース内のデータベース・リンク。
ゲートウェイ・インスタンスが1つの共有ディレクトリ構造を共有でき、同一の実行可能ファイルを使用することに注意してください。
たとえば、2つのゲートウェイ、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の特殊な使用事例は、IMS/TMがバージョン7の場合です。 IMS/TMバージョン7で提供される暗黙のAPPCサポートを使用する場合、SYNCLEVEL 1 で実行される会話は、SYNCLEVEL 0.で実行される会話とは異なる方法で処理されます。会話がSYNCLEVEL 1にあるとき、IMS/TMは各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)
)