Sistema bloqueado repetidamente, agrupación de conexiones Tomcat no están configurados para la culpa

Descripción del problema:
La sentada del sistema en el proceso de pruebas, a menudo de repente no puede tener acceso, a continuación, reinicie el servicio por algún tiempo y puede funcionar normalmente, animación, de repente inaccesibles, el sistema parece estar suspendido, por lo que se repite!

Aunque reiniciar una panacea, pero no puede resolver el problema de acuerdo a afectar seriamente el progreso de la sentada de prueba, debe averiguar por qué y resolver tan pronto como sea posible, y dado que este problema no es el sistema de producción.

 

Análisis de problemas y resolución de procesos ideas:
 

1, el sistema tiene un problema, el programador primero es el análisis de registro, como se describe a continuación, la primera pantalla de la sesión no se ha establecido o tiempo de espera! (Tiempo de espera de sesión)

Análisis E4A y CMIS código de manejo de sesión, y se encontró nada malo.

-------- ----------- registro

10: 11: 43,047 [http-8080-6] cmffsfilter.MideaSSOLoginFilter ERROR - sso cliente sessionId 53F0A1AD92CA1126F1D22C0291F6CED3

[21/10/2016 10: 11: 43,049 INFO] Aceptar solicitud: /cmis.ecf/queryPAuthList.do

[21/10/2016 10: 11: 43,049 DEBUG] Obtener la configuración regional del usuario a través de la sesión ...

[21/10/2016 10: 11: 43,049 DEBUG] petición de proceso: /cmis.ecf/queryPAuthList.do lanza Excepción:

com.ecc.emp.session.SessionException: Sesión no establecido o sobre tiempo!

-------- ---------- registro

 

2, Continuar con el análisis del registro, encontrar un lugar inicialmente ser dado (log abajo): Nombre WFDataSource no está obligado en este contexto,

Teniendo en cuenta los medios de contexto que el sistema no se encontró la fuente de datos, es decir, un error en la fuente de datos de solicitud de conexión.

 

21/10/2016 15: 50: 50,134 INFO Transacción - Aplicar nueva conexión de la fuente de datos ...

21/10/2016 15: 50: 50,135 ERROR DataSource - Error al inicializar los datos Fuente jndiName = java: comp / env / WFDataSource

javax.naming.NameNotFoundException: Nombre WFDataSource no está obligado en este contexto

en org.apache.naming.NamingContext.lookup (NamingContext.java:770)

 

3, de acuerdo con el 2, para encontrar un análisis exhaustivo del grado de tu madre es debido a la conexión de Tomcat agrupación de conexiones de base de datos de configuración ha sido ocupado, pero no se ha realizado, lo que lleva a las solicitudes posteriores ya no puede conectarse a la base de datos

Y por lo tanto el error, haciendo que el sistema va a aparecer en animación suspendida, no puede firmar.

 

4, una vista de configuración de conexión de fuente de datos tomcat encontrado de parámetros maxActive (número máximo de conexiones) para ser 20, y la removeAbandoned (iniciar la recuperación de conexión) por defecto es falso, es decir, no está encendido.

Eso va a ser un problema cuando hay más de 20 conexiones, la solicitud no se pueden conectar a la fuente de datos. Puede ver el monitor de la base de datos para ver el número de conexiones.

 

5, de acuerdo con 4 análisis sólo puede aumentar el número de conexiones, y acaba de comenzar solamente modificar maxActive 50, no removeAbandoned abierto, conectado o no lo suficiente, o el problema se repita.

 

6, modificada por última vez maxActive 200, y removeAbandoned = "true", removeAbandonedTimeout = "180" (recuperación automática 180s conexión del depósito de tiempo de espera), plagado por una semana el problema está resuelto!

Por último, adjuntar tomcat conexiones de origen de datos DBCP Descripción dispuesto:
Cuando se utiliza Tomcat agrupación de conexiones de base de datos, los siguientes parámetros se deben añadir dos liberación de recursos de conexión de recuperación de temporización rojo marcado para el tiempo de espera.

INITIALSIZE: se crea el número de conexión inicial, cuando la agrupación de conexiones arranques (por defecto es 0)
maxActive: El número máximo de conexiones en la agrupación de conexiones se puede conectar al mismo tiempo (de acuerdo a sus propias aplicaciones escenarios dados)
maxIdle: El número máximo de conexiones en el inactivo agrupación de conexiones, más de conexión inactiva se dará a conocer, si los valores negativos no se limita (el valor predeterminado es 8, maxIdle no ser demasiado pequeño,
porque si en el caso de alta carga, el tiempo de apertura más rápido que el tiempo de cierre de la conexión, el conjunto de conexiones causará el número aumentó en más de inactividad maxIdle, causando la destrucción frecuente conexión y creación, similar a los parámetros de conjunto de JVM Xmx)
minidle: el número mínimo de conexiones de la piscina de inactividad de conexión, este número será más bajo que crear una nueva conexión (por defecto 0, ajustado a 5, este parámetro está más cerca maxIdle, mejor será el rendimiento,
porque se crea y se destruye la conexión, toda necesidad de consumir recursos, pero no demasiado, ya que el equipo está inactivo, creará menos de minidle número de conexiones, XmnI similares proporcionado parámetros JVM)
maxWait: un tiempo máximo de espera, cuando no hay conexión disponible, la conexión El máximo de espera de liberación de conexión de tiempo, superando el límite de tiempo será una excepción,
si se establece -1 indica que esperar indefinidamente (el valor predeterminado es ilimitado, ajustado a 60000ms, para evitar la agrupación de hebras no es suficiente, lo que llevó a la solicitud se encuentra pendiente de libre disposición)
poolPreparedStatements: piscina abierta preparado (el valor predeterminado es falso, sin ajustar, después de las pruebas, el rendimiento después de una buena vez, no está cerrada.)
maxOpenPreparedStatements: el número máximo de conexiones simultáneas se abre después de la piscina preparada (sin límite por defecto, como el anterior, no está configurado)
minEvictableIdleTimeMillis: conexión conexiones agrupadas, ha sido período de inactividad, el tiempo fue expulsado de la agrupación de conexiones
(el valor por defecto es de 30 minutos, puede hacer los ajustes apropiados, las necesidades y la configuración de directiva de servidor de servicios de fondo relacionados)
removeAbandonedTimeout: se excede el límite de tiempo, sin conexión de recuperación (abandonada) (por defecto es de 300 segundos, se ajustó a 180 [)
removeAbandoned: después de más de tiempo removeAbandonedTimeout, ya sea recuperada la conexión inútil (residuos) (el valor predeterminado es falso, ajustado a verdadero
si abierta "removeAbandoned", entonces se considera que la conexión cuando el mecanismo de tiempo de espera se puede recuperar en esta piscina (getNumIdle () <2) y (getNumActive ()> -. desencadena cuando getMaxActive () 3).

Ejemplo: Cuando maxActive = 20, 18 conexiones activas, conexión inactiva puede desencadenar "removeAbandoned" 1 pero la conexión sólo se activa en un momento no se utiliza más que "removeAbandonedTimeout" sólo para ser eliminado, el valor por defecto de 300 segundos viajan en el conjunto de resultados no se contarán como siendo utilizado.

logAbandoned = true, se recuperará después del evento, imprimir una recuperación de conexión mensaje de error en el registro, incluyendo, cuando en relación con el olvido cerrado, muy útil cuando la depuración.
----------------
responsabilidad: Este artículo es RDCC blogger "jacky_2015 'artículo original, siga el CC 4.0 BY-SA acuerdo de derecho de autor, reproduce, por favor adjuntar el enlace de la fuente original y esta declaración. .
fuente original: https: //blog.csdn.net/jacky_2015/java/article/details/53064037

Supongo que te gusta

Origin www.cnblogs.com/xiaohuizhenyoucai/p/12626911.html
Recomendado
Clasificación