Jump to content
Changes to the Jaspersoft community edition download ×
  • Communications Link Failure on Hibernate after Long Idle


    Jim W

    Issue:

    [toc on_off::hide=1]

    If you are getting the following error when trying to access JasperReports Server after the system has been idled for a long time (e.g. greater than 8 hours), try the solution below.

    2012-04-15 23:47:10,208 ERROR JDBCExceptionReporter,catalina-exec-15:101 - Communications link failure

    The last packet successfully received from the server was 7,646,338 milliseconds ago.  The last packet sent successfully to the server was 926,685 milliseconds ago.

    2012-04-15 23:47:10,210  WARN JDBCExceptionReporter,catalina-exec-15:100 - SQL Error: 0, SQLState: null

    2012-04-15 23:47:10,211 ERROR JDBCExceptionReporter,catalina-exec-15:101 - Already closed.

    2012-04-15 23:47:10,213  WARN JDBCExceptionReporter,catalina-exec-15:100 - SQL Error: 0, SQLState: null

    2012-04-15 23:47:10,214 ERROR JDBCExceptionReporter,catalina-exec-15:101 - Already closed.

    2012-04-15 23:47:10,216 ERROR TransactionSynchronizationUtils,catalina-exec-15:160 - TransactionSynchronization.afterCompletion threw exception

    org.hibernate.exception.GenericJDBCException: Cannot release connection

    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)

    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)

    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)

    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)

    at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:478)

    at org.hibernate.jdbc.ConnectionManager.cleanup(ConnectionManager.java:408)

    at org.hibernate.jdbc.ConnectionManager.manualDisconnect(ConnectionManager.java:362)

    at org.hibernate.impl.SessionImpl.disconnect(SessionImpl.java:403)

    at org.springframework.orm.hibernate3.SpringSessionSynchronization.afterCompletion(SpringSessionSynchronization.java:223)

    at org.springframework.transaction.support.TransactionSynchronizationUtils.invokeAfterCompletion(TransactionSynchronizationUtils.java:157)

    at org.springframework.transaction.support.AbstractPlatformTransactionManager.invokeAfterCompletion(AbstractPlatformTransactionManager.java:974)

    at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion(AbstractPlatformTransactionManager.java:949)

    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:852)

    at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:800)

    at org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSupport.java:339)

    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)

    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

    at $Proxy4.getDefaultTenant(Unknown Source)

    at com.jaspersoft.jasperserver.multipleTenancy.PathTransformationTenantService.getDefaultTenant(PathTransformationTenantService.java:184)

    at com.jaspersoft.jasperserver.multipleTenancy.MTJSCommonController.setSingleOrganizationAttribute(MTJSCommonController.java:92)

    at com.jaspersoft.jasperserver.multipleTenancy.MTJSCommonController.login(MTJSCommonController.java:85)

    at sun.reflect.GeneratedMethodAccessor271.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)


    Resolution:

    Try these settings for Apache Tomcat.

    Set these values in context.xml where you define the Jasper Server repository db.

    • timeBetweenEvictionRunsMillis

    It has a default of -1, meaning that it will never run to evict connections from the pool. It should be a positive number, e.g. 30*60*1000.

    • minEvictableIdleTimeMillis

    It has a default value of 30*60*1000. If it does not exist already, it should be included in the file.

    See Also


    Ref. Case #00025769 -- 20:32, 1 June 2012 (UTC)  


    User Feedback

    Recommended Comments

    There are no comments to display.



    Guest
    This is now closed for further comments

×
×
  • Create New...