Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Connection is in use by another statement  [new]
Quazar
Member

Откуда: Челябинск
Сообщений: 287
SQL 7.0, BDE 5.01, Delphi 3.0.
А дело было так :
Между двумя серверами была репликация слиянием.
На одном из серверов база упала в suspect, восстанавливать надо было срочно, с резервной копией вышел косяк (не проследили, что джоб не работает). Выход был найден такой - забэкапить базу на другом сервере, которая реплицировалась с упавшей и развернуть на пустой на необходимом сервере. Так и было сделано, на первый взляд программа работала нормально.
Однако вскоре обнаружилось, что при выполнении некоторых операций (insert например) программа стала выдавать ошибку - Категория 42 Код 10771 подкод 19 "Неверный контекст" или "Connection is in use by another statement", после чего надо было программу перезапускать, чтобы она нормально работала. После запуска проги по новой обнаруживается, что insert прошел нормально.
Господа специалисты, помогите устранить ошибку!... а то уволят к едрене фене, дело жареным пахнет.
Заранее благодарен.
25 май 04, 16:24    [699690]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
Quazar
Member

Откуда: Челябинск
Сообщений: 287
Что характерно - этой ошибки ни в одной из двух баз раньше не было.
25 май 04, 16:33    [699741]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
Quazar
Member

Откуда: Челябинск
Сообщений: 287
Я могу понять, в процессе разработки программы бы это вылезло, но всего лишь был развернут бэкап с репликационной копии, не было изменений ни в клиентской, ни в серверной частях, триггеров левых тоже нет.
Очень прошу помочь!
26 май 04, 09:03    [700900]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
Connection is in use by another statement


Может говорить о недофиченном наборе на клиента. Но, так как клиента не трогали, то я бы все-таки DBCC CHECKDB попробовал натравить.
26 май 04, 09:07    [700908]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
Quazar
Member

Откуда: Челябинск
Сообщений: 287
dbcc checkdb выполняется постоянно перед бэкапом, еще я наврал - не на пустую базу разворачивали, а на тестовую... если это имеет значение...
26 май 04, 09:17    [700922]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
Quazar
Member

Откуда: Челябинск
Сообщений: 287
Еще добавлю - когда проделали обратную оперцию, забэкапили ту базу, в которой ошибки полезли и развернули на той, с которой первоначальнио восстанавливали, то ошибки полезли и там то же... то есть причина где то в базе лежит, а где, не пойму...
26 май 04, 09:40    [700980]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
Quazar
Member

Откуда: Челябинск
Сообщений: 287
А в Query Analizer запрос проходит без ошибки
26 май 04, 09:45    [700990]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Посмотрите все-таки, есть ли недофиченный набор или нет. sp_who2, колонка Status, значение RUNNABLE, Command = SELECT.
26 май 04, 09:55    [701010]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
Quazar
Member

Откуда: Челябинск
Сообщений: 287
status = sleeping
cmd = awaiting command
другие значения поймать даже не удалось... я вот думаю, может какие нибудь ошметки былых репликаций мешают...
26 май 04, 10:18    [701088]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Понимаете, ошибка Connection is in use by another statement - ошибка клиентской части механизма доступа к данным. Обычно, такие ошибки происходят при попытке послать на сервер инструкцию при наличии в текущем коннекте недофиченного набора. Как это может быть связано с бд - трудно представить.
26 май 04, 10:26    [701113]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Если есть "старый" экземпляр бд, на которой такой ошибки не было, то попробуйте сравнить наборы, возвращаемый DBCC USEROPTIONS для бд с "ошибкой" и "без".
26 май 04, 10:56    [701190]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
Рекомендую максимально быстро отказаться от BDE например в пользу SDAC.
Разница будет просто потрясающая. Не пожалеете.
Хотя насчет версии для Д3 не уверен, что существует... :(
26 май 04, 11:11    [701247]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
Quazar
Member

Откуда: Челябинск
Сообщений: 287
Я бы отказался давно, если бы столько наворочено в задаче не было...
26 май 04, 11:44    [701364]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
Quazar
Member

Откуда: Челябинск
Сообщений: 287
Ой блин, какой же я болван!
Короче причина такая была: триггер на вставку делал вставки в других таблицах, в которых тоже были триггера и т.д. по цепочке... В одном из триггеров в этой цепочке был чистый SELECT без INTO, возвращяющий определенную выборку, после чего шла последующая обработка далее.
Так вот этот SELECT и вызывал указанную ошибку!
Вот Вам и не зависит от БД. ;)
26 май 04, 12:30    [701575]     Ответить | Цитировать Сообщить модератору
 Re: Connection is in use by another statement  [new]
Quazar
Member

Откуда: Челябинск
Сообщений: 287
Все равно всем спасибо за советы.
26 май 04, 12:33    [701590]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить