|
Соединение разорвано другой стороной
|
|||
---|---|---|---|
#18+
Коллеги, может кто-нибудь сталкивался с такой проблемой. На компе А работает сервис, написанный на qt. Периодически, раз в 10 секунд он вызывает хранимую процедуру (ХП) из базы ПГ. Процедура связывается через postgres_fdw в компом В. Они делают там инсерты и апдейты, таким образом синхронизируют две базы на разных серверах. Почему выбран такой способ синхронизации, а не штатный сейчас не будем обусждать вопрос не в этом. При закрытии соединения с базой после выполнения ХП на компе В в логе Постгреса появляется запись " СООБЩЕНИЕ: не удалось получить данные от клиента: Соединение разорвано другой стороной". ХП вызывалась с компа А, но в его логе никаких сообщений не появляется. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Всю ХП я приводить не буду, ибо большая. Ее работа сводится к сбору id записей с компа В а потом вставку их в свою таблицу Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
TMP_CLUST_DATA_INSERT - временная таблица, создается в этой же ХП Самое прикольное, что если я вызываю эту ХП из PgAdmin, то никакого сообщения нигде не появляется. Правда Админ не закрывает соединение с базой после выполнения запроса, а моя прога закрывает. И это сообщение появляется именно на закрытии соединения. Есть какие - нибудь идеи? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2020, 14:50 |
|
Соединение разорвано другой стороной
|
|||
---|---|---|---|
#18+
postgres_fdw кэширует использованные в сессии соединения (contrib/postgres_fdw/connection.c) А вот их закрытия при завершении процесса я как-то не вижу. Как собственно и подходящего callback на завершении процесса. Поэтому для базы, к которой postgres_fdw подключался и выглядит как закрытие сетевого соединения. Ну как похожая на правду теория, которую мне неохота проверять глубже чем взглядом в исходник. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2020, 15:56 |
|
Соединение разорвано другой стороной
|
|||
---|---|---|---|
#18+
В доке не пишут, что соединение нужно специально открывать и закрывать. А есть такая возможность принудительного завершения сеанса? Наверное мне его как раз и не хватает ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2020, 16:01 |
|
Соединение разорвано другой стороной
|
|||
---|---|---|---|
#18+
Melkij, не подскажете как закрыть сеанс в fdw? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2020, 16:09 |
|
|
start [/forum/topic.php?fid=53&fpage=25&tid=1994574]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
301ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 407ms |
0 / 0 |