Connection hangs after time of inactivity

前端 未结 5 1001
耶瑟儿~
耶瑟儿~ 2020-12-31 18:21

In my application, Spring manages connection pool for database access. Hibernate uses these connections for its queries. At first glance, I have no problems with the pool: i

5条回答
  •  悲&欢浪女
    2020-12-31 18:53

    We solved problem with similar symptoms which also turned out to be caused by a firewall.

    We were able to work around the problem by changing the testWhileIdle connection pool property which prevents the connection from going idle and from the firewall shutting down the connection. See Apache commons dbcp BasicDataSource. Here is an exert from the configuration file, persistentce-context.xml that fixed the problem:

    
      true
    
    
      600000
    
    
      600000
    
    

    Most likely we only need to add the testWhileIdle (false by default), but added the other two properties for good measure.

    In our case, here are some of the logs which we were seeing. Notice in this debug logs, it would take 16 minutes to open the connection before the connection could be used and this is what caused everything to hang. There were no errors which made it hard to track down.

    09-06-13 @ 16:36:34 [DEBUG] HibernateTransactionManager - Preparing JDBC Connection of Hibernate Session [org.hibernate.impl.SessionImpl@db17ab]
    09-06-13 @ 16:36:34 [DEBUG] ConnectionManager - opening JDBC connection
    09-06-13 @ 16:52:00 [DEBUG] DataSourceUtils - Setting JDBC Connection
    09-06-13 @ 16:52:00 [DEBUG] JDBCTransaction - begin
    09-06-13 @ 16:52:00 [DEBUG] JDBCTransaction - current autocommit status: true
    

提交回复
热议问题