Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Petite question technique sur les sessions JVM

2 réponses
Avatar
Cem
Bonjour à tous,

J'ai une question sur le fonctionnement des sessions dans un
environnemnent Apache Tomcat JVM dans le cadre d'un logiciel dont nous
avons fait l'acquisition. Ne connaissant pas ce type d'environnement
(j'ai plus l'habitude de travailler sur Python/Zope/Plone), comment peut
-on faire évoluer une application sachant que cette dernière à priori
utilise des ressources sous la forme de session ? Le prestataire me
proposant de purger les sessions soit au bout d'un timeout, soit par
programmation lors de la fermeture de la fenêtre. Je suppose que quand
on atteint un certain nombre de sessions, le serveur n'en accepte plus
ou ralentit tout le monde au fur et à mesure ?
Doit-on ajouter une autre JVM sur le même serveur, dans ce cas je
suppose qu'il faut un serveur frontal pour répartir la charge sur l'une
ou l'autre des JVM ??
Comment définissez-vous la tenue à la charge d'une application web dans
ce cas pour un serveur de popularité moyenne ?

Merci d'avance pour les pointeurs ou les infos que vous pourriez me donner.

Cem

2 réponses

Avatar
Insitu
Cem writes:

Bonjour à tous,


Bonjour,


J'ai une question sur le fonctionnement des sessions dans un
environnemnent Apache Tomcat JVM dans le cadre d'un logiciel dont nous
avons fait l'acquisition. Ne connaissant pas ce type d'environnement
(j'ai plus l'habitude de travailler sur Python/Zope/Plone), comment
peut -on faire évoluer une application sachant que cette dernière à
priori utilise des ressources sous la forme de session ? Le


Qu'entendez vous par "faire évoluer" ? La session correspond a l'état
d'une conversation avec un client, ce n'est normalement pas une donnée
persistante, encore que certains environnements proposent cette
fonctionnalité. Quand une application doit évoluer, dans les cas les
plus simples elle est redéployée via la console d'administration du
serveur d'application. Dans les cas les plus complexes, par exemple
lorsque l'on veut absolument maintenir une continuité de service au
travers du déploiement, il est nécessaire de mettre en place des
procédures spécifiques telles qu'effectivement la sauvegarde des sessions.


prestataire me proposant de purger les sessions soit au bout d'un
timeout, soit par programmation lors de la fermeture de la fenêtre. Je
suppose que quand on atteint un certain nombre de sessions, le serveur
n'en accepte plus ou ralentit tout le monde au fur et à mesure ?


Dans un serveur d'application java, la session est un simple objet dont la
taille dépasse rarement quelques Ko. Le principal point de contention
n'est pas dans la jvm ou dans tomcat mais plutôt dans l'infrastructure
(os + réseau) il me semble. Il faudrait plutôt parler de connexion
plutôt que de session, les deux concepts sont orthogonaux.

Doit-on ajouter une autre JVM sur le même serveur, dans ce cas je
suppose qu'il faut un serveur frontal pour répartir la charge sur
l'une ou l'autre des JVM ??


Par exemple, oui.

Comment définissez-vous la tenue à la charge d'une application web
dans ce cas pour un serveur de popularité moyenne ?


Je ne comprends pas bien la question. La définition de la "tenue à la
charge" me semble être la mÊme quelle que soit la
techno utilisée: c'est l'espérance du temps de
réponse en fonction du nombre d'utilisateur simultanée du système non ?


Merci d'avance pour les pointeurs ou les infos que vous pourriez me
donner.


http://www.application-servers.com est pas mal.


Cem


insitu.

Avatar
Cem
Cem writes:

Bonjour à tous,


Bonjour,

J'ai une question sur le fonctionnement des sessions dans un
environnemnent Apache Tomcat JVM dans le cadre d'un logiciel dont nous
avons fait l'acquisition. Ne connaissant pas ce type d'environnement
(j'ai plus l'habitude de travailler sur Python/Zope/Plone), comment
peut -on faire évoluer une application sachant que cette dernière à
priori utilise des ressources sous la forme de session ? Le


Qu'entendez vous par "faire évoluer" ? La session correspond a l'état
d'une conversation avec un client, ce n'est normalement pas une donnée
persistante, encore que certains environnements proposent cette
fonctionnalité. Quand une application doit évoluer, dans les cas les
plus simples elle est redéployée via la console d'administration du
serveur d'application. Dans les cas les plus complexes, par exemple
lorsque l'on veut absolument maintenir une continuité de service au
travers du déploiement, il est nécessaire de mettre en place des
procédures spécifiques telles qu'effectivement la sauvegarde des sessions.
Il s'agit en fait du nombre d'accès concurrent à l'application web qui

est utilisé en gestion documentaire. Nous avons des consultations via
notre site Internet d'une base documentaire dans le même genre que
Légifrance par exemple.



prestataire me proposant de purger les sessions soit au bout d'un
timeout, soit par programmation lors de la fermeture de la fenêtre. Je
suppose que quand on atteint un certain nombre de sessions, le serveur
n'en accepte plus ou ralentit tout le monde au fur et à mesure ?


Dans un serveur d'application java, la session est un simple objet dont la
taille dépasse rarement quelques Ko. Le principal point de contention
n'est pas dans la jvm ou dans tomcat mais plutôt dans l'infrastructure
(os + réseau) il me semble. Il faudrait plutôt parler de connexion
plutôt que de session, les deux concepts sont orthogonaux.
Bah dans l'application proposé avec une bête de course coté serveur (uP

à 3 GHz et 4 Go de RAM), il est indiqué que seul 30 sessions
utilisateurs peuvent être contenues par la JVM (limitation du fait de la

consommation de ressource et non par programmation d'après ce que l'on
me dit )et qu'au delà il faut soit rajouter une autre JVM, soit monter
un cluster .... (l'usine quoi ...)


Doit-on ajouter une autre JVM sur le même serveur, dans ce cas je
suppose qu'il faut un serveur frontal pour répartir la charge sur
l'une ou l'autre des JVM ??


Par exemple, oui.
N'ayant pas de données chiffrées sur le nombre de JVM que l'on peut

charger, l'emprise mémoire de l'application, c'est flou.

Comment définissez-vous la tenue à la charge d'une application web
dans ce cas pour un serveur de popularité moyenne ?


Je ne comprends pas bien la question. La définition de la "tenue à la
charge" me semble être la mÊme quelle que soit la
techno utilisée: c'est l'espérance du temps de
réponse en fonction du nombre d'utilisateur simultanée du système non ?

Ce que je voulais savoir pour pouvoir argumenter, c'est que pour ma part

le prestataire me vend une licence soft pour un seul processeur en
restant évasif et me disant que 30 sessions cela correspond dans son
logiciel à 30 utilisateurs à l'instant T qui font une requête. Or par un
calcul sont je ne saurais donner l'origine cela correspondrait à 120
utilisateurs réels....

Le problème est que ce faisant je suis vérouillé dans l'évolution et que
selon moi je devrais pouvoir mettre sur les genoux le serveur en terme
de charge puis le faire évoluer (bi-, quadri- processeur s'il le faut).
Or en terme de charge, dans mon architecture habituelle (Zope) je n'ai
jamais eu ce cas de figure du nombre d'utilisateur aussi faible pour un
serveur aussi puissant.

Ce qui est dommage, c'est que c'est un produit dont le prestataire nous
communique ce genre de "limitations" seulement maitenant et brosse dans
le sens du poil, et je n'ai aucun moyen de vérifier ce qui est dit.
Merci d'avance pour les pointeurs ou les infos que vous pourriez me
donner.


http://www.application-servers.com est pas mal.
Merci.


Cem


insitu.