Frage

Wir haben derzeit in Java, die Batchjobs mulitple (manchmal große) Dateien proces. Diese Jobs können einige Zeit in Anspruch nehmen zu laufen. Wir führen diese Dateien direkt in der JVM, Java Threads verwenden, die continuesly in einer Schleife laufen. (Vorarb Dateien und dann eine Weile warten).

Nun ist die Firma für die ich arbeite, will diese Arbeitsplätze in der Weblogic Application Server ausgeführt werden. Nicht, weil es besser ist, sondern weil das ist das Standard-Plattform des Unternehmens.

Ein potentielles Problem, das ich sehe ist, dass BEA WebLogic alle Themen überwacht und Standard sagt, dass Threads, die länger als 10 Minuten sind STUCK Threads laufen, die möglicherweise zu einem Server in FAILED Zustand führen können.

Was ist die beste Praxis ist dies in BEA Weblogic zu tun?

War es hilfreich?

Lösung

BEA Weblogic überwacht nur Anfrage Threads gegen eine bestimmte Zeit. Für Threads, die auf Wunsch Behandlungscode erzeugt werden, ist es nicht. Wir haben verwendet Quartz (von OpenSymphony) Scheduler-Job in Weblogic zu planen, der bis zu 3-4 Stunden dauern, verwendet, um zu beenden.

Andere Tipps

Weblogic Server bieten WorkManagers, die für lange längere Fadenlaufzeit und optimiert werden unterstützt (in der Regel sind sie umrahmten die guten alten ThreadPools gesprochen). Für WorkManagers können Sie die MaxThreadStuckTime definieren, nach welcher Zeit ein Thread als stuck bilanziert wird und wahrscheinlich getötet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top