機械翻訳について

A SNAプロトコル用のゲートウェイ初期化パラメータ

次のトピックでは、ゲートウェイ初期化ファイルのロケーションについて説明し、Oracle Database Gateway for APPCでサポートされている ゲートウェイ初期化パラメータ(特にSNAプロトコル用)をリストします。 これらのパラメータの詳細は、既存のゲートウェイ・インスタンスからSNAプロトコルを使用する新リリースへの移行を参照してください。 また、このトピックには、SNAを使用するゲートウェイのサンプルlistener.oraおよびtnsnamesファイルが含まれています。

ゲートウェイの パラメータ・ファイルは、$ORACLE_HOME/dg4appc/adminディレクトリにあり、 init sid. oraと呼ばれます。

ノート:

init sid. 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パラメータ

パラメータ 説明

LOG_DESTINATION=logpath

logpathは、STDERRが再オープンされる宛先を指定します。 LOG_DESTINATIONはディレクトリのみを指定し、STDERRlogpath/ sid_pid .logに再オープンされます

説明:

  • sidはsid名です

  • pidは、ゲートウェイに割り当てられたプロセスIDです

PGA_CAPABILITY

PGAトランザクション機能。 これはゲートウェイを介する更新を許可するかどうかを制御します。 次に示す値が有効です。

READ_ONLYまたはRO: Read-only capabilities.

SINGLE_SITEまたはSS: 単一サイト更新のみ。 これは、分散環境で、ゲートウェイのみが更新を行うことができることを示します。 Oracleトランザクション内部では他にいかなるデータベース更新も発生しません。

COMMIT_CONFIRMまたはCC: Commit-confirm. これは、分散環境で、ゲートウェイと他の参加者の両方がOracleトランザクション内部で更新できることを示します。 このモードでは常にゲートウェイが最初にコミットされ、他のいかなるコミット確認サイトもOracleトランザクションに参加することを許可されません。

デフォルトはSINGLE_SITEです。

PGA_CONFIRM

受信APPC CONFIRMリクエスト処理オプション。 これは、リモート・トランザクション・プログラムからAPPC CONFIRMリクエストを受信したときのゲートウェイの動作を制御します。 このパラメータは、会話がSYNCLEVELを0より大きい値に設定して実行されている場合にのみ意味を持ちます。 次に示す値が有効です。

ACCEPT - APPCのCONFIRMEDレスポンスを使用して、受信APPCのCONFIRMリクエストに応答します。

REJECT - 着信APPC CONFIRMリクエストをエラーとして処理して、会話の割当てを解除し、エラー・メッセージを発行します。

デフォルトはREJECTです。

PGA_LOG_DB

ゲートウェイがトランザクション・ログを維持するOracleデータベースのOracle Netサービス名。 このパラメータの長さは、1から255文字です。 このパラメータは、PGA_CAPABILITYCOMMIT_CONFIRMに設定されている場合にのみ必要です。

デフォルト値はありません。

PGA_LOG_PASS

PGA_LOG_DBパラメータで指定されたOracleデータベースへの接続時にゲートウェイによって使用されるOracle パスワード。 パスワードは、1から30文字の長さです。 このパラメータは、PGA_CAPABILITYCOMMIT_CONFIRMに設定されている場合にのみ必要です。 パスワードは暗号化できます。 パスワード暗号化の詳細は、「ゲートウェイ初期化ファイルのパスワード」を参照してください。

デフォルト値はありません。

PGA_LOG_USER

PGA_LOG_DBパラメータで指定されたOracleデータベースへの接続時にゲートウェイによって使用されるOracleユーザーID。 ユーザーIDは、1から30文字の長さです。 このパラメータは、PGA_CAPABILITYCOMMIT_CONFIRMに設定されている場合にのみ必要です。

デフォルト値はありません。

PGA_RECOVERY_PASS

PGA_RECOVERY_TPNAMEパラメータで指定されたトランザクションとAPPC対話を割り当てる際にゲートウェイによって使用されるパスワード。 パスワードは、1から8文字の長さです。 このパラメータは、PGA_CAPABILITYCOMMIT_CONFIRMに設定され、PGA_SECURITY_TYPEPROGRAMに設定されている場合にのみ必要です。 パスワードは暗号化できます。 パスワード暗号化の詳細は、「ゲートウェイ初期化ファイルのパスワード」を参照してください。

デフォルト値はありません。

PGA_RECOVERY_TPNAME

コミット確認FORGETおよびRECOVERY処理のためにOLTPにインストールされたトランザクションの TP名。 TP名は、1から64文字の長さで指定できます。 CICS Transaction Server for z/OSでは、TP名は4文字に限定されています。 IMS/TMでは、TP名は8文字に限定されています。 他のOLTPでも、TP名の長さに上限があることがあります。 このパラメータは、PGA_CAPABILITYCOMMIT_CONFIRMに設定されている場合にのみ必要です。

デフォルト値はRECOです。

PGA_RECOVERY_USER

PGA_RECOVERY_TPNAMEパラメータで指定されたトランザクションとAPPC対話を割り当てる際にゲートウェイによって使用されるユーザーID。 ユーザーIDの長さは1から8文字です。 このパラメータは、PGA_CAPABILITYCOMMIT_CONFIRMに設定され、PGA_SECURITY_TYPEPROGRAMまたはSAMEに設定されている場合にのみ必要です。

デフォルト値はありません。

PGA_SECURITY_TYPE

APPC対話セキュリティ・オプション。 これは、対話割当て時に、どのようなセキュリティ・パラメータがFMH-5でOLTPに送信されるかを制御します。 次に示す値が有効です。

NONE: セキュリティ・パラメータを送信しない

SAME: ユーザーIDのみを送信

PROGRAM: ユーザーIDとパスワードを送信

デフォルトは、NONEです。

これらのオプションの詳細は、「セキュリティ要件」を参照してください。

PGA_SIGDANGER

(AIXのみのパラメータ)

ページング領域が不足していることを示すSIGDANGERシグナルをシステムから受信するアクション。 有効な値を次に示します。

IGNORE: シグナルを無視

デフォルトはIGNOREです。

TRACE_LEVEL

PGAトレース・レベル。 これは、STDERR (LOG_DESTINATIONパラメータのターゲット)に書き込まれるトレース出力を制御します。 値は、0から255までの整数である必要があります。

デフォルトは0で、トレースがないことを示します。

1から255までの値は、トレースをオンにします。

A.2 PGA_CAPABILITYパラメータの考慮事項

PGA_CAPABILITYパラメータの設定を選択する場合は、リモート・トランザクション・プログラムが実行する内容に基づいて正しい設定が使用されていることを確認してください。

READ_ONLY設定は、リモート・トランザクション・プログラムが読取り専用の場合、つまりリモート・トランザクション・プログラムがデータベース更新を実行しない場合、常に使用する必要があります。 READ_ONLYは、リモート・トランザクション・プログラムがデータベース更新を実行する場合には使用しないでください。 たとえば、READ_ONLY設定を選択し、ゲートウェイによって起動されるリモート・トランザクション・プログラムが外部データベースへの更新を実行する場合、 Oracleデータベースでは、これらの更新に対する整合性保護は提供されません。 さらに、READ_ONLYモードでは、ゲートウェイ・トランザクションを、他の複数のデータベースを更新する分散トランザクションの一部にできます。 ゲートウェイがこの状況で更新を行うリモート・トランザクション・プログラムを呼び出す場合、障害が発生すると、リモート・トランザクション・プログラムによって更新されたデータベースは他のデータベースと同期していません。

リモート・トランザクション・プログラムが外部データベースに対する更新を実行する場合、PGA_CAPABILITYの値には の2つのオプションがあります:

  • SINGLE_SITE

  • COMMIT_CONFIRM

これらの各オプションは、 COMMITおよび ROLLBACKリクエストをリモート・トランザクション・プログラムに転送し、ゲートウェイの分散更新およびリカバリ機能について Oracleデータベースに通知することで、データ整合性の問題に対する保護を提供します。 個別のオプションは、リモート・トランザクション・プログラムの設計や、プログラムが実行されるOLTP(オンライン・トランザクション・プロセッサ)の機能により異なります。

OLTPでLU6.2 SYNCLEVEL 1または2がサポートされている場合、 COMMIT_CONFIRM機能は、 OracleデータベースとOLTPの間に限定された2フェーズ・コミットを提供しますが、他のコミット確認サイト(ゲートウェイまたはOracle)は分散トランザクションの一部にできないという制限があります。 COMMIT_CONFIRMを使用できない場合、SINGLE_SITE機能は、Oracleデータベースと OLTPの間で更新機能を提供します。OLTPのみが更新を実行でき、Oracle側では更新を実行できないという制限があります。

更新制御用の各PGA_CAPABILITYオプションは、リモート・トランザクション・プログラムおよびOLTPに特定の要件を適用します。 COMMIT_CONFIRM機能の場合、これらの要件については、「Oracle Database Gateway for APPCユーザー・ガイド」の第5章、「コミット確認の実装」で詳しく説明します。 このガイドの「コミット確認のためのOLTPの構成」も参照してください。 SINGLE_SITE機能の場合、リモート・トランザクション・プログラムは、 Oracleデータベースのかわりにゲートウェイから受信したCOMMITおよびROLLBACKリクエストに応じて、必要なタスクを実行します。 ゲートウェイは、APPCのCONFIRMおよびSEND_ERRリクエストを使用して、それぞれCOMMITおよびROLLBACKを実装します。 CONFIRMを受信すると、リモート・トランザクション・プログラムはCOMMIT処理を実行してから、APPC CONFIRMEDレスポンスでゲートウェイに応答する必要があります。 SEND_ERRを受信すると、リモート・トランザクション・プログラムはROLLBACK処理を実行する必要があります。

Oracleデータベースの分散トランザクション機能は、ゲートウェイで使用されるPGA_CAPABILITYオプションの影響を受けるため、問合せを分離し、それぞれに異なるゲートウェイ・インスタンスを使用してアプリケーションを更新することをお薦めします。 1つのゲートウェイは、PGA_CAPABILITYREAD_ONLYに設定し、PGA_CAPABILITYSINGLE_SITEまたはCOMMIT_CONFIRMに設定して定義できます。

これにより、Oracleデータベースの制御下で、読取り専用トランザクション・プログラムが分散トランザクションに参加することが可能になります。 たとえば、DB2からのデータは、照会のみのリモート・トランザクション・プログラムによってREAD_ONLYゲートウェイを介して取得でき、その後、Oracleデータベース上のデータベース更新への入力として使用できます(すべて1つのOracleトランザクション内)。 SINGLE_SITEゲートウェイは、Oracleデータベース・コントロールの範囲外で外部データベースに対する更新を実行するリモート・トランザクション・プログラムへのアクセスにのみ使用できます。 データは、Oracleデータベースにアクセスできる任意のデータベースから読み取ることができ、そのデータはゲートウェイを介して更新を実行するために使用できます。

Oracle側とOLTP側の両方でリソースを更新する必要がある場合は、OLTPおよびリモート・トランザクション・プログラムがコミット確認を実装するように設定されていれば、COMMIT_CONFIRMゲートウェイを使用できます。

複数のゲートウェイ・インスタンスをセットアップするために必要なのは、各インスタンスについて次をセットアップすることのみです。

  • ゲートウェイ・インスタンスのsidを定義するlistener.ora ファイル内のエントリ

  • listener.oraで定義されているゲートウェイ・インスタンスへの接続に使用する別名を定義する、tnsnames.ora ファイルのエントリ

  • USINGパラメータでtnsnames.oraファイルに定義されている別名を指定する、Oracleデータベース内のデータベース・リンク

ゲートウェイ・インスタンスが1つの共有ディレクトリ構造を共有でき、同一の実行可能ファイルを使用することに注意してください。

たとえば、 PGAI PGAUの2つのゲートウェイ(それぞれ照会および更新使用の場合)を設定するには、次のステップが必要です:

  1. 2つのsidPGAIおよびPGAUのエントリをlistener.oraに定義します。

  2. 2つの新しいsidPGAIおよびPGAUに接続する2つの別名をtnsnames.oraに定義します。

  3. 2つのデータベース・リンクを Oracleデータベースで定義します。1つはPGAIに接続し、もう1つはPGAUに接続します。

  4. 最後に、初期化ファイルinitPGAI.oraおよびinitPGAU.oraを作成します。

    initPGAI.oraで、PGA_CAPABILITYREAD_ONLYに設定し、initPGAU.oraで、PGA_CAPABILITYSINGLE_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 = /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)
  )