2011-05-06 4 views
1

Dans Java + Hibernate aplication, nous obtenons un JDBCConnectionException:JDBCConnectionException: Impossible de mettre à jour

org.hibernate.exception.JDBCConnectionException: could not update: [net.gencat.cultura.itinerarisLectura.model.AppVariables#14] 
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74) 
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) 
    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2421) 
    at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2303) 
    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2603) 
    at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92) 
    at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248) 
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232) 
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) 
    at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) 
    at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) 
    at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) 
    at hibernate.util.ManagedSession.rollbackTransaction(ManagedSession.java:64) 
    at net.gencat.cultura.itinerarisLectura.model.home.AppVariablesHome.attachDirty(AppVariablesHome.java:122) 
    at net.gencat.cultura.itinerarisLectura.struts.action.AppVariablesAction.save(AppVariablesAction.java:157) 
    at sun.reflect.GeneratedMethodAccessor1526.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280) 
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216) 
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) 
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) 
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) 
    at net.gencat.cultura.itinerarisLectura.filters.LoginFilter.doFilter(LoginFilter.java:82) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) 
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199) 
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282) 
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767) 
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697) 
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889) 
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Se ha producido una excepción durante el método DBComms.receive. Operación:Connection reset. Contexto:(173) [Thread[TP-Processor14,5,main], IO:a9a8a, Dbc:53c34]. PktNum:0. TotalReceived:0. PktSize:4.096. 
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source) 
    at com.microsoft.sqlserver.jdbc.DBComms.receive(Unknown Source) 
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(Unknown Source) 
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PreparedStatementExecutionRequest.executeStatement(Unknown Source) 
    at com.microsoft.sqlserver.jdbc.CancelableRequest.execute(Unknown Source) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeRequest(Unknown Source) 
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(Unknown Source) 
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105) 
    at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23) 
    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2399) 
    ... 41 more 

Quoi? Problème de la base de données? Bug de programmation? Hibernate mauvaise configuration? "Heureusement" il échoue seulement dans la base de données de production, nous ne pouvons pas reproduire au local.

Le hibernate.cfg.xml

<property name="current_session_context_class">thread</property> 

<!-- Use the C3P0 connection pool. --> 
    <property name="c3p0.min_size">3</property> 
    <property name="c3p0.max_size">100</property> 
    <property name="c3p0.timeout">1800</property> 
    <property name="c3p0.max_statements">50</property> 

    <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> 
    <property name="cache.use_query_cache">false</property> 
    <property name="cache.use_minimal_puts">false</property> 
    <property name="max_fetch_depth">3</property> 

EDIT:

Dans le même fichier journal, je reçois aussi le message suivant, qui pourrait être important

WARN [TP-Processor7] com.mchange.v2.c3p0.impl.NewPooledConnection - [c3p0] A PooledConnection that has already signalled a Connection error is still in use! 
WARN [TP-Processor7] com.mchange.v2.c3p0.impl.NewPooledConnection - [c3p0] Another error has occurred [ com.microsoft.sqlserver.jdbc.SQLServerException: La conexión está cerrada. ] which will not be reported to listeners! 

Répondre

2

Je ne suis pas très grand sur la lecture des messages d'erreur Microsoft SQL Server en espagnol, mais il semble que la connexion au serveur a été perdue. Le serveur a été redémarré ou quelque chose s'est passé sur le réseau.

+0

Merci! (Désolé, je n'ai pas réalisé qu'une partie du message était en espagnol) –

Questions connexes