ヘッダーをスキップ
Oracle Database Gatewayインストレーションおよび構成ガイド
11gリリース1(11.1) for Microsoft Windows
E05709-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

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を使用して初期化パラメータ・ファイルの名前を変更する必要があります。ゲートウェイの起動、インストールの成功の確認、およびデモ・スクリプトの実行用としては、このデフォルトの初期化パラメータ・ファイルで十分です。

複数の初期化パラメータを使用して、ゲートウェイの動作を変更できます。設定可能な初期化パラメータの完全なリストは、付録C「初期化パラメータ」を参照してください。初期化パラメータに加えた変更は、次のゲートウェイ・セッションまで反映されません。最も重要なパラメータは、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データベースの名前。


関連項目:

初期化パラメータ・ファイルのカスタマイズの詳細は、付録C「初期化パラメータ」および『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管理者ガイド』を参照してください。

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 tnsnames.oraファイルのパラメータ

変数 説明

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以外のシステムに接続することを指定します。


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

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管理者ガイド』および『Oracle Database Heterogeneous Connectivity管理者ガイド』を参照してください。

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

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

トランザクション・モデルは、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の詳細は、付録C「初期化パラメータ」を参照してください。

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

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初期化パラメータの詳細は、付録C「初期化パラメータ」を参照してください。

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


注意:

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

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

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

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


関連項目:

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

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

複数の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つのエントリを用意する必要があります。

次の例では、最初にインストールされた元のゲートウェイ用のエントリの次に、新規エントリが続いています。

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の構成

tnsnames.oraファイルに2つの接続記述子エントリを追加します。複数のゲートウェイ・インスタンスで同じデータベースにアクセスする場合でも、ゲートウェイ・インスタンスごとに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;