Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Postgresql 如何查找postgres中哪个对象不处于先决条件状态?_Postgresql_Hibernate - Fatal编程技术网

Postgresql 如何查找postgres中哪个对象不处于先决条件状态?

Postgresql 如何查找postgres中哪个对象不处于先决条件状态?,postgresql,hibernate,Postgresql,Hibernate,我有一个在Postgresql上运行hibernate的java应用程序。 有时应用程序在运行之后会进入不一致状态 2017-08-01 11:50:17,317 WARN o.h.e.j.s.SqlExceptionHelper [http-nio-8080-exec-4] SQL Error: 0, SQLState: 55000 2017-08-01 11:50:17,318 ERROR o.h.e.j.s.SqlExceptionHelper [http-nio-8080-exec-4]

我有一个在Postgresql上运行hibernate的java应用程序。 有时应用程序在运行之后会进入不一致状态

2017-08-01 11:50:17,317 WARN o.h.e.j.s.SqlExceptionHelper [http-nio-8080-exec-4] SQL Error: 0, SQLState: 55000
2017-08-01 11:50:17,318 ERROR o.h.e.j.s.SqlExceptionHelper [http-nio-8080-exec-4] This statement has been closed.
我打开postgres日志

 log_destination = 'csvlog'
 logging_collector = on
 log_directory = 'pg_log'
 log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
 log_file_mode = 0600
 client_min_messages = debug5
 log_min_messages = debug5
 log_min_error_statement = debug5
postgres日志中没有任何记录表明某个对象未处于先决条件状态


如何找出哪个对象未处于先决条件状态?

根据注释中的附加信息,该错误消息源自JDBC驱动程序

原因是在使用
close()
方法关闭
org.postgresql.jdbc.pg语句
org.postgresql.jdbc.PgPreparedStatement
org.postgresql.jdbc.PgCallableStatement
后,代码尝试再次使用它


这是Hibernate或应用程序代码中的一个错误,可能是由于线程没有正确同步。

找出包含的异常,它的消息将告诉您更多信息。这是一个大问题-没有其他异常。在select查询的三个日志项之后,应用程序日志中只有两行<代码>2017-08-01 11:50:17317警告o.h.e.j.s.SqlExceptionHelper[http-nio-8080-exec-4]SQL错误:0,SQLState:55000 2017-08-01 11:50:17318错误o.h.e.j.s.SqlExceptionHelper[http-nio-8080-exec-4]此语句已关闭。第二个语句指出此会话已断开,并导致应用程序断开。PostgreSQL不会在没有错误消息的情况下抛出错误55000,JDBC驱动程序会将其传播为
java.sql.SqlException
。也许hibernate没有显示错误消息,但它一定在某个地方。你能用调试器来深入研究它吗?@LaurenzAlbe我能找出代码55000是postgres驱动程序中的代码。这不是PostgreSQL状态。是。我扩展了postgres驱动程序,可以看到一条语句(使用原子计数器)同时在不同的线程中使用。最奇怪的是它(PgPreparedStatement)用于不同的查询。我可以理解它是否用于不同线程中的类似查询。但不是这样…从5.2降级到Hibernate 4.3后,异常消失。。。