Hitachi

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


ユーザサービスネットワーク定義

〈このページの構成〉

形式

set形式

なし。

コマンド形式

{{dcsvgdef  -g  サービスグループ名〔,サービスグループ名〕…
           {-h  ホスト名〔:ポート番号〕〔,ホスト名〔:ポート番号〕〕…
          〔-p  ポート番号〕
          〔-t  あて先再選択間隔〕〔-w〕}                    }}

機能

他ノードのTP1/Server Base管理下のSPPのサービスを,リモートAPI機能を介して利用する場合に,そのSPPのサービスグループ名とリモートAPI機能によるサービスの受信口となるホスト名およびポート番号を指定します。

または,all_nodeオペランドに指定していないノードのTP1/Server Base管理下のSPPのサービスを利用する場合に,そのSPPのサービスグループ名とそのSPPの存在するグローバルドメイン内の任意のノードのホスト名,およびスケジュールサービス定義のscd_portオペランドに指定したポート番号を指定します。複数のホスト名,ポート番号を指定することもできます(リモートAPI機能を利用する場合は複数を指定できません)。

ユーザサービス定義のrpc_destination_modeオペランドにnamd,またはdefinitionが指定されたUAPから呼び出されるdc_rpc_callのサービス要求を,ネームサーバへのあて先検索要求なしで実行します。

rpc_destination_modeオペランドにnamdが指定されたUAPは,ネームサーバへのあて先検索要求がエラーになった場合,この定義コマンドで指定された情報を基にサービス要求を実施します。rpc_destination_modeオペランドにdefinitionが指定され,かつこの定義コマンドで複数のホストが指定されたUAPは,この定義コマンドで指定された情報を基にサービス要求を実施し,エラーになった場合,ネームサーバへのあて先検索要求を実施します。この定義コマンドに指定されているホストが一つだけの場合は,ネームサーバへのあて先検索要求は実施しません。

OpenTP1は,ユーザサービス定義のrpc_destination_modeオペランドにnamdまたはdefinitionが指定されたUAPから呼び出されるdc_rpc_callについて,第1引数に指定されたサービスグループ名を,ユーザサービスネットワーク定義に指定されたサービスグループ名の中から検索します。サービスグループ名が一致する定義が見つかった場合,その定義に指定されているホストとポート番号へサービス要求を送信します。

複数のホスト名を指定した場合,OpenTP1はランダムにホストを選択してサービス要求を送信します。サービス要求の送信で障害が発生すると,残りのホスト名から再度ランダムにホストを選択します。すべてのホストへのサービス要求の送信が障害になると,dc_rpc_callはエラーリターンします。サービス要求が成功すると,UAP内で以降に呼び出す同じサービスグループ名へのdc_rpc_callは,あて先再選択間隔を指定していなければ,障害が発生するまで同じホストにサービス要求の送信を継続します。継続中のサービス要求の送信で障害になった場合,今回障害になったホストを除いたすべてのホスト名からランダムに選んだホストに対してサービス要求の送信を試みます。

なお,次の条件が成立する場合,次回に呼び出したdc_rpc_callで,OpenTP1はランダムにホストを選択してサービス要求を送信します。

rpc_destination_modeオペランドの指定をdefinition,または省略した場合
  • すべてのホストへのサービス要求の送信が障害になり,ネームサーバへのあて先検索要求もエラーとなったためdc_rpc_callがエラーリターンしたとき

  • すべてのホストへのサービス要求の送信が障害になり,ネームサーバへのあて先検索要求が成功してdc_rpc_callが成功したとき

rpc_destination_modeオペランドの指定がnamdで,次の条件をすべて満たす場合
  • ネームサーバへのあて先検索要求がエラー

  • すべてのホストへのサービス要求の送信が障害

  • dc_rpc_callがエラーリターン

  • 次回に呼び出したdc_rpc_callでネームサーバへのあて先検索要求がエラー

複数のdcsvgdef定義コマンドに同じサービスグループ名を指定した場合,ユーザサービスネットワーク定義ファイルで先に記述されているdcsvgdef定義コマンドの指定が有効になります。リモートAPI機能を介して要求するサービスの情報か,all_nodeオペランドに指定していないノード上のサービスの情報かの区別は,-wオプションの指定の有無によって判断します。

dcsvgdef定義コマンドのサービスグループ名に対し,XATMIインタフェースでサービスを要求しないでください。この制限に反した場合の動作は保証されません。

-wオプションを指定しないdcsvgdef定義コマンドのサービスグループ(SPP)が,atomic_update=Nであり,このサービスグループに対して,トランザクション内からdc_rpc_callを発行した場合,dc_rpc_callはDCRPCER_TRNCHKでエラーリターンします。この場合,SPPのatomic_updateオペランドに'Y'を指定するか,dc_rpc_callのflagsにDCRPC_TPNOTRANを指定する必要があります。

-wオプションを指定しないdcsvgdef定義コマンドのサービスグループ名に対して,dc_rpc_callを実行し,性能検証用トレースを取得していた場合,サーバ側の性能検証用トレース情報とリンクしません。つまり,クライアントUAPで取得した性能検証用トレースの通番は,サーバ側に引き継がれないため,サーバ側で取得した性能検証用トレースには,新たに採番した通番が出力されます。

-wオプションを指定したdcsvgdef定義コマンドのサービスグループ名に対し,非同期RPCを要求した場合は,このユーザサービスネットワーク定義を無効とし,従来どおりネーム情報検索によって処理します。また,-wオプションを指定したdcsvgdef定義コマンドのサービスグループに対し,トランザクションとしてサービス要求しても,無条件に非トランザクションモードで処理します。

-wオプションを指定したdcsvgdef定義コマンドのサービスグループ名に対して,dc_rpc_callを実行した場合,RPCトレースは取得しません。ユーザサービスネットワーク定義でリモートAPI機能を介したノード上のサービスとして定義したサービスグループへのdc_rpc_callについては,クライアントUAPのシステム定義でRPCトレースの取得を指定しても,クライアントのトレース情報を取得しません。

-wオプションを指定したdcsvgdef定義コマンドのサービスグループ名に対して,dc_rpc_callを実行した場合,レスポンス統計情報/通信遅延時間統計情報は取得しません。ユーザサービスネットワーク定義によってリモートAPI機能を介したノード上のサービスとして,定義したサービスグループへのdc_rpc_callは,システム定義でレスポンス統計情報/通信遅延時間統計情報の取得を指定しても,統計情報を取得しません。

-wオプションを指定し,TP1/Server Base間でリモートAPI機能を使用する場合(例えば,アプリケーションゲートウェイ型ファイアウォールなどのゲートウェイを介してRPCをする場合など),トランザクション属性でdc_rpc_call関数を発行してもトランザクションにはなりません。したがって,トランザクション内から連鎖RPCを開始し,同期点処理で連鎖RPCを終了させる運用は,リモートAPI機能を使用した場合には正しく動作しません。flags引数にDCNOFLAGSを指定したdc_rpc_call関数で,明示的に連鎖RPCを終了するようにしてください。

説明

set形式

なし。

コマンド形式

次ページ以降に記述しています。