Linkexpress Transactional Replication option説明書
目次 索引 前ページ次ページ

第3部 TJNL> 第12章 Oracle連携編> 12.3 Oracleのサポート範囲と初期設定> 12.3.2 Oracleの初期設定

12.3.2.2 Oracleのネットワーク・コンポーネントの設定

TJNLはOracleデータベースの更新データをジャーナルとして取得する際に、データベース・トリガー機能と外部プロシージャ(外部ルーチン)機能を使用します。外部プロシージャの動作を可能にするためには、Oracleのネットワーク・コンポーネントが外部プロシージャ・エージェント(extproc)専用のプロセスを起動する必要があります。そのためにOracle Netのローカル・ネーミング・パラメータ(tnsnames.ora)とリスナー・パラメータ(listener.ora)にエントリを追加する必要があります。

外部プロシージャについての詳細およびローカル・ネーミング・パラメータとリスナー・パラメータの詳細はOracleのマニュアルを参照してください。

■ローカル・ネーミング・パラメータ(tnsnames.ora)の設定

tnsnames.oraファイルの設定例を"表:tnsnames.oraファイルの設定例"に示します。Database Configuratiaon Assistantを使用してデータベース作成した場合にはOracleによって以下の内容が自動的に設定されています。tnsnames.oraファイルを参照し、記述がない場合のみ追加を行ってください。また、斜体で記述されている箇所は使用するデータベースの環境に合わせて設定されていることを確認してください。

tnsnames.oraファイルの格納場所は以下のとおりです。

------------------------------------------------
$ORACLE_HOME/network/admin/tnsnames.ora
------------------------------------------------

------------------------------------------------
$ORACLE_HOME\network\admin\tnsnames.ora
------------------------------------------------

[表:tnsnames.oraファイルの設定例]

#ここから外部プロシージャのための設定
EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )
#ここまで外部プロシージャのための設定

Oracleインスタンス名 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ホスト名)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = グローバル・データベース名)
    )
  )

指定するKEYはlistener.oraファイルで指定するKEYと一致させる必要があります。また、指定するSIDはlistener.oraファイルのSID_NAMEエントリと一致させる必要があります。

■リスナー・パラメータ(listener.ora)の設定

listener.oraファイルの設定例を"表:listener.oraファイルの設定例"に示します。通常はデータベース作成時にOracleによっていくつかの項目が自動的に設定されています。listener.oraファイルを参照し、記述がない項目のみ追加を行ってください。また、斜体で記述されている箇所は使用するデータベースの環境に合わせて設定されていることを確認してください。

listener.oraファイルの格納場所は以下のとおりです。

------------------------------------------------
$ORACLE_HOME/network/admin/listener.ora
------------------------------------------------

------------------------------------------------
$ORACLE_HOME\network\admin\listener.ora
------------------------------------------------

[表:listener.oraファイルの設定例]

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = ホスト名)(PORT = 1521))
      )
      #ここから外部プロシージャのための設定
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
      #ここまで外部プロシージャのための設定
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = グローバル・データベース名)
      (ORACLE_HOME = $ORACLE_HOME) (注)
      (SID_NAME = Oracleインスタンス名)
    )
#ここから外部プロシージャのための設定
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = $ORACLE_HOME) (注)
      (PROGRAM = extproc)
      (ENVS="EXTPROC_DLLS=/opt/FJSVtjnl/lib/libtjnltrg.so,
       LD_LIBRARY_PATH=/opt/FJSVtjnl/lib:/opt/FJSVtrm/lib:$ORACLE_HOME/lib")
    )
#ここまで外部プロシージャのための設定
  )

注)環境変数ORACLE_HOMEにはOracleソフトウェアがあるディレクトリを指定します。

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = ホスト名)(PORT = 1521))
      )
      #ここから外部プロシージャのための設定
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
      #ここまで外部プロシージャのための設定
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = Oracleインスタンス名)
      (SERVICE_NAME = グローバル・データベース名)
      (ORACLE_HOME = $ORACLE_HOME) (注)
    )
    #ここから外部プロシージャのための設定
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = $ORACLE_HOME) (注)
      (PROGRAM = extproc)
      (ENVS="EXTPROC_DLLS=C:\LinkexpressTRO\TJNL\bin\libtjnltrg.dll")
    )
    #ここまで外部プロシージャのための設定
  )

注)環境変数ORACLE_HOMEにはOracleソフトウェアがあるフォルダを指定します。

◆リスナー・パラメータの設定項目について

PROGRAMセクションには外部プロシージャ・エージェントを設定します。なお、インストールされているOracleソフトウェアが32-bit版または64-bit版のいずれかによりPROGRAMセクションに設定するエントリが異なります。インストールされているOracleソフトウェアはOracleデータベースの管理者に確認してください。PROGRAMセクションに設定するエントリを"表:PROGRAMセクションに設定するエントリ"に示します。

[表:PROGRAMセクションに設定するエントリ]

[Oracle32-bit版の場合]
(PROGRAM=extproc)
[Oracle64-bit版の場合]
(PROGRAM=extproc32)

ENVSセクションには外部プロシージャのエントリ・プロセスが動作するために必要な環境変数を設定します。なお、インストールされているOracleソフトウェアが32-bit版または64-bit版のいずれかにより環境変数の設定値が異なります。インストールされているOracleソフトウェアはOracleデータベースの管理者に確認してください。ENVSセクションに設定する環境変数の一覧を"表:ENVSセクションに設定する環境変数の一覧"に示します。

[表:ENVSセクションに設定する環境変数の一覧]

環境変数名

LD_LIBRARY_PATH

/opt/FJSVtjnl/lib

/opt/FJSVtrm/lib

[Oracle32-bit版の場合]
ORACLE_HOME/lib(注)
例)/opt/oracle/product/10.2.0/lib
[Oracle64-bit版の場合]
$ORACLE_HOME/lib32(注)
例)/opt/oracle/product/10.2.0/lib32

注)環境変数ORACLE_HOMEはOracleソフトウェアがあるディレクトリを指定します。

また、Oracleソフトウェアのバージョンが9.2.0以降の場合は、上記に加え、ENVSセクションに以下の環境変数を設定する必要があります。ENVSセクションに設定する環境変数の一覧を"表:Oracle9.2.0以降の場合にENVSセクションに設定する環境変数の一覧"に示します。

[表:Oracle9.2.0以降の場合にENVSセクションに設定する環境変数の一覧]

環境変数名

EXTPROC_DLLS

/opt/FJSVtjnl/lib/libtjnltrg.so

Oracleソフトウェアのバージョンが9.2.0以降の場合は、ENVSセクションに以下の環境変数を設定する必要があります。ENVSセクションに設定する環境変数の一覧を"表:Oracleが9.2.0以降の場合にENVSセクションに設定する環境変数の一覧"に示します。

[表:Oracle9.2.0以降の場合にENVSセクションに設定する環境変数の一覧]

環境変数名

EXTPROC_DLLS

インストールフォルダ\TJNL\bin\libtjnltrg.dll

ENVSセクションには外部プロシージャのエントリ・プロセスが動作するために必要な環境変数を設定します。ENVSセクションに設定する環境変数の一覧を“表:ENVSセクションに設定する環境変数の一覧”に示します。

[表: ENVSセクションに設定する環境変数の一覧]

環境変数名

EXTPROC_DLLS

/opt/FJSVtjnl/lib/libtjnltrg.so

LD_LIBRARY_PATH

/opt/FJSVtjnl/lib

/opt/FJSVtrm/lib

$ORACLE_HOME/lib(注)
例)/opt/oracle/product/10.2.0/lib

注)環境変数ORACLE_HOMEはOracleソフトウェアがあるディレクトリを指定します。


目次 索引 前ページ次ページ

Copyright FUJITSU LIMITED 2007-2009