Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option 使用の手引


trnstring

〈このページの構成〉

名称

リソースマネジャへのアクセス用の定義

形式

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

機能

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

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

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

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

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

trnstring定義コマンドで指定したリソースマネジャ,およびtrnstring定義コマンドを使用しないリソースマネジャの合計が256を超えないようにしてください。257以上のリソースマネジャを指定した場合,TP1/EEはプロセスダウンします。

必要な文字列を定義しなかった場合,または不当な文字列を指定した場合は,処理スレッドの起動,終了,またはトランザクションの回復がエラーになります。

オプション

●-n リソースマネジャ名  〜〈1〜31文字の英数字〉

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

●-i リソースマネジャ拡張子  〜〈1〜2文字の識別子〉

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

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

-iオプションは,一つのリソースマネジャに複数のリソースマネジャ拡張子を割り当てて,複数の制御単位としてアクセスする場合だけ指定してください。TP1/EEは,-iオプションを指定したリソースマネジャに対して,リソースマネジャ名を「リソースマネジャ名+リソースマネジャ拡張子」に修飾して管理します。そのため,リソースマネジャ名だけではアクセスできません。

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

●-o "トランザクションサービス用xa_open関数用文字列"  〜〈1〜255文字の文字列〉

TP1/EEの回復スレッドおよび監視スレッドからxa_open関数を呼び出す場合に使用する文字列を指定します。指定する文字列は,各リソースマネジャのマニュアルを参照してください。

Oracleと接続する場合に,引用識別子(引用符「"」で囲んだ識別子)を含む文字列を指定するときは,次に示すように引用符を二重に指定してください。

""ORACLE_XA+DB=MANAGERS+SqlNet=SID1+ACC=P/"scott"/"tiger"...""

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

●-c "トランザクションサービス用xa_close関数用文字列"  〜〈1〜255文字の文字列〉

TP1/EEの回復スレッドおよび監視スレッドからxa_close関数を呼び出す場合に使用する文字列を指定します。指定する文字列は,各リソースマネジャのマニュアルを参照してください。

Oracleと接続する場合に,引用識別子(引用符「"」で囲んだ識別子)を含む文字列を指定するときは,次に示すように引用符を二重に指定してください。

""ORACLE_XA+DB=MANAGERS+SqlNet=SID1+ACC=P/"scott"/"tiger"...""

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

●-O "ユーザサービス用xa_open関数用文字列"  〜〈1〜255文字の文字列〉

ユーザサービス(処理スレッド)からxa_open関数を呼び出す場合に使用する文字列を指定します。指定する文字列は,各リソースマネジャのマニュアルを参照してください。

Oracleと接続する場合に,引用識別子(引用符「"」で囲んだ識別子)を含む文字列を指定するときは,次に示すように引用符を二重に指定してください。

""ORACLE_XA+DB=MANAGERS+SqlNet=SID1+ACC=P/"scott"/"tiger"...""

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

●-C "ユーザサービス用xa_close関数用文字列"  〜〈1〜255文字の文字列〉

ユーザサービス(処理スレッド)からxa_close関数を呼び出す場合に使用する文字列を指定します。指定する文字列は,各リソースマネジャのマニュアルを参照してください。

Oracleと接続する場合に,引用識別子(引用符「"」で囲んだ識別子)を含む文字列を指定するときは,次に示すように引用符を二重に指定してください。

""ORACLE_XA+DB=MANAGERS+SqlNet=SID1+ACC=P/"scott"/"tiger"...""

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

●-r

TP1/EEの開始処理中またはオンライン処理中に,リソースマネジャから未決着トランザクション情報の通知があるまで,トランザクションの回復処理を待ち合わせます。-rオプションを指定すると,トランザクションの回復時は,リソースマネジャに対して発行するxa_recover関数が未決着トランザクション情報を取得するまで,トランザクションの回復処理は行われません。

-rオプションを指定する場合,回復スレッド数(プロセス関連定義のrecover_thread_noオペランドで指定)は,-rオプションで指定したリソースマネジャ数以上にすることをお勧めします。

●-x

一つのインスタンスのリソースマネジャに対して複数のセションを確立します。-xオプションを指定しないで,一つのインスタンスのリソースマネジャに複数のセションを確立した場合は,xa関数がエラーリターンすることがあります。