Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 システム定義


trnstring

〈このページの構成〉

名称

リソースマネジャのアクセス用文字列または拡張子の指定

形式

trnstring  -n  リソースマネジャ名
         〔-i  リソースマネジャ拡張子〔,リソースマネジャ拡張子〕…〕
         〔-o  "トランザクションサービス用xa_open関数用文字列"〕
         〔-c  "トランザクションサービス用xa_close関数用文字列"〕
         〔-O  "ユーザサーバ用xa_open関数用文字列"〕
         〔-C  "ユーザサーバ用xa_close関数用文字列"〕〔-d〕
         〔-e〕〔-m〕〔-r〕〔-s〕

機能

リソースマネジャにアクセスするための文字列または拡張子を定義します。

OpenTP1のトランザクションサービスでは,X/OpenのXAインタフェースに準拠し,リソースマネジャと連携してトランザクションを実行します。XAインタフェースでは,リソースマネジャが規定したxa_open関数用文字列,およびxa_close関数用文字列を通知する必要があります。

ユーザサーバが,OpenTP1下のトランザクション内で,OpenTP1以外が提供するリソースマネジャをアクセスする場合(トランザクション制御用オブジェクトファイルをユーザサーバにリンケージした場合),そのリソースマネジャのxa_open関数用文字列,およびxa_close関数用文字列を指定します。xa_open関数,およびxa_close関数は,このコマンドで指定された文字列を引数として,ユーザサーバ起動,および終了時にトランザクションサービスが発行します。

トランザクションサービスは,ユーザサーバ異常終了時,またはOpenTP1再開始時に,ユーザサーバが行っていたトランザクションを回復します。その際xa_open関数およびxa_close関数を使用するため,トランザクションサービスには,ユーザサーバがアクセスする,すべてのリソースマネジャのxa_open関数用,xa_close関数用文字列を定義する必要があります。

-iオプションは,一つのリソースマネジャに複数の拡張子を割り当てて,複数の制御単位としてアクセスする場合にだけ指定してください。OpenTP1は,このオプションを指定したリソースマネジャに対して,リソースマネジャ名を「リソースマネジャ名+リソースマネジャ拡張子」に修飾して管理します。そのため,リソースマネジャ名だけではアクセスできません。ユーザサービス定義,またはユーザサービスデフォルト定義でtrnrmid定義コマンドを指定する必要があります。

-iオプションに指定するリソースマネジャを識別するための文字列は,すべてのtrnstring定義コマンドで重複しないように指定してください。一つの定義ファイル内に同一リソースマネジャ名で,同一リソースマネジャ拡張子のtrnstring定義コマンドを複数指定した場合,最後に指定した定義が有効となります。

-o,-cオプションには,トランザクションサービスプロセスからxa_open関数,xa_close関数を発行する場合に使用する文字列を指定してください。-O,-Cオプションには,ユーザサーバプロセスからxa_open関数,xa_close関数を発行する場合に使用する文字列を指定してください。

-eオプションは,静的リソースマネジャに対するトランザクションブランチ開始時にxa_start関数でエラーが発生した場合,リソースマネジャに対してxa_close関数,xa_open関数,xa_start関数の順にリトライ処理を行うときに指定します。なお,-eオプションを指定しない場合,xa_open関数,xa_start関数の順にリトライ処理を行います。

指定する文字列は,各リソースマネジャのマニュアルを参照してください。

NULL文字列を通知する必要がある場合は,-o,-c,-O,または-Cオプションを省略してください。

次の両方の条件を満たす場合は,このコマンドを定義する必要はありません。

必要な文字列を定義しなかった場合,または不当な文字列を指定した場合は,ユーザサーバの起動,終了,またはトランザクションの回復がエラーとなります。

オプション

●-n リソースマネジャ名

 〜〈1〜31文字の識別子〉

OpenTP1下のトランザクションでアクセスするリソースマネジャ名を指定します。

OpenTP1が提供するリソースの場合,OpenTP1_MCFだけ指定が必要です。ただし,OpenTP1_MCFでも次の場合には指定を省略できます。

  • MCFマネジャ環境定義mcfmenvのidオペランドを省略した場合,またはAを指定した場合

●-i リソースマネジャ拡張子

 〜〈1〜2文字の識別子〉

一つのリソースマネジャを複数の制御単位としてアクセスする場合,リソースマネジャ名を「リソースマネジャ名+リソースマネジャ拡張子」に修飾するための文字列を指定します。

複数の拡張子が同じxa_open関数用文字列,またはxa_close関数用文字列を使用する場合は,このオプションに複数の拡張子を指定できます。その場合は,拡張子と拡張子の間をコンマ','で区切ります。

すべてのtrnstring定義コマンドで指定した拡張子は重複しないようにしてください。

トランザクションに関係するMCFを管理するために,MCFに対してのリソースマネジャ拡張子を指定しなければなりません。このオプションに指定するMCFのリソースマネジャ拡張子は,ユーザサーバがアクセスできるプロセス識別子と,該当するノードで動作するMCFのマネジャ定義で指定したMCFマネジャプロセス識別子をすべて指定してください。

●-o "トランザクションサービス用xa_open関数用文字列"

 〜〈1〜256の文字列〉

OpenTP1のトランザクションサービスプロセスからxa_open関数を発行する場合に使用する文字列を指定します。

文字列に指定可能な文字として「ASCII印字可能文字(ASCIIコード32〜126)」を使用できます。

ただし,「"(ASCIIコード33)」は引用符以外には使用できません。

指定する文字列は,各リソースマネジャのマニュアルを参照してください。

NULL文字列を通知する必要がある場合は,このオプションを省略してください。

●-c "トランザクションサービス用xa_close関数用文字列"

 〜〈1〜256の文字列〉

OpenTP1のトランザクションサービスプロセスからxa_close関数を発行する場合に使用する文字列を指定します。

文字列に指定可能な文字として「ASCII印字可能文字(ASCIIコード32〜126)」を使用できます。

ただし,「"(ASCIIコード33)」は引用符以外には使用できません。

指定する文字列は,各リソースマネジャのマニュアルを参照してください。

NULL文字列を通知する必要がある場合は,このオプションを省略してください。

●-O "ユーザサーバ用xa_open関数用文字列"

 〜〈1〜256の文字列〉

ユーザサーバプロセスからxa_open関数を発行する場合に使用する文字列を指定します。

文字列に指定可能な文字として「ASCII印字可能文字(ASCIIコード32〜126)」を使用できます。

ただし,「"(ASCIIコード33)」は引用符以外には使用できません。

指定する文字列は,各リソースマネジャのマニュアルを参照してください。

NULL文字列を通知する必要がある場合は,このオプションを省略してください。

●-C "ユーザサーバ用xa_close関数用文字列"

 〜〈1〜256の文字列〉

ユーザサーバプロセスからxa_close関数を発行する場合に使用する文字列を指定します。

文字列に指定可能な文字として「ASCII印字可能文字(ASCIIコード32〜126)」を使用できます。

ただし,「"(ASCIIコード33)」は引用符以外には使用できません。

指定する文字列は,各リソースマネジャのマニュアルを参照してください。

NULL文字列を通知する必要がある場合は,このオプションを省略してください。

●-d

このリソースマネジャが,コミット最適化およびプリペア最適化に対応していない場合に,必ず指定します。コミット最適化およびプリペア最適化に対応していないリソースマネジャでこの指定を省略すると,トランザクションが決着できなかったり,リソースマネジャがダウンしたりすることがあります。

このオプションを指定したリソースマネジャがトランザクションに参加した場合,トランザクションブランチはコミット最適化およびプリペア最適化をしません。

●-e

-nオプションで指定したリソースマネジャに対するトランザクションブランチ開始時にxa_start関数でエラーが発生した場合,リソースマネジャに対してxa_close関数,xa_open関数,xa_start関数の順にリトライ処理を行うときに指定します。このオプションを指定しない場合,xa_start関数でエラーが発生したとき,xa_open関数,xa_start関数の順にリトライ処理を行います。

●-m

このリソースマネジャ内の未決着トランザクションの回復処理を,OpenTP1がオンラインになる前に行う場合に指定します。

このオプションを指定すると,OpenTP1開始時にリソースマネジャ監視サービスがリソースマネジャに対してxa_recover関数を発行し,取得した未決着トランザクション情報を基に,trn_start_recovery_mode,trn_start_recovery_watch_timeおよびtrn_start_recovery_intervalオペランドに従ってトランザクション回復処理を行います。

●-r

OpenTP1の開始処理,またはオンライン処理で,リソースマネジャから未決着トランザクション情報の通知があるまで,トランザクションの回復処理を待ち合わせるときに指定します。トランザクション回復プロセスからリソースマネジャに対して発行するxa_recover関数が未決着トランザクション情報を取得するまで,トランザクションの回復処理は行われません。このオプションを指定したときは,指定したリソースマネジャの数分のトランザクション並行回復プロセスを確保してください(トランザクション並行回復プロセス数は,trn_recovery_process_countオペランドで指定します)。このオプションは再開始時に変更または削除できます。

なお,このオプションを有効にするには,オープン文字列を指定する必要があります。

注※

Oracle9iまでは,OPS_FAILOVER=Tをオープン文字列に指定してください。

Oracle 10gでは,RAC_FAILOVER=Tをオープン文字列に指定してください。

Oracle 11g,Oracle 12cでは,指定する必要はありません。

●-s

特定のリソースマネジャにアクセスしていたトランザクションの回復処理で,XA関数(xa_open(),xa_commit(),xa_rollback(),xa_close())の発行順序を変更するかどうかを指定します。発行順序の変更は,OpenTP1システムに登録されたOpenTP1が提供するリソースマネジャを除く,特定のリソースマネジャに対してだけ行われます。一部のリソースマネジャの回復処理で発行されるxa_open()がエラーとなり,回復処理が正常に実行されない場合に指定します。

OpenTP1システムに登録されているすべてのリソースマネジャ(OpenTP1が提供するリソースマネジャは対象外)にこの機能を使用したい場合は,trn_rcv_open_close_scopeオペランドにYを指定してください。オペランドの詳細,およびオプションの指定によるXA関数の発行順序の例については,trn_rcv_open_close_scopeオペランドの説明を参照してください。