# Servlet - Anzahl der Zugriffe herausfinden



## TangoFan (7. Nov 2006)

Hallo,

ist es möglich herauszufinden wieviele Zugriffe mein Servlet zum aktuellen Zeitpunkt verarbeiten muss? Würde gerne in meiner Anwendung eine Statistik einbauen wo man sehen kann wieviele Requests pro Sekunde gerade im Moment verarbeitet werden.


----------



## SlaterB (7. Nov 2006)

von wann bis wann zählt das denn?
nur Servlet oder auch JSP berücksichtigen? 
was wenn ein Servlet an andere weiterleitet?

ich schlage wie immer vor, sowas erstmal selber zu bauen,

benutze z.B. einen Filter für alle deine Servlets und JSPs,
http://www.j2ee-develop.de/knowledgebase/view/3144/

am Anfang hochzählen, am Ende wieder runterzählen,
Exceptions berücksichtigen


----------



## TangoFan (7. Nov 2006)

Es ist nur ein Servlet zu berücksichtigen (kein JSP). Ich würde gerne so eine Statistik machen wo man sieht viele Requests pro Sekunde mein Servlet verarbeitet hat.


----------



## TangoFan (7. Nov 2006)

Hab mir mal deinen Link angeschaut, wenn ich das richtig begriffen hat, wird bei jedem Zugriff auf das Servlet die Methode "doFilter" aufgerufen. Wie bastel ich jetzt dort meinen 1-Sekunden Intervall ein?


----------



## SlaterB (7. Nov 2006)

wenns nur um ein Servlet geht kannst du den Filter sparen und nur zu Beginn und Ende des Servlets aktiv werden,
und alles was du da brauchst ist System.currentTimeInMilles(),
den Rest baust du dir selber,

wenn du die Millizeit durch 1000 teilst hast du Sekunden,
du könntest beim Feststellen einer neuen Sekunde irgendeine Zählvariable auf 0 setzen sowie die Sekunde merken
und die Zählung der letzten Sekunde (oder auch die Anzahl vergangeger Sekunden ohne Request bei einer längeren Pause)
ausgeben oder in irgendeiner Form speichern,

allgemein kann man da nicht viel mehr sagen, außer dass int- und andere Variablen + vielleicht Arrays und Listen mithelfen,
Programmieren musst du das erstmal selber 

oder fragst du nach einer fertigen Lösung? vielleicht hat ja jemand die Zeit dafür,
dann aber nochmal: genauer beschreiben was du willst,
was soll genau bestimmt werden, über welchen Zeitraum, in welcher Form vorliegend (Textausgabe, Datei, DB, einzelne Werte oder Graphik, ..)


----------



## TangoFan (7. Nov 2006)

Also mein Servlet nimmt Requests entgegen, wertet diese aus und leitet den Request dann weiter zu der dementsprechenden JSP-Datei. Normaler Job eben 

Nun soll dieses Servlet eben nur für die aktuelle Sekunde speichern wieviele Requests es gerade eben verarbeitet hat. Die Requests zuvor interessieren nicht. Nur eben die Sekunde X wenn ich z.B. die Methode "getRequestCount()" aufrufe soll mir mein Servlet genau zum Zeitpunkt des Aufrufs diesen Wert als Integer zurückgeben.
Diese Methode kann z.B. von einem anderen Servlet aufgerufen werden, welches eine Referenz auf dieses Haupt-Servlet hält.


----------



## TangoFan (7. Nov 2006)

Interessant wäre es natürlich auch eine grafische History zu erzeugen. Gibt es irgendeine API mit der ich Liniendiagramme für JSP-Ausgaben erzeugen kann?


----------



## TangoFan (7. Nov 2006)

Hab mal überlegt, ich glaub eine Sekunde ist ein bischen zu kurz. Denk mal 1 Minute dürfte auch ausreichen.


----------

