Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Профайлер: Failed to match corresponding handle value  [new]
3lqs
Member [заблокирован]

Откуда:
Сообщений: 1532
Вроде по всем правилам реплею трейс, но в процессе, на экран вываливается куча вот таких ошибок (все относятся к курсорам):
RPC:Starting exec sp_cursorfetch 186319787,2,1,2 212
Replay Internal Error Failed to match corresponding handle value.

Подумал, что может колонки Handle для курсорных ивентов в трейсе не хватает (она не вставлена в темплейт реплея), добавил, не помогает.
Что поправить/добавить?
Спасибо.
18 дек 09, 16:42    [8088183]     Ответить | Цитировать Сообщить модератору
 Re: Профайлер: Failed to match corresponding handle value  [new]
3lqs
Member [заблокирован]

Откуда:
Сообщений: 1532
Господа, так как все-таки, серверные курсоры API реплеятся или нет? Каковы для этого услловия (какие ивенты и колонки и т.п.) должны быть, кроме тех, которые в реплейном темплейте? Почему может быть не виден хэндл курсора?
21 дек 09, 11:42    [8094588]     Ответить | Цитировать Сообщить модератору
 Re: Профайлер: Failed to match corresponding handle value  [new]
Glory
Member

Откуда:
Сообщений: 104751
3lqs
Господа, так как все-таки, серверные курсоры API реплеятся или нет? Каковы для этого услловия (какие ивенты и колонки и т.п.) должны быть, кроме тех, которые в реплейном темплейте? Почему может быть не виден хэндл курсора?

А соответствующие события RPC:Starting exec sp_cursoropen в вашей трассе есть ?
21 дек 09, 11:46    [8094605]     Ответить | Цитировать Сообщить модератору
 Re: Профайлер: Failed to match corresponding handle value  [new]
3lqs
Member [заблокирован]

Откуда:
Сообщений: 1532
Glory
3lqs
Господа, так как все-таки, серверные курсоры API реплеятся или нет? Каковы для этого услловия (какие ивенты и колонки и т.п.) должны быть, кроме тех, которые в реплейном темплейте? Почему может быть не виден хэндл курсора?

А соответствующие события RPC:Starting exec sp_cursoropen в вашей трассе есть ?
Да, часть ошибок из-за этого.
А вот такой лог можете объяснить, тут что не так, здесь, sp_cursorfetch видит хэндл курсора 180150009 (отрабатывает), но следующий sp_cursorexecute не видит хэндл стейтмента 1073741830?

RPC:Starting declare @p1 int
set @p1=NULL
declare @p2 int
set @p2=0
declare @p5 int
set @p5=20496
declare @p6 int
set @p6=8193
declare @p7 int
set @p7=0
exec sp_cursorprepexec @p1 output,@p2 output,N'@P1 int,@P2 int',N'SELECT A.CONFIGTYPE,A.ID,A.VALUE,A.MODIFIEDDATE,A.MODIFIEDTIME,A.MODIFIEDBY,A.CREATEDDATE,A.CREATEDTIME,A.CREATEDBY,A.RECVERSION,A.RECID FROM SYSCONFIG A WITH( INDEX(I_65514CONFIGTYPE)) WHERE ((CONFIGTYPE=@P1) AND (ID=@P2)) OPTION(FAST 100)',@p5 output,@p6 output,@p7 output,5,1518
select @p1, @p2, @p5, @p6, @p7
...
CursorExecute
CursorPrepare
RPC Output Parameter 1073741830
RPC Output Parameter 180150009
...
RPC:Starting exec sp_cursorfetch 180150009...
...
RPC:Starting declare @p2 int
set @p2=0
declare @p3 int
set @p3=16400
declare @p4 int
set @p4=8193
declare @p5 int
set @p5=100
exec sp_cursorexecute 1073741830,@p2 output,@p3 output,@p4 output,@p5 output,5,1393
select @p2, @p3, @p4, @p5
Replay Internal Error Failed to match corresponding handle value.
21 дек 09, 14:43    [8095855]     Ответить | Цитировать Сообщить модератору
 Re: Профайлер: Failed to match corresponding handle value  [new]
3lqs
Member [заблокирован]

Откуда:
Сообщений: 1532
Вроде как получается, что курсор, приготовленный sp_cursorprepexec, пр попытке повторного открытия путем sp_cursorexecute не работает? Или я неправильно понимаю на примере этой конструкции, что в sp_cursorexecute повторно открывается приготовленный путем sp_cursorprepexec стейтмент 1073741830?

RPC:Starting...
...
exec sp_cursorprepexec...
RPC Output Parameter 1073741830
RPC Output Parameter 180150009
...
RPC:Starting exec sp_cursorfetch 180150009...успех
...
RPC:Starting...
exec sp_cursorexecute 1073741830...
Replay Internal Error Failed to match corresponding handle value.
21 дек 09, 15:57    [8096555]     Ответить | Цитировать Сообщить модератору
 Re: Профайлер: Failed to match corresponding handle value  [new]
3lqs
Member [заблокирован]

Откуда:
Сообщений: 1532
Господа, может кто-нибудь хотя бы ответить - конструкция типа sp_cursorprepexec и последующий вызов sp_cursorexecute в принципе реплеится или нет?
22 дек 09, 10:24    [8099553]     Ответить | Цитировать Сообщить модератору
 Re: Профайлер: Failed to match corresponding handle value  [new]
3lqs
Member [заблокирован]

Откуда:
Сообщений: 1532
Ну вот, например, ниже, неявно правда, но пишут, что серверные курсоры API реплеятся вроде, типа объясняют как, но нигде не нашел четкого ответа про собственно sp_cursorexecute...
"Some of the events captured by the trace require special interpretation during replay. For example, a client tool or database provider itself is using the API server cursor by calling sp_cursorprepare, then sp_cursorfetch multiple times, and finally sp_cursorclose. SQL Profiler Replay needs to understand that sp_cursorprepare creates a server-side cursor, and then accepts and stores cursor handle returned from the server. Subsequently, this new handle must be used in place of an old one when executing sp_cursorprepare and sp_cursorclose statements. In cases where multiple statements get fetched at the same time on the same connection, Replay must remember all original handles and make proper substitutions based on that information." http://www.yaldex.com/sql_server_tutorial_3/ch07lev1sec2.html

Glory, помоги!!!!!!!!
22 дек 09, 11:23    [8100074]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Профайлер: Failed to match corresponding handle value  [new]
Кирилл Р
Member

Откуда:
Сообщений: 62
Столкнулся с той же проблемой при релее трассировки с продакшена.
В трассировке собраны эвенты 'CursorCLose', 'CursorExecute','CursorOpen', 'CursorPrepare', 'CursorUnprepare'.
Для исключения факторов несовпадения DB_ID или прав какого то пользователя - помимо самой пользовательской БД выполнил рестор БД master с продуктива.
Получаю ошибка как при
exec sp_cursorclose
так и при
exec sp_cursorfetch
а так же
exec sp_cursoroption
Если есть какие либо комментарии или предложения как лечить эту проблему - буду благодарен.
16 сен 16, 16:19    [19674587]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить