removeabandonedtimeout defaulttransactionisolation conexiones windows tomcat jvm socketexception connection-leaks

windows - defaulttransactionisolation - java.net.SocketException: no hay espacio disponible en el búfer(¿se alcanzaron las conexiones máximas?): JVM_Bind



pool de conexiones tomcat (3)

Tomcat está ejecutando una aplicación web bajo Windows. Después de unos días (con muy poca carga), la excepción mencionada en el título comienza a aparecer en los registros, no se pueden establecer nuevas conexiones a partir de ese momento, la única solución es reiniciar el servidor.

Ambiente:

  • Último Tomcat 6
  • Windows Server 2008 R2
  • JDK 6 actualización 30
  • SQL Server 2008
  • Autenticación Kerberos

Evidencia recopilada hasta el momento:

  • netstat muestra una cantidad excesiva de conexiones
  • ProcessExplorer no muestra una cantidad excesiva de identificadores de archivos abiertos
  • el uso de la memoria principal del sistema es promedio
  • El uso del montón de JVM es promedio
  • reiniciar Tomcat no resuelve el problema

Preguntas abiertas:

  • si fugamos conexiones, ¿no deberían aparecer en netstat?
  • ¿No debería un reinicio del servidor de aplicaciones resolver el problema, porque el sistema operativo debería liberar todos los recursos del proceso?
  • ¿hay alguna manera de rastrear el problema hasta su origen? Por ejemplo, la instalación de un software de supervisión, tal vez algo similar a lsof, etc.

Me he quedado sin ideas, ¡cualquier pista apreciada!


Estaba ejecutando Alfresco Community 4.0d en Windows 7 de 64 bits y tenía los mismos síntomas y errores.

El problema se solucionó con el parche de Microsoft: "Las tomas del núcleo se filtran en una computadora multiprocesador que ejecuta Windows Server 2008 R2 o Windows 7 " ( http://support.microsoft.com/kb/2577795 ) (es decir, la respuesta de Buddy Casino (ver abajo)).

Otra observación que me gustaría añadir es que las conexiones de Windows (Internet Explorer, Remote Desktop, etc.) funcionarían de nuevo entre 5 y 10 minutos después de que se cerraran los servicios de Alfresco.

Alfresco es un producto excelente y temía que tuviera que eliminarlo. ¡Afortunadamente vino al rescate!

Gracias de nuevo a la respuesta de Buddy Casino.

Abucheo a la persona que rechazó la pregunta.


Estamos viendo lo mismo en una configuración similar, W2008R2, Tomcat 6.0.29, Java 1.6.0.25. Reiniciar tomcat no ayuda, pero reiniciar el servidor sí lo hace, al menos por un tiempo. Después de la última vez que comenzamos a cerrar servicios individuales y creemos que lo hemos reducido a una instancia de Alfresco que también se ejecuta en el servidor o en los servicios del Agente de Backup Exec. Después de que esos servicios (cuatro en total) se detuvieron, las aplicaciones en Tomcat comenzaron a funcionar nuevamente, aunque todavía estábamos viendo el error de búfer / conexiones en el registro de stdout que era extraño. Tendrá que esperar a que vuelva el problema antes de confirmar cuál es el culpable, que podría ser desde unos pocos días hasta una semana o más.

¿Hay alguna posibilidad de que esté ejecutando Alfresco o BE en su servidor?


La razón por la que obtuvimos este error es un error en Windows Server 2008 R2 / Windows 7. El kernel pierde tomas de bucle invertido debido a una condición de carrera en máquinas con más de un núcleo, este parche soluciona el problema: http://support.microsoft.com/kb/2577795