Menu

#110 Error en la aplicación

open
7
2008-07-09
2008-06-17
kotolo
No

Al hacer login en la aplicación, aveces, sale el siguiente error:

javax.servlet.ServletException: could not execute query
org.ai.kandelo.utils.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:73)

causa raíz

javax.servlet.ServletException: could not execute query
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.ai.kandelo.filters.LoginFilter.doFilter(LoginFilter.java:75)
org.ai.kandelo.utils.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:42)

Discussion

  • Alvaro del Castillo

    Logged In: YES
    user_id=85578
    Originator: NO

    Ayer lo estuve hablando con Borja y el motivo podría ser:

    (17:58:59) borjaAI: a ver, el problema es que es un error resbaladizo
    (17:59:23) borjaAI: Punto 1: Sabes lo que es el patron vista-session?
    (17:59:33) borjaAI: :S
    (18:00:12) borjaAI: en spring viene por defecto pero en struts te lo tienes que hacer tu
    (18:00:17) acsg: hmmm, creo que no
    (18:00:36) acsg: aunque me lo imagino
    (18:00:55) borjaAI: bueno, sabes que hibernate hace carga lazy de los objetos, no?
    (18:01:03) borjaAI: (si no le indicas lo contrario)
    (18:01:20) acsg: los carga cuando los necesita .... más o menos lo conozco :)
    (18:01:50) borjaAI: el problema está en que si haces que tu Action cargue unos datos de la BD y los mandas al jsp y cierras la conexion
    (18:02:34) borjaAI: si el motor de tomcat quiere cargar ciertos datos del objeto se encuentra con un dato sin inicializar (lazy) -> CATA CRAAAAAAAACK!!!
    (18:03:14) borjaAI: que se hace? pues se mete un filtro (servlets) y lo que haces es abrir la conexion a la BD antes de hacer nada y cerrarla despues de haber hecho todo...
    (18:03:46) borjaAI: y esa es la clase HibernateSessionRequestFilter que da el error
    (18:03:56) borjaAI: peeeeero
    (18:04:01) borjaAI: el error no es ese
    (18:04:25) borjaAI: el error viene con el MySQL
    (18:04:57) borjaAI: la cosa es que aunque se cierra la conexión, no sé porque se debe quedar algo abierto
    (18:05:32) borjaAI: que pasa... que cuando eso se queda así durante mucho tiempo Mysql te da un error como que esa conexión ya ha pasado demasiados datos y no puede pasar más....
    (18:05:50) borjaAI: y por eso da error al abrir una nueva conexión

     
  • Alvaro del Castillo

    • assigned_to: nobody --> acs2
     
  • Nobody/Anonymous

    Logged In: NO

    Para ver las conexiones que tiene abiertas MySQL:

    http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html (Threads_connected)

    mysqladmin -u root extended-status | grep Threads
    | Threads_cached | 2 |
    | Threads_connected | 2 |
    | Threads_created | 4 |
    | Threads_running | 1 |

    Voy a probar a entrar y salir varias veces de Kandelo a ver como evoluciona.

     
  • Alvaro del Castillo

    Logged In: YES
    user_id=85578
    Originator: NO

    Las conexiones se abren y se cierran bien en la entrada y salida de sesión. Habrá que seguir probando.

     
  • Alvaro del Castillo

    • milestone: 832170 -->
     
  • Alvaro del Castillo

    Logged In: YES
    user_id=85578
    Originator: NO

    Este error vimos el otro día que no tiene que ver con que se abran conexiones de más en MySQL y el motor deje de funcionar. El problema es interno en nuestro código y se produce después de funcionar un tiempo la aplicación. Como será delicada su solución no lo consideramos bloqueante para la 1.0 y si es necesario, programamos reinicios diarios del servicio hasta que demos con el fallo.

     

Log in to post a comment.

MongoDB Logo MongoDB