Javabean/session/expiration

Javabean/session/expiration - Java - Programmation

Marsh Posté le 21-05-2003 à 18:40:16    

Bonjour à tous,
 
J'ai un javabean qui crée une connexion jdbc à une base oracle, et le scope=session. De cette manière, quelque soit le nombre de requete que fera l'utilisateur, il utilisera la meme connexion, soit une par utilisateur.
 
Le probleme, c que pendant la nuit, on arrete la base (pour la sauvegarder), et on redemmare. Le souci est que comme les timeout des serveurs web sont à -1 pour qu'il n'y ait pas de timeout, la connexion disparait, mais le bean, non.
 
Si je ne me trompe pas, le mecanisme d'un javabean est le suivant : lors de l'appel a jsp:usebean, il y a création d'une instance s'il n'existe pas. Or comme ce dernier existe encore, il ne me recrée pas de connexion. Mais lors de ce fameux test, est ce que le constructeur du bean est chargé ?
 
Car pour pallier mon probleme, je testerai si ma connexion existe ou pas, et le cas echeant, en re créer une.
Ou alors, je pourrai faire expirer mon bean.
 
Si qqu'un pouvait m'aider ... désolé si j'ai manqué de precisions..
 

Reply

Marsh Posté le 21-05-2003 à 18:40:16   

Reply

Marsh Posté le 21-05-2003 à 19:39:59    

elle est ou la question là?
 
 
sinon perso je suis pas DU TOUT convaincu que foutre la cnx dans un bean ait un quelconque sens mais bon je peux me tromper :??:
 


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 21-05-2003 à 19:49:36    

ba disons que je voulais avoir des reactions.
J'ai mis la connexion ds le bean pour qu'il y ait propagation de cette connexion au travers de la session utilisateur.
 
Car a chaque page, il y a entre 4 et 8 requetes qui s'effectuent.
Je pense que c plus rapide/efficace de creer une connexion, et des requetes apres, plutot que de creer une connexion a chaquez fois.
 
mais je me suis peut etre trompé ...

Reply

Marsh Posté le 21-05-2003 à 19:54:52    

utilise un pool de connections plutot


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-05-2003 à 10:34:17    

the real moins moins a écrit :

utilise un pool de connections plutot


 
+1
 
Un pool de conn. est largement plus efficace car nullement besoin de recreer une nouvelle conn. a chq user.  T'imagines, 500 user = 500 conn. jdbc, bonjour les perf...
 
Petite remarque alien_nan, ca te dit qqs le pattern mvc ??

Reply

Marsh Posté le 22-05-2003 à 10:48:24    

[:blueflag]

Reply

Marsh Posté le 22-05-2003 à 11:32:22    

t'as tjs pas compris cmoment ça marche les pools de cnx, c ça? [:ddr555]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-05-2003 à 11:44:45    

the real moins moins a écrit :

t'as tjs pas compris cmoment ça marche les pools de cnx, c ça? [:ddr555]


 
Tsss... :sarcastic:  
Je suis le roi du pool de connexions. J't'apprends tout ce que tu veux là dessus ! :D

Reply

Marsh Posté le 22-05-2003 à 12:06:41    

Si , je connais le modele mvc... je fais un peu de dev sous struts (notamment developpement autour de ion, pour ceux qui connaissent)
 
Mais c'est un site dynamique que je realise, et quand il y aura un utilisateur qui se connecte, la page est generée dynamiquement car tout est stocké dans une base de donnée (page du site, actualité ...).
 
Donc il faut que je regarde un peu le pool de connexion.
Il me semble que c un gestionnaire de connexion qui en crée a la demande et qui en libere des que l'utilisateur a finit ?
 

Reply

Marsh Posté le 22-05-2003 à 14:19:33    

alien_nan a écrit :


Donc il faut que je regarde un peu le pool de connexion.
Il me semble que c un gestionnaire de connexion qui en crée a la demande et qui en libere des que l'utilisateur a finit ?


 
C'est plus que ça: ça gère un ensemble de connexions, tout simplement.
Je n'me lasserai jamais de conseiller celui-là:
http://protomatter.sourceforge.net/1.1.8/index.html
il à le gros avantage d'être implémenté entant que driver JDBC, ce qui fait que sont utilisation se fait pratiquement de la même manière que si on créait une connexion à chaque fois qu'un utilisateur à besoin d'une connexion.
http://protomatter.sourceforge.net/1.1.8/index.html

Reply

Marsh Posté le 22-05-2003 à 14:19:33   

Reply

Marsh Posté le 22-05-2003 à 16:01:04    

El_gringo a écrit :


 
C'est plus que ça: ça gère un ensemble de connexions, tout simplement.
Je n'me lasserai jamais de conseiller celui-là:
http://protomatter.sourceforge.net/1.1.8/index.html
il à le gros avantage d'être implémenté entant que driver JDBC, ce qui fait que sont utilisation se fait pratiquement de la même manière que si on créait une connexion à chaque fois qu'un utilisateur à besoin d'une connexion.
http://protomatter.sourceforge.net/1.1.8/index.html


 
Merci pour le lien, je vais regarder.

Reply

Marsh Posté le 23-05-2003 à 00:56:14    

El_gringo a écrit :


Je n'me lasserai jamais de conseiller celui-là:
http://protomatter.sourceforge.net/1.1.8/index.html


 
tu connais celui là ?
http://sourceforge.net/projects/proxool/


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 23-05-2003 à 09:01:41    


 
J'connaissais pas, non. C'est le même principe que Protomatter (driver JDBC), et ça semble peut être plus clean. Ms j'peux pas essayer : impossible de downloader.

Reply

Marsh Posté le 23-05-2003 à 10:27:13    

alien_nan a écrit :

Si , je connais le modele mvc... je fais un peu de dev sous struts (notamment developpement autour de ion, pour ceux qui connaissent)
 
Mais c'est un site dynamique que je realise, et quand il y aura un utilisateur qui se connecte, la page est generée dynamiquement car tout est stocké dans une base de donnée (page du site, actualité ...).
 
Donc il faut que je regarde un peu le pool de connexion.
Il me semble que c un gestionnaire de connexion qui en crée a la demande et qui en libere des que l'utilisateur a finit ?


 
Euh, tu connais mvc et tu utilises un bean de connexion jdbc directement dans une jsp ?  :heink:
Des fois y'a des trucs qui m'echappent... :??:
Rassure moi c'est pour un site perso ?

Reply

Marsh Posté le 24-05-2003 à 14:31:34    

alien_nan a écrit :

Si , je connais le modele mvc... je fais un peu de dev sous struts (notamment developpement autour de ion, pour ceux qui connaissent)
 
Mais c'est un site dynamique que je realise, et quand il y aura un utilisateur qui se connecte, la page est generée dynamiquement car tout est stocké dans une base de donnée (page du site, actualité ...).
 
Donc il faut que je regarde un peu le pool de connexion.
Il me semble que c un gestionnaire de connexion qui en crée a la demande et qui en libere des que l'utilisateur a finit ?
 
 


 
Je ne vois pas en quoi ton site dynamique t'empeche d'utiliser MVC. Justement c'est exactement le domaine d'application, non?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 25-05-2003 à 12:18:08    

Je travaille avec Oracle Portal. Je ne sais faire que des jsp avec ce truc (la publication de servlet m'echappe...disons qu'on ne peut pas en faire 'simplement').
 
 
Normalement, je fais des jsp qui contiennent des servlets qui font elle m appel a des javabean ... Je connais mvc (ca fait limite replique de Matrix :D)
 
Qd un utilisateur arrive sur le site, il parcourt des pages qui sont stockées sous forme de CLOB ds une base de données. Donc lorsqu'il arrive, il aura besoin en permanence d'une connexion a la base.
 
Donc avec mon bean, j'arrive a etablir des connexions, mais je n'arrive pas a les fermer car lorsque l'utilisateur quitte IE, je ne connais pas de methode qui me le dise afin que je ferme proprement ma connexion.
 
Donc j'ai pensé (peut etre a tort) que c'etait la solution la plus correcte que je puisse mettre en place.
 
On m'a parlé du pool de connexion, mais j'ai le m probleme qu'avec mon bean : comment lui dire que l'utilisateur a quitté ?
 
 

Reply

Marsh Posté le 25-05-2003 à 13:46:39    

[:totoz]

Reply

Marsh Posté le 25-05-2003 à 17:13:55    

[:serial coder]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 25-05-2003 à 17:21:52    

bon visiblement, mes choix sont pourris...
 
Dans le but d'eviter de refaire les memes erreurs, qqu'un a t il des ref de livres pour les archi web en java ?
 

Reply

Marsh Posté le 25-05-2003 à 20:32:39    

alien_nan a écrit :

On m'a parlé du pool de connexion, mais j'ai le m probleme qu'avec mon bean : comment lui dire que l'utilisateur a quitté ?


 
un poole de connexion c'est une reserve de connexion qui sont toujours ouvertes. Quand tu en as besoin d'une (affichage d'une page), tu la demandes (elle t'es reservé pendant que tu t'en sers) et quand tu en as plus besoin (fin d'affichage de ta page), tu la rends (elle redevient disponibles).
 
Les connexions sont banalisées : elles ne sont pas associées à un utilisateur, donc tu t'en fous de savoir quand ton utilisateur se déconnecte.
 
Les pool un peu évolués sont en plus capables de s'agrandir et de rétrécir en fonction de l'activité ce qui permet d'optimiser le nombre de connexion BDD ouvertes.


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 26-05-2003 à 12:29:11    

ok, merci pour ces eclairages.
 
Je vais mettre en place le pool de connexion, avec une 20aine de connexions d'ouvertes, vu que c pour un site assez frequenté.
 
 

Reply

Marsh Posté le 26-05-2003 à 14:08:23    

alien_nan a écrit :

ok, merci pour ces eclairages.
 
Je vais mettre en place le pool de connexion, avec une 20aine de connexions d'ouvertes, vu que c pour un site assez frequenté.


 
Ce genre de trucs, vaut mieux que ça soit paramétrable, pas en dur dans le programme. Lis ça dans un fichier "properties".

Reply

Marsh Posté le 26-05-2003 à 14:26:52    

El_gringo a écrit :


 
Ce genre de trucs, vaut mieux que ça soit paramétrable, pas en dur dans le programme. Lis ça dans un fichier "properties".


 
Oui, j'y avais pensé. Le bean contenait deja les variables d'environnement lues dans un fichier properties
 
Merci qd m :)

Reply

Marsh Posté le 10-10-2003 à 14:15:05    

Comment on définit dans Proxool le timeout ? cad le temps d'inactivité de la connexion afin que le house-keeper la ferme automatiquement ?
 
Il y a maximum-connection-lifetime:  
The maximum amount of time that a connection exists for before it is killed (milliseconds). Default is 4 hours.
 
 
Mais bon c pas ça ...


Message édité par Shogun2002 le 10-10-2003 à 14:15:30
Reply

Marsh Posté le 10-10-2003 à 14:21:51    

Si je comprends bien si le maximum-connection-lifetime est mis à 2 h, si qqun se balade sur le site en jsp avec sa connectionpool, au bout de 2 h (même en étant toujours actif, en executant des requetes) il perd sa connection à la bd ?

Reply

Marsh Posté le 15-10-2003 à 11:15:23    

alien_nan a écrit :

ok, merci pour ces eclairages.
 
Je vais mettre en place le pool de connexion, avec une 20aine de connexions d'ouvertes, vu que c pour un site assez frequenté.
 


 
Pas la peine d'en ouvrir autant, ouvres en entre 5 et 10 dans ton pool, ça sera largement suffisant, même pour un site TRES fréquenté. Le gain de perf au delà de 10 connections ouvertes n'est d'ailleurs que très très faible.


---------------
Steam : wlitw77 - GoG : wlitw
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed