2012-03-23 658 views
0

我发现SQL插入语句运行后发生此错误。 SQL由从Java执行的存储过程调用。请看下面。PostgresSQL:由于管理员命令而终止连接postgresql

=== 2012-03-23 20:39:13 Insert statement procedure executed === 

2012-03-23 21:16:01 CST:[local]:[email protected]:[1591]:FATAL: 57P01: terminating connection due to administrator command 
2012-03-23 21:16:01 CST:[local]:[email protected]:[1591]:LOCATION: ProcessInterrupts, postgres.c:2662 
2012-03-23 21:16:01 CST:[local]:[email protected]:[656]:NOTICE: 00000: Slony-I: cleanup stale sl_nodelock entry for pid=1583 
2012-03-23 21:16:01 CST:[local]:[email protected]:[656]:LOCATION: exec_stmt_raise, pl_exec.c:2298 
2012-03-23 21:22:55 CST:[local]:[email protected]:[17236]:NOTICE: 00000: Slony-I: cleanup stale sl_nodelock entry for pid=1590 
2012-03-23 21:22:55 CST:[local]:[email protected]:[17236]:CONTEXT: SQL statement "SELECT "_slon_rep".cleanupNodelock()" 
     PL/pgSQL function "cleanupevent" line 77 at PERFORM 
2012-03-23 21:22:55 CST:[local]:[email protected]:[17236]:LOCATION: exec_stmt_raise, pl_exec.c:2298 
2012-03-23 21:22:55 CST:[local]:[email protected]:[17236]:NOTICE: 00000: Slony-I: cleanup stale sl_nodelock entry for pid=1634 
2012-03-23 21:22:55 CST:[local]:[email protected]:[17236]:CONTEXT: SQL statement "SELECT "_slon_rep".cleanupNodelock()" 
     PL/pgSQL function "cleanupevent" line 77 at PERFORM 
2012-03-23 21:22:55 CST:[local]:[email protected]:[17236]:LOCATION: exec_stmt_raise, pl_exec.c:2298 

=== 2012-03-23 22:15:04 Insert statement procedure return release signal to Java === 

在我的数据库中有2个模式。 “应用程序”和“报告”,他们两个人都被Slony相互同步。 我检查了表格,发现这些记录是由于20:39:13。我就点就是Postgres的,因为在20时39分13秒已经执行INSERT语句在22时15分04秒返回释放信号到Java。我想上面的过程受到了影响,插入语句过程被挂起,需要等到它完成后才发布到Java。

在此先感谢 停止:)

+0

要允许任何人找到答案,请启用log_statement =“all”并将其应用于PostgreSQL,并在发生这种情况时编辑您的问题以包含来自PostgreSQL的日志? – 2013-03-26 01:45:04

+0

也是什么版本的PostgreSQL是这样的? – 2013-03-26 15:35:47

回答

0

有我的数据库2架构。 “应用程序”和“报告”,他们两个人都被Slony相互同步。

我的猜测是,Slony正在检测插入到副本中的记录(请记住,Slony是Master-Slave)并放弃您的连接。请只复制一种方法。