Java Tomcat不重用挂起的postgres进程
我有一个问题,来自tomcat应用程序的基本查询导致所有postgres进程进入“事务中空闲”状态 这是因为由于某些原因,查询永远无法完成。与应用程序问题和应用程序开发人员提出的问题相关,他们正在查看 由于tomcat认为查询仍然处于活动状态,因此它从不执行回滚或提交并挂起 我能够终止“事务中的空闲”进程,但tomcat不会自动清除放弃连接并启动新连接,而无需重新启动tomcat 有没有办法强迫tomcat清除被放弃的连接Java Tomcat不重用挂起的postgres进程,java,postgresql,tomcat,Java,Postgresql,Tomcat,我有一个问题,来自tomcat应用程序的基本查询导致所有postgres进程进入“事务中空闲”状态 这是因为由于某些原因,查询永远无法完成。与应用程序问题和应用程序开发人员提出的问题相关,他们正在查看 由于tomcat认为查询仍然处于活动状态,因此它从不执行回滚或提交并挂起 我能够终止“事务中的空闲”进程,但tomcat不会自动清除放弃连接并启动新连接,而无需重新启动tomcat 有没有办法强迫tomcat清除被放弃的连接 labkey | 8195 | 2018-04-17 10:53:17.
labkey | 8195 | 2018-04-17 10:53:17.002785+01 |交易中空闲
labkey | 8359 | 2018-04-17 10:53:16.632977+01 |交易中空闲
labkey | 8249 | 2018-04-17 10:53:16.631433+01 | |交易中空闲
labkey | 8250 | 2018-04-17 10:53:17.173161+01 | |交易中空闲
labkey | 8251 | 2018-04-17 10:53:16.194544+01 | |交易中空闲
labkey | 8358 | 2018-04-17 10:53:16.634106+01 |交易中空闲
labkey | 8362 | 2018-04-17 10:53:14.843128+01 | |交易中空闲
labkey | 8382 | 2018-04-17 10:53:15.903067+01 |交易中空闲
你说的“重用流程”是什么意思?如果你终止了一个连接,那么在那之后就没有什么可以“重用”的了。也许重用这个词是错误的。但强迫tomcat清除放弃连接并启动新连接而不必重新启动tomcat。ThanksTomcat永远不会发出提交
或回滚
。这取决于应用程序。JDBC兼容模式下的驱动程序在将自身重置为自动提交
模式时将发出提交
,假设您的连接池配置为在自动提交
中分发连接。您对“放弃”的定义是什么?应用程序通常使用连接池,该连接池有意维护到数据库的连接,以避免为应用程序所需的每个连接创建新物理连接的开销。这通常被视为性能优化。