Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 博士后挂起交易_Java_Database_Postgresql_Jdbc - Fatal编程技术网

Java 博士后挂起交易

Java 博士后挂起交易,java,database,postgresql,jdbc,Java,Database,Postgresql,Jdbc,我们有一个连接到Postgres数据库的Java应用程序。Java应用程序有时会耗尽内存并死机,因为它正在等待对发送到数据库的事务的响应,而该事务从未返回 在问题发生的时间段内,我以1分钟的间隔启用了pg_锁和事务的日志记录。我找到了导致问题的事务,但它似乎已挂起 它在一个不超过10条记录的表上执行一个简单的update语句,但它在事务中停留了数小时。pg_locks视图中没有任何东西表明此事务正在等待锁定,但我不知道它为什么会挂起。一旦我们杀死Java应用程序并重新启动它,该事务就会清除,业务

我们有一个连接到Postgres数据库的Java应用程序。Java应用程序有时会耗尽内存并死机,因为它正在等待对发送到数据库的事务的响应,而该事务从未返回

在问题发生的时间段内,我以1分钟的间隔启用了pg_锁和事务的日志记录。我找到了导致问题的事务,但它似乎已挂起


它在一个不超过10条记录的表上执行一个简单的update语句,但它在事务中停留了数小时。pg_locks视图中没有任何东西表明此事务正在等待锁定,但我不知道它为什么会挂起。一旦我们杀死Java应用程序并重新启动它,该事务就会清除,业务将正常进行。问题是,什么会导致此事务挂起?

您正在进行连接池吗?请在您的问题中添加更多信息(例如postgres版本、驱动程序版本等),我将不得不向开发人员询问连接池问题。不幸的是,这是一个较旧的应用程序,JDBC jar文件的文件名中似乎没有列出版本,jar清单中也没有列出版本,因此我不知道如何确定它是哪个版本。我们正在使用postgres 9.2。此外,这是一个很少使用的数据库,在出现问题期间,实际上没有发生任何其他事务(同一个表上的delete语句除外,该语句在同一时间启动,似乎在等待第一个事务完成)您可以运行
java-cp yourjar.jar org.postgresql.util.PSQLDriverVersion
来获取驱动程序的版本(用实际的文件名替换
yourjar.jar
),谢谢这个命令,看起来像postgresql9.1jdbc4