Tipps zur Fehlerbehebung beim dynamischen Cache-Service

Der dynamische Cache-Service arbeitet auf der JVM (Java Virtual Machine) eines Anwendungsservers und fängt Aufrufe für cachefähige Objekte ab.

Servlets werden nicht im Cache gespeichert

Empfohlene Maßnahmen

Aktivieren Sie das Servlet-Caching. Wählen Sie auf der Seite mit den Einstellungen des Web-Containers der Administrationskonsole das Kontrollkästchen Servlet-Caching aktivieren aus.

Cacheeinträge werden nicht auf die Platte geschrieben

Erläuterung Empfohlene Maßnahmen
Cacheeinträge werden auf die Platte geschrieben, wenn die Kapazität des Cache erschöpft ist und neue Einträge dem Speichercache hinzugefügt werden. Cacheeinträge werden auch auf die Platte geschrieben, wenn Sie in der Administrationskonsole die Option "Auf Platte zurückschreiben" ausgewählt haben und der Server gestoppt wird.

Vergewissern Sie sich, dass die Option "Auslagerung auf Platte" auf der Seite "Einstellungen des dynamischen Cache-Service" der Administrationskonsole ausgewählt ist. Vergewissern Sie sich außerdem, dass die auf die Platte geschriebenen Cacheeinträge serialisierbar sind und dass die Konfigurationseigenschaft PersistToDisk für diese Einträge auf false gesetzt ist.

Einige Servlets werden nicht repliziert oder auf die Platte geschrieben

Empfohlene Maßnahmen
Vergewissern Sie sich, dass die Attribute und die Antwort serialisierbar sind. Wenn Sie die Attribute nicht speichern möchten, verwenden Sie die folgende Eigenschaft in Ihrer Cacherichtlinie:
<property name="save-attributes">false</property>

Der dynamische Cache-Service speichert keine Fragmente im Cache "am Rande des Netzes".

Empfohlene Maßnahmen
Setzen Sie die Eigenschaft "EdgeCacheable" in der Cacherichtlinie für die Einträge auf true, die im Cache am Rande des Netzes gespeichert werden sollen.
<property name="EdgeCacheable">true</property>

Vom dynamischen Cache-Service vorgenommene Invalidierungen werden nicht an das IBM HTTP Server-Plug-in (IHS) gesendet

Erläuterung Empfohlene Maßnahmen
Die Datei DynaCacheEsi.ear ist erforderlich, um Invalidierungen an externe Caches zu senden.

Installieren Sie die Datei DynaCacheEsi.ear über die Administrationskonsole.

Cacheeinträge werden häufig gelöscht.

Problem Erläuterung Empfohlene Maßnahmen
Der Cache ist voll, und neue Einträge werden dem Cache hinzugefügt. Cacheeinträge werden gelöscht, wenn der Cache voll ist und dem Cache neue Einträge hinzugefügt werden. Das LRU-Löschverfahren entfernt immer den Eintrag, der am längsten nicht verwendet wurde, um Platz für die neuen Einträge zu schaffen.

Wählen Sie auf der Seite "Einstellungen des dynamischen Cache-Service" der Administrationskonsole die Option "Auslagerung auf Platte" aus, damit die Einträge auf die Platte geschrieben werden. Sie können aber auch den Cache vergrößern, damit mehr Einträge im Cache Platz haben.

Einträge im Plattencache mit einem Zeitlimit von 0 verfallen nach einem Tag

Erläuterung Empfohlene Maßnahmen
Die maximale Lebensdauer eines Eintrags im Plattencache beträgt 24 Stunden. Wenn in der Cacherichtlinie ein Zeitlimit von 0 konfiguriert ist, bleiben diese Einträge einen ganzen Tag lang im Plattencache, sofern sie nicht vorher gelöscht werden. Setzen Sie das Zeitlimit für die Cacherichtlinie auf einen Wert kleiner als 0.

Es können keine Cacheeinträge am Rande des Netzes überwacht werden.

Erläuterung Empfohlene Maßnahmen

Verwenden Sie den dynamischen Cachemonitor, um die Inhalte von Speichercache, Plattencache und externen Caches, z. B. Edge-Cache, zu überwachen. Damit der Cache des ESI-Prozessors im Cachemonitor sichtbar ist, muss die Anwendung DynaCacheEsi.ear installiert und die Eigenschaft esiInvalidationMonitor in der Datei plugin-cfg.xml auf true gesetzt sein.

Setzen Sie die Eigenschaft esiInvalidationMonitor in der Datei plugin-cfg.xml auf true. Weitere Informationen zum Überwachen der Aktivitäten des dynamischen Cache-Service finden Sie im Artikel "Cacheinformationen anzeigen".

Cache für die Umgebung optimieren

Empfohlene Maßnahmen
Verwenden Sie Tivoli Performance Viewer, um das Caching-Verhalten für Ihre Anwendungen zu untersuchen. Beachten Sie außerdem die folgenden Punkte:
  • Erhöhen Sie die Priorität der Cacheeinträge, bei denen die Kosten für eine erneute Generierung sehr hoch sind.
  • Ändern Sie das Zeitlimit der Einträge so, dass sie so lange im Speicher verbleiben, wie sie gültig sind.
  • Aktivieren Sie die Option für Auslagerung auf den Datenträger, damit gemäß LRU gelöschte Einträge gespeichert werden.
  • Vergrößern Sie den Cache.

Dateien des Plattencache nach der Installation des Fixpack oder eines neuen Release bereinigen

Symptom Problem Empfohlene Maßnahmen
Wenn der Server für die Verwendung des Plattencaches konfiguriert ist, müssen Sie die Dateien für den Plattencache löschen, weil diese Dateien mit der früheren Version nicht kompatibel sind. Wenn Sie die alten Dateien des Plattencaches nicht entfernen, wird eine Ausnahme des Typs ClassCastException in der Datei systemerr.log aufgezeichnet, wenn Sie von der Platte auf den Cache zugreifen.
Anmerkung: Dieser Artikel referenziert eine oder mehrere Protokolldateien des Anwendungsservers. Alternativ dazu wird empfohlen, den Server so zu konfigurieren, dass er die HPEL-Protokoll- und -Traceinfrastruktur (High Performance Extensible Logging) verwendet und nicht die Dateien SystemOut.log , SystemErr.log, trace.log und activity.log auf verteilten oder IBM® i-Systemen. Sie können HPEL auch in Verbindung mit Ihren nativen z/OS-Protokolleinrichtungen verwenden. Wenn Sie HPEL verwenden, können Sie mit dem Befehlszeilentool LogViewer im Verzeichnis "bin" des Serverprofils auf alle Ihre Protokoll- und Tracedaten zugreifen. Weitere Informationen zur Verwendung von HPEL finden Sie in der Dokumentation zum Einsatz von HPEL für die Fehlerbehebung in Anwendungen.
Führen Sie zum Löschen des Plattencaches die folgenden Schritte aus:
  1. Notieren Sie sich das Auslagerungsverzeichnis. Falls Sie sich das Auslagerungsverzeichnis nicht gemerkt haben, führen Sie die folgenden Schritte aus:
    1. Klicken Sie in der Navigationsstruktur der Administrationskonsole auf Server > Anwendungsserver >Servername > Containerservices > Dynamischer Cache-Service.
    2. Das Verzeichnis ist im Feld Auslagerung auf Platte angegeben. Falls kein Verzeichnis angegeben ist, wird das Standardverzeichnis Profilstammverzeichnis/temp/Ihr_Knoten/Servername/_dynacache verwendet.
  2. Stoppen Sie den Server, und löschen Sie alle Dateien in diesem Verzeichnis.
  3. Wenn Sie mit dem Produkt WebSphere Application Server Network Deployment arbeiten, löschen Sie die Dateien im Plattencache für jeden Server.

Attribut "flush" in jedem Tag <jsp:include> in der cachefähigen JSP-Datei auf "true" setzen

Setzen Sie das Attribut "flush" in jedem <jsp:include>-Tag in der cachefähigen JSP-Datei auf "true".

Symptom Problem Beschreibung Empfohlene Maßnahmen
Wenn Sie JSP-Dateien (JavaServer Pages) aus dem dynamischen Cache abrufen, wird ein Teil der Seite nicht angezeigt. Das Attribut "flush" wird im Tag <jsp: include> in der JSP-Datei auf "false" gesetzt. Wenn die cachefähige JSP-Datei eine weitere JSP-Datei enthält und das Attribut "flush" im Tag <jsp: include> auf "false" gesetzt ist, werden alle Daten, die vor dem Tag <jsp: include> in den übergeordneten Ausgabedatenstrom geschrieben werden, nicht zwischengespeichert. Setzen Sie flush=true in jedem Tag <jsp: include> in der cachefähigen JSP-Datei.
[z/OS]

E/A-Aktivität des Dateisystems, wenn der Anwendungsserver im Leerlauf ist

Symptom Erläuterung Mögliche Maßnahme Empfohlene Maßnahmen
Sie stellen E/A-Aktivitäten im Dateisystem fest, obwohl der Anwendungsserver im Leerlauf ist. WebSphere Application Server fragt das Hierarchical File System (HFS) auch dann nach der Datei cachespec.xml ab, wenn keine Cacherichtlinien definiert sind. Der dynamische Cache sendet in einem Intervall von 30 Sekunden Sendeaufrufe an das Dateisystem, um festzustellen, ob Aktualisierungen an der Datei für die Cacherichtlinie vorgenommen wurden. Auf diese Weise ist der dynamische Cache in der Lage, alle geänderten Cacherichtlinien automatisch zu aktualisieren.

Der dynamische Cache ist standardmäßig aktiviert, weil sich mehrere Systemkomponenten in Bezug auf die Leistung auf diesen Service stützen. Sie können den dynamischen Cache-Service mit einem wsadmin-Script oder mit der Administrationskonsole inaktivieren. Weitere Informationen zum Aktivieren des dynamischen Cache-Service finden Sie im Artikel "Dynamischen Cache-Service verwenden".

Vorsicht:
Wenn Sie den dynamischen Cache-Service inaktivieren, arbeiten die Sicherheitskomponenten möglicherweise langsamer, weil diese die Funktionen für verteilte Zuordnung des dynamischen Cache-Service nutzen.
Setzen Sie flush=true in jedem Tag <jsp: include> in der cachefähigen JSP-Datei.

Einschränkung des dynamischen Caches bei der Verwendung des JSTL-Tag <c:import> für das Einfügen von Fragmenten

Problem Beschreibung Empfohlene Maßnahmen
Wenn ein cachefähiges Fragment über das JSTL-Tag (JavaServer Pages Standard Tag Library) <c:import> eingefügt wird, wird bei einem Cachetreffer ein Teil des Seiteninhalts nicht mehr angezeigt, und ein Teil des Seiteninhalts erscheint zweimal. Der dynamische Cache verlässt sich darauf, dass der Inhalt vor und nach dem Einfügen eines Fragments auf die Platte geschrieben wird (Flush), sodass der übergeordnete Inhalt vor dem Einschluss nicht verloren geht und um zu verhindern, dass der untergeordnete Inhalt in das übergeordnete Fragment integriert wird.

Im Fall des JSTL-Tag <c:import> wird das Attribut "flush=true", das den Inhalt des übergeordneten Writer auf die Platte schreibt, bevor das untergeordnete Fragment aufgerufen wird, jedoch nicht unterstützt. Außerdem puffert JSTL die Antworten, sodass der Inhalt des untergeordneten Writer nach dem Einfügen des untergeordneten Fragments nicht auf die Platte geschrieben wird. Deshalb wird die untergeordnete Antwort in den übergeordneten Inhalt integriert.

Einschränkung:
Der dynamische Cache gibt mehrere Include-Anweisungen zurück, wenn das JSTL-Tag <c:import> in einer zwischengespeicherten JSP-Datei verwendet wird.
Sie können dieses Problem vermeiden, indem Sie die Anweisung <c:import> in Methodenanweisungen out.flush einschließen:
<% out.flush(); %> <c:import url="DNCParent2.jsp" />
<% out.flush(); %> 

Nachrichten des Service Integration Bus (SIB) werden wiederholt

Die Nachrichten des Service Integration Bus werden in den Protokollen der Cluster-Member, die eine Produktionsanwendung bereitstellen, wiederholt.

Problem Empfohlene Maßnahmen
In einer Mehrzellenumgebung werden in den Protokollen der Cluster-Member, die eine Produktionsanwendung bereitstellen, die folgenden Nachrichten wiederholt.
[Zeitmarke] CWSIT0007W:
Es kann keine Verbindung zum Bootstrap-Server an
9.9.9.9:7299:BootstrapBasicMessaging
hergestellt werden, weil die folgende Ausnahme eingetreten ist:
 com.ibm.websphere.sib.exception.SIResourceException: CWSIC1001E: 
Ein Client hat versucht, eine Verbindung zu einer fernen Messaging-Engine
(9.9.9.9:7299 - BootstrapBasicMessaging) herzustellen, aber die Verbindung kann nicht aufgebaut werden. Stellen Sie sicher,
dass die Messaging-Engine gestartet ist: exception com.ibm.ws.sib
 .jfapchannel.JFapConnectFailedException: CWSIJ0063E: Es
 kann keine Netzverbindung zum Host 9.9.9.9 an Port 7299
 aufgebaut werden...
[Zeitmarke] 00000023 SystemOut O RemoteInvalidator unable to connect to ...
Vergewissern Sie sich zunächst, dass jedes SIB-Member in der fernen Zelle gestartet wurde. Stellen Sie dann sicher, dass der Port SIB_ENDPOINT_ADDRESS für jedes SIB-Member in der fernen Zelle oder Stammgruppe richtig angegeben wurde. Ist der falsche Port angegeben, löschen Sie die Konfiguration für abgehende Verbindungen "--setup=dynacacheOutSIB --delete..." und geben Sie den richtigen Port an. Wenn alles fehlerfrei funktioniert, wird eine Nachricht wie die folgende ausgegeben:
[Zeitmarke] 0000000a RemoteInvalid I
DYNA1075I: Die externe Cachegruppe für "RemoteJMSInvalidator"
ist verbunden. Der konfigurierte JNDI-Name der
Warteschlangenverbindungsfactory ist
"DynacacheDestination-cell2", und der JNDI-Name
des geplanten Ziels ist
"jms/DynacacheOutBoundConnectionFactory-cell1".

Messaging-Komponente der Plattform kann die Benutzer-ID nicht authentifizieren

Erläuterung Empfohlene Maßnahmen
In einer Mehrzellenumgebung tritt bei einem SIB-Member der folgende Fehler auf:
[Zeitmarke] 00000022 SibMessage    E   [:] CWSII0050E: The
Platform Messaging Component can not authenticate the user ID.
Diese Nachricht kann irreführend sein, da der dynamische Cache-Service keine sicheren Busse verwendet.
Diese Nachricht kann auf eines der folgenden Probleme zurückzuführen sein:

Der SIB-Server empfängt eine Anforderung, die sich auf ein nicht existentes Busziel bezieht. Vergewissern Sie sich, dass bei Ausführung von "--setup=dynacacheOutSIB" und "--setup=dynacacheECA" in der sendenden Zelle der richtige Name für die ferne Zelle verwendet wurde.

Es sind keine Member des Service Integration Bus verfügbar. Dieses Problem tritt häufig auf, weil bei der Konfiguration der eingehenden Verbindungen "--setup=dynacacheInSIB" der falsche Cluster angegeben wird. Vergewissern Sie sich, dass für die Option "--cluster" kein anderer Cluster als der SIB-Cluster angegeben wird.

Die eindeutige ID der Messaging-Engine stimmt nicht mit der im Datenspeicher gefundenen ID überein.

Erläuterung Empfohlene Maßnahmen
In einer Mehrzellenumgebung tritt bei einem SIB-Member der folgende Fehler auf:
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1535E: Die eindeutige ID der Messaging-Engine stimmt nicht mit der im Datenspeicher gefundenen ID überein.  ME_UUID=D520787E8CA7F18A, ME_UUID(DB)=980C0B42B3A904F3
[Zeitmarke] 0000002f SibMessage    I
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1546I:
Die Messaging-Engine (ME_UUID=D520787E8CA7F18A, INC_UUID=7228ea45e216f3ef) hat eine vorhandene Sperre verloren oder
konnte keine Anfangssperre für den Datenspeicher abrufen.
[Zeitmarke] 0000002f SibMessage    I
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1519E: Die Messaging-Engine edgeaphid10Node01.cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2 kann die Sperre für den Datenspeicher nicht setzen,
die den exklusiven Zugriff auf die Daten gewährleistet.
[Zeitmarke] 0000002d SibMessage    E
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS0002E: Beim Starten der Messaging-Engine ist eine Ausnahme eingetreten. Ausnahme: com.ibm.ws.sib.msgstore.PersistenceException:
 CWSIS1501E: Die Datenquelle hat eine unerwartete Ausnahme
 generiert: com.ibm.ws.sib.msgstore.persistence.
 DatasourceWrapperStateException: Es können keine
 neuen Verbindungen bereitgestellt werden, weil die
 Persistenzschicht gestoppt ist bei
 com.ibm.ws.sib.msgstore.persistence.impl.
 PersistentMessageStoreImpl.start
 	(PersistentMessageStoreImpl.java:188)
		bei com.ibm.ws.sib.msgstore.impl.MessageStoreImpl.
   start(MessageStoreImpl.java:1175)
		bei com.ibm.ws.sib.admin.impl.JsMessagingEngineImpl.
	 	 start(JsMessagingEngineImpl.java:491)

Stoppen Sie den Server, und löschen Sie das Verzeichnis in WAS-Installationsstammverzeichnis\profiles\AppSrv01\filestores\com.ibm.ws.sib, das dem SIB-Member entspricht, und starten Sie den Server erneut.

Script dynacacheJMSSIB kann Datei DynacacheMessageHandler.ear nicht lokalisieren

Erläuterung Empfohlene Maßnahmen
In einer Mehrzellenumgebung kann das Script dynacacheJMSSIB die Datei DynacacheMessageHandler.ear nicht lokalisieren, und im Protokoll erscheint die folgende Nachricht:
WASX7017E: Beim Ausführen der Datei
"../../../util/dynacacheJMSSIB.py" ist eine Ausnahme eingetreten.
Informationen zur Ausnahme:
com.ibm.ws.scripting.ScriptingException: WASX7115E:
Die Eingabedatei "/opt/WAS/6.1/cf270928.19
 /profiles/AppSrv01/logs/DynacacheMessageHandler.ear"
kann nicht gelesen werden.
Führen Sie das Script dynacacheJMSSIB im Verzeichnis WAS-Installationsstammverzeichnis/profiles/PROFILE_NAME/bin aus, damit es die Datei ../../../util/dynacacheJMSSIB.py and ../../../installableApps/DynacacheMessageHandler.ear unter den entsprechenden relativen Pfaden lokalisieren kann.

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



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