スケーラブルデータベースサーバ HiRDB Version 8 システム導入・設計ガイド(UNIX(R)用)

[目次][索引][前へ][次へ]

8.2.6 トランザクションマネジャに登録する情報

HiRDBをリソースマネジャとしてトランザクションマネジャに登録する方法については,トランザクションマネジャのマニュアルを参照してください。このとき,次に示す情報をトランザクションマネジャに指定します。

なお,WebLogic Serverの場合は(6)以降の操作を実施してください。

<この項の構成>
(1) RMスイッチ名
(2) RM名
(3) オープン文字列
(4) クローズ文字列
(5) RM関連オブジェクト名
(6) クライアント環境定義
(7) JDBCドライバ(WebLogic Server使用時限定)

(1) RMスイッチ名

動的登録にするか又は静的登録にするかは,RMスイッチ名の指定で決まります。HiRDBのRMスイッチ名(xa_switch_t 構造体名)を次に示します。

(2) RM名

RMスイッチ(xa_switch_t 構造体)で定義されているRM名(リソースマネジャ名)は,HiRDB_DB_SERVERです。

(3) オープン文字列

トランザクションマネジャがxa_openでリソースマネジャをオープンするときに使用するオープン文字列は,複数接続機能を使用する場合に指定してください。複数接続機能を使用しない場合はオープン文字列を指定する必要はありません。ただし,トランザクションマネジャがTP1/EEの場合は,複数接続機能を使用しないときでも,登録している一つのHiRDBに対してオープン文字列を指定してください。トランザクションマネジャがTUXEDO又はWebLogic Serverの場合は,複数接続機能を使用できません。

複数接続機能を使用する場合は,トランザクションマネジャに複数のHiRDBを登録し,各HiRDBに対してオープン文字列を指定します。オープン文字列には次に示す項目を指定します。

次のどちらかの書式で記述します。

これ以外の形式で指定した場合は,オープン文字列が無視されます。また,環境変数グループ識別子は4バイト固定,オープン文字列は全体で257バイト以上にできません。

トランザクションマネジャがOpenTP1,TPBroker for C++,又はTP1/EEの場合のオープン文字列の登録例を次に示します。

(a) OpenTP1の場合

OpenTP1のトランザクションサービス定義のtrnstringオペランドでオープン文字列を登録します。ここでは二つのHiRDBをOpenTP1に登録します。登録条件は次のとおりとします。

リソースマネジャ 環境変数グループ識別子 環境変数設定ファイル名
HiRDB1 HDB1 /usr/conf/HiRDB/HiRDB11.ini
/usr/conf/HiRDB/HiRDB12.ini
HiRDB2 HDB2 /usr/conf/HiRDB/HiRDB21.ini
/usr/conf/HiRDB/HiRDB22.ini

オープン文字列の登録例を次に示します。

 
trnstring -n HiRDB_DB_SERVER -i H1 -o "HDB1*/usr/conf/HiRDB/HiRDB11.ini"
-O "HDB1+/usr/conf/HiRDB/HiRDB12.ini"
trnstring -n HiRDB_DB_SERVER -i H2 -o "HDB2*/usr/conf/HiRDB/HiRDB21.ini"
-O "HDB2+/usr/conf/HiRDB/HiRDB22.ini"
 

〔説明〕
-n:リソースマネジャ名を指定します。
-i:リソースマネジャ拡張子を指定します。
-o:トランザクションサービス用xa_open関数用文字列を指定します。
OpenTP1のトランザクションサービスプロセスが使用するオープン文字列を指定します。
"環境変数グループ識別子*環境変数設定ファイル名"の形式で指定します。
-O:ユーザサーバ用xa_open関数用文字列を指定します。
ユーザサーバプロセスが使用するオープン文字列を指定します。
"環境変数グループ識別子+環境変数設定ファイル名"の形式で指定します。
  • -oと-Oには同じ環境変数グループ識別子を指定してください。
  • -oと-Oに指定するファイルで設定する環境変数は同じ内容にしてください。

備考
OpenTP1のユーザサービス定義のtrnrmidオペランドで,ユーザサービスから接続するHiRDBを選択します。HiRDB1とHiRDB2に接続する例を次に示します。
 
trnrmid -n HiRDB_DB_SERVER -i H1,H2
 
(b) TPBroker for C++の場合

TPBroker for C++のリソースマネジャ定義のxa_open_string_infoオペランドでオープン文字列を登録します。ここでは二つのHiRDBをTPBroker for C++に登録します。登録条件は次のとおりとします。

リソースマネジャ 環境変数グループ識別子 環境変数設定ファイル名
HiRDB1 HDB1 /usr/conf/HiRDB/HiRDB11.ini
/usr/conf/HiRDB/HiRDB12.ini
HiRDB2 HDB2 /usr/conf/HiRDB/HiRDB21.ini
/usr/conf/HiRDB/HiRDB22.ini

オープン文字列の登録例を次に示します。

 
tsdefvalue /OTS/RM/HiRDB_DB_SERVER_1/DMN/xa_open_string_info     1
-s "HDB1*/usr/conf/HiRDB/HiRDB11.ini"
tsdefvalue /OTS/RM/HiRDB_DB_SERVER_1/xa_open_string_info         2
-s "HDB1+/usr/conf/HiRDB/HiRDB12.ini"
 
tsdefvalue /OTS/RM/HiRDB_DB_SERVER_2/DMN/xa_open_string_info     1
-s "HDB2*/usr/conf/HiRDB/HiRDB21.ini"
tsdefvalue /OTS/RM/HiRDB_DB_SERVER_2/xa_open_string_info         2
-s "HDB2+/usr/conf/HiRDB/HiRDB22.ini"
 

〔説明〕
  1. /OTS/RM/RM名/DMN/xa_open_string_infoには,TPBroker for C++の回復プロセスが使用するオープン文字列を指定します。環境変数グループ識別子と環境変数設定ファイル名の間の文字にはを指定してください。
  2. /OTS/RM/RM名/xa_open_string_infoには,アプリケーションプログラムプロセス及び決着プロセスが使用するオープン文字列を指定します。環境変数グループ識別子と環境変数設定ファイル名の間の文字には+を指定してください。
  • RM名が同じ場合は,同じ環境変数グループ識別子を指定してください。
  • RM名が同じ場合は,各環境変数設定ファイルに設定する環境変数を同じ内容にしてください。
  • 決着プロセスに対して環境変数TPRMINFOを設定している場合,/OTS/RM/RM名/(TPRMINFO設定値)/xa_open_string_infoに指定するオープン文字列には/OTS/RM/RM名/xa_open_string_infoと同じ文字列を指定してください。また,決着プロセスに対してTPRMINFOを設定しない場合でも,複数接続機能を使用するときは/OTS/completion_process_envにデフォルトとして'TPRMINFO='を指定してください。指定例を次に示します。
    (例)tsdefvalue /OTS completion_process_env -a 'TPRMINFO='
(c) TP1/EEの場合

TP1/EEのトランザクション関連定義のtrnstringオペランドでオープン文字列を登録します。ここでは二つのHiRDBをTP1/EEに登録します。登録条件は次のとおりとします。

リソースマネジャ 環境変数グループ識別子 環境変数設定ファイル名
HiRDB1 HDB1 /usr/conf/HiRDB/HiRDB11.ini
/usr/conf/HiRDB/HiRDB12.ini
HiRDB2 HDB2 /usr/conf/HiRDB/HiRDB21.ini
/usr/conf/HiRDB/HiRDB22.ini

オープン文字列の登録例を次に示します。

 
trnstring -n HiRDB_DB_SERVER -i H1 -o "HDB1*/usr/conf/HiRDB/HiRDB11.ini" \
    -O "HDB1+/usr/conf/HiRDB/HiRDB12.ini"
trnstring -n HiRDB_DB_SERVER -i H2 -o "HDB2*/usr/conf/HiRDB/HiRDB21.ini" \
    -O "HDB2+/usr/conf/HiRDB/HiRDB22.ini"
 

〔説明〕
-n:リソースマネジャ名を指定します。
-i:リソースマネジャ拡張子を指定します。
-o
TP1/EEの回復スレッド及び監視スレッドが使用するオープン文字列を指定します。
"環境変数グループ識別子*環境変数設定ファイル名"の形式で指定します。
-O
処理スレッドが使用するオープン文字列を指定します。
"環境変数グループ識別子+環境変数設定ファイル名"の形式で指定します。
  • -oと-Oには同じ環境変数グループ識別子を指定してください。
  • -oと-Oに指定するファイルで設定する環境変数は同じ内容にしてください。

(4) クローズ文字列

トランザクションマネジャがxa_closeでリソースマネジャをクローズするときに使用するクローズ文字列は指定不要です。

(5) RM関連オブジェクト名

RM関連オブジェクト名には,次の表に示すライブラリ名を指定します。なお,共用ライブラリのサフィックスはプラットフォームによって異なります。Solaris及びLinuxの場合は.soに,AIXの場合は.aになります。アーカイブライブラリ名は全プラットフォーム共通です。

表8-5 RM関連オブジェクト名に指定するライブラリ名

ライブラリの種類 ライブラリ名
共用ライブラリ シングルスレッド用 libzclty.sl(libzcltx.sl)
シングルスレッド用
(複数接続機能対応)
libzcltys.sl※1(libzcltxs.sl)
マルチスレッド用
(複数接続機能対応)※2
libzcltyk.sl(libzcltxk.sl)
アーカイブライブラリ シングルスレッド用 libcltya.a(libcltxa.a)

注1
動的登録する場合は,( )で囲まれているライブラリ名を指定してもかまいません。

注2
ライブラリには共用ライブラリとアーカイブライブラリの両方があります。用途に応じてどちらかを選択してください。ただし,共用ライブラリの方が次に示す利点があるため,共用ライブラリを指定することをお勧めします。
  • UAPのオブジェクトサイズが小さくなります。
  • HiRDBのバージョンアップ時に再リンケージが不要になります。

注※1
TUXEDOと連携する場合に指定するライブラリ名です。

注※2
HP-UX 11.0版及びSolaris版で使用できます。

(6) クライアント環境定義

トランザクションマネジャにHiRDBのトランザクション処理を制御させるためには,HiRDBのクライアント環境定義をトランザクションマネジャの定義に設定する必要があります。OLTP環境下でのクライアント環境定義の設定方法については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。

(a) OpenTP1の場合

トランザクションマネジャがOpenTP1の場合,クライアント環境定義を次に示すOpenTP1のシステム定義に指定する必要があります。

これらの定義については,マニュアル「OpenTP1 システム定義」を参照してください。

なお,複数のOpenTP1と接続する場合は,次に示すクライアント環境定義を必ず指定してください。

(b) TPBroker for C++の場合

クライアント環境定義はTPBroker for C++のシステム定義に指定してください。

(c) TUXEDOの場合

TUXEDOコンフィギュレーション・ファイル(UBBCONFIGファイル)のENVFILEパラメタで指定したファイルに,クライアント環境定義を指定してください。TUXEDOコンフィギュレーション・ファイルについては,TUXEDOのマニュアルを参照してください。

(d) WebLogic Serverの場合

WebLogic Serverプロセスの環境変数にクライアント環境定義を指定してください。

(e) TP1/EEの場合

トランザクションマネジャがTP1/EEの場合,クライアント環境定義を,次に示すTP1/EEを実行する環境のOpenTP1のシステム定義に指定する必要があります。

これらの定義については,マニュアル「OpenTP1 システム定義」及び「分散トランザクション処理機能 TP1/Server Base Enterprise Option 使用の手引」を参照してください。

なお,複数のTP1/EEと接続する場合は,次に示すクライアント環境定義を必ず指定してください。

(7) JDBCドライバ(WebLogic Server使用時限定)

HiRDBを登録するときに指定するJDBCドライバのパッケージ名称とDriverクラス名称を次に示します。