我们的系统中存在一个错误,该错误使用ebean进行数据库通信和查询。
我们看到的错误是这样:
30/01/2020 INFO 1 --- [nio-8090-exec-8] io.ebean.datasource.pool.ConnectionPool : DataSourcePool [ftc_central_b] autoCommit[false] transIsolation[READ_COMMITTED] min[2] max[200]
30/01/2020 INFO 1 --- [nio-8090-exec-8] i.e.d.pool.BusyConnectionBuffer : Dumping [1] busy connections: (Use datasource.xxx.capturestacktrace=true ... to get stackTraces)
30/01/2020 WARN 1 --- [nio-8090-exec-8] i.e.d.pool.PooledConnectionQueue : Closing busy connections on shutdown size: 1
30/01/2020 INFO 1 --- [nio-8090-exec-8] i.e.d.pool.BusyConnectionBuffer : Busy Connection - name[ftc_central_a6811] slot[48] startTime[1580318444092] busySeconds[16] stackTrace[] stmt[<select query>]
30/01/2020 WARN 1 --- [nio-8090-exec-8] i.e.d.pool.BusyConnectionBuffer : DataSourcePool closing busy connection? name[ftc_central_a6811] slot[48] startTime[1580318444092] busySeconds[16] stackTrace[] stmt[<select query>]
30/01/2020 CLOSING busy connection: name[ftc_central_a6811] slot[48] startTime[1580318444092] busySeconds[16] stackTrace[] stmt[<select query>)]
30/01/2020 ERROR 1 --- [n-db-periodic-1] i.e.server.transaction.JdbcTransaction : Error when ending a query only transaction via COMMIT
我们从ftc_central_a和ftc_central_b切换。有什么配置更改可以避免这种情况吗?我可以将LeakTimeMinutes从30增加到60,但是我认为这不是一个好的解决方案。
这是datasource.offline()
的错误
记录为#31-datasource.offline()关闭繁忙的连接...应让它们在返回时关闭https://github.com/ebean-orm/ebean-datasource/issues/31
该修复程序意味着offline()不会关闭繁忙的连接,而是允许它们继续工作,而是在返回池时关闭。