2.1 リモートプロシジャコール

OpenTP1のUAPでは,サービスを提供するUAPがネットワークのどのノードにあるかを意識しなくても,UAPのサービスを関数呼び出しのように要求できます。このようなプロセス間通信をリモートプロシジャコール(RPCといいます。OpenTP1のUAPで使えるリモートプロシジャコールには,次に示す3種類があります。

通信プロトコルにTCP/IPを使う場合には,上記3種類のリモートプロシジャコールを使えます。通信プロトコルにOSI TPを使う場合には,XATMIインタフェースだけを使えます。OSI TPを使う場合のリモートプロシジャコールについては,「2.10 OSI TPを使ったクライアント/サーバ形態の通信」および「5.1 XATMIインタフェース(クライアント/サーバ形態の通信)」を参照してください。

ここでは,OpenTP1独自のインタフェースのRPCについて説明します。XATMIインタフェースについては「5.1 XATMIインタフェース(クライアント/サーバ形態の通信)」を,TxRPCインタフェースについては「6.1 TxRPCインタフェースの通信」を参照してください。

注意
システム共通定義のall_nodeオペランドで指定したドメイン以外のOpenTP1システムにトランザクショナルRPCを行う場合,自ドメインおよび他ドメイン内のすべてのOpenTP1システムのノード識別子(システム共通定義のnode_idオペランド)は一意にする必要があります。また,すべてのOpenTP1システムは,バージョン03-02以降にする必要があります。これらの条件を満たしていないと,トランザクションが正しく回復できなくなる場合があります。
<この節の構成>
2.1.1 リモートプロシジャコールの実現方法
2.1.2 リモートプロシジャコールでのデータの受け渡し
2.1.3 リモートプロシジャコールの形態
2.1.4 サービスのネスト
2.1.5 トランザクションの処理から非トランザクショナルRPCの発行
2.1.6 サービス要求のスケジュールプライオリティの設定
2.1.7 クライアントUAPのノードアドレスの取得
2.1.8 サービス要求の応答待ち時間の参照と更新
2.1.9 エラーが発生した非同期応答型RPC要求の記述子の取得
2.1.10 CUPへの一方通知
2.1.11 リモートプロシジャコールとサービスを実行するプロセスの関連
2.1.12 リカーシブコールを使うときの注意
2.1.13 サービス関数のリトライ
2.1.14 ユーザデータの圧縮
2.1.15 サービス関数実行時間の監視
2.1.16 マルチスケジューラ機能を使用したRPC
2.1.17 通信先を指定したRPC
2.1.18 ドメイン修飾をしたサービス要求
2.1.19 サービス関数とスタブの関係