Pregunta

Una de las "características" más interesantes en ColdFusion es la forma en que maneja las peticiones externas. La esencia básica de la misma es que cuando se hace una consulta a una fuente externa a través de <cfquery> o o de cualquier otra petición externa como que pasa la solicitud externa a un controlador específico y en ese punto CF sí mismo es incapaz de suspenderlo. Incluso si se especifica un tiempo de espera en la consulta o en el cfsetting se ignora de plano para todas las peticiones externas.

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

Así que con esto en mente el tema que hemos encontrado con que es de alguna manera la comunicación entre nuestro servidor CF y nuestro servidor MySQL a veces sale mal y deja tras de subprocesos colgados. Tienen las siguientes características.

  1. Los espectáculos de rosca colgó en CF y no puede ser matado de FusionReactor.
  2. No no subproceso colgado visible en MySQL, y ninguna consulta en ejecución activa (sólo los habituales duerme).
  3. La base de datos está respondiendo a otras llamadas y parece no funcionar correctamente.
  4. conexiones Max no se han alcanzado para el PP ni el usuario.

Me parece que el único candidato probable es que de alguna manera CF realiza una petición, MySQL está respondiendo a la petición, pero con una respuesta que ignora CF y continúa para mantener el hilo abierta esperando una respuesta de MySQL. Eso explicaría por qué la base de datos parece mostrar ningún signo de problemas, pero CF mantiene un hilo de espera abierta para la respuesta misteriosa.

Por lo general, estos subprocesos colgados aparecen al azar en los guiones de otra forma de trabajo (tales como la publicación de un comentario en un artículo de prensa). Incluso cuando un hilo se cuelga de ese guión, otras solicitudes de esa secuencia de comandos se pasan por, lo que implicaría que el guión no es necesariamente siempre la culpa, sino más bien la condición que se presentan cuando se ejecuta la secuencia de comandos.

corrió algunas pruebas para determinar que no era un error de MySQL generada max_connections ... hemos creado un usuario, le dio 1 conexiones max, ligada que la conexión con un sueño (1000) consulta y ejecutado otra consulta. Por desgracia, correctamente con error a cabo sin generar un subproceso colgado.

Por lo tanto, yo me quedo en este punto con absolutamente ninguna idea de lo que va mal. ¿Hay alguna otra límite de conexión o tiempo de espera que podría ser la causa de la comunicación entre los servidores a ir mal?

¿Fue útil?

Solución 3

Para acortar una larga historia, pero creo que el causado fue debido al procesamiento de imágenes de Coldfusion CF8. Fue sólo con errores y ahora en CF9 nunca he visto que un problema nuevo.

Otros consejos

Una de las cosas que debe empezar a mirar es el hardware entre los dos servidores. Es posible que usted tiene un router o un puente o NIC que está rechazando paquetes ocasionales. Esto puede resultar en la caja de pensamiento MySQL se ha completado la tarea mientras el servidor CF se sienta allí y espera una respuesta completa por tiempo indefinido, la creación de un subproceso colgado.

3Com cuenta con algunos detalles en las pruebas de pérdida de paquetes aquí: http://support.3com.com/infodeli/tools/netmgt/tncsunix/product/091500/c11ploss.htm#22128

Hemos tenido un problema similar con un servidor MS SQL. Allí, la causa fue un problema conocido en el que, por alguna razón, el servidor piensa que está cerrando, y se bloquea el hilo (a pesar de que el servidor es, obviamente, no haber apagado).

No fuimos capaces de eliminar el problema, pero fuimos capaces de reducirlo al apagar las conexiones de base de datos agrupados y jugando con la frecuencia de actualización de conexión. (Creo que tengo esa etiqueta correcta -. No tiene acceso a administrador en mi nuevo empleo) Ambos se encuentran en las propiedades de conexión de administrador

.

Sólo una nota: El problema no es del todo con FQ El problema, al parecer, afecta a todas las aplicaciones Java. Lo cual no es así, de ninguna manera, reducen lo molesto consigo por esto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top