-
FEATURED COMPONENTS
First time here? Check out the FAQ!
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
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
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
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
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 **
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
Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4013070
By: andigre
in shared/lib AND in WBE-INF/lib.
/Andreas
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
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
Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4016470
By: henrichen
OK. I will test the issue here. Thanks.
/henri
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
Asked: 2006-11-12 12:58:28 +0800
Seen: 784 times
Last updated: Jan 01 '09