2009-03-19 9 views
2

Nous remarquons quelque chose d'étrange dans notre application Web Struts qui était hébergée sur Sun App Server Enterprise Edition 8.1. Le NumConnUsed pour la surveillance des ressources JDBC reste à 100 sur les connexions même si les activités de l'utilisateur sont relativement faibles.différence entre la connexion partageable et non échangeable dans le pool de connexion jdbc?

J'essaie de faire quelques recherches et trouvé les liens suivants http://j2ee-performance.blogspot.com/ http://www.ibm.com/developerworks/websphere/library/techarticles/0506_johnsen/0506_johnsen.html

« Lorsque l'application ferme une connexion partageable, la connexion n'est pas fermée, ni retourné à la piscine gratuite. Au contraire, il reste dans le pool de connexions partagées, prêt pour une autre requête dans le même LTC pour une connexion à la même ressource. " Sur la base des commentaires ci-dessus, il est vrai que si ma portée ref de ressource web.xml est définie sur shareable, quand elle est connectée, elle reste dans le pool de connexion partagé, donc le numconnused est toujours aussi élevé.

Répondre

3

Si j'interprète les liens de ma propre manière (;)), les connexions partagées et non partagées sont basées sur des connexions différentes dans la même page.

java.sql.Connection connectionOne = DriverManager.getConnection(...); 
... 
java.sql.Connection connectionTwo = DriverManager.getConnection(...); 

Ces deux, un coup d'oeil, semblent être individuels - mais si votre AS est réglé sur les connexions partageables, le second sera créé avec un pointeur vers la première connexion au lieu de retourner une nouvelle connexion. Lorsque la page se termine, la connexion doit être renvoyée au pool.

L'AS maintient probablement la piscine remplie de connexions pour améliorer les performances.

Ce n'est pas un fait, seulement ma propre interprétation des liens.

Questions connexes