Прерывание запроса MS SQL 2000
От: eagle_sw  
Дата: 17.03.05 13:22
Оценка:
Привет всем!

Столкнулся с весьма странной проблемой при отмене долгого запроса. Двухдневный поиск ничего не дал.

Итак, есть хранимая процедура, вызывающая хранимую процедуру на связанном сервере:

EXEC [LINKED_SERVER]...sp_test


Если при её работе в Query Analyzer'e нажать "Cancel", то запрос остаётся бесконечно "висеть" в состоянии runnable на связанном сервере.
При некотором кол-ве таких повисших запросов сервер впадет в кому...

После этого, все процедуры, которые используют связанный сервер в запросах вида

select * from main_server.test_table
inner join openquery([LINKED_SERVER],"....")"


перестают работать и в том же Query Analyzer'e выдают следующие ошибки:

1. Could not start a transaction for OLE DB provider 'SQLOLEDB'.
[OLE/DB provider returned message: Cannot create new transaction because capacity was exceeded.]

2. [OLE/DB provider returned message: Connection is busy with results for another command]

3. И ещё что-то про manual or distributed transaction.

Что это и как это побороть?

Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.