分散トランザクション処理機能 OpenTP1 解説
OpenTP1のUAPでは,ほかのUAPとリモートプロシジャコール(RPC)を使用して通信できます。リモートプロシジャコールとは,UAPプロセスからほかのUAPプロセスへサービスを要求し,サービスを要求されたUAPプロセスは要求元のUAPへ処理結果を返す通信です。
クライアント/サーバ形態の通信の処理概要を次の図に示します。
図2-1 クライアント/サーバ形態の通信の処理概要
サービスを要求するUAPとサービスを提供するUAPは,クライアントとサーバの関係になります。サービスを要求する側のUAPをクライアントUAP,サービスを提供する側のUAPをサーバUAPといいます。
UAPについては,「2.6 OpenTP1のアプリケーションプログラム」を参照してください。
リモートプロシジャコールでは,サービス要求をしてから結果が返ってくるまでの処理をトランザクションとするかどうかを選べます。トランザクションとするRPCを,トランザクショナルRPCといいます。トランザクショナルRPCの場合は,複数のノードにわたって処理しているRPCでも,一つのトランザクションとして処理できます。
OpenTP1でクライアント/サーバ形態の通信をする場合は,次に示すインタフェースを使えます。
OpenTP1独自のライブラリ関数を使ってサービスを要求する通信方法です。
X/Openに準拠した通信方法を次に示します。
これらのほかにも,OpenTP1以外のオープンシステムと通信することもできます。クライアント/サーバ形態の通信については,「3.2 クライアント/サーバ形態の通信」を参照してください。
OpenTP1のクライアント/サーバ形態の通信プロトコルには,TCP/IPとOSI TPを使えます。どちらを使う場合でも,UAPの処理で通信プロトコルを意識する必要はありません。
通信プロトコルにOSI TPを使う場合には,通信プロトコルを管理する製品としてTP1/NET/OSI-TP-Extendedが必要です。OSI TPを使ったクライアント/サーバ形態の通信については,「3.6 OSI TPを使ったクライアント/サーバ形態の通信」を参照してください。
TCP_NODELAYは,送信済みデータの応答待ちの状態でも遅延させることなくデータを送信できるようにする機能です※。この機能では,OpenTP1がノード間で使用する通信ソケット(INETドメイン)に,TCP_NODELAYオプションを使用します。
データ送信の際にTCP_NODELAYオプションを使用するかどうかは,スケジュールサービス定義,ユーザサービス定義,またはユーザサービスデフォルト定義のipc_tcpnodelayオペランドで指定します。なお,TCP_NODELAYオプションを使用すると,INETドメイン通信時の送信効率が低下し,ネットワークの負荷が大きくなる場合があります。TCP_NODELAYオプションを使用する場合は,ipc_sendbuf_sizeオペランド,ipc_recvbuf_sizeオペランド,ネットワークの帯域などを考慮し,この機能の必要性を十分に検討してください。
All Rights Reserved. Copyright (C) 2006, 2012, Hitachi, Ltd.