|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
В WITH динамически формируются куча dblink для подзапроса, в dblink вставляется динамически IP: Код: sql 1.
все работает прекрасно, НО некоторые сервера по ip недоступны и выкидывает ошибку коннекта и весь запрос вываливается с ошибкой Подскажите пожалуйста как обработать ошибку подключения чтобы весь запрос отработал и не выкидовал ошибку игнорируя неудачные соединения в dblink? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2017, 19:09 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2017, 19:22 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
qwwqсникерс, rtfm ленивые стьюденты пошли Код: sql 1.
ставлю и 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? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 10:32 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
"PostgreSQL 8.4.22 on x86_64-unknown-linux-gnu" ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 10:39 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
сникерсqwwqсникерс, rtfm ленивые стьюденты пошли Код: sql 1.
ставлю и 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 сервера в кач-ве описания соединения). поэтому рекомендую перейти на уровень выше и подумать купно, в т.ч. над экономией соединений. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 10:53 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
qwwqсникерспропущено... Код: sql 1.
ставлю и 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? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 12:08 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
про удаленную я понял, т.е. ошибка подключения сюда не входит. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 12:08 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
PS подумал на досуге, что обобщенная обертка не получится. т.к. пж надо передать тип возврата dblink внутрь ф-ии--обертки а это, помнится, в пж не предусмотрено напрочь (могу врать) надо подумать, удастся ли что-то в этом роде : http://plproxy.projects.pgfoundry.org/doc/syntax.html#_dynamic_records думаю нет. (там, думаю, plproxy передает тип возврата в вызовы на шардах) т.ч. придется, вероятно, писать по обертке под конкретный случай возврата. если я не прав -- отпишитесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 12:16 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
сникерс, Пробуйте сходить традиционным кривым путем: Ловите ошибку и тихо гасите/пишите в лог (Какая гадость!). RTFM . ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 12:22 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
сникерс<> Можете немного подробнее пояснить как обработать ошибку подключения <>? 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 12:23 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
ursidoсникерс, Пробуйте сходить традиционным кривым путем: Ловите ошибку и тихо гасите/пишите в лог (Какая гадость!). RTFM . он, кажется, хочет это делать не в плпгскл, а на уровне SQL-запроса, вызывающего dblink (видимо в каждой строке, как кореллят, [вариант -- в лейтерале, которого в 8.4 нет]). я предлагаю использовать обертку над dblink, в которой как раз и трапать, как вы предлагаете . но проблема в том, что обобщенная обертка не получицца. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 12:29 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
qwwq, Именно поэтому колхозить отдельную функцию, которую и вызывать в предложении WITH (как и собирался автор сделать в исходных постах). Тем более, что изначальная задача "вставляется динамически IP" говорит о том, что забить его в статический WITH крайне проблематично. К тому же сильно смущает постановка: не подключились, ну и хрен с ней. Это верный признак того, что подключаться не особо и нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 12:53 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
qwwqобобщенная оберткаДля конкретного запроса обобщенная и не требуется. Все равно описание возвращаемого набора "статическое" по отношению к запросу. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 14:20 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
ursidoсникерс, Пробуйте сходить традиционным кривым путем: Ловите ошибку и тихо гасите/пишите в лог (Какая гадость!). RTFM . Unsupported versions: 7.2 / 7.3 / 7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4 / 9.0 / 9.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 14:57 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
ursido К тому же сильно смущает постановка: не подключились, ну и хрен с ней. Это верный признак того, что подключаться не особо и нужно. Временно не доступен может быть один из нескольких сотен серверов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 14:57 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
сникерс Unsupported versions: 7.2 / 7.3 / 7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4 / 9.0 / 9.1 Да Вы просто днище! Съэкономили одно движение мышкой, чтобы перейти по ссылке. Именно по той, что выделена. Расписание поддержки версий не предлагаю. Слишкам многа буквей. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 15:07 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
сникерсВременно не доступен может быть один из нескольких сотен серверов. И Вам глубоко не интересно, доступен он или нет в данный конкретный момент? В чем принципиальная разница между: - неполные данные - не ответил один из серверов - неполные данные - не ответили все сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 15:11 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
Ребята, qwwq, ursido спасибо, получилось подавить ошибку! Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 17:57 |
|
Обработка ошибки коннекта с dblink (jочень надо)
|
|||
---|---|---|---|
#18+
ursidoсникерсВременно не доступен может быть один из нескольких сотен серверов. И Вам глубоко не интересно, доступен он или нет в данный конкретный момент? В чем принципиальная разница между: - неполные данные - не ответил один из серверов - неполные данные - не ответили все сервера. Если сервер недоступен - это его проблемы, я так счетаю ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 18:03 |
|
|
start [/forum/topic.php?fid=53&msg=39455594&tid=1996508]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 144ms |
0 / 0 |