首页 > 解决方案 > PostgreSQL 迁移后系统累积繁忙。和以前一样的Tomcat7和系统文件

问题描述

我使用新版本的 Postgres 将系统迁移到其他机器。(8.2.23到9.4.5)(新版本测试了很久,解决了一些兼容性错误)。该应用程序具有相同的文件(相同的服务器:tomcat7),并且用户正在使用他们之前执行的相同任务。

我在“psi-probe 3.0”中监控“数据源”。

系统快速跟踪活动连接的限制。(很多忙)。例如,现在我有 15 个 BUSY 没有在服务器状态 (pgadmin) 中显示任何“空闲事务”进程。只有“空闲”进程。(表示正常)。为了避免锁定系统,我输入:maxActive = "200"。(只是延迟直到达到极限)。

试图解决我升级了 JDBC 驱动程序:“postgresql-8.3-604.jdbc3”到“postgresql-42.2.2.jre7”。(没有解决)

这是我在连接池控制上下文中的配置:

<Resource name="jdbc/emp1" auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" maxWait="10000" maxActive="200" maxIdle="5" removeAbandoned="true" removeAbandonedTimeout="1200" logAbandoned="true" validationQuery="SELECT 1" username="*" url="jdbc:postgresql://*:**/*" password="*"/>

搜索解决方案后,我添加了参数:(removeAbandoned、removeAbandonedTimeout 和 logAbandoned)想象问题将在应用程序日志中进行跟踪,并且可能会在“removeAbandonedTimeout”之后删除 BUSY。(它没有发生)。

迁移后我注意到一些奇怪的情况:

很久以前,我遇到了累积 BUSY 的问题,但它与服务器状态 (pgadmin) 中显示的“事务中的空闲”进程是对称的。我修复了未关闭连接的代码。(但现在不是这样)

标签: javapostgresqljdbctomcat7connection-pooling

解决方案


推荐阅读