Pages

dimanche 10 mars 2013

Pool tomcat-jdbc : gérer les timeout sur les requêtes


Tomcat-jdbc-pool est un nouveau pool de connexion introduit à partir de Tomcat 7 en remplacement du pool de connexion commons-pool généralement utilisé sous les versions antérieures de Tomcat. Toutes les options de configuration ont été reprises et d'autres ont été rajoutées ce qui vous permettra facilement de migrer de commons-pool à tomcat-jdbc-pool.

Je vous propose une série d'articles sur le sujet 


Gérer les timeout

Après avoir regarder comment gérer les problèmes de coupure de base de données, un autre use case est de surveiller les requêtes trop longues. Pour cela il faut ajouter plusieurs paramètres

  • removeAbandoned booléen pour indiquer que vous souhaitez mettre un timetout sur une connexion 
  • removeAbandonedTimeout nombre de seconde maximal pendant lequel la requête sera exécutée. Au delà elle sera fermée automatiquement par le pool. 
  • logAbandoned booléen pour indiquer qu'un timeout générera une occurrence dans le fichier de log. 
Tomcat-jdbc-pool offre un paramètre en plus abandonWhenPercentageFull qui permet d'être moins strict. Ce paramètre permet de définir un pourcentage de connexion que l'on laisse active. Si la valeur est à 0 % on ne se basera une connexion sera fermée dès qu'elle aura dépassé le temps removeAbandonedTimeout . Si la valeur est à 100 % une connexion dont le temps d'exécution est dépassé ne sera fermée que si le maxActive est atteint

Ceci ne résout pas par exemple le use case d'un batch qui peut être exceptionnellement long ou enchaîner un grand nombre de requêtes. Pour traiter ces cas particuliers vous pourrez utiliser une autre nouveauté, les intercepteurs.

Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.