# Anzahl der Surfer feststellen



## Numerobis (8. Jan 2007)

Hallo, 

weiss jemand von euch wie man mit Hausmitteln ermitteln kann wieviele Surfer im moment an einem Tomcat etc. Connected sind?


Also wieviele Connections etc. gerade aktiv sind , auf welchen Seiten sich der Client oder Surfer befindet???


Welche Klasse oder Lib ist dafür zuständig oder wo finde da was drüber?

Vielen Dank !!!


----------



## SlaterB (8. Jan 2007)

ich vermute da mal ganz blaß:

du scheinst zwei Dinge zu meinen:
1. wie viele Requests werden aktuell bearbeitet,
da vermute ich gar keine Unterstützung, 

also praktisch äquivalent zu der Frage 'wie viele Threads laufen in meinem Programm',
dazu kann Java allgemein sicher was sagen, weiß ich wiederum nicht

2. auf welchen Seiten sich der Client oder Surfer befindet:
das ist pauschal unmöglich zu beantworten, 
manche User bleiben 30 Min. auf einer Seite (lesen oder sind gar nicht da, Kaffeepause),
manche 2 Sekunden, 
manche gar nicht, da der Browser während der Übertragung abgestürtzt ist,
da müsstest du dir also ein Kriterium ausdenken,

Anzahl der offenen Sessions wäre interessant, 
und ich hoffe dass es das irgendwo gibt, weiß aber nix dazu,

ansonsten sind Webserver zustandslos, welche Seite zuletzt gerufen wurde steht höchstens in einem Log, 
spielt aber sonst keine Rolle und wird daher sicherlich auch nicht gemerkt,

so, keine große Hilfe, aber wenigens eine Antwort


----------



## Numerobis (8. Jan 2007)

Des Unwissenden Brot , ist die Erkenntnis!

Verkaufe dein Brot teuer , ich weis !

Also da ich jetzt mal viel schlauer bin als vorher , dank ich dir, und , denk ich mir , muss man also ein aktives Webserver System schaffen, um diese Fragen beantworten zu können.

Aber wie?

Wie ist das nun mit Ajax ?

Und wäre es nicht besser den "Ultimativen Browser" zu erfinden ?


Browser -> server {ich bin noch da}
Server ->browser {schön für dich, wo denn  }
usw...




LoL


----------



## Wildcard (8. Jan 2007)

Tolle Idee... bau eine Konkurrenz zum www auf  :shock: 
http sucked eh  :shock:


----------



## robertpic71 (9. Jan 2007)

Numerobis hat gesagt.:
			
		

> Wie ist das nun mit Ajax ?
> 
> Und wäre es nicht besser den "Ultimativen Browser" zu erfinden ?
> 
> ...



Mit Ajax/Javascript könnte man einen Timer realisieren. Welcher alle paar Sekunden meldet ich bin noch da, hast du was für mich? Es gibt schon Lösungen, welche auf diese Weise einen Server-Push erzeugen und so das Problem der "Zustandslosgikeit" etwas mildern - allerdings scheint mir der Preis dafür etwas hoch (Traffic!).

Ich habe Ajaxtimer aber bisher nur (versuchsweise) verwendet um Teile der html-Seite asynchron nachzuladen. 

Zur ursprünglichen Anfrage:
Im Tomcat Manager gibt es Serverstatus, darin wieder einen "ausführlichen Serverstatus". Dort kann man die Applikation auswählen. Damit sind die Anzahl der Zugriffe, CPU-Zeiten usw. je Zuordnung laut web.xml aufgelistet.

Gruppen (z.B. Endung JSP) werden dort aber auch in Summe angezeigt.  Aber man kann sich zumindest ein wenig Übersicht verschaffen, wieviel los ist. Ob man an die Daten auch in Applikation rankommt, weiß ich nicht.

Alternativ könnte man die Statistik natürlich von der Anwendung machen lassen. Allerdings hängt der Lösungweg hier stark von deiner Lösung ab (Servlet, JSP, JSF, Spring......).


----------



## Numerobis (12. Jan 2007)

Ich bin fast Flexibel!

Also eigentlich hab  ich jsp und Servlets am Start.

Aber ebenso nen Java App Server als Middle .

Aber der Traffic spielt fast keine Rolle.


 Wie heisst denn das Monitoring Tool?


----------



## robertpic71 (12. Jan 2007)

Numerobis hat gesagt.:
			
		

> Wie heisst denn das Monitoring Tool?



Das von mir beschriebene Monitoring Tool ist der *mitgelieferte Tomcat-Manager*!

Es gibt natürlich auch andere wie >> denn hier <<.

Hier gibt es sicher noch mehr Tools, welche die Applikation "von außen" beobachten.



			
				Numerobis hat gesagt.:
			
		

> Ich bin fast Flexibel!
> ...
> Aber der Traffic spielt fast keine Rolle.



Also wenn du hier auf eine Ajax-Lösung spekulierst, mußt du entweder mit Javascript ran oder die ein paar Ajax-Komponenten suchen. Auf die Schnelle habe ich [/quote]>> das (Webparts) << gefunden. Da ist auch eine Timer-Componente drinnen. Erfahrung mit den Java Webparts habe ich allerdings keine - ich arbeite überhaupt mit einem Ajax-Framework (ZK).

Nichts desto trotz, scheint mir der Aufwand für ein wenig Statstik hoch. Mir persönlich reichen die Angaben vom Tomcat-Manager  (wieviel Session, wer, Responsezeiten) aus.

Ich werde aber über kurz oder lang den Timer für Serverpush-Dienste verwenden, allerdings mit großzügigen Intervallen (zwischen 1-5 Minuten).


----------



## Numerobis (12. Jan 2007)

Also der Client ist kein Webbrowser.

Hier hab ich ein kleines AWT Fenster.


----------



## robertpic71 (15. Jan 2007)

Numerobis hat gesagt.:
			
		

> Also der Client ist kein Webbrowser.
> 
> Hier hab ich ein kleines AWT Fenster.





			
				Numerobis hat gesagt.:
			
		

> Browser -> server {ich bin noch da}
> Server ->browser {schön für dich, wo denn  }



Wenn dein Client doch kein Browser ist, dann kannst du dir AJAX bzw. Javascript sparen. Dann kann ja der Java-Client mittels Timer die Verbindung (zu einem Servlet) halten.

Für die Statistik am Server ist nicht relevant, ob die Clients "echte" Webbrowser sind.

was ich nicht verstehe:
Wenn die Clients keine Webbrowser ist, warum dann eigentlich JSP auf Serverseite?


----------



## placebo (15. Jan 2007)

Nabend,

ich weiß noch von PHP, dass teilweise drauf zurück gegriffen wird sich eine eigenes, datenbankbasiertes Sessionhandling zu basteln. Ausgehend davon, dass jeder Besucher sowieso eine Session offen hat, kann man somit schön die Datensätze zählen und fertig.
Ist halt ein bischen gefummel. Habe sowas in der Art in der Javawelt auch noch nicht gesehen (habe es bisher auch nie gebraucht).

Das ist zwar keine umwerfend große Hilfe, aber zumindest ein Ansatz. In welcher Form man so eine Struktur auf Java portieren kann, weiß ich auf Anhieb leider auch nicht!

Grüße,
placebo


----------



## AlArenal (15. Jan 2007)

Lösung:
Kommdozeile + netstat + grep


----------



## placebo (15. Jan 2007)

Genau, und am besten noch einen netten Graphen dazu der im Sekundentakt und Asynchron die aktuellen Verbindungszahlen aktualisiert!


----------

