Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

[目次][用語][索引][前へ][次へ]

2.9.3 ネーミングサービスの障害検知機能の挙動

ネーミングサービスの障害検知機能の挙動について説明します。

<この項の構成>
(1) 閉塞のタイミング
(2) 閉塞した場合の挙動
(3) ネーミングサービスの閉塞解除のタイミング

(1) 閉塞のタイミング

ネーミングサービスの障害検知では,次のタイミングでネーミングサービスの状態を確認し,応答がなかった場合に閉塞します。

  1. sweepインターバル時間経過のタイミングに応答がなかった場合
  2. RMI/IIOP通信エラーなどを契機にキャッシュの領域がすべてクリアされたあとや,キャッシュがない状態で,次の操作を最初に実行した時にネーミングサービスの応答がなかった場合
    • InitilalContextを生成した時
    • lookupをした時

キャッシュをすべてクリアしたあとのネーミングサービスに対する操作の挙動について表で説明します。

表2-37 キャッシュをすべてクリアしたあとのネーミングサービスに対する操作の挙動

ネーミング管理の機能での操作 ラウンドロビン検索を使用している場合 ラウンドロビン検索を使用していない場合
InitialContextを生成したとき EJBクライアントプロセス起動後の初回InitialContext生成時に,ネーミングサービスの稼働確認で応答がない場合は,閉塞される。
初回以外の場合は,閉塞されない。
生死確認をして,ネーミングサービスからの応答が検知できない場合,閉塞される。
lookupしたとき lookupの発行時に通信しようとしているネーミングサービスに対してだけ,状態確認をする。
応答が検知できない場合は,閉塞される。例えば三つのネーミングサービスでラウンドロビン検索をしている場合には,ダウンしたネーミングサービスが閉塞されるのは最大で3回目のlookup時になる。
生死確認をして,ネーミングサービスからの応答が検知できない場合,閉塞される。

ネーミングサービスの障害検知機能では,閉塞されると同時にKDJE47111-Iメッセージをログに出力します。メッセージが出力されたあとに,稼働中のネーミングサービスの機能に対する通信はすべて抑止されて,javax.naming.NamingExceptionをスローされます。


(2) 閉塞した場合の挙動

ネーミングサービスの障害検知機能によって閉塞されたネーミングサービスに対して,EJBクライアントからInitialContextの生成,またはlookupした場合のネーミングサービスの挙動について説明します。

閉塞したネーミングサービスに対する操作について,ラウンドロビン検索機能を使用しているか,使用していないかに分けて表で示します。

表2-38 閉塞したネーミングサービスに対する操作

EJBクライアントからの操作 ラウンドロビン検索を使用している場合 ラウンドロビン検索を使用していない場合
InitialContextを生成したとき ラウンドロビン用のInitialContextを返す。 常に通信を抑止する。
EJBクライアントにjavax.naming.NamingExceptionを返す。
lookupしたとき ラウンドロビングループに登録されている,別のネーミングサービスからオブジェクトを検索して返す。 常に通信を抑止する。
EJBクライアントにjavax.naming.NamingExceptionを返す。

(3) ネーミングサービスの閉塞解除のタイミング

閉塞を解除するタイミングについて説明します。次に示すタイミングでネーミングサービスの状態確認をして,ネーミングサービスからの応答が検知できたときに閉塞を解除します。

閉塞を解除すると同時に,KDJE47110-Iメッセージをログに出力します。メッセージが出力されたあとは,稼働中のネーミングサービスに対する通信は抑止されません。