2.11.9 通信のタイムアウト設定時の注意事項
通信タイムアウト設定時の注意事項について説明します。
-
通信タイムアウトの定義が重複している場合の注意事項
図2-14または図2-15のAの範囲とBの範囲の両方に通信タイムアウトを設定している場合,およびAの範囲とCの範囲に通信タイムアウトを設定している場合は次のように動作します。
-
Aの範囲とBの範囲の両方に通信タイムアウトを設定している場合の動作
Aの範囲とBの範囲の両方に通信タイムアウトを設定している場合,通信タイムアウトは次の図のようになります。
図2‒16 Aの範囲とBの範囲の両方に通信タイムアウトを設定している場合の動作 -
Aの範囲とCの範囲の両方に通信タイムアウトを設定している場合の動作
Aの範囲とCの範囲の両方に通信タイムアウトを設定している場合,Cの範囲の通信タイムアウト設定が有効となります。
-
-
クライアント実装時の注意事項
RMI-IIOPの通信タイムアウト,ネーミングサービスの通信タイムアウトと同時に,クライアントからのリクエストに対して指定値以内にレスポンスが返らない場合,該当するリクエストはタイムアウトとしてキャンセルされます。このとき,例外java.rmi.RemoteException(org.omg.CORBA.TIMEOUTなど)やjavax.naming.NamingExceptionが送出されます。通信タイムアウトを利用するクライアントを実装する場合,Enterprise Beanのメソッド呼び出しやJNDIのAPIなどでこれらの例外が発生することを考慮してください。
-
タイムアウト発生後のサーバ側の動作についての注意事項
クライアントからのリクエストがサーバ(ネーミングサービスやEnterprise Bean)に到着したあとに,サーバ側の処理中にタイムアウトが発生すると,クライアントに例外が返されます。ただし,タイムアウト発生後もサーバ側では正常に処理が継続されるため,Enterprise Beanのインスタンスの破棄や,リソースコネクションなどの資源の解放はされません。