wrapper.javaio.use_thread

Kompatibel :3.5.21
Editionen :Professional EditionStandard EditionCommunity Edition
Betriebssysteme :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

Diese Eigenschaft überwacht, ob der Wrapper einen dedizierten Thread benutzt, um die Konsolenausgabe von der JVM zu verarbeiten. Traditionell wurde die gesamte Ausgabe innerhalb des Hauptthreads des Wrappers verarbeitet. Jedoch kann dies auf Servern mit hohen IO-Lasten dazu führen, dass der Hauptthread, während die Logausgabe auf die Festplatte geschrieben wird, blockiert.

Solange die DEBUG-Logebene des Wrappers nicht gesetzt wurde, loggt die Hauptschleife nicht viel mehr als Konsolenausgabe der JVM. So dass das Verschieben dieser Ausgabe in einen anderen Thread sicherstellen kann, dass der Hauptthread des Wrappers stets in der Lage ist, verzögerungfrei ausgeführt zu werden.

Der dedizierte Thread erlaubt den Wrapper auch, hängende Javaausgaben mit viel geringerer Verzögerung zu verarbeiten.

Wenn der Puffer der Warteschlange (Pipe) zwischen JVM und dem Wrapper voll läuft, wird die JVM blockieren bis der Wrapper eine Chance erhält, die hängende Konsolenausgabe zu verarbeiten. Wenn Ihre Anwendung sehr lange Zeilen oder sehr große Ausgabemengen loggt, dann können Sie vom Erhöhen der standardmäßigen Puffergröße der Warteschlange Nutzen ziehen. Sehen Sie bitte die wrapper.javaio.buffer_size Eigenschaften, um mehr Informationen dazu zu erhalten.

Bitte beachten Sie, dass durch Verarbeiten der Konsolenlogausgabe durch das System viel Overhead entstehen kann. Dies trifft insbesondere auf Windows zu. Wenn Ihre Anwendung durch das Loggen großer Mengen von Konsolenausgaben Leistungseinbußen erfährt, empfehlen wir, entweder die Logausgabe zu reduzieren oder die Konsolenlogausgabe durch das Setzen der wrapper.console.loglevel-Eigenschaft auf STATUS zu deaktivieren.

Die Nachteile der Nutzung eines dedizierten Threads sind:

  • Etwas höhere Speicher- und Ressourcenanforderungen.
  • Die Debug-Logausgabe, insbesondere beim Starten, kann etwas schwieriger zum Lesen sein, weil die Einträge, die von den zwei Threads geloggt werden, nicht gut synchronisiert sind.

Der Standardwert ist "FALSE", da die meisten User diesen dedizierten Thread nicht brauchen.

Beispiel:
wrapper.javaio.use_thread=FALSE

NOTE

Diese Eigenschaft ersetzt die obsolete wrapper.use_javaio_thread-Eigenschaft (welche seit der Wrapper Version 3.5.8 existierte). Der Wert dieser obsoleten Eigenschaft ist aus Gründen der "Aufwärtskompatibilität" auch standardmäßig für diese Eigenschaft voreingestellt.

Verweis: Konsole

Verweis: Befehlsdatei