Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Связанные сервера и отлов ошибок  [new]
x1mar1g
Member

Откуда:
Сообщений: 23
Добрый день.
Столкнулся с такой проблемой, что в 1 случае из 100 запусков выпадает ошибка при работе процедуры со связанными серверами(пропадают временные таблицы по не ведомой мне причине).
При ошибке выпадают несколько строк:
1 строка: "Поставщик OLE DB "%1%" для связанного сервера "%2%". Не нашел таблицу "%3%"" *
2 строка: номе ошибки, степень критичности и т.д.
3 строка: "Не удалось выполнить запрос для связанного сервера "%2%"" *
Если пробовать вытаскивать стандартными @@ERROR или ERROR_MESSAGE(), то выдает "Не удалось выполнить запрос для связанного сервера "%2%"".*

Собственно вопрос как можно вытащить данные именно из первой строки "данные" сообщения?


П.С.: Если так важны точные коды ошибок, то будут, как появлюсь на работе после праздников.
П.П.С: Сервер 2008R2

*Точный текст ошибки не могу вспомнить после праздников Т_Т.
5 янв 15, 12:04    [17086313]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
Glory
Member

Откуда:
Сообщений: 104760
http://msdn.microsoft.com/en-us/library/ms190358(v=sql.105).aspx
5 янв 15, 12:36    [17086371]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
x1mar1g
Member

Откуда:
Сообщений: 23
Glory,

В этом и проблема, мне нужны данные ошибки, которые возвращает драйвер "соединения"(если правильно понял).
Если использовать переменные @@ERROR и "ERROR_MESSAGE()" можно вытащить данные только по "краткому содержанию" ошибки(строка 2,3), а меня интересует и первая строка выводимого сообщения. Потому что в первой строке сообщения написано на каком связанном сервере произошла ошибка(Поставщик OLE DB "%1%" для связанного сервера "%2%") и причина ошибки(Не нашел таблицу "%3%").
6 янв 15, 02:28    [17088325]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
x1mar1g
Glory,

В этом и проблема, мне нужны данные ошибки, которые возвращает драйвер "соединения"(если правильно понял).
Не используйте линкед-серве, а получайте все ошибки в клиентском приложении.
6 янв 15, 02:52    [17088355]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
Glory
Member

Откуда:
Сообщений: 104760
x1mar1g
Glory,

В этом и проблема, мне нужны данные ошибки, которые возвращает драйвер "соединения"(если правильно понял).
Если использовать переменные @@ERROR и "ERROR_MESSAGE()" можно вытащить данные только по "краткому содержанию" ошибки(строка 2,3), а меня интересует и первая строка выводимого сообщения. Потому что в первой строке сообщения написано на каком связанном сервере произошла ошибка(Поставщик OLE DB "%1%" для связанного сервера "%2%") и причина ошибки(Не нашел таблицу "%3%").

Все, что вы можете получить на стороне сервера, вы получаете через ERROR_MESSAGE()
А то, что вы видите в клиентском приложении по имени ManagamentStudio, это то, что получает клиент
6 янв 15, 09:18    [17088491]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
x1mar1g
Member

Откуда:
Сообщений: 23
Glory
Glory,

Все, что вы можете получить на стороне сервера, вы получаете через ERROR_MESSAGE()
А то, что вы видите в клиентском приложении по имени ManagamentStudio, это то, что получает клиент


Во вложении пример ошибки, которая может случиться.
С помощью "ERROR_MESSAGE()" можно вытянуть только последнюю строку, а меня интересует первая строка. >_>

К сообщению приложен файл. Размер - 74Kb
6 янв 15, 11:49    [17088735]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
Glory
Member

Откуда:
Сообщений: 104760
x1mar1g
С помощью "ERROR_MESSAGE()" можно вытянуть только последнюю строку, а меня интересует первая строка. >_>

Еще раз
Ваш скриншот - это, что получает клиентская программа.
А на стороне сервера все, что вы можете получить, возвращает ERROR_MESSAGE()
6 янв 15, 11:51    [17088745]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
x1mar1g
Member

Откуда:
Сообщений: 23
Glory
Еще раз
Ваш скриншот - это, что получает клиентская программа.
А на стороне сервера все, что вы можете получить, возвращает ERROR_MESSAGE()


Плохо. У ERROR_MESSAGE() слишком мало информации.
Спасибо за помощь.

К сообщению приложен файл. Размер - 17Kb
6 янв 15, 12:00    [17088771]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
Glory
Member

Откуда:
Сообщений: 104760
x1mar1g
Плохо. У ERROR_MESSAGE() слишком мало информации.

Зачем вам больше на стороне сервера ?
6 янв 15, 12:02    [17088775]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
Glory
x1mar1g
Плохо. У ERROR_MESSAGE() слишком мало информации.

Зачем вам больше на стороне сервера ?
Это аналогично вопросу "Зачем вам сообщение об ошибке на стороне сервера"

Ценность функции ERROR_MESSAGE() - вопрос дискуссионный, но невозможность полдучить все ошибки - явный баг. Зачем номер и текст сообщения об ошибке, если они не являются номером и текстом сообщения об ошибке?
6 янв 15, 12:12    [17088801]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
x1mar1g
Member

Откуда:
Сообщений: 23
Glory
x1mar1g
Плохо. У ERROR_MESSAGE() слишком мало информации.

Зачем вам больше на стороне сервера ?


Работники запускают "процедуру" из под vba на сервере, а он уже собирает данные с нескольких серверов. Бывают ситуации, когда при выполнении процедуры, она перестает видеть временные таблицы(1\100 запусков примерно, предположительно переподключает соединение). Чтобы избежать этого можно конечно материализовать данные на стороне связанного сервера, но место тоже не резиновое. Если процедура падает то оставляет много "временного" мусора(данные, которые успели вытянуться с других серверов до падения), который потом приходится чистить руками.

Чтобы отловить в каких местах "падает чаще", хотим сделать либо перепроверку на наличие временных таблиц, или материализовать эти шаги.
6 янв 15, 12:14    [17088806]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
Glory
Member

Откуда:
Сообщений: 104760
x1mar1g
Работники запускают "процедуру" из под vba на

И что им мешает читать полное сообщение об ошибке ?
6 янв 15, 12:17    [17088811]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
x1mar1g
Member

Откуда:
Сообщений: 23
Glory
x1mar1g
Работники запускают "процедуру" из под vba на

И что им мешает читать полное сообщение об ошибке ?


Скажем так, они не знают, как работает инструмент на уровне кода. Они нажали кнопку и подождали "5 минут" и данные появились.
И мы(разработчики) не знаем что за ошибка у них вылезла. Правда иногда они звонят и говорят об ошибках, но "прошаренные" уже давно научились закрывать ошибку и запускать заново. Инструмент работает уже в таком режиме 2 года и постоянно дорабатывается из-за чего бывают и "новые ошибки", вот и хотелось бы выловить их все и отладить.
6 янв 15, 12:27    [17088848]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
Glory
Member

Откуда:
Сообщений: 104760
x1mar1g
Скажем так, они не знают, как работает инструмент на уровне кода. Они нажали кнопку и подождали "5 минут" и данные появились.
И мы(разработчики) не знаем что за ошибка у них вылезла. Правда иногда они звонят и говорят об ошибках, но "прошаренные" уже давно научились закрывать ошибку и запускать заново. Инструмент работает уже в таком режиме 2 года и постоянно дорабатывается из-за чего бывают и "новые ошибки", вот и хотелось бы выловить их все и отладить.

Еще раз задам вопрос - зачем для этого нужен полный текст ошибки именно на стороне сервера то ?
6 янв 15, 12:32    [17088873]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
x1mar1g
Member

Откуда:
Сообщений: 23
Glory
Еще раз задам вопрос - зачем для этого нужен полный текст ошибки именно на стороне сервера то ?



Я не знаю, как получить полный текст в принципе и для сбора, например статистики, залить в какую-нибудь таблицу.
В этом и заключался вопрос можно ли вытащить полное сообщение, и, если можно, то, как?
6 янв 15, 12:41    [17088901]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
Glory
Member

Откуда:
Сообщений: 104760
x1mar1g
Я не знаю, как получить полный текст в принципе и для сбора, например статистики, залить в какую-нибудь таблицу.
В этом и заключался вопрос можно ли вытащить полное сообщение, и, если можно, то, как?

Вы задаваемый вам вопрос понимаете ?
Что мешает вам читать полное сообщение из под vba ?
И делать с ним все, что вам нужно ?
6 янв 15, 12:46    [17088911]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
x1mar1g
Member

Откуда:
Сообщений: 23
Glory
Вы задаваемый вам вопрос понимаете ?
Что мешает вам читать полное сообщение из под vba ?
И делать с ним все, что вам нужно ?


Понимаю.
Хорошо, задам вопрос по другому "Как вытащить текст ошибки клиентского приложение, например "ManagamentStudio" и записать например в переменную"?
И аналогичный вопрос с vba.
6 янв 15, 12:55    [17088929]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
Glory
Member

Откуда:
Сообщений: 104760
x1mar1g
"Как вытащить текст ошибки клиентского приложение, например "ManagamentStudio" и записать например в переменную"?

Получить исходные тексты программного кода ManagamentStudio
Найти там модуль, который отвечает за обработку сообщений от сервера
Переписать его
6 янв 15, 12:58    [17088936]     Ответить | Цитировать Сообщить модератору
 Re: Связанные сервера и отлов ошибок  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
x1mar1g
И аналогичный вопрос с vba.
В VBA, как в любом другом клиенте, ошибки пишутся в коллекцию ошибок, там проблем нет.

В T-SQL вы никак все ошибки не поймаете.
6 янв 15, 14:05    [17089136]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить