| Oracle Database Gateway for APPCインストレーションおよび構成ガイド 11gリリース1(11.1) for Microsoft Windows E05712-01 |
|
![]() 戻る |
![]() 次へ |
この付録ではゲートウェイ初期化ファイルの場所を説明し、Oracle Database Gateway for APPCでサポートされている、特にSNAプロトコル用のゲートウェイ初期化パラメータのリストを記載します。これらのパラメータについては、12.1項「既存のゲートウェイ・インスタンスからSNAプロトコルを使用する新リリースへの移行」で詳しく説明しています。また、この付録には、SNAを使用するゲートウェイ用のサンプルのlistener.oraおよびtnsnamesファイルも含まれています。
この付録に含まれる項は、次のとおりです。
ゲートウェイのパラメータ・ファイルは%ORACLE_HOME%\dg4appc\adminディレクトリにあり、initsid.oraと呼ばれます。
|
注意: initsid.oraファイルには、SNAパラメータとTCP/IPパラメータの両方が含まれています。これらのファイルを変更してパラメータを適切にする必要があります。 |
PGAパラメータはゲートウェイのAPPCインタフェース部を制御します。
PGAパラメータは、SETゲートウェイ初期化パラメータを使用して指定されます。次に例を示します。
SET pga_parm=value
ここで
pga_parmは、続くリストでのPGAパラメータ名の1つです。
valueはpga_parmに依存する内容を持つ文字列です。
表A-1に、PGAパラメータのリストと説明を示します。
表A-1 SNAを使用するゲートウェイ用のPGAパラメータ
| パラメータ | 説明 |
|---|---|
|
ここで
|
|
|
PGAトランザクション機能。これはゲートウェイを介する更新を許可するかどうかを制御します。有効な値を次に示します。
デフォルトは |
|
|
着信
デフォルトは |
|
|
ゲートウェイがトランザクション・ログを維持するOracleデータベースのOracle Netサービス名。このパラメータの長さは デフォルト値はありません。 |
|
|
デフォルト値はありません。 |
|
|
デフォルト値はありません。 |
|
|
APPC対話を、 デフォルト値はありません。 |
|
|
コミット確認の デフォルト値は |
|
|
APPC対話を、 デフォルト値はありません。 |
|
|
APPC対話セキュリティ・オプション。これは、対話割当て時に、どのようなセキュリティ・パラメータがFMH-5でOLTPに送信されるかを制御します。有効な値を次に示します。
デフォルトは これらのオプションの詳細情報は、第11章「セキュリティ要件」を参照してください。 |
|
|
PGAトレース・レベル。これは、 デフォルトは
|
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フェーズ・コミットを提供します。ただし、他のいかなるコミット確認サイト(ゲートウェイまたはOracle)も分散トランザクションの一部でないこと、という制限があります。COMMIT_CONFIRMを使用できない場合、SINGLE_SITE機能はOracleデータベースとOLTPの間の更新機能を提供します。ただし、更新を行えるのはOLTPのみで、Oracle側の更新は行えないという制限があります。
更新制御のためのPGA_CAPABILITYオプションは、それぞれ固有の要件をRTPとOLTPに課します。COMMIT_CONFIRM機能については、これらの要件は『Oracle Database Gateway for APPCユーザーズ・ガイド』の第5章「コミット確認の実装」で説明されています。また、このガイドの9.8.3項「コミット確認使用時の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つのゲートウェイに対してREAD_ONLYに設定されたPGA_CAPABILITYを定義し、その他のゲートウェイに対してSINGLE_SITEまたはCOMMIT_CONFIRMに設定されたPGA_CAPABILITYを定義することができます。
これにより、Oracleデータベースの制御下で、読取り専用トランザクション・プログラムが分散トランザクションに参加することが可能になります。たとえば、DB2からのデータは、照会専用RTPにより、READ_ONLYゲートウェイを介して取得してOracleデータベース上でデータベース更新の入力として使用できますが、これらはすべて1つのOracleトランザクションで行われます。SINGLE_SITEゲートウェイは、Oracleデータベース制御の範囲外で外部データベースに対して更新を行うRTPにアクセスするためだけに使用できます。データは、Oracleデータベースにアクセスできる任意のデータベースから読み取ることができ、そのデータはゲートウェイを介して更新を実行するために使用できます。
Oracle側とOLTP側の両方でリソースを更新する必要がある場合、COMMIT_CONFIRMゲートウェイを使用できます。ただしOLTPとRTPがCOMMIT_CONFIRMを実装するようにセットアップされていることが条件です。
複数のゲートウェイ・インスタンスをセットアップするために必要なのは、各インスタンスについて次をセットアップすることのみです。
listener.oraで定義されているゲートウェイ・インスタンスに接続するために使用される別名を定義しているtnsnames.oraファイル内のエントリ。
tnsnames.oraファイル内のUSINGパラメータで定義されている別名を指定しているOracleデータベース内のデータベース・リンク。
ゲートウェイ・インスタンスが1つの共有ディレクトリ構造を共有でき、同一の実行可能ファイルを使用することに注意してください。
たとえば、2つのゲートウェイ、PGAIおよびPGAU(たとえば照会と更新でそれぞれ使用)をセットアップするには、次の手順が必要です。
PGA_CONFIRMパラメータの設定を決定する際は、各設定の影響を理解することが重要です。まず、このパラメータがSYNCLEVEL 1で動作する対話のみに影響することに注意してください。デフォルト設定のPGA_CONFIRM=REJECTは、大部分のアプリケーションに対して適切です。この設定では、ゲートウェイがリモート・トランザクション・プログラムからCONFIRMリクエストを受信するとエラーが生成されます。ゲートウェイのデータ受信をCONFIRMを使用して確認するリモート・トランザクションがある場合、PGA_CONFIRM=ACCEPTを使用することで、着信するCONFIRMリクエストにCONFIRMEDレスポンスで応答するようにします。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を使用するとこの問題は回避でき、ゲートウェイは着信するCONFIRMリクエストにCONFIRMEDレスポンスで応答します。この方法の唯一の制約は、IMSによって提供される暗黙のAPPCサポートが、いつCONFIRMリクエストをゲートウェイから受信したかをアプリケーションに通知しないことです。これは、ゲートウェイがCONFIRMを使用してCOMMITを実装することができず、そのため対話のIMS側でCOMMIT/ROLLBACKを使用して更新を制御することができないことを意味します。
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\11.1)
(PROGRAM = pg4asrv)
)
)
ORA920 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = bay.us.oracle.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)
)