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ビット・バージョンまたは64ビット・バージョンのいずれかによりPROGRAMセクションに設定するエントリが異なります。インストールされているOracleソフトウェアはOracleデータベースの管理者に確認してください。PROGRAMセクションに設定するエントリを"表:PROGRAMセクションに設定するエントリ"に示します。

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

[Oracleソフトウェアが32ビット・バージョンの場合]
(PROGRAM=extproc)

[Oracleソフトウェアが64ビット・バージョンの場合(Oracle11gR1以前)]
(PROGRAM=extproc32)

[Oracleソフトウェアが64ビット・バージョンの場合(Oracle11gR2以降)]
例) (PROGRAM=/opt/oracle/product/11.2.0_Client/bin/extproc) (注)

注)Oracle11gR2以降を使用する場合は、32ビット・バージョンのOracle Database Clientを別途インストールし、インストールしたextprocを指定します。

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

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

環境変数名

EXTPROC_DLLS

/opt/FJSVtjnl/lib/libtjnltrg.so

LD_LIBRARY_PATH

/opt/FJSVtjnl/lib

/opt/FJSVtrm/lib

[Oracleソフトウェアが32ビット・バージョンの場合]
$ORACLE_HOME/lib(注)
例)/opt/oracle/product/11.2.0/lib

[Oracleソフトウェアが64ビット・バージョンの場合(Oracle11gR1以前)]
$ORACLE_HOME/lib32(注)
例)/opt/oracle/product/11.1.0/lib32

[Oracleソフトウェアが64ビット・バージョンの場合(Oracle11gR2以降)]
例)/opt/oracle/product/11.2.0_Client/lib(注)

注)環境変数ORACLE_HOMEはOracleソフトウェアが存在するディレクトリを指定します。
  Oracle11gR2以降を使用する場合は、32ビット・バージョンのOracle Database Clientを別途インストールし、インストールしたlibを指定します。

ENVSセクションに以下の環境変数を設定する必要があります。ENVSセクションに設定する環境変数の一覧を"表:ENVSセクションに設定する環境変数の一覧"に示します。

[表: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/11.2.0/lib

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


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

Copyright FUJITSU LIMITED 2007-2011