JNDI キャッシュ設定
Java™ Naming and Directory Interface (JNDI) のさまざまなキャッシュ・プロパティー設定は、以下のとおりです。 プロパティー値がすべてストリング値であることを確認します。
com.ibm.websphere.naming.jndicache.cachename
初期コンテキスト・インスタンスに関連付けるキャッシュ名を、 このプロパティーで指定できます。
複数の InitialContext インスタンスを、 それぞれが異なるネーム・サーバーの名前空間で動作するように作成できます。 デフォルトでは、 各ブートストラップ・アドレスからのオブジェクトは、 別個にキャッシュされます。 これは、それぞれが独立した名前空間を必要とし、 同じキャッシュを使用した場合は、 名前の衝突が発生する可能性があるためです。 デフォルトで初期コンテキストが作成されたときに指定されたプロバイダー URL は、 キャッシュ名の基本となります。 このプロパティーにより、JNDI クライアントはキャッシュ名を指定できます。 以下に、キャッシュ名に有効なオプションを示します。
有効なオプション | 結果としてのキャッシュの動作 |
---|---|
providerURL (デフォルト) | キャッシュ名に java.naming.provider.url プロパティーの値を使用します。 キャッシュ名は、URL に指定されているブートストラップ・ホストとポートに基づいています。ブートストラップ・ホストは、可能な場合、完全修飾名に正規化されます。例えば、"corbaname:iiop:server1:2809#some/starting/context" および "corbaloc:iiop://server1" は、同一のキャッシュ名に正規化されます。 プロバイダー URL が指定されていない場合、デフォルトのキャッシュ名が使用されます。 |
任意のストリング | 指定されたストリングをキャッシュ名として使用します。「providerURL」以外の値を持つ任意のストリングをキャッシュ名として使用できます。 |
com.ibm.websphere.naming.jndicache.cacheobject
キャッシュをオン/オフして、このプロパティーを使用して既存のキャッシュをクリアします。
デフォルトでは、InitialContext はインスタンス化される際に、 既存のキャッシュと関連付けられるか、 あるいはキャッシュが存在しない場合は新規に作成されます。 既存のキャッシュは、既存のコンテキストとともに使用されます。 環境によっては、この動作は望ましくありません。 例えば、 検索が行われるオブジェクトが頻繁に変更される場合は、 キャッシュ内のオブジェクトが不整合になる可能性があります。 その他のオプションは使用可能です。 以下の表は、その他のオプションおよびそれに対応するプロパティー値を示します。
有効な値 | 結果としてのキャッシュの動作 |
---|---|
populated (デフォルト) | 指定された名前でキャッシュを使用します。 キャッシュが既に存在する場合は、 既存のキャッシュ・エントリーをキャッシュに残します。 このようにしない場合は、新しいキャッシュを作成します。 |
cleared | 指定された名前でキャッシュを使用します。 キャッシュが既に存在する場合は、 既存のキャッシュ・エントリーをすべてキャッシュからクリアします。 このようにしない場合は、新しいキャッシュを作成します。 |
none | キャッシュしません。 このオプションを指定した場合、キャッシュ名は関係ありません。 したがって、このオプションを指定しても、 他の InitialContext インスタンスと既に関連付けられているキャッシュは使用不可にはなりません。 インスタンスが生成された InitialContext は、キャッシュに関連付けられません。 |
com.ibm.websphere.naming.jndicache.maxcachelife
このプロパティーを使用して、キャッシュの経過時間を制限することができます。
デフォルトでは、キャッシュされたオブジェクトは、プロセスが存続中であるか、 または com.ibm.websphere.naming.jndicache.cacheobject プロパティーが「cleared」に設定されるまで、 キャッシュに残されます。 このプロパティーにより、JNDI クライアントはキャッシュの最大存続時間を設定できます。 このプロパティーは、キャッシュの存続時間に達したときにキャッシュ全体をクリアするという点で、maxentrylife プロパティーとは異なります。以下の表は、各種 maxcachelife 値、およびそれらの値によるキャッシュの動作への影響をリストしています。
WebSphere Application Server が分散プラットフォーム・クラスターで稼働しており、いくつかの WebSphere Application Server for z/OS® メンバー・システムがクラスターとして稼働している環境では、キャッシュ設定の調整を行わずに WebSphere Application Server for z/OS で EJB ワークロード管理 (WLM) のフェイルオーバーが発生することはありません。WebSphere Application Server for z/OS 上の相互運用オブジェクト参照 (IOR) はワークロード管理の対象となっているため、WebSphere Application Server for z/OS が一時停止すると、必ずすべての要求が、存続している WebSphere Application for z/OS クラスターにディスパッチされます。一時停止していたクラスター・メンバーが再開しても、再開したこのクラスター・メンバーにディスパッチされるのはごく少数の要求のみ (ある場合) であり、これはシステムの不平衡につながります。再開したクラスター・メンバーでは、保有する CPU リソースのほとんどが使用可能ですが、処理すべき要求を少数 (ある場合) しか受け取らないため、一時停止したシステムの再開後には通常の WLM 処理は行われません。
サーバー全体のグローバル JNDI キャッシュ有効期限の時間を適切な時間に設定することによって、正しいワークロード・バランシングを継続させることができます (例えば、com.ibm.websphere.naming.jndicache.maxcachelife=3 とすると、キャッシュ有効期限の時間は 3 分になります)。
有効な値 | 結果としてのキャッシュの動作 |
---|---|
0 (デフォルト) | キャッシュの存続時間を無制限にします。 |
正整数 | キャッシュ全体の最大存続時間を、指定された値 (分単位) に設定できます。 キャッシュの最大存続時間に達した場合、 キャッシュからそのエントリーを次に読み取ろうとすると、 キャッシュはクリアされます。 |
com.ibm.websphere.naming.jndicache.maxentrylife
このプロパティーを使用して、個々のキャッシュ・エントリーの経過時間を制限することができます。
デフォルトでは、キャッシュされたオブジェクトは、プロセスが存続中であるか、 または com.ibm.websphere.naming.jndicache.cacheobject プロパティーが「cleared」に設定されるまで、 キャッシュに残されます。 このプロパティーにより、JNDI クライアントは個々のキャッシュ・エントリーの最大存続時間を設定できます。 このプロパティーは、 キャッシュの最大存続時間に達したときに個々のエントリーを個別にリフレッシュするという点で、maxcachelife プロパティーとは異なります。 これにより、キャッシュ全体が一度にクリアされる場合に発生する恐れがある、 パフォーマンス上の顕著な変化はいずれも避けられます。 以下の表に、各種 maxentrylife 値、およびこれらの値によるキャッシュの動作への影響を示します。
有効な値 | 結果としてのキャッシュの動作 |
---|---|
0 (デフォルト) | キャッシュ・エントリーの存続時間を無制限にします。 |
正整数 | 個々のキャッシュ・エントリーの最大存続時間を、指定された値 (分単位) に設定できます。 エントリーの最大存続時間に達した場合、 キャッシュからそのエントリーを次に読み取ろうとすると、 キャッシュ・エントリーはリフレッシュされます。 |