Ich habe eine Java / Java EE-Webanwendung auf Tomcat Server 5.5.17 implementiert. Ich möchte die Anzahl der Clients wissen, die mit dem Server verbunden sind. Wie können wir es herausfinden?
Der zuverlässigste Weg wäre, nach ip.addr.of.srv:port
in netstat
zu suchen. Hier ist das Windows-basierte Beispiel (sorry, hier kein Linux-Guru;))
Ersetze 12.34.56.78
durch IP, wo Tomcat hört und 80
nach Port, wo Tomcat zuhört.
Das ist eigentlich kein Programmierproblem, daher habe ich dafür gestimmt, diese Frage zu serverfault.com zu migrieren.
Im Abschnitt Tomcat Manager finden Sie ein Beispiel für das Zählen die Sitzungen in einer Webanwendung.
Die Anzahl der Verbindungen zu zählen ist wahrscheinlich ein bisschen schwieriger. Tomcat startet einen neuen Thread für jede Anfrage bis zu einem Maximum von "maxProcessors". Jenseits dieser Nummer werden die Anfragen bis zu einem Maximum von "acceptCount" in die Warteschlange gestellt. Anfragen, die über diese Nummer hinausgehen, werden abgelehnt / fallengelassen (oder stürzen ab, ich bin mir nicht sicher). Die Eigenschaften können mithilfe einer JConsole - Schritte hier überwacht werden. Die oben genannten spezifischen Eigenschaften sind Eigenschaften des HTTP-Connectors .
EDIT 1: Nach dem Durchsehen des Quellcodes von CoyoteConnector und AJP Connector gibt es eine private Eigenschaft namens curProcessors, die die Anzahl der aktuell verwendeten Prozessoren verfolgt. Das Hinzufügen der curProcessors-Variablen zur mbeans-Datei für Connectors scheint jedoch nicht den aktuellen Wert in der JConsole-Anzeige anzuzeigen.
Hinweis: Die XML-Datei mbeans, die ich geändert habe, befand sich in tomcat \ server \ lib \ catalina.jar und befindet sich im Verzeichnis org \ apache \ catalina \ connector im Jar. Unten ist ein Beispiel für den Eintrag, den ich hinzugefügt habe:
<attribute name="curProcessors"
description="the number of processors currently in use"
type="int"/>
Tags und Links java sql-server tomcat5.5