2012-03-23 51 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)並放棄您的連接。請只複製一種方法。