none
Objects OracleConnection et Session RRS feed

  • Question

  • Bonjour,

    J'ai lu il y a longtemps dans un article émanant il me semble de Microsoft MSDN, la recommandation de stocker les connections SQL dans des objets de sessions. Principal avantages : à l'époque où le Connection Pooling n'existait pas, cela permettait de réduire le nombre d'ouvertures/fermetures effectives de connexions, mais aussi de gérer des transactions dont la portée était de plusieurs pages.

    Seulement, pour diverses raisons de performance, cette idée a été abandonnée (problème de timeout, soit trop tôt, soit trop tard, produisant des erreurs aléatoires sur le serveur, ou des sessions fantômes sur le serveur de BDD). Et j'avais donc lu, cette fois dans la MSDN c'est sûr, qu'il ne fallait "surtout pas" utiliser cette méthode.

    Je suis maintenant confronté chez un client à un code source écrit par une personne qui semblerait-il n'a lu que le premier article : un site en .NET 1.1 collant des objets OracleConnection en Session. En soit ça pourrait ne pas être critique, sauf qu'un bug apparement dans le drivers Oracle ou le FrameWork (on a déjà passé un KB pour le FrameWork, donc à priori maintenant c'est le drivers) fait que les connexions Oracle restent ouvertes... plusieurs jours ! Du coup au bout d'un moment le serveur refuse d'ouvrir de nouvelles connexions, et l'appli Web tout comme l'ERP gérant la base tombent.

    J'ai commencé à réécrire l'intégralité de la gestion de la base afin d'enlever ces horreurs de sessions, mais le client semble pâlir au fur et à mesure que le nombre de lignes que je modifie grandit (et vu comme c'est écrit, croyez-moi qu'il est tout blanc !). Je voudrais donc le rassurer en lui faisant lire un article mettant en avant le pourquoi du comment de la chose.

    Le mieux que j'ai trouvé, c'est ça : http://www.microsoft.com/france/msdn/aspnet/articles/aspEtendue_2.mspx

    Mais ça ne va pas chercher loin, d'autant que c'est périmé (ASP, ADO, ODBC... on est loin de Oracle.NET en C# !) Si vous aviez ça dans vos favoris (ou plus de chance que mois avec la fonction de recherche de MSDN...)

    Je vous remercie d'avance !

    lundi 12 février 2007 16:24