5 Oracle Database Gateway for Informixの構成

ゲートウェイのインストール後、次のタスクを実行してOracle Database Gateway for Informixを構成します。

  1. ゲートウェイ初期化パラメータ・ファイルの構成

  2. ゲートウェイ用のOracle Netの構成

  3. ゲートウェイ・アクセス用のOracle Databaseの構成

  4. データベース・リンクの作成

  5. 2フェーズ・コミットの構成

  6. ゲートウェイ初期化パラメータ値の暗号化

  7. 複数のInformixデータベースにアクセスするためのゲートウェイの構成

ゲートウェイ初期化パラメータ・ファイルの構成

次のタスクを実行して、ゲートウェイ初期化パラメータ・ファイルを構成します。

  1. ゲートウェイ用のシステム識別子の選択
  2. 初期化パラメータ・ファイルのカスタマイズ

ゲートウェイ用のシステム識別子の選択

ゲートウェイ・システム識別子(SID)は、ゲートウェイ・インスタンスを識別する英数字の文字列です。アクセスするInformixデータベースごとに、1つのゲートウェイ・インスタンスが(したがって1つのゲートウェイSIDが)必要です。SIDは、初期化パラメータ・ファイルのファイル名の一部として使用されます。デフォルトのSIDはdg4ifmxです。

任意のゲートウェイSIDを定義できますが、デフォルトのdg4ifmxを使用する方が、初期化パラメータ・ファイルの名前を変更する必要がないため便利です。ただし、2つのInformixデータベースにアクセスする場合は、ゲートウェイのインスタンスごとに1つずつ、合計2つのゲートウェイSIDが必要です。Informixデータベースが1つのみ存在し、そのアクセスに使用するゲートウェイ・パラメータ設定のセットを状況に応じて使い分ける場合、単一のInformixデータベースに対して複数のゲートウェイSIDが必要です。

初期化パラメータ・ファイルのカスタマイズ

初期化パラメータ・ファイルは、ゲートウェイの起動時に使用できる必要があります。インストール時に、次のデフォルトの初期化パラメータ・ファイルが作成されます。

ORACLE_HOME\dg4ifmx\admin\initdg4ifmx.ora

ここで、ORACLE_HOMEは、ゲートウェイのインストール先のディレクトリです。

この初期化ファイルは、デフォルトのゲートウェイSID用です。ゲートウェイSIDとしてdg4ifmxを使用していない場合、前のステップのゲートウェイ用のシステム識別子の選択で指定したSIDを使用して初期化パラメータ・ファイルの名前を変更する必要があります。このデフォルトの初期化パラメータ・ファイルは、ゲートウェイの起動、正常なインストールの確認およびデモンストレーション・スクリプトの実行用としては十分です。

複数の初期化パラメータを使用して、ゲートウェイの動作を変更できます。設定可能な初期化パラメータの完全なリストは、初期化パラメータを参照してください。初期化パラメータに加えた変更は、次のゲートウェイ・セッションまで反映されません。最も重要なパラメータは、Oracle以外のシステムに対する接続を記述するHS_FDS_CONNECT_INFO,です。

デフォルトの初期化パラメータ・ファイルには、このパラメータのエントリがすでに含まれています。HS_FDS_CONNECT_INFOの構文は、次のとおりです。

HS_FDS_CONNECT_INFO=host_name:port_number/server_name/database_name

説明:

変数 説明

host_name

Informixデータベースをホストするマシンのホスト名またはIPアドレス。

port_number

Informixデータベース・サーバーのポート番号。

server_name

Informixデータベース・サーバーの名前。

database_name

Informixデータベースの名前。

関連項目:

初期化パラメータ・ファイルのカスタマイズの詳細は、初期化パラメータおよびOracle Database Heterogeneous Connectivityユーザーズ・ガイドを参照してください。

ゲートウェイ用のOracle Netの構成

ゲートウェイでは、Oracle Databaseと通信するためにOracle Netが必要です。ゲートウェイの構成後、次のタスクを実行して、ゲートウェイと連携動作するようにOracle Netを構成します。

  1. ゲートウェイ用のOracle Net Listenerの構成
  2. ゲートウェイ用のOracle Net Listenerの停止および起動

ゲートウェイ用のOracle Net Listenerの構成

Oracle Net Listenerは、Oracle Databaseからの着信リクエストをリスニングします。Oracle Net Listenerでゲートウェイをリスニングするためには、ゲートウェイに関する情報をOracle Net Listenerの構成ファイル(listener.ora)に追加する必要があります。このファイルのデフォルトの場所は、ORACLE_HOME\network\adminです(ORACLE_HOMEはゲートウェイのインストール先のディレクトリです)。

次のエントリをlistener.oraファイルに追加する必要があります。

  • Oracle Net ListenerがリスニングするOracle Netアドレスのリスト

  • Oracle Net Listenerが着信接続リクエストに応じて起動するゲートウェイの実行可能ファイルの名前

listener.oraエントリのサンプル(listener.ora.sample)は、ORACLE_HOME\dg4ifmx\adminディレクトリにあります(ORACLE_HOMEはゲートウェイのインストール先のディレクトリです)。

listener.oraファイルのエントリの構文

Oracle Databaseは、Oracle Netおよびサポートされている任意のプロトコル・アダプタを使用してゲートウェイと通信します。次に、TCP/IPプロトコル・アダプタを使用してOracle Net Listenerがリスニングするアドレスの構文を示します。

LISTENER=
        (ADDRESS= 
          (PROTOCOL=TCP)
          (HOST=host_name)
          (PORT=port_number))

説明:

変数 説明

host_name

ゲートウェイがインストールされているマシンの名前。

port_number

Oracle Net Listenerにより使用されるポート番号。同じマシン上で稼働する他のリスナーが存在する場合、port_numberの値は、他のリスナーのポート番号とは異なる必要があります。

着信接続リクエストに応じてゲートウェイを起動するようOracle Net Listenerを構成するには、listener.oraファイルにエントリを追加します。

注意:

listener.oraファイルと次のステップで構成するtnsnames.oraファイルで同じSID値を使用する必要があります。

SID_LIST_LISTENER=
   (SID_LIST=
      (SID_DESC= 
         (SID_NAME=gateway_sid)
         (ORACLE_HOME=oracle_home_directory)
         (PROGRAM=dg4ifmx)
      )
   )

説明:

変数 説明

gateway_sid

ゲートウェイのSIDを指定します。tnsnames.oraファイルの接続記述子エントリで指定されたゲートウェイSIDと一致させます。

oracle_home_directory

ゲートウェイが存在するOracleホーム・ディレクトリを指定します。

dg4ifmx

Oracle Database Gateway for Informixの実行可能ファイル名を指定します。

既存のOracle Net Listenerがすでに存在する場合、既存のlistener.oraファイルのSID_LISTに次の構文を追加します。

SID_LIST_LISTENER=
(SID_LIST= 
   (SID_DESC=.
     .
   )
   (SID_DESC=.
     .
   )
   (SID_DESC=
      (SID_NAME=gateway_sid)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4ifmx)
   )
)

関連項目:

listener.oraファイルの変更方法の詳細は、Oracle Database Net Services管理者ガイドを参照してください。

ゲートウェイ用のOracle Net Listenerの停止および起動

新規設定を反映するには、次のようにOracle Net Listenerを停止して再起動する必要があります。

  1. 「スタート」メニューで、「設定」「コントロール パネル」「サービス」を選択します。
  2. ゲートウェイ用のOracle Net Listenerサービスを選択します。
  3. サービスがすでに実行中の場合、「停止」をクリックしてサービスを停止します。
  4. 「開始」をクリックしてサービスを起動または再起動します。

ゲートウェイ・アクセス用のOracle Databaseの構成

ゲートウェイを使用してInformixデータにアクセスする前に、Oracle Databaseを構成してOracle Netを通じたゲートウェイとの通信を使用可能にする必要があります。

Oracle Databaseを構成するには、tnsnames.oraファイルに接続記述子を追加する必要があります。このファイルのデフォルトの場所は、ORACLE_HOME\network\adminです(ORACLE_HOMEはOracle Databaseのインストール先のディレクトリです)。tnsnames.oraファイルの構成にOracle Net AssistantやOracle Net Easy Configツールを使用することはできません。手動でファイルを編集する必要があります。

tnsnames.oraエントリのサンプル(tnsnames.ora.sample)は、ORACLE_HOME\dg4ifmx\adminディレクトリにあります(ORACLE_HOMEはゲートウェイのインストール先のディレクトリです)。

関連項目:

tnsnames.oraファイルの詳細は、Oracle Database Net Services管理者ガイドを参照してください。

tnsnames.oraの構成

ゲートウェイの接続記述子を追加するには、tnsnames.oraファイルを編集します。次に、TCP/IPプロトコルを使用するOracle Netエントリの構文を示します。

connect_descriptor=
   (DESCRIPTION=
      (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=host_name)
         (PORT=port_number)
      )
      (CONNECT_DATA=
         (SID=gateway_sid))
      (HS=OK))

説明:

表5-1 listener.oraファイルのOracle Database Gateway for Informixパラメータ

変数 説明

connect_descriptor

データベース・リンクの作成時に指定された接続先オブジェクトの記述(dg4ifmxなど)。

sqlnet.oraファイルで次のパラメータ設定を確認してください。

  • names.directory_path = (TNSNAMES)

注意: sqlnet.oraファイルは通常、ORACLE_HOME\network\adminに格納されています。

TCP

TCP/IP接続に使用されるTCPプロトコルです。

host_name

ゲートウェイが稼働しているマシンを指定します。

port_number

ゲートウェイをリスニングしているOracle Net Listenerにより使用されるポート番号と一致させます。Oracle Net Listenerのポート番号は、Oracle Net Listenerにより使用されるlistener.oraファイルで確認できます。listener.oraファイルのエントリの構文を参照してください。

gateway_sid

ゲートウェイのSIDを指定し、ゲートウェイをリスニングするOracle Net Listenerのlistener.oraファイル内で指定されたSIDと一致させます。詳細は、ゲートウェイ用のOracle Net Listenerの構成を参照してください。

(HS=OK)

この接続記述子でOracle以外のシステムに接続することを指定します。

複数のリスナー用のtnsnames.oraの構成

高可用性を確保するために、接続記述子内に複数のリスナーを指定できます。

 connect_descriptor=
    (DESCRIPTION=
       (ADDRESS=
          (PROTOCOL=TCP)
          (HOST=host_name_1)
          (PORT=port_number_1)
       )
       (ADDRESS=
          (PROTOCOL=TCP)
          (HOST=host_name_2)
          (PORT=port_number_2)
       )
       (CONNECT_DATA=
          (SID=gateway_sid))
       (HS=OK))

これは、host_name_1およびport_number_1のリスナーが使用できない場合、host_name_2およびport_number_2の2番目のリスナーが引き継ぐことを示します。

関連項目:

tnsnames.oraファイルの詳細は、Oracle Database Net Services管理者ガイドを参照してください。

データベース・リンクの作成

Oracle Databaseに接続されたすべてのOracleクライアントは、ゲートウェイを通じてInformixデータにアクセスします。OracleクライアントとOracle Databaseは、異なるマシン上に存在できます。ゲートウェイは、Oracle Databaseからの接続のみを受け入れます。

ゲートウェイへの接続は、Oracleセッションでゲートウェイが初めて使用されるときに、データベース・リンクを介して確立されます。この場合の接続とは、Oracle Databaseとゲートウェイ間の接続を示します。接続は、Oracleセッションが終了するまで確立されたままです。別のセッションまたはユーザーが同じデータベース・リンクにアクセスし、ゲートウェイおよびInformixデータベースに対する別個の接続を取得することも可能です。

データベース・リンクは、ゲートウェイ・セッションの継続中はアクティブです。セッション中にデータベース・リンクをクローズする場合は、ALTER SESSION文を使用します。

Informixサーバーにアクセスするには、データベース・リンクを作成する必要があります。パブリック・データベース・リンクは、最も一般的なデータベース・リンクです。

SQL> CREATE PUBLIC DATABASE LINK dblink CONNECT TO
2  "user" IDENTIFIED BY "password" USING 'tns_name_entry';

説明:

変数 説明

dblink

完全なデータベース・リンク名。

tns_name_entry

ゲートウェイを識別するtnsnames.oraファイルのOracle Net接続記述子を指定します。

データベース・リンクの作成後に、次のようにInformixデータベースへの接続を確認できます。

SQL> SELECT * FROM DUAL@dblink;

関連項目:

データベース・リンクの使用の詳細は、Oracle Database管理者ガイドを参照してください。

2フェーズ・コミットの構成

ゲートウェイでは、次のトランザクション機能がサポートされています。

  • COMMIT_CONFIRM

  • READ_ONLY

  • SINGLE_SITE

トランザクション・モデルは、HS_TRANSACTION_MODEL初期化パラメータを使用して設定されます。デフォルトでは、ゲートウェイはCOMMIT_CONFIRMトランザクション・モードで実行されます。Informixデータベースがトランザクションによって更新されると、ゲートウェイはコミット・ポイント・サイトになります。Oracle Databaseは、トランザクションに関連するすべてのOracle Databaseがトランザクションの準備に成功したことを確認してから、Informixデータベースの作業ユニットをコミットします。Oracleの2フェーズ・コミット・トランザクションにコミット・ポイント・サイトとして参加できるのは、ただ1つのゲートウェイ・インスタンスのみです。

関連項目:

2フェーズ・コミット・プロセスの詳細は、Oracle Database Heterogeneous Connectivityユーザーズ・ガイドを参照してください。

COMMIT_CONFIRMトランザクション・モードを有効化するには、次のタスクを実行します。

  1. リカバリ・アカウントおよびパスワードの作成
  2. トランザクション・ログ表の作成

HS_TRANSACTION_LOGというログ表に、2フェーズ・コミット・トランザクションが記録されます。

リカバリ・アカウントおよびパスワードの作成

ゲートウェイで分散トランザクションをリカバリするには、Informixデータベースでリカバリ・アカウントおよびパスワードを設定する必要があります。デフォルトでは、アカウントのユーザー名とパスワードはどちらもRECOVERです。アカウント名は、ゲートウェイ初期化パラメータHS_FDS_RECOVERY_ACCOUNTで変更できます。アカウント・パスワードは、ゲートウェイ初期化パラメータHS_FDS_RECOVERY_PWDで変更できます。

注意:

デフォルト値のRECOVERは、ユーザー名とパスワードに使用しないことをお薦めします。また、ユーザー名とパスワードを初期化ファイルにプレーン・テキストで保存するのは、セキュリティ・ポリシーとして適切ではありません。dg4pwdというユーティリティを使用して、暗号化する必要があります。詳細は、Oracle Database Heterogeneous Connectivityユーザーズ・ガイド4.2.3項「初期化パラメータの暗号化」を参照してください。

  1. Informixデータベースでユーザー・アカウントを設定します。ユーザー名とパスワードは、両方とも有効なInformixユーザー名およびパスワードである必要があります。
  2. 初期化パラメータ・ファイルに、次のゲートウェイ初期化パラメータを設定します。
    • HS_FDS_RECOVERY_ACCOUNT: リカバリ用に設定するInformixユーザー・アカウントのユーザー名を指定します。

    • HS_FDS_RECOVERY_PWD: リカバリ用に設定するInformixユーザー・アカウントのパスワードを指定します。

      関連項目:

      初期化パラメータ・ファイルの編集方法の詳細は、「初期化パラメータ・ファイルのカスタマイズ」を参照してください。HS_FDS_RECOVERY_ACCOUNTおよびHS_FDS_RECOVERY_PWDの詳細は、初期化パラメータを参照してください。

トランザクション・ログ表の作成

2フェーズ・コミット用にゲートウェイを構成する場合、Informixデータベースにトランザクション・ロギングのための表を作成する必要があります。ゲートウェイでは、このトランザクション・ログ表を使用して、ゲートウェイによりInformixデータベースで開始され、表に登録された障害トランザクションのステータスを確認します。

注意:

トランザクション・ログ表への更新は、Oracle分散トランザクションの一部として実行することはできません。

注意:

トランザクション・ログ表の情報は、リカバリ・プロセスで必要とされるため、絶対に変更しないでください。この表は、ゲートウェイによってのみ使用、アクセスまたは更新される必要があります。

HS_TRANSACTION_LOGという表は、データ型CHAR(64) NOT NULLGLOBAL_TRAN_ID列と、データ型CHAR(255)TRAN_COMMENT列で構成されます。

ログ表にHS_TRANSACTION_LOG以外の名前を使用するには、HS_FDS_TRANSACTION_LOG初期化パラメータを使用して別の名前を指定します。

関連項目:

HS_FDS_TRANSACTION_LOG初期化パラメータの詳細は、初期化パラメータを参照してください。

トランザクション・ログ表は、リカバリ・アカウントおよびパスワードの作成で作成したユーザー・アカウントで作成します。 トランザクション・ログ表は、ゲートウェイ・トランザクションのステータスの記録に使用されるため、Informixの更新処理が行われるデータベースに存在する必要があります。また、トランザクション・ログ表は、リカバリ・アカウントの所有者で作成される必要があります。

注意:

トランザクション・ログ表を使用するには、表に対する権限がゲートウェイのユーザーに付与されている必要があります。

トランザクション・ログ表を作成するには、ORACLE_HOME\dg4ifmx\adminディレクトリ(ORACLE_HOMEはゲートウェイのインストール先のディレクトリ)にあるdg4ifmx_tx.sqlスクリプトを使用します。

ゲートウェイ初期化パラメータ値の暗号化

ゲートウェイでは、ユーザーIDとパスワードを使用してリモート・データベースの情報にアクセスします。ユーザーIDおよびパスワードは、リソース・リカバリなどの機能を処理するために、ゲートウェイ初期化ファイルで定義される場合があります。セキュリティを意識した現在の環境では、初期化ファイルでアクセス可能なプレーン・テキスト・パスワードは、セキュアではないとみなされます。セキュリティを向上するために、異機種間サービスの一部としてdg4pwd暗号化ユーティリティが追加されました。このユーティリティには、このゲートウェイからアクセスできます。機密値を含む初期化パラメータは、暗号化された形式で格納できます。

関連項目:

このユーティリティの使用方法の詳細は、Oracle Database Heterogeneous Connectivityユーザーズ・ガイドを参照してください。

複数のInformixデータベースにアクセスするためのゲートウェイの構成

複数のInformixデータベースにアクセスするためのゲートウェイの構成作業は、単一のデータベースを対象とするゲートウェイの構成作業とほぼ同じです。構成の例では、次のことを想定しています。

  • ゲートウェイがデフォルトのSIDであるdg4ifmxを使用してインストールおよび構成されていること。

  • ORACLE_HOME環境変数がゲートウェイのインストール先のディレクトリに設定されていること。

  • ゲートウェイがdb1という1つのInformixデータベース用に構成されていること。

  • IPアドレスが204.179.79.15であるホストにdb2およびdb3という2つのInformixデータベースが追加されること。

複数のInformixデータベースの例: ゲートウェイの構成

Informixデータベースごとに1つのシステムIDを選択

Informixデータベースごとにゲートウェイの個別のインスタンスが必要です。各インスタンスには、固有のゲートウェイ・システムID(SID)が必要です。この例では、Informixデータベースにアクセスするインスタンスに対して次のゲートウェイSIDが選択されます。

  • dg4ifmx2 (データベースdb2にアクセスするゲートウェイ用)。

  • dg4ifmx3(データベースdb3にアクセスするゲートウェイ用)。

2つの初期化パラメータ・ファイルの作成

ゲートウェイのインスタンスごとに初期化パラメータ・ファイルを作成するため、元の初期化パラメータ・ファイルORACLE_HOME\dg4ifmx\admin\initdg4ifmx.oraを2回コピーします。次のように、1つのファイルにはdb2のゲートウェイSIDを含む名前を付け、もう1つのファイルにはdb3のゲートウェイSIDを含む名前を付けます。

> cd ORACLE_HOME\dg4ifmx\admin
> copy initdg4ifmx.ora initdg4ifmx2.ora
> copy initdg4ifmx.ora initdg4ifmx3.ora

各新規ファイルのHS_FDS_CONNECT_INFOパラメータの値を変更します。

initdg4ifmx2.oraの場合、次のように入力します。

HS_FDS_CONNECT_INFO=204.179.79.15:3900/sr2/db2

initdg4ifmx3.oraの場合、次のように入力します。

HS_FDS_CONNECT_INFO=204.179.79.15:3900/sr3/db3

注意:

状況に応じて異なるゲートウェイ・パラメータ設定を使用するために、同じInformixデータベースに対して複数のゲートウェイSIDを割り当てる場合も、同じ手順に従ってください。複数の初期化パラメータ・ファイルを作成し、それぞれに異なるSIDおよび異なるパラメータ設定を使用します。

複数のInformixデータベースの例: Oracle Net Listenerの構成

listener.oraへのエントリの追加

Oracle Net Listener構成ファイルlistener.oraに、2つの新規エントリを追加します。複数のゲートウェイ・インスタンスが同じデータベースにアクセスする場合でも、ゲートウェイ・インスタンスごとに1つのエントリが必要です。

次の例では、インストールされていた最初のゲートウェイのエントリが1番目に、新しいエントリがその後に続いて示されています。

SID_LIST_LISTENER=
(SID_LIST=
   (SID_DESC=
      (SID_NAME=dg4ifmx)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4ifmx)
   )
   (SID_DESC=
      (SID_NAME=dg4ifmx2)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4ifmx)
   )
   (SID_DESC=
      (SID_NAME=dg4ifmx3)
      (ORACLE_HOME=oracle_home_directory)
      (PROGRAM=dg4ifmx)
   )
)

ここで、oracle_home_directoryは、ゲートウェイが存在するディレクトリです。

複数のInformixデータベースの例: Oracle Net Listenerの停止および起動

次のステップを実行します。

  1. 「スタート」メニューで、「設定」「コントロール パネル」「サービス」を選択します。
  2. ゲートウェイ用のOracle Net Listenerサービスを選択します。
  3. 「停止」をクリックします。
  4. 「開始」をクリックします。

複数のInformixデータベースの例: ゲートウェイ・アクセス用のOracle Databaseの構成

2つの接続記述子エントリをtnsnames.oraファイルに追加します。複数のゲートウェイ・インスタンスが同じデータベースにアクセスする場合でも、ゲートウェイ・インスタンスごとに1つのエントリが必要です。

この例では、複数のゲートウェイ・インスタンス用にOracle DatabaseでOracle Netを構成する方法について説明します。次の例では、最初にインストールされた元のゲートウェイ用のエントリの次に、新規ゲートウェイ・インスタンス用の2つのエントリが続いています。

old_db_using=(DESCRIPTION=
              (ADDRESS=
                (PROTOCOL=TCP)
                (PORT=port_number)
                (HOST=host_name))
                (CONNECT_DATA=
                    (SID=dg4ifmx))
               (HS=OK))
new_db2_using=(DESCRIPTION=
              (ADDRESS=
                (PROTOCOL=TCP)
                (PORT=port_number)
                (HOST=host_name))
                (CONNECT_DATA=
                    (SID=dg4ifmx2))
                (HS=OK))
new_db3_using=(DESCRIPTION=
              (ADDRESS=
                (PROTOCOL=TCP)
                (PORT=port_number)
                (HOST=host_name))
                (CONNECT_DATA=
                    (SID=dg4ifmx3))
                (HS=OK)) 

PORTの値は、ゲートウェイをリスニングしているOracle Net ListenerのTCP/IPポート番号です。この番号は、Oracle Net Listenerにより使用されるlistener.oraファイルで確認できます。HOSTの値は、ゲートウェイが稼働しているマシンの名前です。この名前も、Oracle Net Listenerにより使用されるlistener.oraファイルで確認できます。

複数のInformixデータベースの例: Informixデータへのアクセス

次のように入力してdg4ifmx2ゲートウェイ用のデータベース・リンクを作成します。

SQL> CREATE PUBLIC DATABASE LINK IFMX2 CONNECT TO
  2  "user2" IDENTIFIED BY "password2" USING 'new_db2_using';

次のように入力してdg4ifmx3ゲートウェイ用のデータベース・リンクを作成します。

SQL> CREATE PUBLIC DATABASE LINK IFMX3 CONNECT TO
  2  "user3" IDENTIFIED BY "password3" USING 'new_db3_using';

データベース・リンクの作成後に、次のように新規Informixデータベースへの接続を確認できます。

SQL> SELECT * FROM ALL_USERS@IFMX2;
SQL> SELECT * FROM ALL_USERS@IFMX3;