Не знаю правильно ли я назвал тему!!! Проблема заключается в следующем. Есть приложение с 3-я ejb3 модулями (ejb3_1.jar, ejb3_2.jar, ejb3_3.jar) и WEB-приложением. ejb3_1 и ejb3_2 обращаются к локаным БД и ejb3 обращается к некоторой удаленной БД и все прекрасно работает, но если пользователь не работает в ПО, т.е. происходит простой (примерно 30мин, 1 час), то при попытке получить что то от ejb3_3.jar вываливается ошибка, а ejb3_1 и ejb3_2 работают нормально. Вот лог после 15-30 минутной не работы приложения: Код | 2010-10-25 11:43:38,546 WARN [org.hibernate.jdbc.AbstractBatcher] (http-192.168.0.2-8080-14) exception clearing maxRows/queryTimeout: com.ibm.db2.jcc.am.SqlException: [jcc][10120][10943][3.57.82] Недопустимая операция: Объект statement закрыт. ERRORCODE=-4470, SQLSTATE=null at com.ibm.db2.jcc.am.bd.a(bd.java:660) [:] at com.ibm.db2.jcc.am.bd.a(bd.java:60) [:] at com.ibm.db2.jcc.am.bd.a(bd.java:103) [:] at com.ibm.db2.jcc.am.km.ub(km.java:3814) [:] at com.ibm.db2.jcc.am.km.getMaxRows(km.java:844) [:] at org.jboss.resource.adapter.jdbc.WrappedStatement.getMaxRows(WrappedStatement.java:378) [:6.0.0.20100721-M4] at org.hibernate.jdbc.AbstractBatcher.closeQueryStatement(AbstractBatcher.java:298) [:3.5.2-Final] at org.hibernate.jdbc.AbstractBatcher.closeQueryStatement(AbstractBatcher.java:234) [:3.5.2-Final] at org.hibernate.loader.Loader.getResultSet(Loader.java:1863) [:3.5.2-Final] at org.hibernate.loader.Loader.doQuery(Loader.java:718) [:3.5.2-Final] at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270) [:3.5.2-Final] at org.hibernate.loader.Loader.loadEntity(Loader.java:1933) [:3.5.2-Final] at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:86) [:3.5.2-Final] at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:76) [:3.5.2-Final] at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3270) [:3.5.2-Final] at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:496) [:3.5.2-Final] at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:477) [:3.5.2-Final] at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:227) [:3.5.2-Final] at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:285) [:3.5.2-Final] at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:152) [:3.5.2-Final] at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:1080) [:3.5.2-Final] at org.hibernate.impl.SessionImpl.get(SessionImpl.java:997) [:3.5.2-Final] at org.hibernate.impl.SessionImpl.get(SessionImpl.java:990) [:3.5.2-Final] at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:610) [:3.5.2-Final] at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:585) [:3.5.2-Final]
|
Вот лог после повторной попытки: Код | 2010-10-25 11:46:22,375 WARN [org.hibernate.util.JDBCExceptionReporter] (http-192.168.0.2-8080-14) SQL Error: -4470, SQLState: 08003 2010-10-25 11:46:22,375 ERROR [org.hibernate.util.JDBCExceptionReporter] (http-192.168.0.2-8080-14) [jcc][t4][10335][10366][3.57.82] Недопустимая операция: Соединение закрыто. ERRORCODE=-4470, SQLSTATE=08003 2010-10-25 11:46:22,390 ERROR [STDERR] (http-192.168.0.2-8080-14) javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not execute query 2010-10-25 11:46:22,390 ERROR [STDERR] (http-192.168.0.2-8080-14) at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1235) 2010-10-25 11:46:22,390 ERROR [STDERR] (http-192.168.0.2-8080-14) at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1168) 2010-10-25 11:46:22,390 ERROR [STDERR] (http-192.168.0.2-8080-14) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:250)
.......
2010-10-25 11:46:22,406 ERROR [STDERR] (http-192.168.0.2-8080-14) Caused by: org.hibernate.exception.JDBCConnectionException: could not execute query 2010-10-25 11:46:22,406 ERROR [STDERR] (http-192.168.0.2-8080-14) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:99) ........ 2010-10-25 11:46:22,421 ERROR [STDERR] (http-192.168.0.2-8080-14) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:241) 2010-10-25 11:46:22,421 ERROR [STDERR] (http-192.168.0.2-8080-14) ... 143 more 2010-10-25 11:46:22,421 ERROR [STDERR] (http-192.168.0.2-8080-14) Caused by: com.ibm.db2.jcc.am.ho: [jcc][t4][10335][10366][3.57.82] Недопустимая операция: Соединение закрыто. ERRORCODE=-4470, SQLSTATE=08003 ........ 2010-10-25 11:46:22,437 INFO [org.jboss.resource.connectionmanager.CachedConnectionManager] (http-192.168.0.2-8080-14) Closing a connection for you. Please close them yourself: org.jboss.resource.adapter.jdbc.jdk6.WrappedConnectionJDK6@b1f58a: java.lang.Throwable: STACKTRACE at org.jboss.resource.connectionmanager.CachedConnectionManager.registerConnection(CachedConnectionManager.java:278) [:6.0.0.20100721-M4] at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:524) [:6.0.0.20100721-M4] at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:941) [:6.0.0.20100721-M4] at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89) [:6.0.0.20100721-M4] at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:71) [:3.5.2-Final] at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446) [:3.5.2-Final] at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) [:3.5.2-Final] at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161) [:3.5.2-Final] at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1596) [:3.5.2-Final] at org.hibernate.loader.Loader.doQuery(Loader.java:717) [:3.5.2-Final] at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270) [:3.5.2-Final] at org.hibernate.loader.Loader.doList(Loader.java:2294) [:3.5.2-Final] at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2172) [:3.5.2-Final] at org.hibernate.loader.Loader.list(Loader.java:2167) [:3.5.2-Final] at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:448) [:3.5.2-Final] at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) [:3.5.2-Final] at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) [:3.5.2-Final] at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1258) [:3.5.2-Final] at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) [:3.5.2-Final] at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:241) [:3.5.2-Final]
|
Использую ejb3+jpa1.0. Всё крутится на JBoss 6.0.0 и DB2 (Windows XP) Удаленная БД на DB2 Linux RedHat
|