7.2.6 トランザクションマネジャに登録する情報
HiRDBをリソースマネジャとしてトランザクションマネジャに登録する方法については,トランザクションマネジャのマニュアルを参照してください。このとき,次に示す情報をトランザクションマネジャに指定します。
(1) RMスイッチ名
動的登録にするか又は静的登録にするかは,RMスイッチ名の指定で決まります。HiRDBのRMスイッチ名(xa_switch_t 構造体名)を次に示します。
-
動的登録の場合:pdtxa_switch
-
静的登録の場合:pdtxa_switch_y
(3) オープン文字列
トランザクションマネジャがxa_openでリソースマネジャをオープンするときに使用するオープン文字列は,複数接続機能を使用する場合に指定してください。複数接続機能を使用しない場合はオープン文字列を指定する必要はありません。トランザクションマネジャがTUXEDOの場合は,複数接続機能を使用できません。
複数接続機能を使用する場合は,トランザクションマネジャに複数のHiRDBを登録し,各HiRDBに対してオープン文字列を指定します。オープン文字列には次に示す項目を指定します。
-
接続先で有効にする環境変数を設定したファイルの絶対パス名,又は接続先で有効にする環境変数をレジストリ登録したときに指定した環境変数グループ名(環境変数をレジストリ登録する方法については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照)
-
環境変数グループ識別子
次のどちらかの書式で記述します。
-
"環境変数グループ識別子+環境変数設定ファイル名又は環境変数グループ名"
-
"環境変数グループ識別子*環境変数設定ファイル名又は環境変数グループ名"
これ以外の形式で指定した場合は,オープン文字列が無視されます。また,環境変数グループ識別子は4バイト固定,オープン文字列は全体で257バイト以上にできません。
トランザクションマネジャがOpenTP1又はTPBroker for C++の場合のオープン文字列の登録例を次に示します。
(a) OpenTP1の場合
OpenTP1のトランザクションサービス定義のtrnstringオペランドでオープン文字列を登録します。ここでは二つのHiRDBをOpenTP1に登録します。登録条件は次のとおりとします。
リソースマネジャ |
環境変数グループ識別子 |
環境変数設定ファイル名又は環境変数グループ名 |
---|---|---|
HiRDB1 |
HDB1 |
hirdb11 hirdb12 |
HiRDB2 |
HDB2 |
hirdb21 hirdb22 |
オープン文字列の登録例を次に示します。
trnstring -n HiRDB_DB_SERVER -i H1 -o "HDB1*hirdb11" -O "HDB1+hirdb12" trnstring -n HiRDB_DB_SERVER -i H2 -o "HDB2*hirdb21" -O "HDB2+hirdb22"
- 〔説明〕
-
-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 |
hirdb11 hirdb12 |
HiRDB2 |
HDB2 |
hirdb21 hirdb22 |
オープン文字列の登録例を次に示します。
tsdefvalue /OTS/RM/HiRDB_DB_SERVER_1/DMN/xa_open_string_info 1 -s "HDB1*hirdb11" tsdefvalue /OTS/RM/HiRDB_DB_SERVER_1/xa_open_string_info 2 -s "HDB1+hirdb12" tsdefvalue /OTS/RM/HiRDB_DB_SERVER_2/DMN/xa_open_string_info 1 -s "HDB2*hirdb21" tsdefvalue /OTS/RM/HiRDB_DB_SERVER_2/xa_open_string_info 2 -s "HDB2+hirdb22"
- 〔説明〕
-
-
/OTS/RM/RM名/DMN/xa_open_string_infoには,TPBroker for C++の回復プロセスが使用するオープン文字列を指定します。環境変数グループ識別子と,環境変数設定ファイル又は環境変数グループ名の間の文字には*を指定してください。
-
/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='
-
(5) RM関連オブジェクト名
RM関連オブジェクト名には,次の表に示すライブラリ名を指定します。
ライブラリの種類 |
ライブラリ名 |
---|---|
シングルスレッド用 |
pdcltx32.lib |
シングルスレッド用(複数接続機能対応) |
pdcltxs.lib※ |
マルチスレッド用(複数接続機能対応) |
pdcltxm.lib |
- 注※
-
TUXEDOと連携する場合に指定するライブラリ名です。
(6) クライアント環境定義
トランザクションマネジャにHiRDBのトランザクション処理を制御させるためには,HiRDBのクライアント環境定義をトランザクションマネジャの定義に設定する必要があります。OLTP環境下でのクライアント環境定義の設定方法については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。
(a) OpenTP1の場合
トランザクションマネジャがOpenTP1の場合,クライアント環境定義を次に示すOpenTP1のシステム定義に指定する必要があります。
-
システム環境定義
-
ユーザサービスデフォルト定義
-
ユーザサービス定義
-
トランザクションサービス定義
これらの定義については,マニュアル「OpenTP1 システム定義」を参照してください。
なお,複数のOpenTP1と接続する場合は,次に示すクライアント環境定義を必ず指定してください。
-
HiRDB_PDTMID又はPDTMID
(b) TPBroker for C++の場合
クライアント環境定義はTPBroker for C++のシステム定義に指定してください。
(c) TUXEDOの場合
TUXEDOコンフィギュレーション・ファイル(UBBCONFIGファイル)のENVFILEパラメタで指定したファイルに,クライアント環境定義を指定してください。TUXEDOコンフィギュレーション・ファイルについては,TUXEDOのマニュアルを参照してください。