Hitachi

ノンストップデータベース HiRDB Version 10 システム導入・設計ガイド(UNIX(R)用)


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

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

〈この項の構成〉

(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の場合は,複数接続機能を使用できません。

複数接続機能を使用する場合は,トランザクションマネジャに複数の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関連オブジェクト名には,コンパイル,及びリンケージをするときに指定するライブラリのファイル名を指定します。指定するファイル名については,次の表を参照してください。

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

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

(a) OpenTP1の場合

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

  • システム環境定義

  • ユーザサービスデフォルト定義

  • ユーザサービス定義

  • トランザクションサービス定義

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

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

  • HiRDB_PDTMID又はPDTMID

(b) TPBroker for C++の場合

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

(c) TUXEDOの場合

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

(d) TP1/EEの場合

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

  • ユーザサービスデフォルト定義

  • ユーザサービス定義

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

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

  • PDTMID