JNDI-Caching

Um die Leistung der JNDI-Verarbeitung (Java™ Naming and Directory Interface) zu verbessern, nutzt die JNDI-Implementierung des Produkts die Caching-Technologie, um die Anzahl der fernen Aufrufe an den Namensserver für Lookup-Operationen zu vermindern. Verwenden Sie in den meisten Fällen die Cachestandardeinstellung.

Beim Instanziieren eines InitialContext-Objekts wird eine Zuordnung zwischen der InitialContext-Instanz und einem Cache eingerichtet. Der Ursprungskontext und alle Kontexte, die direkt oder indirekt von einer Suche im Ursprungskontext zurückgegeben werden, sind alle derselben Cacheinstanz zugeordnet. Standardmäßig basiert die Zuordnung auf dem Provider-URL, insbesondere auf Hostname und Port. Der aufrufende Prozess kann den Cachenamen angeben und damit dieses Standardverhalten außer Kraft setzen. Ein Cacheinstanz mit einem bestimmten Namen wird von allen InitialContext-Instanzen gemeinsam benutzt, die für die Verwendung eines Caches dieses Namens konfiguriert wurden und die mit demselben gültigen Klassenlader für Kontexte erstellt wurden. Zwei EJB-Anwendungen, die im selben Server aktiv sind, verwenden ihre eigenen Cacheinstanzen, wenn Sie unterschiedliche Klassenlader für Kontexte verwenden, auch wenn die Cachenamen gleich sind.

Nachdem eine Zuordnung zwischen der InitialContext-Instanz und dem Cache hergestellt wurde, wird diese Zuordnung nicht mehr geändert. Ein Objekt javax.naming.Context, das von einer Lookup-Operation zurückgegeben wird, erbt die Cachezuordnung des Kontextobjekts, für das die Suche ausgeführt wurde. Das Ändern der Eigenschaftswerte für den Cache mit der Methode Context.addToEnvironment() oder Context.removeFromEnvironment() hat keine Auswirkung auf das Verhalten des Caches. Eigenschaften, die sich auf eine bestimmte Cacheinstanz auswirken, können jedoch bei jedem Erstellen einer InitialContext-Instanz geändert werden.

Ein Cache ist auf einen Prozess eingeschränkt, und seine Lebensdauer endet mit derjenigen des Prozesses. Ein Objekt im Cache wird von Lookup-Operationen so lange zurückgegeben, bis die maximale Cachelebensdauer oder die maximale Lebensdauer des Cacheeintrags des Objekts erreicht wird. Nach Ablauf dieser Zeit bewirkt ein Lookup dieses Objekts, dass der Cacheeintrag für das Objekt aktualisiert wird. Standardmäßig ist die Lebensdauer von Cache und Cacheeinträgen nicht begrenzt.

Normalerweise sind Objekte im Cache relativ statische Entitäten. Veraltende Objekte stellen kein Problem dar. Sie können jedoch Zeitlimitwerte für Cacheeinträge oder für den Cache selbst festlegen, damit der Inhalt des Cache regelmäßig aktualisiert wird.

Wird eine Bind- oder Rebind-Operation für ein Objekt ausgeführt, wird die Änderung nur in dem Cache nachvollzogen, der dem Kontext zugeordnet ist, für den die Bind- oder Rebind-Operation ausgeführt wurde. Dieses Szenario tritt meist dann auf, wenn mehrere Prozesse beteiligt sind, weil mehrere Prozesse keinen gemeinsamen Cache verwenden und weil die Kontextobjekte in allen Threads eines Prozesses normalerweise dieselbe Cacheinstanz für einen bestimmten Namensservice-Provider verwenden.


Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cnam_naming_caching
Dateiname:cnam_naming_caching.html