After some thinking I believe only autoReconnect=true will help us having DB updated. -- 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:35 AM, Alexei Fedotov <[email protected]> wrote: > 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.
