powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Обработка ошибки коннекта с dblink (jочень надо)
19 сообщений из 19, страница 1 из 1
Обработка ошибки коннекта с dblink (jочень надо)
    #39454975
сникерс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В WITH динамически формируются куча dblink для подзапроса, в dblink вставляется динамически IP:

Код: sql
1.
...FROM dblink('host='||comp_ip||'....





все работает прекрасно, НО

некоторые сервера по ip недоступны и выкидывает ошибку коннекта и весь запрос вываливается с ошибкой





Подскажите пожалуйста как обработать ошибку подключения чтобы весь запрос отработал и не выкидовал ошибку игнорируя неудачные соединения в dblink?
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39454980
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сникерс,

rtfm

ленивые стьюденты пошли
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455190
сникерс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqсникерс,

rtfm

ленивые стьюденты пошли

Код: sql
1.
dblink(text connstr, text sql [, bool fail_on_error])


ставлю и true и false в конце - все равно выдает ошибку:

ERROR: could not establish connection
SQL-состояние: 08001
Подробности: could not connect to server: No route to host
Is the server running on host "192.168.180.69" and accepting
TCP/IP connections on port 5432?
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455195
сникерс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"PostgreSQL 8.4.22 on x86_64-unknown-linux-gnu"
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455207
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сникерсqwwqсникерс,

rtfm

ленивые стьюденты пошли

Код: sql
1.
dblink(text connstr, text sql [, bool fail_on_error])


ставлю и true и false в конце - все равно выдает ошибку:

ERROR: could not establish connection
SQL-состояние: 08001
Подробности: could not connect to server: No route to host
Is the server running on host "192.168.180.69" and accepting
TCP/IP connections on port 5432?

а приложить ганглий и немного рук -- религия воспрещает ?
напишите свою обёртку, которая в отличь от fail_on_error
fail_on_errorfail_on_error

Если равен true (это значение по умолчанию), в случае ошибки, выданной на удалённой стороне соединения, ошибка также выдаётся локально. Если равен false, удалённая ошибка выдаётся локально как ЗАМЕЧАНИЕ, и функция не возвращает строки.

обрабатывает ошибку на вызывающей стороне.

работа как раз для стьюдента


пс. использование неименованного соединения дблинк чревато . а использование неподготовленного -- означает поднятие нового соединения на каждый вызов (та же хрень при использовании fdw сервера в кач-ве описания соединения). поэтому рекомендую перейти на уровень выше и подумать купно, в т.ч. над экономией соединений.
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455308
сникерс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqсникерспропущено...


Код: sql
1.
dblink(text connstr, text sql [, bool fail_on_error])


ставлю и true и false в конце - все равно выдает ошибку:

ERROR: could not establish connection
SQL-состояние: 08001
Подробности: could not connect to server: No route to host
Is the server running on host "192.168.180.69" and accepting
TCP/IP connections on port 5432?

а приложить ганглий и немного рук -- религия воспрещает ?
напишите свою обёртку, которая в отличь от fail_on_error
fail_on_errorfail_on_error

Если равен true (это значение по умолчанию), в случае ошибки, выданной на удалённой стороне соединения, ошибка также выдаётся локально. Если равен false, удалённая ошибка выдаётся локально как ЗАМЕЧАНИЕ, и функция не возвращает строки.

обрабатывает ошибку на вызывающей стороне.

работа как раз для стьюдента


пс. использование неименованного соединения дблинк чревато . а использование неподготовленного -- означает поднятие нового соединения на каждый вызов (та же хрень при использовании fdw сервера в кач-ве описания соединения). поэтому рекомендую перейти на уровень выше и подумать купно, в т.ч. над экономией соединений.


Ничего непонятно

Можете немного подробнее пояснить как обработать ошибку подключения чтобы весь запрос отработал и не выкидовал ошибку игнорируя неудачные соединения в dblink?
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455309
сникерс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про удаленную я понял, т.е. ошибка подключения сюда не входит.
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455317
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS
подумал на досуге, что обобщенная обертка не получится.

т.к. пж надо передать тип возврата dblink внутрь ф-ии--обертки
а это, помнится, в пж не предусмотрено напрочь (могу врать)

надо подумать, удастся ли что-то в этом роде :
http://plproxy.projects.pgfoundry.org/doc/syntax.html#_dynamic_records
думаю нет. (там, думаю, plproxy передает тип возврата в вызовы на шардах)


т.ч. придется, вероятно, писать по обертке под конкретный случай возврата.
если я не прав -- отпишитесь.
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455322
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сникерс,

Пробуйте сходить традиционным кривым путем:
Ловите ошибку и тихо гасите/пишите в лог (Какая гадость!).
RTFM .
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455323
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сникерс<>
Можете немного подробнее пояснить как обработать ошибку подключения <>?

https://postgrespro.ru/docs/postgrespro/9.6/plpgsql.html
см:
https://postgrespro.ru/docs/postgrespro/9.6/plpgsql-control-structures.html#plpgsql-error-trapping
and
https://postgrespro.ru/docs/postgrespro/9.6/plpgsql-errors-and-messages.html
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455329
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ursidoсникерс,

Пробуйте сходить традиционным кривым путем:
Ловите ошибку и тихо гасите/пишите в лог (Какая гадость!).
RTFM .
он, кажется, хочет это делать не в плпгскл, а на уровне SQL-запроса, вызывающего dblink (видимо в каждой строке, как кореллят, [вариант -- в лейтерале, которого в 8.4 нет]).

я предлагаю использовать обертку над dblink, в которой как раз и трапать, как вы предлагаете .
но проблема в том, что обобщенная обертка не получицца.
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455351
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,

Именно поэтому колхозить отдельную функцию, которую и вызывать в предложении WITH (как и собирался автор сделать в исходных постах).
Тем более, что изначальная задача "вставляется динамически IP" говорит о том, что забить его в статический WITH крайне проблематично.

К тому же сильно смущает постановка: не подключились, ну и хрен с ней. Это верный признак того, что подключаться не особо и нужно.
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455415
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqобобщенная оберткаДля конкретного запроса обобщенная и не требуется. Все равно описание возвращаемого набора "статическое" по отношению к запросу.
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455450
сникерс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ursidoсникерс,

Пробуйте сходить традиционным кривым путем:
Ловите ошибку и тихо гасите/пишите в лог (Какая гадость!).
RTFM .



Unsupported versions: 7.2 / 7.3 / 7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4 / 9.0 / 9.1
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455451
сникерс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ursido
К тому же сильно смущает постановка: не подключились, ну и хрен с ней. Это верный признак того, что подключаться не особо и нужно.

Временно не доступен может быть один из нескольких сотен серверов.
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455459
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сникерс
Unsupported versions: 7.2 / 7.3 / 7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4 / 9.0 / 9.1





Да Вы просто днище!

Съэкономили одно движение мышкой, чтобы перейти по ссылке. Именно по той, что выделена.
Расписание поддержки версий не предлагаю. Слишкам многа буквей.
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455462
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сникерсВременно не доступен может быть один из нескольких сотен серверов.

И Вам глубоко не интересно, доступен он или нет в данный конкретный момент?

В чем принципиальная разница между:
- неполные данные - не ответил один из серверов
- неполные данные - не ответили все сервера.
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455587
сникерс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, qwwq, ursido спасибо, получилось подавить ошибку!

Код: sql
1.
2.
EXCEPTION
    WHEN sqlclient_unable_to_establish_sqlconnection THEN /*сидим на попе ровно*/ END;
...
Рейтинг: 0 / 0
Обработка ошибки коннекта с dblink (jочень надо)
    #39455594
сникерс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ursidoсникерсВременно не доступен может быть один из нескольких сотен серверов.

И Вам глубоко не интересно, доступен он или нет в данный конкретный момент?

В чем принципиальная разница между:
- неполные данные - не ответил один из серверов
- неполные данные - не ответили все сервера.

Если сервер недоступен - это его проблемы, я так счетаю
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Обработка ошибки коннекта с dblink (jочень надо)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]