Привет всем!
Столкнулся с весьма странной проблемой при отмене долгого запроса. Двухдневный поиск ничего не дал.
Итак, есть хранимая процедура, вызывающая хранимую процедуру на связанном сервере:
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.
Что это и как это побороть?
Заранее спасибо.