Прилинкованный сервер отключается...
KBAHT
Дата: 09.10.2003 10:13:29
Есть: прилинкованный сервер ZZ.
Иногда этот сервер останавливают админы.
Есть запрос запрос вида
Select * from OpenQuery(ZZ,'....')
Вопрос: есть ли какая-нибудь возможность определить удачно ли выполнился этот запрос? А ещё лучше - перед запросом каким-либо способом определить работает ZZ или нет?
Glory
Дата: 09.10.2003 11:29:35
есть ли какая-нибудь возможность определить удачно ли выполнился этот запрос?
Если неудачно, то сгенерируется исключение, которое можно обработать на клиенте.
А ещё лучше - перед запросом каким-либо способом определить работает ZZ или нет?
Можно выяснить виден ли сервер в сети с помощью osql -L.
Можно выяснить пингуется ли адрес/имя с помощью ping.
Можно выяснить можно ли к нему подконнектиться с помощью odbcping.exe.
Но вот выяснить _заранее_ сработатет ли OpenQuery - нельзя.
Но вполне возможно, что вам буедт достаточно первых трех пунктов.
KBAHT
Дата: 09.10.2003 11:40:39
Спасибо за ответ.
Но запрос находится в хранимой процедуре.
И выполнение его выглядит как зависание сервера.
Т.е. отдаётся команда выполнить процедуру и сервер задумывется навсегда. Ни ответа, ни привета.
KBAHT
Дата: 09.10.2003 11:47:01
Кроме того, прилинкованный сервер - не MS SQL, поэтому в "osql -l" его не видно.
KBAHT
Дата: 09.10.2003 11:50:08
ping не сработает ввиду того, что сам компьютер, на котором крутится прилинкованная база остаётся в работе. Стопорится именно сервер БД на этом компе.
Glory
Дата: 09.10.2003 12:35:11
И выполнение его выглядит как зависание сервера.
Хм, а QueryTimeout в опциях linked server-а какой ? Бесконечный ???
Стопорится именно сервер БД на этом компе.
Тогда это вопрос к тому серверу БД - какими средствами можно определить что он запущен.
KBAHT
Дата: 09.10.2003 13:11:29
QueryTimeout - в каких единицах (секунды, минуты...) ?
0 = бесконечность?
В НЕLPE не написано, сорри...
Попробую еще @@ERROR проверить после OpenQuery.
Glory
Дата: 09.10.2003 13:13:50
0 = бесконечность?
Да. Правда вам скорее всего нужен ConnectionTimeout. Ведь до выполнение запроса дело не доходит, если удаленный сервер остановлен
KBAHT
Дата: 09.10.2003 13:19:42
Вот что нашёл:
query timeout --- Time-out value for queries against a linked server. If 0, use the sp_configure default.
Так же: sp_configure default = -1
Спасибо за наводку.
Буду пробовать.