機械翻訳について

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

次のトピックでは、ゲートウェイ初期化ファイルのロケーションについて説明し、特にSNAプロトコル用のOracle Database Gateway for APPCでサポートされる ゲートウェイ初期化パラメータを示します。 これらのパラメータは、「"SNAプロトコルを使用して既存のゲートウェイ・インスタンスを新しいリリースに移行"」で完全に文書化されています。 さらに、トピックには、SNAを使用するゲートウェイのサンプルlistener.oraおよびtnsnamesファイルが含まれています。

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

注意:

init sid. oraファイルには、SNAパラメータとTCP/IPパラメータの両方が入っています。 これらのファイルを変更してパラメータを適切にする必要があります。

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の使用)

パラメータ 説明

LOG_DESTINATION=logpath

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

説明:

  • sidはsid名です

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

PGA_CAPABILITY

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

READ_ONLYまたはRO: 読取り専用機能。

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

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

デフォルトはSINGLE_SITEです。

PGA_CONFIRM

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

ACCEPT - 着信するAPPC CONFIRMリクエストにAPPC CONFIRMEDレスポンスで応答します。

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

APPC対話を、PGA_RECOVERY_TPNAMEパラメータで指定されたトランザクションに割り当てるときに、ゲートウェイが使用するパスワード。 パスワードの長さは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

APPC対話を、PGA_RECOVERY_TPNAMEパラメータで指定されたトランザクションに割り当てるときに、ゲートウェイが使用するユーザー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のいずれかの値の場合、トレーシングがオンになります。

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フェーズ・コミットを提供しますが、他の commit-confirmサイト(ゲートウェイまたはOracle)分散トランザクション。 COMMIT_CONFIRMを使用できない場合、SINGLE_SITE機能は、OracleデータベースとOLTP間の更新機能を提供します。これは、OLTPのみが更新を実行し、Oracle側で更新が行われないという制限があります。

更新制御のためのPGA_CAPABILITYオプションは、それぞれ固有の要件をリモート・トランザクション・プログラムとOLTPに課します。 COMMIT_CONFIRM機能については、これらの要件は『Oracle Database Gateway for APPCユーザーズ・ガイド』の第5章コミット確認の実装で説明されています。 このガイドの「Commit-ConfirmのためのOLTPの構成」も参照してください。 SINGLE_SITE機能の場合、リモート・トランザクション・プログラムは、ゲートウェイから受信したCOMMITおよびROLLBACKリクエストへのレスポンスとして、Oracleデータベースに代わって必要なタスクを実行します。 ゲートウェイは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側の両方でリソースを更新する必要がある場合、COMMIT_CONFIRMゲートウェイを使用できます。ただしOLTPとリモート・トランザクション・プログラムがコミット確認を実装するようにセットアップされていることが条件です。

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

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

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

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

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

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

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

  2. 2つの新しいsidPGAIPGAUに接続する2つの別名をtnsnames.oraに定義します。

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

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

    initPGAI.oraPGA_CAPABILITYREAD_ONLYに、initPGAU.oraPGA_CAPABILITYSINGLE_SITEまたはCOMMIT_CONFIRMに設定します。 その後、PGAIゲートウェイを照会専用トランザクションに使用し、PGAUゲートウェイを更新トランザクションに使用します。

    ゲートウェイ・インスタンスをさらに追加する場合にも、同一のステップを使用します。

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側の更新を制御できないことを意味します。

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)
    )
  )

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)
  )