ce que vous attendez est de contrôler le nombre d'utilisateurs simultanés se connecter à votre système
lorsque le 3ème utilisateur essaie de se connecter alors il doit attendre la connexion pour libérer
maintenant, vous pouvez mettre en œuvre cette aide d'un compteur simultané
- créer un filtre qui filtre toutes les demandes.
- chaque fois qu'une nouvelle demande est incrément créé le compteur
- lorsqu'un utilisateur se déconnecte décrémenter le compteur
- lorsque le compteur atteint la valeur max faire cette attente de fil jusqu'à ce que les fentes sont disponibles.
Vous pouvez contrôler le nombre maximal d'utilisateurs via JMX ou une console d'administration séparée. également, une connexion doit être libérée lorsque le thread qui la gère se termine (puisque l'objet de session n'a aucune référence, il peut être GC et après un timeout il sera réutilisé dans le pool).
Il est toujours préférable de ne pas créer de goulot d'étranglement en utilisant une ressource DB.
J'augmente ma réponse à l'acceptation si vous savez que –
Je ne comprends pas très bien la question, puisque votre pool c3p0 est indépendant des demandes de vos utilisateurs. Le pool est auto-géré (lorsqu'une connexion n'est pas utilisée après un certain laps de temps, la connexion est soit fermée, soit remise dans le pool). –
oui u r right pool est indépendant des demandes des utilisateurs mais sur notre page web nous avons un lien nommé logout. Dans un scénario si j'ai un maxPoolSize 2 et 2 utilisateurs se connecte alors quand le 3ème utilisateur essaye de se connecter alors il devrait attendre que la connexion soit libre. Je veux faire cela si je clique sur mon lien de déconnexion puis utilisateur déconnecté et aussi libérer la connexion de sorte que l'autre utilisateur en attente d'acquérir la connexion obtient la connexion et faire son travail. –