2.13.3 EJBのリモートインタフェースの通信障害発生時の動作
EJBクライアントからリモートインタフェースとして定義されたEJBメソッドが呼び出しを実施している際に通信障害が発生したときのクライアント側の動作を次のどちらかから選択できます。
-
コネクションを再接続して,リクエストを再送信する
-
コネクションの再接続も,リクエストの再送信もしない
この機能を使用するための設定は,J2EEサーバまたはEJBクライアントアプリケーションのプロパティとして設定します。
なお,EJBクライアントアプリケーションの場合は,API(java.lang.SystemクラスのsetPropertyメソッドなど)で設定することもできます。java.lang.System.setPropertyメソッドで定義する場合は,EJBクライアントアプリケーションのプロセス起動後,最初にEnterprise Beanのメソッドを呼び出す前に定義してください。
- 〈この項の構成〉
(1) 設定が有効になる通信
通信障害発生時の動作は,リモートインタフェースとして定義されたEJBメソッドの呼び出しで通信障害が起きた場合に有効になります。EJBメソッドの呼び出しとは,次の呼び出しを指します。
-
WebアプリケーションからのEJBの呼び出し
-
EJBクライアントからのEJBの呼び出し
-
EJBからのEJBの呼び出し
設定が有効となる通信を次の図に示します。
なお,次の場合は無効になるので注意してください。
-
ローカルインタフェースとして定義されたEJBメソッドの呼び出し
-
ローカル呼び出し最適化が有効となる範囲での,リモートインタフェースとして定義されたEJBメソッドの呼び出し
-
ネーミングサービスの呼び出し
(2) 推奨する設定
システムの形態によって,次のように設定することをお勧めします。
- 検索および参照系のシステムの場合
-
コネクションを再接続して,リクエストを再送信する設定にすることをお勧めします。これによって,リクエストを失敗させることなく,結果を取得できるようになります。
- 更新系のシステムの場合
-
コネクションの再接続も,リクエストの再送信もしない設定にすることをお勧めします。更新系のシステムの場合,コネクションの再接続およびリクエストの再送信ありの設定をすると,リクエストの二重送信をするおそれがあります。