У меня есть хранимая процедура, которая вызывает ошибку "Истекло время ожидания".
Используется код ADO / VB6.
Сама хранимая процедура не является проблемой, вы можете запустить ее в окне запроса, и это займет менее секунды.
Код, используемый для получения соединения и т. Д., Также является модульным и используется во всем огромном приложении. Только в этом месте тайм-аут происходит в одной конкретной базе данных.
Ошибка будет воспроизводиться каждый раз при сотнях попыток, независимо от того, запускает ли код VB6 в режиме отладки или нет, тогда внезапно все волшебным образом снова начнет работать. Тогда когда-нибудь в будущем эта проблема снова появится.
Я не уверен, сколько кода здесь разместить, в этом нет ничего сложного; это в основном;
Set adoCommandObject.ActiveConnection = ...{open ADODB.Connection object}
Set rs = CreateObject("ADODB.Recordset")
Call rs.Open(adoCommandObject, , adOpenForwardOnly, adLockReadOnly)'Timeout occurs here
Я наблюдал в профилировщике, но это не дало никаких подсказок, за исключением случайного просмотра инструкций "SET NO_BROWSETABLE ON" / "SET NO_BROWSETABLE OFF", возникающих до и после запуска sp.
Я искал в сети, но не смог найти удовлетворительной помощи для этого; Я готов попробовать что-нибудь на этом этапе (кроме переписывания в .NET, к сожалению, это не вариант!)