Quelles sont les causes des fils suspendus mystérieux dans Coldfusion -> communication mysql

StackOverflow https://stackoverflow.com/questions/3622845

  •  26-09-2019
  •  | 
  •  

Question

L'une des « caractéristiques » plus intéressantes dans Coldfusion est la façon dont il gère les requêtes externes. L'essence de base de celui-ci est que lorsqu'une requête est faite à une source externe à travers <cfquery> ou ou toute autre demande externe telle qu'elle transmet la requête externe à un pilote spécifique et à ce CF point lui-même est incapable de le suspendre. Même si un délai d'attente est spécifié sur la requête ou dans le cfsetting il est platement ignoré pour toutes les demandes externes.

http://www.coldfusionmuse.com/index .cfm / 2009/6/9 / killing.threads

Donc, avec cela à l'esprit la question que nous avons rencontré est que en quelque sorte la communication entre notre serveur CF et notre serveur MYSQL va parfois mal tourné et laisse derrière lui des fils suspendus. Ils ont les caractéristiques suivantes.

  1. Le fil accroché apparaît dans CF et ne peut pas être tué de FusionReactor.
  2. Il est pas fil accroché visible dans mySQL et aucune requête en cours d'exécution active (seulement les habituels des sommeils).
  3. La base de données répond à d'autres appels et semble fonctionner correctement.
  4. Connexions Max n'a pas été atteint pour la DB, ni l'utilisateur.

Il me semble que le seul candidat probable est que CF est en quelque sorte fait une demande, mySQL répond à cette demande, mais avec une réponse qui FC et continue Ignore de garder le fil d'attente ouverte pour une réponse de mySQL. Cela expliquerait pourquoi la base de données semble montrer aucun signe de problèmes, mais CF conserve un thread en attente ouvert pour la réponse mystérieuse.

Habituellement ces fils suspendus apparaissent au hasard sur les scripts de travail autrement (par exemple en affichant un commentaire sur un article de nouvelles). Même pendant qu'un fil est suspendu pour ce script, d'autres demandes de ce script passera par, ce qui impliquerait que le script n'est pas neccessarily en faute, mais plutôt la condition face lorsque le script a été exécuté.

Nous avons couru quelques tests pour déterminer qu'il était pas une erreur max_connections MySQL généré ... nous avons créé un utilisateur, il a donné 1 connexions max, lié cette connexion avec un sommeil (1000) requête et exécuter une autre requête. Malheureusement, correctement errored sans générer un fil accroché.

Alors, je laisse à ce moment absolument aucune idée de ce qui va mal. Y at-il une autre limite de connexion ou délai qui pourrait être à l'origine de la communication entre les serveurs d'aller mal tourné?

Était-ce utile?

La solution 3

Longue histoire courte, mais je crois que la raison était causé au traitement de l'image CF8 de Coldfusion. Il était juste buggy et maintenant CF9 je ne l'ai jamais vu à nouveau ce problème.

Autres conseils

L'une des choses que vous devriez commencer à regarder est le matériel entre les deux serveurs. Il est possible que vous avez un routeur ou d'un pont ou carte réseau qui est en baisse des paquets occasionnels. Cela peut entraîner la pensée de boîte de mySQL il a terminé la tâche alors que le serveur CF est assis là et attend une réponse complète indéfiniment, la création d'un fil accroché.

3com a quelques détails sur les tests de perte de paquets ici: http://support.3com.com/infodeli/tools/netmgt/tncsunix/product/091500/c11ploss.htm#22128

Nous avons eu un problème similaire avec un serveur MS SQL. Là-bas, la cause était un problème connu qui, pour une raison quelconque, le serveur pense qu'il est l'arrêt et les blocages de fil (même si le serveur est, de toute évidence, ne fermons pas vers le bas).

Nous ne sommes pas en mesure d'éliminer le problème, mais nous avons pu réduire en désactivant les connexions DB mises en commun et de jongler avec le taux de rafraîchissement de connexion. (Je pense que je suis arrivé ce droit label -. Pas d'accès à l'administrateur à mon nouvel emploi) Les deux sont dans les propriétés de connexion dans Administrateur

.

Juste une note: Le problème est pas tout à fait avec CF. Le problème, apparemment, affecte toutes les applications Java. Ce qui n'a pas, en aucune façon, comment réduis agacé que je reçois par cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top