Cita:
Iniciado por congonga 1) Tomcat, sin la menor advertencia, haciendo que algunos de los atributos de la sesión tomen valores nulos, o haciendo que las conexiones con db2 se pierdan. Sin embargo, al presionar f5 y recargar el jsp, cualquiera de ellos, todo suele volver a la normalidad, y otras veces, no. Se quedan ahí, como valores nulos. La salida de la excepción para este caso es la siguiente:
Esto suena a que la sesion caduca, y cuando eso ocurre se vacian los atributos que hay dentro, por eso al recuperarlos devuelven null, ya que realmente no están dentro de la sesión, que es nueva. La NPE es debida seguramente a que tu código no trata adecudamente esta circunstancia e intenta usar directamente un atributo recuperado de la sesion, que resulta ser null.
Cita:
Iniciado por congonga 2) En ocasiones, al arrancar Tomcat, no me carga el servlet (ojo, que no he hecho ningun cambio, es un problema de Tomcat). A veces carga, a veces no, mostrando la siguiente excepción:
javax.servlet.ServletException: Error reservando espacio para una instancia de servlet
Ese error(java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet) suena a que tienes las clases del API de servlet repetidas en el classpath, seguramente por tener alguna copia en alguna aplicación. Eso puede darte errores poco predecibles y extraños como este. La primera parte parecería indicar problemas de "memoria/espacio" pero el mensaje raiz indica problemas de classpath, y además sería bastante raro que te lo diera al arrancar el servlet. A no ser que el servidor fuera muy muy muy justo de memoria por otras aplicaciones que arrancan antes, apostaría por el classpath.
Cita:
Iniciado por congonga 3) La tercera situación problema, yo creo que se debe al mal funcionamiento descrito en 1) y 2), y sucede que las conexiones que hago con DB2 se pierden, arrojando diversos valores de SQLCODE, SQLSTATE y SQLERROR, según sea la página jsp que esté fallando.
Que las sesiones se vacien como mucho deberia darte problemas de crear demasiadas conexiones, si no las cierras bien al caducar las sesiones y las re-creas al crear una nueva sesion. Aparte de eso, hay servidores que cortan las conexiones JDBC que están inactivas demasiado tiempo, y por eso muchos pools de conexiones las comprueban antes de devolverlas/usarlas.
De todas formas, dado que Tomcat es un software bastante popular, es bastante improbable que por defecto funcione de esa forma, así que es más probable que sea cuestión de la aplicación. Aun así y para descartar posibles problemas con el Tomcat, que haberlos haylos, lo más seguro es probar con alguna versión diferente más madura y aun mejor, probar con otro contenedor de servlets diferente.
Suerte