2016-12-22 8 views
1

У меня проблема в очень старом проекте. При длительном процессе базы данных существует исключение тайм-аута.ADODB CommandTimeout, выполняющий хранимую процедуру в классическом asp

Вот исходный код

Set objCmd = Server.CreateObject("ADODB.Command") 
objCmd.ActiveConnection = Common_CnxStr 
objCmd.CommandText = "Db.SP_Name" 
objCmd.CommandType = adCmdStoredProc 
/*some query parameters are added here*/ 
objCmd.Execute 

Это работает в течение 90 секунд, а затем завершается с тайм-аута исключения. Как увеличить тайм-аут до, например, 5 минут.

Я пытался продлить время ожидания, добавив к моему коду линия objCmd.CommandTimeout

Set objCmd = Server.CreateObject("ADODB.Command") 
objCmd.CommandTimeout = 300 
objCmd.ActiveConnection = Common_CnxStr 
objCmd.CommandText = "Db.SP_Name" 
objCmd.CommandType = adCmdStoredProc 
/*some query parameters are added here*/ 
objCmd.Execute 

Но это не работает, и я до сих пор исключение через 90 секунд. Я даже пытался это сделать

Server.ScriptTimeout = 300 
Set objCmd = Server.CreateObject("ADODB.Command") 
objCmd.CommandTimeout = 300 
objCmd.ActiveConnection = Common_CnxStr 
objCmd.ActiveConnection.CommandTimeout = 300 
objCmd.CommandText = "Db.SP_Name" 
objCmd.CommandType = adCmdStoredProc 
/*some query parameters are added here*/ 
objCmd.Execute 

Но это ничего не меняло. Пожалуйста помоги.

+0

Вы можете написать точное сообщение об ошибке? Это может быть связано с Server.ScriptTimeout, а не с таймаутом ADODB! «Значение по умолчанию для параметра« Параметры информационной службы Интернета »(IIS) для тайм-аута сценария ASP составляет 90 секунд». – some1

ответ

2

пытаются добавить это в начале вашего кода ASP:

<% 
    Server.ScriptTimeout = 300 ' 5 minutes! 
%> 

Во всяком случае, если это проблема с производительностью, вы должны получить DBA проверить БД вместо

Смотрите также: https://technet.microsoft.com/en-us/library/bb632464.aspx

 Смежные вопросы

  • Нет связанных вопросов^_^