Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 ошибки в хранимках подлинкованных серверов  [new]
ошибки в хранимках
Guest
есть процедура, которая что-то делает с данными базы подлинкованного сервера:
set nocount on
set transaction isolation level read uncommitted
set xact_abort on

begin try
	...
end try
begin catch 
    declare @ErrMsg varchar(200) = error_message()
		
    if @@trancount > 0 rollback tran
		
    raiserror(@ErrMsg, 20, 1) with log
end catch

она валится, и если ее запускать на родном сервере, то отрабатывает блок try...catch и выкидывает ошибку.

дальше, эта-же процедура запускается с другого сервера в другой процедуре с блоком try...catch, при этом никакой ошибки не генерируется и все завершается нормально, правда при этом в сообщениях сервера появляется сообщение:
OLE DB provider "SQLNCLI10" for linked server "cypress" returned message "Unspecified error".

что надо сделать, чтобы и при запуске с другого сервера генерировалась ошибка?
15 май 13, 11:27    [14297712]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ошибки в хранимках
Guest
т.е. ситуация такая: выполняем на родном сервере - ошибка есть; на другом, к которому родной подлинкован - просто сообщение.
15 май 13, 11:55    [14297955]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ошибки в хранимках
Guest
ошибку на родном сервере выдает:

Сообщение 0, уровень 11, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.
15 май 13, 12:08    [14298114]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
У Вас

raiserror(@ErrMsg, 20, 1)


20 уровень Severity рвет соединение с базой. Какие к черту могут быть ошибки?! Вот Вы и получаете от студии

Сообщение 0, уровень 11, состояние 0, строка 0


Сообщение было отредактировано: 15 май 13, 12:53
15 май 13, 12:53    [14298523]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ошибки в хранимках
Guest
pkarklin,

заменил на
raiserror(@ErrMsg, 16, 1)
то-же самое
15 май 13, 13:09    [14298674]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
ошибки в хранимках
то-же самое


Что, тоже самое?
15 май 13, 13:25    [14298822]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ошибки в хранимках
Guest
pkarklin,

ничего не изменилось, проблема осталась

уточнить еще, там в хранимке открывается distributed транзакция.
15 май 13, 13:33    [14298901]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
ошибки в хранимках,

Это проблема:


автор
Сообщение 0, уровень 11, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.


?
15 май 13, 13:37    [14298941]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ошибки в хранимках
Guest
pkarklin,

нет. проблема в том, что если я указанную выше процедуру (которая валится) запускаю на родном сервере, то ошибка есть.
если ее запускаю на другом (которому подлинковывается родной для хранимки сервер) то ошибки нет, просто сообщение, а мне надо чтобы если процедура валится, то и ошибка тоже всегда была, чтобы ее отловить и выдать сообщение.
15 май 13, 13:43    [14298986]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ошибки в хранимках
Guest
кстати, вот еще момент.

если на родном сервере ее запускать много раз, то сообщения будут разными:

Сообщение 0, уровень 11, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.


или

Сообщение 1206, уровень 18, состояние 118, процедура _test, строка 70
The Microsoft Distributed Transaction Coordinator (MS DTC) has cancelled the distributed transaction.


что странно
15 май 13, 13:56    [14299090]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
ошибки в хранимках
нет. проблема в том, что если я указанную выше процедуру (которая валится) запускаю на родном сервере, то ошибка есть.
если ее запускаю на другом (которому подлинковывается родной для хранимки сервер) то ошибки нет, просто сообщение, а мне надо чтобы если процедура валится, то и ошибка тоже всегда была, чтобы ее отловить и выдать сообщение.


ни в этом ли дело:

автор
дальше, эта-же процедура запускается с другого сервера в другой процедуре с блоком try...catch,
15 май 13, 13:56    [14299091]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ошибки в хранимках
Guest
pkarklin
ни в этом ли дело:

автор
дальше, эта-же процедура запускается с другого сервера в другой процедуре с блоком try...catch,

ну вот я и хочу в блоке try...catch отловить ошибку, если хранимка из подлинкованного сервера отработала неправильно, а она отрабатывает неправильно (если ее запускать на родном сервере будут ошибки), но при этом в блоке try...catch ничего не ловится, все нормально, а так не хотелось бы. хотелось бы как-то определить, что хранимка отработала неправильно и дать сообщение.
15 май 13, 14:09    [14299193]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
ошибки в хранимках,

автор
set nocount on


Во всех процедурах есть?
15 май 13, 14:18    [14299289]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ambarka_max
Member

Откуда: Россия
Сообщений: 517
Вилами по воде, но может внутри CATCH стоит писать так:
if @@trancount > 0 and xact_state() in (1, -1)
ROLLBACK TRAN
15 май 13, 14:28    [14299392]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ошибки в хранимках
Guest
pkarklin
ошибки в хранимках,

автор
set nocount on


Во всех процедурах есть?
да
15 май 13, 14:40    [14299488]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ошибки в хранимках
Guest
ambarka_max,

не, не помогло
15 май 13, 14:44    [14299522]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
ошибки в хранимках
заменил на
raiserror(@ErrMsg, 16, 1)
то-же самое


После этого на "родном сервере" ошибка осталась такой же:

автор
Сообщение 0, уровень 11, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.


?
15 май 13, 14:52    [14299588]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ибки в хранимках
Guest
pkarklin
ошибки в хранимках
заменил на
raiserror(@ErrMsg, 16, 1)
то-же самое


После этого на "родном сервере" ошибка осталась такой же:

автор
Сообщение 0, уровень 11, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.


?
да
причем выдает не одно и то-же сообщение, а два разных, как повезет:

Сообщение 0, уровень 11, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.

или
Сообщение 1206, уровень 18, состояние 118, процедура OrtemsExport, строка 213
The Microsoft Distributed Transaction Coordinator (MS DTC) has cancelled the distributed transaction.


что очень странно, на мой взгляд. т.е. жму f5 - когда выдает первое сообщение, когда второе. все это на "родном" сервере. при этом она выполняет действия на базе подлинкованного сервера.
15 май 13, 15:51    [14300147]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Результаты

SELECT @@version


и данные окна Help->About SSMS покажите.

Сообщение было отредактировано: 15 май 13, 16:02
15 май 13, 16:02    [14300250]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ошибки в хранимках
Guest
pkarklin,

Help->About SSMS:
Microsoft SQL Server Management Studio 10.50.2500.0
Клиентские средства служб Microsoft Analysis Services 10.50.2500.0
Компоненты доступа к данным (MDAC) 3.85.1132
Microsoft MSXML 2.6 3.0 5.0 6.0
Microsoft Internet Explorer 8.0.6001.18702
Microsoft .NET Framework 2.0.50727.3643
Операционная система 5.1.2600


на одном:
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

на другом:
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
15 май 13, 16:13    [14300377]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
ошибки в хранимках,

SP2 на клиентские тулзы если попробовать накатить?
15 май 13, 16:19    [14300434]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
ошибки в хранимках
Guest
pkarklin,

ок. попробую, может тогда SP2 и на сервера тоже?
15 май 13, 16:23    [14300467]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
ошибки в хранимках
ок. попробую, может тогда SP2 и на сервера тоже?


Пока не надо.
15 май 13, 16:33    [14300585]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
Glory
Member

Откуда:
Сообщений: 104751
ибки в хранимках
Сообщение 0, уровень 11, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.

Это какая то внутренняя ошибка сервера. Ибо сообщения с номером 0 не существует.
В логах сервера возможно есть дамп.
Если ошибка воспроизводится и есть дамп, то прямая дорога в поддержку
15 май 13, 16:38    [14300663]     Ответить | Цитировать Сообщить модератору
 Re: ошибки в хранимках подлинкованных серверов  [new]
nezhadnye_my
Guest
вот была подобная ошибка,
происходило при INSERT EXEC, где число выходных столбцов резалтсета
не соответствовало числу столбцов в таблице, при участии TRY..CATCH.
правда там не вызывался RAISERROR внутри TRY..CATCH
15 май 13, 17:09    [14300870]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить