The solution should work at least for the case when DB and Openmeetings are on the same server. -- With best regards / с наилучшими пожеланиями, Alexei Fedotov / Алексей Федотов, http://dataved.ru/ +7 916 562 8095
[1] Start using Apache Openmeetings today, http://openmeetings.apache.org/ [2] Join Alexei Fedotov @linkedin, http://ru.linkedin.com/in/dataved/ [3] Join Alexei Fedotov @facebook, http://www.facebook.com/openmeetings On Thu, Jun 27, 2013 at 11:26 AM, Alexei Fedotov <[email protected]> wrote: > Hello folks, > > I investigate a log and found out that we constantly fail to commit > objects to the database due to connection breaks (both 2.1.1 and 3.0 > are affected). There are several options to resolve this in the error > message below. What is a preferable one? > > Here is a sample exception: > > FailedObject: select c from Sessiondata as c where c.session_id LIKE > :session_id [java.lang.String] > at > org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:326) > ~[org.springframework.orm-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE] > at > org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible(DefaultJpaDialect.java:120) > ~[org.springframework.orm-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE] > at > org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:516) > ~[org.springframework.orm-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE] > at > org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754) > ~[org.springframework.transaction-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE] > at > org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723) > ~[org.springframework.transaction-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE] > at > org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393) > ~[org.springframework.transaction-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE] > at > org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120) > ~[org.springframework.transaction-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE] > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE] > at > org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) > ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE] > at > org.apache.openmeetings.data.basic.SessiondataDao$$EnhancerByCGLIB$$d3b21640.checkSession(<generated>) > ~[com.springsource.net.sf.cglib-2.2.0.jar:na] > at > org.apache.openmeetings.servlet.outputhandler.DownloadHandler.service(DownloadHandler.java:96) > ~[openmeetings-2.1.1-SNAPSHOT.jar:na] > at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at org.red5.logging.LoggerContextFilter.doFilter(LoggerContextFilter.java:77) > [red5.jar:na] > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) > [tomcat-embed-core-jar-7.0.34.jar:7.0.34] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) > [na:1.6.0_27] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > [na:1.6.0_27] > at java.lang.Thread.run(Thread.java:679) [na:1.6.0_27] > Caused by: org.apache.openjpa.persistence.PersistenceException: The > last packet successfully received from the server was 52 524 877 > milliseconds ago. The last packet sent successfully to the server was > 52 524 877 milliseconds ago. is longer than the server configured > value of 'wait_timeout'. You should consider either expiring and/or > testing connection validity before use in your application, increasing > the server configured values for client timeouts, or using the > Connector/J connection property 'autoReconnect=true' to avoid this > problem. > at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4958) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4918) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:110) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:62) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connect(JDBCStoreManager.java:971) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.getConnection(JDBCStoreManager.java:240) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:413) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:391) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.jdbc.sql.LogicalUnion$UnionSelect.execute(LogicalUnion.java:427) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:230) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:220) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.open(SelectResultObjectProvider.java:94) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:34) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1251) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1007) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:863) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:794) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:286) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:302) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openmeetings.data.basic.SessiondataDao.checkSession(SessiondataDao.java:128) > ~[openmeetings-2.1.1-SNAPSHOT.jar:na] > at > org.apache.openmeetings.data.basic.SessiondataDao$$FastClassByCGLIB$$8a6617e0.invoke(<generated>) > ~[com.springsource.net.sf.cglib-2.2.0.jar:na] > at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191) > ~[com.springsource.net.sf.cglib-2.2.0.jar:na] > at > org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) > ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE] > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) > ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE] > at > org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) > ~[org.springframework.transaction-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE] > ... 23 common frames omitted > Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: > The last packet successfully received from the server was 52 524 877 > milliseconds ago. The last packet sent successfully to the server was > 52 524 877 milliseconds ago. is longer than the server configured > value of 'wait_timeout'. You should consider either expiring and/or > testing connection validity before use in your application, increasing > the server configured values for client timeouts, or using the > Connector/J connection property 'autoReconnect=true' to avoid this > problem. > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) ~[na:1.6.0_27] > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) > ~[na:1.6.0_27] > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > ~[na:1.6.0_27] > at java.lang.reflect.Constructor.newInstance(Constructor.java:532) > ~[na:1.6.0_27] > at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) > ~[mysql-connector-java-jar-5.1.22.jar:na] > at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117) > ~[mysql-connector-java-jar-5.1.22.jar:na] > at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3851) > ~[mysql-connector-java-jar-5.1.22.jar:na] > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2471) > ~[mysql-connector-java-jar-5.1.22.jar:na] > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651) > ~[mysql-connector-java-jar-5.1.22.jar:na] > at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2728) > ~[mysql-connector-java-jar-5.1.22.jar:na] > at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:5075) > ~[mysql-connector-java-jar-5.1.22.jar:na] > at > org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:371) > ~[commons-dbcp-jar-1.4.jar:1.4] > at > org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:371) > ~[commons-dbcp-jar-1.4.jar:1.4] > at > org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:328) > ~[commons-dbcp-jar-1.4.jar:1.4] > at > org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:167) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:167) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.setAutoCommit(ConfiguringConnectionDecorator.java:117) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.<init>(ConfiguringConnectionDecorator.java:111) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator.decorate(ConfiguringConnectionDecorator.java:93) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.lib.jdbc.DecoratingDataSource.decorate(DecoratingDataSource.java:99) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:88) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connectInternal(JDBCStoreManager.java:982) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > at > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connect(JDBCStoreManager.java:967) > ~[openjpa-bundle-2.2.1.jar:2.2.1] > ... 44 common frames omitted > Caused by: java.net.SocketException: Broken pipe > at java.net.SocketOutputStream.socketWrite0(Native Method) ~[na:1.6.0_27] > at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) > ~[na:1.6.0_27] > at java.net.SocketOutputStream.write(SocketOutputStream.java:153) > ~[na:1.6.0_27] > at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) > ~[na:1.6.0_27] > at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) > ~[na:1.6.0_27] > at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3832) > ~[mysql-connector-java-jar-5.1.22.jar:na] > ... 60 common frames omitted > > > -- > With best regards / с наилучшими пожеланиями, > Alexei Fedotov / Алексей Федотов, > http://dataved.ru/ > +7 916 562 8095 > > [1] Start using Apache Openmeetings today, http://openmeetings.apache.org/ > [2] Join Alexei Fedotov @linkedin, http://ru.linkedin.com/in/dataved/ > [3] Join Alexei Fedotov @facebook, http://www.facebook.com/openmeetings > > > On Sat, Jun 1, 2013 at 10:01 PM, Alexei Fedotov > <[email protected]> wrote: >> There are two possible options. >> >> 1. Test heavily and ship 2.1.1 release. >> 2. Test heavily and ship 3.0 release instead. >> 3. Ship 3.0 pre-release without heavy testing. >> >> Why should we bother about testing in 2.1.1? Haven't we just improved >> a few things? We don't actually know if we have improved things. Any >> change have a risk of breaking something. >> >> My suggestion is to have testing infrastructure implemented, this >> would help in testing. This will provide feedback. I prefer option >> (2), or (3) because (1) is a waste of heavy testing effort. We don't >> have enough resources to test two branches thoroughly. >> >> I constantly get suggestions (the last one from you one Friday), like >> let's have a low quality development branch, where we will progress, >> and be creative, and let's have someone to produce reliable branches >> from these development branches. For people in a role of support >> engineers it's hard. That's another reason why I prefer (2) or (3) to >> (1). >> >> BTW, here is start of the error log in our 2.1.1 installation. One can >> start fixing existing problems, if we want a release. >> >> 45 at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) >> [tomcat-embed-core-jar-7.0.34.jar:7.0.34] >> 45 at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >> [tomcat-embed-core-jar-7.0.34.jar:7.0.34] >> 42 Caused by: java.net.SocketException: Broken pipe >> 42 at >> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:62) >> ~[openjpa-bundle-2.2.1.jar:2.2.1] >> 42 at >> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136) >> ~[openjpa-bundle-2.2.1.jar:2.2.1] >> 42 at >> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:110) >> ~[openjpa-bundle-2.2.1.jar:2.2.1] >> 42 at >> org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4918) >> ~[openjpa-bundle-2.2.1.jar:2.2.1] >> 42 at >> org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4958) >> ~[openjpa-bundle-2.2.1.jar:2.2.1] >> 42 at >> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connect(JDBCStoreManager.java:971) >> ~[openjpa-bundle-2.2.1.jar:2.2.1] >> 42 at java.net.SocketOutputStream.socketWrite0(Native Method) >> ~[na:1.6.0_27] >> 42 at >> com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117) >> ~[mysql-connector-java-jar-5.1.22.jar:na] >> 42 at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3851) >> ~[mysql-connector-java-jar-5.1.22.jar:na] >> 32 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >> Method) ~[na:1.6.0_27] >> 21 at >> org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:516) >> ~[org.springframework.orm-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE] >> 21 at >> org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:326) >> ~[org.springframework.orm-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE] >> 21 at >> org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible(DefaultJpaDialect.java:120) >> ~[org.springframework.orm-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE] >> 19 FailedObject: select c from Sessiondata as c where >> c.session_id LIKE :session_id [java.lang.String] >> 16 java.lang.NullPointerException: null >> 12 at >> org.apache.openmeetings.remote.ConferenceService.getRoomsByOrganisationWithoutType(ConferenceService.java:147) >> ~[openmeetings-2.1.1-SNAPSHOT.jar:na] >> 10 at sun.reflect.GeneratedConstructorAccessor283.newInstance(Unknown >> Source) ~[na:na] >> 4 at >> org.apache.openmeetings.remote.red5.ScopeApplicationAdapter.roomLeaveByScope(ScopeApplicationAdapter.java:564) >> [openmeetings-2.1.1-SNAPSHOT.jar:na] >> 2 java.lang.Exception: not Authenticated >> 2 ERROR 05-28 20:44:56.425 o.a.o.r.WhiteBoardService:408 >> [NioProcessor-6] - WhiteboardSyncLockObject not found for this Client >> {} >> 2 ERROR 05-28 20:44:56.423 o.a.o.r.WhiteBoardService:408 >> [NioProcessor-6] - WhiteboardSyncLockObject not found for this Client >> {} >> 2 Caused by: >> com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last >> packet successfully received from the server was 84 612 291 >> milliseconds ago. The last packet sent successfully to the server was >> 84 612 291 milliseconds ago. is longer than the server configured >> value of 'wait_timeout'. You should consider either expiring and/or >> testing connection validity before use in your application, increasing >> the server configured values for client timeouts, or using the >> Connector/J connection property 'autoReconnect=true' to avoid this >> problem.
