Si arrancas el servicio y lo pruebas siempre funciona. Si luego esperas un tiempo sin realizar ninguna actividad, cuando intentas realizarla el sistema no responde.
Como aún no está activo el log de todas las cosas que pueden pasar no tengo pistas de porqué ocurre. Sin embargo, tengo la sospecha de que se debe a que solo se realiza una conexión con la base de datos y dicha conexión caduca pasado un tiempo.
¿De cuánto tiempo de inactividad hablamos? He intentado reproducir el error sin conseguirlo. En concreto, lo he tenido alrededor de dos horas inactivo, pero la aplicación seguía funcionando sin problemas.
Aún así, podría ser la conexión, puesto que es cierto que solo se realiza una al principio.
Pues menos de una hora. Pero eso puede deberse a la configuración de MySQL particular.
Es decir que se crea una conexión de red y se mantiene abierta todo el rato. Eso no parece buena idea. Se debería abrir una conexión por cada sesión que se inicie. Es decir que la información de la conexión debe guardarse junto con la información de la sesión en el servidor.
Quizás la mejor solución consista en usar un pool de conexiones.
Aquí explica como se hace en Java
http://www.tomcatexpert.com/blog/2010/04/01/configuring-jdbc-pool-high-concurrency
Con un pool tienes un sistema que te gestiona X conexiones simultaneas. De esa manera no sobrecargas al servidor cuando hay muchos clientes.
Tu aplicación, simplemente se las va pidiendo cuando las necesita. Evidentemente esto estaría en la parte del API.
Sí. Yo también había pensado utilizar un pool o algo similar. En cuanto lo tenga, te lo paso para que me digas si con eso se soluciona el problema, dado que sigo sin ser capaz de reproducir el error.