Wie lade ich Weblogic-Cache-JSPs beim Neustart neu ein?

8

Unsere Methode, eine neue Version einer App für Weblogic (11g) bereitzustellen, besteht darin, über die bestehende EAR-Datei zu kopieren und dann den Weblogic-Server anzuhalten und neu zu starten. Wir machen einen Start / Stop von Weblogic statt einer erneuten Implementierung, wegen des bekannten Permgen Problems (wo wir irgendwann keine Perm gen haben werden und den Weblogic Server bouncen müssen).

Diese Art der Bereitstellung hat jedoch einen Nachteil: Neue JSP-Versionen werden von weblogic nicht erkannt. Um dies zu beheben, mussten wir den Inhalt des tmp-Verzeichnisses löschen, das vor dem Neustart des Servers einen Cache der kompilierten JSPs verwaltet. Gibt es eine Einstellung, die weblogic dazu auffordert, JSPs zu löschen / neu zu laden / neu zu kompilieren, wenn es wieder startet?

    
BestPractices 10.09.2012, 19:19
quelle

2 Antworten

4

Ändern des JSP-Aktualisierungstimers

Eine Standardlösung besteht darin, Weblogic anzuweisen, die JSP-Frische häufiger zu überprüfen, indem Sie entweder den Wert in Ihrem web.xml oder in Ihrem weblogic.xml festlegen.

Im Produktionsmodus sucht Weblogic nicht nach neuen JSP-Versionen ( Standardwert: -1 ), während jede Sekunde im Entwicklungsmodus ausgeführt wird ( Standardwert: 1 ) ).

Die Entscheidung, ob Sie web.xml oder weblogic.xml ändern möchten, hängt von Ihnen ab, und zwar in Bezug auf die ausgewählten Anwendungsserver, die nur WebLogic sind oder nicht.

Wenn Sie web.xml ändern möchten, legen Sie wie folgt einen Wert für den Kontextparameter weblogic.jsp.pageCheckSeconds fest:

%Vor%

Wenn Sie weblogic.xml ändern möchten, legen Sie einen Wert für den Parameter page-check-seconds im Abschnitt jsp-descriptor fest. Hier ist der relevante Auszug aus der Dokumentation:

  

Legt das Intervall in Sekunden fest, nach dem WebLogic Server überprüft, ob sich JSP-Dateien geändert haben und neu kompiliert werden müssen. Abhängigkeiten werden ebenfalls überprüft und rekursiv neu geladen, wenn sie geändert werden.   Der Wert -1 bedeutet, dass die Seiten nie überprüft werden. Dies ist der Standardwert in einer Produktionsumgebung.   Der Wert 0 bedeutet immer die Seiten zu überprüfen.   Der Wert 1 bedeutet, dass die Seiten jede Sekunde überprüft werden. Dies ist der Standardwert in einer Entwicklungsumgebung.   In einer Produktionsumgebung, in der Änderungen an einer JSP selten sind, sollten Sie den Wert von pageCheckSeconds gemäß Ihren Optimierungsanforderungen auf 60 oder höher setzen.

Quelle: Ссылка

Erzwingen der erneuten Bereitstellung

Beim Neustart des Weblogic-Servers wird die erneute Bereitstellung einer Webanwendung (insbesondere im Produktionsmodus) nicht erzwungen.

Lösung Aktivieren Sie explizit die Lebenszyklusoperation "reploy" mithilfe der folgenden Befehlszeile:

%Vor%
  • Beachten Sie, dass -redeploy WAYS viel sicherer ist als -update , esp. mit Weblogic & lt; = 10.x

  • Halten Sie den ersten Block zwischen [], nur wenn der Server nicht lokal ist. Entfernen Sie in diesem Fall [].

  • Halten Sie den zweiten Block zwischen [], wenn Sie die WAR-Datei im selben Schritt hochladen möchten, was viel einfacher ist. Entfernen Sie in diesem Fall [].

Chucky 28.05.2013 13:02
quelle
1

Um dies zu vermeiden, sollten Sie zuerst Ihr Modul aktualisieren und dann den Server neu starten. Dies sollte Ihr Problem beheben.

Obwohl der angegebene Prozess immer 100% korrekt ist. Aber Sie können die oben genannten Schritte versuchen.

    
kukku 08.10.2012 10:52
quelle

Tags und Links