Connaitre le volume de données reçues et envoyées d'une session - Java - Programmation
Marsh Posté le 19-11-2002 à 11:50:43
session / volume ?
Marsh Posté le 19-11-2002 à 11:51:26
ReplyMarsh Posté le 19-11-2002 à 12:02:31
Marsh Posté le 19-11-2002 à 12:03:18
ReplyMarsh Posté le 19-11-2002 à 12:03:38
Marsh Posté le 19-11-2002 à 12:04:17
ReplyMarsh Posté le 19-11-2002 à 12:10:27
Marsh Posté le 19-11-2002 à 12:32:33
ou il est gringo ?
Marsh Posté le 19-11-2002 à 12:35:18
il nous as laissé avec sa question à la con
Marsh Posté le 19-11-2002 à 13:26:36
c'est fou ce que ça peut faire parler une question à la con !
J'étais si peu clair que ça ?
Session --> Session dans une servlet Java quoi...
Volume de données :
nombre d'octets lus par le possesseur de la session
nombre d'octets écrits par le possesseur de la session
c plus clair ?
Marsh Posté le 19-11-2002 à 14:26:29
non
pq tu voudrais "lire des octets" dans une session....
une session c'est jamais qu'un objet dans ta jvm avec une hashmap dans laquelle tu stores tes objets de session hein
Marsh Posté le 19-11-2002 à 14:27:28
el_gringo je l'adore il est trop fort
Marsh Posté le 19-11-2002 à 14:27:46
tu veux peut etre savoir le nbre d'octets transférés sur le reseau par user?
du genre tel user(que tu associes à une session), a lu une page de 3240 octets, etc?
dans ce cas, Filter est ton ami, mais euh, il se peut fort que tu n'aies pas vraiment besoin de ça en fait
les logs apache ça te suffit pas?
Marsh Posté le 19-11-2002 à 14:37:22
si c'est bien ce qu'a dit Greg, ca peut se faire relativement facilement avec un filtre et un Listener de Session
Marsh Posté le 19-11-2002 à 15:27:23
Ok, ok.
Dans ma web-app, le concept de session est tellement associé à celui de client (1 session <=> 1 client) que j'ai fait l'amalgame.
Donc, ouais, ce que j'aimerai bien pouvoir connaitre, c'est le volume de données envoyé et reçu (surtout reçu) par chaque client.
J'regarde du côté de Filter (si qqn veut bien m'en dire un peu plus la dessus, je suis encore prenneur hein...)
Marsh Posté le 19-11-2002 à 15:30:22
euh c pq faire?
Marsh Posté le 19-11-2002 à 15:44:41
le filtre c'est un truc qui sera executé en amont des servlets.
Au début c'est un peu galère à comprendre, mais c'est vraiment puissant comme truc.
Le principe c'est que tu interceptes les requêtes (objet request et response) avant que les servlets ou jsp y ait eu accès. Ca te donne l'occasion de faire un traitement, d'intérrompre le traitement ou de continuer le traitement (rendre la main à la servlet) mais avec des objets request et/ou response modifiés.
2 petits tutos :
dans ton cas, tu doit écrire un filtre à mapper sur tout ton site. Il faudra qu'il remplace la response par une response wrappée dont le but sera de compter ce qui est écrite dans la sortie.
à la sortie du doFilter, tu récupères la session dans le request et tu y met à jour la quantité de donéne téléchargée.
Il faudra aussi que tu écrive un session Listener (HttpSessionListener) qui logera la quantité de donnée téléchargée sur l'évenement sessionDestroyed
Marsh Posté le 19-11-2002 à 15:46:41
benou >>>
Marsh Posté le 19-11-2002 à 15:47:18
y'a aussi un doc .pdf chez sun qui est tres bien
(all about filters ça s'appelle je crois)
Marsh Posté le 19-11-2002 à 15:48:55
DarkLord a écrit a écrit : benou >>> |
j'ai eu l'occasion de pratiquer un peu les filtres ...
celà dit, c'est sympa à faire ton truc gringo !
Marsh Posté le 19-11-2002 à 15:51:45
--greg-- a écrit a écrit : y'a aussi un doc .pdf chez sun qui est tres bien (all about filters ça s'appelle je crois) |
je crois que je le connais pas celui là
...
et je le trouve pas ... tu pourrais retrouver le lien ?
Marsh Posté le 19-11-2002 à 15:55:41
rah fait chier
Marsh Posté le 19-11-2002 à 15:59:48
voila
http://java.sun.com/products/servlet/Filters.html
enfin il me semblait que c'etait plus long dans le pdf mais bon, c pê parce que c'était écrit grand
sinon y'a d'autres liens ici
http://java.sun.com/products/servlet/docs.html
Marsh Posté le 19-11-2002 à 16:09:10
ok, je les connaissais ceux là ... mais y a rien de plus que dans les autres tuto
merci quand même !
Marsh Posté le 19-11-2002 à 16:16:36
benou a écrit a écrit : le filtre c'est un truc qui sera executé en amont des servlets. Au début c'est un peu galère à comprendre, mais c'est vraiment puissant comme truc. Le principe c'est que tu interceptes les requêtes (objet request et response) avant que les servlets ou jsp y ait eu accès. Ca te donne l'occasion de faire un traitement, d'intérrompre le traitement ou de continuer le traitement (rendre la main à la servlet) mais avec des objets request et/ou response modifiés. 2 petits tutos :
|
Ouais, j'commençais à comprendre que c'est ça...
J'ai u l'occas de programmer un filtre ISAPI pour IIS en C++, c du même genre (sauf que j'avais programmé tout un site web dans ce filtre : galère énorme ! 'fin bref.
En fait, l'application de mon truc, la voila (ça à l'air d'intriguer tt l'monde) :
Ma web-app est vendue un peu partout. Certains utilisateurs de ma web-app ont un login les indentifiant entant qu'utilisateurs. Ceux-ci peuvent déja savoir quel utilisateur est en train de faire quoi. J'voudrais aussi qu'il puisse savoir quel volume de données à téléchargé chacun... voila.
Marsh Posté le 19-11-2002 à 16:21:47
J'aurais donc pas besoin de Session Listener, mais uniquement d'un Filter je pense...
Pas très compliqué d'ailleurs.
EDIT : enfin, apparement...
Marsh Posté le 19-11-2002 à 16:31:08
c pas tres compliqué, par contre, je suis pas convaincu de ton truc, parce que tu vas devoir faire passer TOUT par ton filtre si je comprend bien (images, documents pdf, que-sais-je)...
par contre si tu utilise un mécanisme de login "standard" tu peux te servir des logs d'apache nan? il me semble qu'on peut y recuperer le username.
en tous cas les logs de resin on peut le faire.
Marsh Posté le 19-11-2002 à 16:54:15
--greg-- a écrit a écrit : c pas tres compliqué, par contre, je suis pas convaincu de ton truc, parce que tu vas devoir faire passer TOUT par ton filtre si je comprend bien (images, documents pdf, que-sais-je)... par contre si tu utilise un mécanisme de login "standard" tu peux te servir des logs d'apache nan? il me semble qu'on peut y recuperer le username. en tous cas les logs de resin on peut le faire. |
Ms j'veux pas que l'utilisateur passe par les logs.
Ces infos seront accessibles depuis la web-app. "L'administateur" qui consulte ces infos n'a pas forcément accès aux fichiers du serveur web
Marsh Posté le 19-11-2002 à 16:55:23
--greg-- a écrit a écrit : c pas tres compliqué, par contre, je suis pas convaincu de ton truc, parce que tu vas devoir faire passer TOUT par ton filtre si je comprend bien (images, documents pdf, que-sais-je)... par contre si tu utilise un mécanisme de login "standard" tu peux te servir des logs d'apache nan? il me semble qu'on peut y recuperer le username. en tous cas les logs de resin on peut le faire. |
Ms c pas dur de faire passer TOUT par mon filtre. Il suffit que je mappe mon filtre sur TOUTES les servlets de ma web-app
Marsh Posté le 19-11-2002 à 16:56:50
ben ta web-app pourrait se charger de faire ce qu'il faut avec la stat
(ou un daemon externe d'ailleurs)
y'a des tas de sites ou tu peux voir les stats sous forme "graphique", à ton avis ça marche comment. la plupart des hebergeurs proposent ce service. bon, dans ton cas, faudrait adapter un peu un de ces trucs quoi... mais si ça marche, ça me parait plus efficace que le coup du filtre dans lequel tout passe... ça va pas tenir le coup ça si tu dois filtrer TOUT....
Marsh Posté le 19-11-2002 à 16:57:29
El_Gringo a écrit a écrit : Ms c pas dur de faire passer TOUT par mon filtre. Il suffit que je mappe mon filtre sur TOUTES les servlets de ma web-app |
tu veux pas comptabiliser les images, sons et autres machins truc qu'il y a sur ton bignou?
alors quel interet de compter les octets?
Marsh Posté le 19-11-2002 à 16:59:38
Ouais, je suis encore pas du tout sûr d'utiliser un filtre. En fait sur ce coup là, je crois que j'vais remplir les stats au coeur de ma servlet, à l'endroit ou on consulte les documents (le reste est assez négligeable, niveau volume d'infos envoyées), ça sera plus simple.
Mais le coup des filtres, ça m'a l'air interressant, j'retiens...
Marsh Posté le 19-11-2002 à 17:04:39
le faire dans la servlet ou dans un filtre c'est pareil.
Sauf que le filtre c'est un composant que tu pourras réutilser ailleur.
Marsh Posté le 19-11-2002 à 17:18:32
benou a écrit a écrit : le faire dans la servlet ou dans un filtre c'est pareil. Sauf que le filtre c'est un composant que tu pourras réutilser ailleur. |
Ouais, ms en fait, ds ma servlet, j'comptais me baser sur la taille des fichiers qu'on affiche (tu te rappels ce que fait ma servlet !?).
Alors que ds un filter, j'vois pas comment connaitre la taille des données contenues dans le buffer de réponse.
getBufferSize() de ServletResponse, c ça y me semble...
Marsh Posté le 19-11-2002 à 17:19:43
à mon humble avis tu ferais bien de compter autre chose que les octets d'html de ta servlet mais bon
Marsh Posté le 19-11-2002 à 17:22:03
--greg-- a écrit a écrit : à mon humble avis tu ferais bien de compter autre chose que les octets d'html de ta servlet mais bon |
c'est peut être ca qu'il veut ...
Marsh Posté le 19-11-2002 à 17:23:14
bin c pas vraiment représentatif du traffic ...
Marsh Posté le 19-11-2002 à 17:27:30
DarkLord a écrit a écrit : bin c pas vraiment représentatif du traffic ... |
ok, mais c'est peut être ca qu'il veut quand même ...
savoir la quantité de donnée gérée par ses servlets
Marsh Posté le 19-11-2002 à 11:47:40
ça devrait être possible logiquement, non ?
En tout cas j'trouve pas ds la Java doc...