PostgreSQL: разрыв соединения из-за команды администратора postgresql - PullRequest
0 голосов
/ 23 марта 2012

Я обнаружил, что эта ошибка произошла после выполнения оператора вставки SQL. SQL вызывается хранимой процедурой, которая выполняется из Java. Пожалуйста, смотрите как ниже.

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

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

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

В моей базе данных было 2 схемы. «приложение» и «отчет», и оба они были синхронизированы друг с другом Слони. Я проверил в таблице и обнаружил, что эти записи были вставлены с 20: 39: 13 . Меня беспокоит то, почему Postgres возвращает сигнал освобождения Java в 22: 15: 04 , поскольку оператор вставки уже выполнен в 20: 39: 13 . Я полагаю, что вышеупомянутый процесс был затронут, поскольку процесс оператора вставки завис, и нужно дождаться его завершения и затем выпустить его на Java.

Заранее спасибо Стоп:)

1 Ответ

0 голосов
/ 27 марта 2013

В моей базе данных было 2 схемы.«app» и «report», и оба они были синхронизированы друг с другом Slony.

Я предполагаю, что Slony обнаруживает записи, вставленные в реплики (помните, Slony только Master-Slave) и прерывает вашсоединения.Пожалуйста, копируйте только один способ.

...