Hitachi

VisiBroker Version 5 Borland(R) Enterprise Server VisiBroker(R) プログラマーズリファレンス


12.12.2 SyncScopeポリシーの値

SyncScopeポリシーの値と動作を次の表に示します。

表12‒3 SyncScopeのポリシー値(Java)

ポリシー値

説明

SYNC_NONE

VisiBroker ORBは,リクエストメッセージをトランスポートプロトコルに渡す前に(例えば,メソッド呼び出しから),クライアントに制御を返します。クライアントは,動作を抑止しないことが保障されます。サーバから応答はないため,このレベルの同期ではロケーションフォワードは実行されません。

IDLにoneway宣言したオペレーションを,QoSのSyncScopeポリシーにSYNC_NONEを設定して実行した場合,send_oneway( )を呼び出した延長で送信するリクエスト電文がTCPの送信バッファに書き込めずプロセス内で滞留すると,オペレーションがブロッキングされます。回避策として,QoSのRelativeRequestTimeoutポリシーに有限値を設定してください。送信タイムアウト時間経過後に,onewayリクエストにてTIMEOUTを検知し終了させることができます。

SYNC_WITH_TRANSPORT

VisiBroker ORBは,リクエストメッセージをトランスポートプロトコルに渡したあとに,クライアントに制御を返します。サーバから応答はないため,このレベルの同期ではロケーションフォワードは実行されません。

SYNC_WITH_SERVER

サーバ側VisiBroker ORBは,対象インプリメンテーションを呼び出す前に応答を送信します。NO_EXCEPTIONの応答が送信された場合,必要なロケーションフォワードがすでに発生しています。この応答受信時に,クライアント側VisiBroker ORBは,制御をクライアントアプリケーションに返します。クライアントは,ロケーションフォワードがすべて完了するまで動作を抑止します。POAを使用しているサーバの場合,応答は,ServantManagerが呼び出されてから対象サーバントにリクエストが渡されるまでの間に送信されます。

SYNC_WITH_TARGET

CORBA 2.2の,同期型非一方向オペレーションと同等です。サーバ側VisiBroker ORBは,オペレーション呼び出し先でオペレーションが完了したあとに,応答メッセージの送信だけを実行します。LOCATION_FORWARDの応答は,オペレーション呼び出し前に送信済みです。SYSTEM_EXCEPTIONの応答は,例外の構文に従った任意の時間に送信できる状態となります。一方向と定義されている場合でも,実際は,オペレーションは同期オペレーションと同様に動作します。この形式の同期では,対象オペレーションがリクエストを解釈し,そのリクエストに従って実行したことをクライアントが認識していることが保障されます。CORBA 2.2と同様,この最高レベルの同期では,OTSだけを使用できます。これより低いレベルの同期で呼び出されたオペレーションでは,対象はクライアントのカレントトランザクションに入れません。