Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
ネーミングサービスの障害検知機能の挙動について説明します。
ネーミングサービスの障害検知では,次のタイミングでネーミングサービスの状態を確認し,応答がなかった場合に閉塞します。
キャッシュをすべてクリアしたあとのネーミングサービスに対する操作の挙動について表で説明します。
表2-37 キャッシュをすべてクリアしたあとのネーミングサービスに対する操作の挙動
ネーミング管理の機能での操作 | ラウンドロビン検索を使用している場合 | ラウンドロビン検索を使用していない場合 |
---|---|---|
InitialContextを生成したとき | EJBクライアントプロセス起動後の初回InitialContext生成時に,ネーミングサービスの稼働確認で応答がない場合は,閉塞される。 初回以外の場合は,閉塞されない。 |
生死確認をして,ネーミングサービスからの応答が検知できない場合,閉塞される。 |
lookupしたとき | lookupの発行時に通信しようとしているネーミングサービスに対してだけ,状態確認をする。 応答が検知できない場合は,閉塞される。例えば三つのネーミングサービスでラウンドロビン検索をしている場合には,ダウンしたネーミングサービスが閉塞されるのは最大で3回目のlookup時になる。 |
生死確認をして,ネーミングサービスからの応答が検知できない場合,閉塞される。 |
ネーミングサービスの障害検知機能では,閉塞されると同時にKDJE47111-Iメッセージをログに出力します。メッセージが出力されたあとに,稼働中のネーミングサービスの機能に対する通信はすべて抑止されて,javax.naming.NamingExceptionをスローされます。
ネーミングサービスの障害検知機能によって閉塞されたネーミングサービスに対して,EJBクライアントからInitialContextの生成,またはlookupした場合のネーミングサービスの挙動について説明します。
閉塞したネーミングサービスに対する操作について,ラウンドロビン検索機能を使用しているか,使用していないかに分けて表で示します。
表2-38 閉塞したネーミングサービスに対する操作
EJBクライアントからの操作 | ラウンドロビン検索を使用している場合 | ラウンドロビン検索を使用していない場合 |
---|---|---|
InitialContextを生成したとき | ラウンドロビン用のInitialContextを返す。 | 常に通信を抑止する。 EJBクライアントにjavax.naming.NamingExceptionを返す。 |
lookupしたとき | ラウンドロビングループに登録されている,別のネーミングサービスからオブジェクトを検索して返す。 | 常に通信を抑止する。 EJBクライアントにjavax.naming.NamingExceptionを返す。 |
閉塞を解除するタイミングについて説明します。次に示すタイミングでネーミングサービスの状態確認をして,ネーミングサービスからの応答が検知できたときに閉塞を解除します。
閉塞を解除すると同時に,KDJE47110-Iメッセージをログに出力します。メッセージが出力されたあとは,稼働中のネーミングサービスに対する通信は抑止されません。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.