Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1299 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Suivante
Auteur Sujet :

[J2EE] Le NPE est en fait une SQLException (pool exhausted)

n°1155205
souk
Tourist
Posté le 20-07-2005 à 18:31:11  profilanswer
 

Reprise du message précédent :
question conne hein, mais ton query broker c'est un singleton qui utilise une connection donnée, deux clients attaquent ton site web, les deux threads utilisent ton query broker, le premier close ta connection, qu'arrive t'il au second ? [:itm]
 
c'est moi qui a mal suivi ou y a une grosse coucouille là ?[:dawa] ce serait mieux si c'était pas un singleton et que tu avais bien une connection par thread nan ? paske la bon...ton pool de connection il a la vie un peu tranquile j'ai l'impression :D
 
(quelque chose me dit que je viens de dire une connerie et que plusieurs post m'ont échappé nan ? [:joce] )

mood
Publicité
Posté le 20-07-2005 à 18:31:11  profilanswer
 

n°1155309
benou
Posté le 20-07-2005 à 20:48:38  profilanswer
 

j'ai pas tout lu mais j'ai vu une grosse erreur !!!
 
Ton object QueryBrocker n'est pas du tout threadsafe dans l'état, et ta servlet va être accéder de manière concurente (plusieurs thread vont executer en même temps doPost()) => tu vas avoir de gros gros problèmes si tu mets ca en prod !!!

n°1155316
souk
Tourist
Posté le 20-07-2005 à 21:02:48  profilanswer
 

ah bah j'ai pas du dire de connerie alors [:dawa] \o/

n°1155320
benou
Posté le 20-07-2005 à 21:09:10  profilanswer
 

souk a écrit :

ah bah j'ai pas du dire de connerie alors [:dawa] \o/


effectivement :jap: je suis grilled, quoi :o

n°1155347
the real m​oins moins
Posté le 20-07-2005 à 22:17:50  profilanswer
 

quand je vous dis que les singleton, ça pue du cul :o
 
elle pourrait faire un ThreadLocal [:banzai]

n°1155417
jalios828
Posté le 20-07-2005 à 23:24:48  profilanswer
 

the real moins moins a écrit :

quand je vous dis que les singleton, ça pue du cul :o
 
elle pourrait faire un ThreadLocal [:banzai]


Pour l'instant son problème est plutot de gérer son probleme de connexion qui ne retourne pas ds le pool.
Chaque chose en son temps :)
MAis c'est vrai que le singleton implémenté ici n'est pas threadsafe.


Message édité par jalios828 le 20-07-2005 à 23:37:17
n°1155418
benou
Posté le 20-07-2005 à 23:25:44  profilanswer
 

the real moins moins a écrit :


elle pourrait faire un ThreadLocal [:banzai]


y a plus simple pour faire du threadsafe ...

n°1155430
jalios828
Posté le 20-07-2005 à 23:38:31  profilanswer
 

benou a écrit :

y a plus simple pour faire du threadsafe ...


le plus simple serait de virer le singleton et de stocker/instancier son querybrocker dans une variable locale a la methode service()

n°1155434
benou
Posté le 20-07-2005 à 23:43:27  profilanswer
 

jalios828 a écrit :

le plus simple serait de virer le singleton et de stocker/instancier son querybrocker dans une variable locale a la methode service()


bof. Il faudrait refaire la recherche du datasource à chaque appel.
 
Le mieux serait de faire une factory de querybrocker => la recherche JNDI est faite dans la factory une fois pour toute.

n°1155440
jalios828
Posté le 20-07-2005 à 23:47:18  profilanswer
 

benou a écrit :

bof. Il faudrait refaire la recherche du datasource à chaque appel.
 
Le mieux serait de faire une factory de querybrocker => la recherche JNDI est faite dans la factory une fois pour toute.


 
En fait je parlais plus du probleme d'ouverture/fermeture de connexion car c'est lui qui pose vraiment probleme ici.  
Le singleton devrait plutot porter sur le QueryBrokerFactory et non sur le QueryBroker
 
D'ailleurs hop, un petit lien : http://www.javaworld.com/javaworld [...] dsafe.html
 
Quand à son problème de connexion qui retourne pas dans le pool... :heink:


Message édité par jalios828 le 20-07-2005 à 23:52:02
mood
Publicité
Posté le 20-07-2005 à 23:47:18  profilanswer
 

n°1155521
the real m​oins moins
Posté le 21-07-2005 à 03:38:14  profilanswer
 

benou a écrit :

y a plus simple pour faire du threadsafe ...


sans blague [:totozzz]

Spoiler :

humour quoua[:icon12][:icon12][:icon12][:icon12]


Message édité par the real moins moins le 21-07-2005 à 03:38:39
n°1158710
Iria_hime
Pseudo ACNH : Iria
Posté le 25-07-2005 à 09:47:18  profilanswer
 

merci à tous pour vos réponses. je ne suis pas partie en vacances et je n'ai pas abandonné mon problème non.
 
je ne l'ai pas résolu non plus malheureusement :cry:
mais c'est normal puisque gt à l'école et non au boulot :p
 
bref j'ai parlé de mon pb avec un prof et il me dit que je dois forcément mal fermer mes connections à un moment. il a aussi tilté comme vous sur mon queryBroker qui n'est pas thread safe et en plus mal utilisé dans mes servlets :/
 
bon je crois que je vais devoir revoir complètement maz structure à ce sujet. dites moi comment vous faite vous pour vos appli web ?
vous faites aussi une classe qui s'occupe de gérer les connexions ? comment vous l'utilisez tout ça quoi ! :)
en gros j'ai besoin de vous pour me sortir la m.... de mes yeux !

n°1159157
Iria_hime
Pseudo ACNH : Iria
Posté le 25-07-2005 à 15:54:36  profilanswer
 

bon je pense avoir ENFIN résolu mon pb ! [:turk182]  
 
Alors j'ai remis mes instances du queryBroker dans les méthodes de mes classes métiers et j'ai modifié mon QueryBroker.getInstance qui renvoyait l'instance existante de celui-ci et je crois bien que ct ça qui foutait le bordel. Du coup à chaque fois il créé une nouvelle instance.
 
j'ai fais pas mal de refresh et je n'ai pas rencontré mon fameux problème.
 
maintenant je vais le rendre thread safe puisque ce n'est pas fait et que c'est clairement MAL ! :o  
bon j'me souviens plus trop de ça mais je m'en vais à la recherche d'un bon tuto :D
 
En tout cas merci beaucoup pour vos remarques et critiques qui ont été constructives et m'ont fait avancer :)
j'aimerai par la suite vous demander à nouveau votre avis sur des bouts de code pour voir si ce que j'ai fait n'est pas trop crade :)

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Licenece J2EE JBossLicence application J2EE
[Framework J2EE] Gestion d'utilisateurs[Java] Obtenir la liste des sessions d'un serveur J2EE
[EJB][WEBLOGIC][JBuilder]Modifier ma connection au poolSecurite J2EE
Lien entre J2EE et Strutsthread pool
augmenter la large pool sous oracle 9i 
Plus de sujets relatifs à : [J2EE] Le NPE est en fait une SQLException (pool exhausted)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR