Welcome to Knowage Q&A, where you can ask questions and receive answers from other members of the community.
0 votes
1 view

Hello,

I'm getting "An error has occurred. Retry later" screen if I'm not using web application for couple hours or so.

After I restart Knowage server everything works fine.

Could you help me? Do I need to configure anything in MySQL or server.xml?

Thanks.

------------------------------------

I see following error in logs:


[http-bio-8080-exec-32] 01 Sep 2017 16:48:36,102 ERROR org.hibernate.transaction.JDBCTransaction.begin:91 - JDBC begin failed

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 35,727,837 milliseconds ago.  The last packet sent successfully to the server was 1 milliseconds ago.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3559)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3459)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3900)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2490)

at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:4815)

at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:371)

at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:328)

at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:87)

at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1473)
.....

at java.lang.Thread.run(Thread.java:748)

Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3011)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3469)

... 51 more

[http-bio-8080-exec-32] 01 Sep 2017 16:48:36,107 ERROR it.eng.spagobi.commons.dao.AbstractHibernateDAO.logException:254 - org.hibernate.TransactionException JDBC begin failed:

org.hibernate.TransactionException: JDBC begin failed:

at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:92)

at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1473)

at it.eng.spagobi.wapp.dao.MenuDAOImpl.loadMenuByID(MenuDAOImpl.java:173)

at it.eng.spagobi.wapp.dao.MenuRolesDAOImpl.loadMenuByRoleId(MenuRolesDAOImpl.java:84)

at it.eng.spagobi.wapp.util.MenuUtilities.getMenuItems(MenuUtilities.java:204)

at it.eng.spagobi.commons.services.LoginModule.service(LoginModule.java:454)
...
at java.lang.Thread.run(Thread.java:748)

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 35,727,837 milliseconds ago.  The last packet sent successfully to the server was 1 milliseconds ago.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
...

at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:87)

... 42 more

Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3011)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3469)

... 51 more

[http-bio-8080-exec-32] 01 Sep 2017 16:48:36,118 ERROR it.eng.spagobi.wapp.util.MenuUtilities.getMenuItems:232 - Cannot fill response containerseverity [ERROR] description [Generic Error]

Environment Knowage Installer 6.0.0 CE; Ubuntu 14.04; MySQL Ver 14.14
in General Configuration by (240 points)

1 Answer

+2 votes
Dear

Try to change the connection pool configuration with these option:

<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" name="jdbc/..." type="javax.sql.DataSource" url="jdbc:oracle:thin:...@//...:1521/..." username="..." password="..." maxWait="-1" maxActive="20" maxIdle="4" validationQuery="select * from dual" removeAbandoned="true" removeAbandonedTimeout="3600" logAbandoned="true" testOnReturn="true" testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="60000" />

Let me know

Angelo
by (20.7k points)
Thanks Angelo,

I'm using MySQL, not Oracle. Here is my configuration:

<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="20" maxIdle="10" maxWait="-1" name="jdbc/ds_cache" password="..." type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/foodmart_demo?autoReconnect=true" username="..."/>
Angelo, I applied following part of your tag.
validationQuery="select * from dual" removeAbandoned="true" removeAbandonedTimeout="3600" logAbandoned="true" testOnReturn="true" testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="60000"

I'll let you know if it didn't solve the problem.
...