0

ZK Hibernate SessionCleanup problem

asked 2006-11-12 12:58:28 +0800

admin gravatar image admin
18691 1 10 130
ZK Team


Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4007780

By: andigre

Hi
On my ZK Webpage I use zhe ZKHibernateUtil to access the session. It looks like everything works fine.
But after a day or a couple accesses from different sessions, the database access fails.

I run ZK 2.1.3, Hibenrate 3.2 on Tomcat 5.5.20.

The catalina log:

11.11.2006 10:17:04 org.hibernate.transaction.JDBCTransaction commit
SCHWERWIEGEND: JDBC commit failed
com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Communications link failure during commit(). Transaction resolution unknown.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:888)
at com.mysql.jdbc.Connection.commit(Connection.java:2259)
at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTrans
action.java:139)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)
at org.zkoss.zkplus.hibernate.OpenSessionInViewListener.cleanup(OpenSessionInVi
ewListener.java:62)
at org.zkoss.zk.ui.util.Configuration.invokeExecutionCleanups(Configuration.jav
a:669)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:302)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:208)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:155)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:106)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va: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.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processC
onnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav
a:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWo
rkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:684)
at java.lang.Thread.run(Unknown Source)
11.11.2006 10:17:04 org.zkoss.zk.ui.util.Configuration
invokeExecutionCleanups:672
SCHWERWIEGEND: Failed to invoke class
org.zkoss.zkplus.hibernate.OpenSessionInViewListener
org.hibernate.TransactionException: JDBC commit failed
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:130)
at org.zkoss.zkplus.hibernate.OpenSessionInViewListener.cleanup(OpenSessionInVi
ewListener.java:62)
at org.zkoss.zk.ui.util.Configuration.invokeExecutionCleanups(Configuration.jav
a:669)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:302)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:208)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:155)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:106)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126
)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105
)
....

on the stdout log I see that the connection seems to be closed:

Hibernate: select this_.id as id2_0_, this_.grp as grp2_0_, this_.number as number2_0_, this_.descr as descr2_0_, this_.size as size2_0_, this_.picture as picture2_0_, this_.mtype as mtype2_0_ from photo this_ where this_.grp=?
and this_.size=? order by this_.number asc
ch.truereality.db.DatabaseException: Could not get photos by group: ice2003
at ch.truereality.db.dao.PhotoDAO.getAllPhotosFromGroup(PhotoDAO.java:76)
at ch.truereality.photo.PhotoUtil.getPhotoPages(PhotoUtil.java:34)
at ch.truereality.listener.MainEventListener.setPhotoGrid(MainEventListener.jav
a:98)
at ch.truereality.listener.MainEventListener.onEvent(MainEventListener.java:59)
at org.zkoss.zk.ui.impl.EventProcessingThread.process1(EventProcessingThread.ja
va:470)
at org.zkoss.zk.ui.impl.EventProcessingThread.process0(EventProcessingThread.ja
va:452)
at org.zkoss.zk.ui.impl.EventProcessingThread.run(EventProcessingThread.java:35
9)
Caused by: org.hibernate.exception.JDBCConnectionException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java
:43)
at org.hibernate.loader.Loader.doList(Loader.java:2147)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2028)
at org.hibernate.loader.Loader.list(Loader.java:2023)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:95)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at ch.truereality.db.dao.PhotoDAO.getAllPhotosFromGroup(PhotoDAO.java:72)
... 6 more
Caused by: com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:


I think it must be a configuration problem.

My zk.xml contains this listeners:

<zk>
<listener>
<description>Hibernate SessionFactory Lifecycle</description>
<listener-class>org.zkoss.zkplus.hibernate.HibernateSessionFactoryListener</li
stener-class>
</listener>
<listener>
<description>Hibernate Session Management</description>
<listener-class>org.zkoss.zkplus.hibernate.HibernateSessionContextListener</li
stener-class>
</listener>
<listener>
<description>Hibernate OpenSessionInView Listener</description>
<listener-class>org.zkoss.zkplus.hibernate.OpenSessionInViewListener</listener
-class>
</listener>
</zk>

my web.xml

<!-- ZK -->
<listener>
<description>Used to cleanup when a session is destroyed</description>
<display-name>ZK Session Cleaner</display-name>
<listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class>
</listener>
<servlet>
<description>ZK loader for ZUML pages</description>
<servlet-name>zkLoader</servlet-name>
<servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>
<!-- Must. Specifies URI of the update engine (DHtmlUpdateServlet).
It must be the same as <url-pattern> for the update engine.
-->
<init-param>
<param-name>update-uri</param-name>
<param-value>/zkau</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>zkLoader</servlet-name>
<url-pattern>*.zul</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>zkLoader</servlet-name>
<url-pattern>*.zhtml</url-pattern>
</servlet-mapping>
<servlet>
<description>The asynchronous update engine for ZK</description>
<servlet-name>auEngine</servlet-name>
<servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>auEngine</servlet-name>
<url-pattern>/zkau/*</url-pattern>
</servlet-mapping>
<!-- //// -->

<!-- Miscellaneous -->
<session-config>
<session-timeout>120</session-timeout>
</session-config>


and the hibernate config:

<hibernate-configuration>
<session-factory>
<property
name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property
name="connection.url">jdbc:mysql://192.168.1.20:3306/truereality</property>
<property name="connection.username">truereality</property>
<property name="connection.password">MYPW</property>
<property name="connection.pool_size">12</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- Hibernate's transaction factory -->
<property
name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactor
y</property>

<!-- Mandatory for ZK -->
<property name="current_session_context_class">thread</property>
<!-- Cache settings -->
<property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvide
r</property>
<!-- property
name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property -->

<!-- Mapping files -->
<mapping resource="ch/truereality/db/pojo/Movie.hbm.xml"/>
<mapping resource="ch/truereality/db/pojo/MovieImage.hbm.xml"/>
<mapping resource="ch/truereality/db/pojo/Photo.hbm.xml"/>
</session-factory>
</hibernate-configuration>

It seems that the hibernateUtil is providing me closed connections after a while.

My DAO looks like this:

public List getAllPhotosFromGroup(String grp) throws DatabaseException {
try
{
Criteria
c = HibernateUtil.currentSession().createCriteria(Photo.class);
c.add(Restrictions.eq("grp", grp));
c.add(Restrictions.eq("size", "s"));
c.addOrder(Order.asc("number"));
return c.list();
}
catch (HibernateException hibernateException)
{
throw new DatabaseException("Could not get photos by group: " + grp, hibernateException);
}
}

I do nothing like session open/close commit in my code.

Thanks for your help.

Andreas



delete flag offensive retag edit

14 Replies

Sort by ยป oldest newest

answered 2006-11-13 02:02:18 +0800

admin gravatar image admin
18691 1 10 130
ZK Team


Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4008393

By: henrichen

1. What is the log message after this?

"Caused by: com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:"

2. Do you use Spring framework in your application? If not, don't include the OpenSessionInViewListener. It is supposed to be used with Spring's OpenSessionInViewFilter.

3. You have to do the Hibernate commit and close in your code(Using the
HibernateUtil) if you are not using Spring's OpenSessionInViewFilter, or the connection pool will be run out. Please see Hibernate's example code as a hint.
ZK does not "ADD" anything on that. It simple "enable" the Hibernate to work seamlessly with ZK.

/henri





link publish delete flag offensive edit

answered 2006-11-13 19:54:07 +0800

admin gravatar image admin
18691 1 10 130
ZK Team


Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4010712

By: andigre

Thank you Henri

No I don't use the Spring framework.

I removed now the OpenSessionInViewListener, added Transaction begin / commit and session.close() (I read your ZK + Hibernate example but missed the part with Spring, that's why I was a bit confused.)

It seems to work as before (but hopefully without resource leaks). Time will tell. But I have a really good feeling know :-)

Thank you for the fast support. I'm also fine now with the CSS stuff that you answered in the other message.

/Andreas


link publish delete flag offensive edit

answered 2006-11-14 02:09:24 +0800

admin gravatar image admin
18691 1 10 130
ZK Team


Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4011098

By: henrichen

The following statement I made is not correct. Sorry. I screw up this time :(

"2. Do you use Spring framework in your application? If not, don't include the OpenSessionInViewListener. It is supposed to be used with Spring's OpenSessionInViewFilter."

The above statement is not correct. The ZK's OpenSessionInViewListener is supposed to be used with the HibernateUtil.currentSession() thread strategy. It in fact plays the same role as Spring's OpenSessionInViewFilter.

That is, Andrea, there should be some issues in your original codes.
can you provide the log message after this?

"Caused by: com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:"

/henri


link publish delete flag offensive edit

answered 2006-11-14 23:10:53 +0800

admin gravatar image admin
18691 1 10 130
ZK Team


Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4012800

By: andigre

Hi Henri

Yes here it is. Without the OpenSessionInViewListener it was also not working correctly.

Here the missing part of the exception:


Caused by: com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:


** BEGIN NESTED EXCEPTION **

com.mysql.jdbc.CommunicationsException
MESSAGE: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Software caused connection abort: socket write error

STACKTRACE:

java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.flush(Unknown Source)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2637)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1554)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
at com.mysql.jdbc.Connection.commit(Connection.java:2250)
at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTrans
action.java:139)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)
at org.zkoss.zkplus.hibernate.OpenSessionInViewListener.cleanup(OpenSessionInVi
ewListener.java:62)
at org.zkoss.zk.ui.util.Configuration.invokeExecutionCleanups(Configuration.jav
a:669)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:302)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:208)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:155)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:106)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va: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.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processC
onnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav
a:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWo
rkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:684)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **



Last packet sent to the server was 23 ms ago.

STACKTRACE:

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying
exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Software caused connection abort: socket write error

STACKTRACE:

java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.flush(Unknown Source)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2637)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1554)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
at com.mysql.jdbc.Connection.commit(Connection.java:2250)
at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTrans
action.java:139)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)
at org.zkoss.zkplus.hibernate.OpenSessionInViewListener.cleanup(OpenSessionInVi
ewListener.java:62)
at org.zkoss.zk.ui.util.Configuration.invokeExecutionCleanups(Configuration.jav
a:669)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:302)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:208)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:155)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:106)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va: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.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processC
onnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav
a:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWo
rkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:684)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **



Last packet sent to the server was 23 ms ago.
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2652)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1554)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
at com.mysql.jdbc.Connection.commit(Connection.java:2250)
at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTrans
action.java:139)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)
at org.zkoss.zkplus.hibernate.OpenSessionInViewListener.cleanup(OpenSessionInVi
ewListener.java:62)
at org.zkoss.zk.ui.util.Configuration.invokeExecutionCleanups(Configuration.jav
a:669)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:302)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:208)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:155)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:106)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va: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.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processC
onnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav
a:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWo
rkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:684)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **


at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:888)
at com.mysql.jdbc.Connection.checkClosed(Connection.java:1909)
at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4607)
at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4573)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java
:497)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java
:415)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.jav
a:139)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1560)
at org.hibernate.loader.Loader.doQuery(Loader.java:661)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.ja
va:224)
at org.hibernate.loader.Loader.doList(Loader.java:2144)
... 12 more
Hibernate: select this_.id as id2_0_, this_.grp as grp2_0_, this_.number as number2_0_, this_.descr as descr2_0_, this_.size as size2_0_, this_.picture as picture2_0_, this_.mtype as mtype2_0_ from photo this_ where this_.id=?
ch.truereality.db.DatabaseException: Could not get the photo by id: 62
at ch.truereality.db.dao.PhotoDAO.getPhotoById(PhotoDAO.java:61)
at ch.truereality.photo.PhotoUtil.getPhotoOverviewPage(PhotoUtil.java:63)
at ch.truereality.listener.MainEventListener.setPhotoOverviewGrid(MainEventList
ener.java:108)
at ch.truereality.listener.MainEventListener.onEvent(MainEventListener.java:67)
at org.zkoss.zk.ui.impl.EventProcessingThread.process1(EventProcessingThread.ja
va:470)
at org.zkoss.zk.ui.impl.EventProcessingThread.process0(EventProcessingThread.ja
va:452)
at org.zkoss.zk.ui.impl.EventProcessingThread.run(EventProcessingThread.java:35
9)
Caused by: org.hibernate.exception.JDBCConnectionException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java
:43)
at org.hibernate.loader.Loader.doList(Loader.java:2147)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2028)
at org.hibernate.loader.Loader.list(Loader.java:2023)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:95)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:305)
at ch.truereality.db.dao.PhotoDAO.getPhotoById(PhotoDAO.java:55)
... 6 more
Caused by: com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:


** BEGIN NESTED EXCEPTION **

com.mysql.jdbc.CommunicationsException
MESSAGE: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Software caused connection abort: socket write error

STACKTRACE:

java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.flush(Unknown Source)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2637)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1554)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
at com.mysql.jdbc.Connection.commit(Connection.java:2250)
at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTrans
action.java:139)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)
at org.zkoss.zkplus.hibernate.OpenSessionInViewListener.cleanup(OpenSessionInVi
ewListener.java:62)
at org.zkoss.zk.ui.util.Configuration.invokeExecutionCleanups(Configuration.jav
a:669)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:302)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:208)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:155)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:106)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va: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.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processC
onnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav
a:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWo
rkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:684)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **



Last packet sent to the server was 23 ms ago.

STACKTRACE:

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying
exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Software caused connection abort: socket write error

STACKTRACE:

java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.flush(Unknown Source)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2637)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1554)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
at com.mysql.jdbc.Connection.commit(Connection.java:2250)
at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTrans
action.java:139)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)
at org.zkoss.zkplus.hibernate.OpenSessionInViewListener.cleanup(OpenSessionInVi
ewListener.java:62)
at org.zkoss.zk.ui.util.Configuration.invokeExecutionCleanups(Configuration.jav
a:669)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:302)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:208)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:155)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:106)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va: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.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processC
onnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav
a:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWo
rkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:684)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **



link publish delete flag offensive edit

answered 2006-11-15 03:32:31 +0800

admin gravatar image admin
18691 1 10 130
ZK Team


Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4012993

By: henrichen

Where did you deploy the zkplus.jar? In shared/lib, WEB-INF/lib, or both?

/henri

link publish delete flag offensive edit

answered 2006-11-15 06:00:57 +0800

admin gravatar image admin
18691 1 10 130
ZK Team


Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4013070

By: andigre

in shared/lib AND in WBE-INF/lib.

/Andreas


link publish delete flag offensive edit

answered 2006-11-16 02:21:46 +0800

admin gravatar image admin
18691 1 10 130
ZK Team


Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4014706

By: henrichen

Hi, Andreas,

Can you run your program on Postgresql or Hsql to test if this is db related?

Or if you can send me your code (henrichen <at> potix <dot> com) that I can test it here.

/henri

link publish delete flag offensive edit

answered 2006-11-16 17:23:10 +0800

admin gravatar image admin
18691 1 10 130
ZK Team


Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4015700

By: andigre

Hi Henri

I switched to Datasource instead of a JDBC connection and it seems to work now as expected.
To me it looks like the OpenSessionInViewListener didn't handle the sessions correctly with jdbc.
I removed the connection.pool_size to 3 so I could easy reproduce the error with jdbc-connection by opening a browser for more than 3 times. But with Datasource it worked. I will do some more testing and keep my web-server up and running for a couple of days to see if it is stable over time.

So now I have the 3 listeners for Hibernate in the zk.xml, the resource definition for the Datasource in the web.xml and the context.xml for tomcat with the datasource resource configuration.

Thanks anyway.

/Andreas


link publish delete flag offensive edit

answered 2006-11-17 02:04:02 +0800

admin gravatar image admin
18691 1 10 130
ZK Team


Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4016470

By: henrichen

OK. I will test the issue here. Thanks.

/henri

link publish delete flag offensive edit

answered 2006-11-20 13:24:31 +0800

admin gravatar image admin
18691 1 10 130
ZK Team


Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4021514

By: henrichen

Andreas,

I have tested with my own example with the same configuration as yours but I cannot replicate the issue.

If possible, I would hope you can provide your testing codes to me ( henrichen <at> potix <dot> com ), so I can test it here.

/henri


link publish delete flag offensive edit
Your reply
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2006-11-12 12:58:28 +0800

Seen: 784 times

Last updated: Jan 01 '09

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More