cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 2013
-
23 mars 2012 à 14:09
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 2013
-
30 mars 2012 à 15:30
Salut,
Alors j'ai un petit problème sur un pool d'application. Parfois (une ou deux fois dans la journée), après être arrêté pour inactivité, il ne redémarre pas automatiquement quand on requête le site associé. Je n'ai évidemment aucune information dans les journaux d'évènements (ce serait trop facile ^^).
Quelques informations complémentaires :
* SE/Softs : Windows 2008 R2, IIS 7
* Description du Pool : .NET v4.0, pipeline en mode classic
Je suis preneur de n'importe quelle information et reste à la disposition des helpers pour tout complément. Merci d'avance.
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 29 mars 2012 à 11:26
Les tests de sollicitations sont positifs !
Le problème venait bien de MySQL (t'es pas si mauvaise langue que ça ), ou plutôt de l'archi de ma couche d'accès. En effet il semble bien que l'utilisation d'un singleton pour la connexion pouvait foutre un gros while lors d'un "sur-requêtage".
J'aime pas trop ça mais je note ce dernière message comme "réponse acceptée", pour clore le sujet et indiquer la soluce pour qui aurait le même souci.
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 29 mars 2012 à 07:46
Salut,
déjà merci de t'intéresser à mon problème :)
Comme je pensais que le sujet était mort j'ai pas mis à jour avec les nouvelles infos trouvées.
En effet on arrive maintenant à reproduire le bug en laissant appuyé sur Ctrl+F5 sur une page. On a ainsi pu voir que ce n'était pas le pool en lui-même qui plantait mais le thread associé au site. Chose étonnante : il faut s'arrêter au bon moment sur le refresh et laisser un temps pour que le pb persiste, sinon un thread est bien relancé et l'erreur disparaît.
Là je suis en train de creuser du côté de ma connexion MySQL que j'utilisais en singleton pour optimiser les traitements. Après avoir loggé un max d'erreurs à la mano dans le code j'ai pu voir qu'au moment des erreurs j'ai des ExecuteReader() (sur des requêtes "sûres") qui renvoient null sans lever d'exception.
Même si ça vient bien de ça, il restera encore un mystère : pourquoi on a parfois ce plantage, sans solliciter nous-même le bug, alors que le site était loin d'être surchargé, voire pas du tout utilisé.
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 30 mars 2012 à 15:30
Nop, aucune réelle contrainte sur le SGBD.
On avait simplement des serveurs MySQL de dispo.
La solution, à terme, prendra en charge d'autres SGBD (sans modif on peut déjà attaquer la plupart des autres gros SGBD, grace à une classe Factory au coeur de la couche d'accès ;))
D'ailleurs je pense que le souci serait également intervenu sur d'autre SGBD (mais sur de plus grosses fréquences de requêtage), le singleton n'est simplement pas le bon Design Pattern à appliquer dans mon cas.