2011-01-28 4 views
0

У меня есть CLR Хранимая процедура, которая вызывает веб-метод. Вызов веб-метода - несколько длительный тайкс (около 3 минут для завершения). CLR sp не вызывает сервер Sql вообще, но он не работает. Как настроить тайм-аут. код выглядит следующим образом:sql clr timeout

[SqlProcedure] 
    public static int RunSessionForTrid(string sessionName, string trid, out SqlString msg) 
    { 
     string sxml = GetSessionForTrid(sessionName, trid); 
     using (BaaNServices b = new BaaNServices()) 
     { 
      try 
      { 
       msg = b.BaanSession(sxml); 
       SqlContext.Pipe.Send((string)msg); 
       return 0; 
      } 
      catch (Exception ex) 
      { 
       msg = ex.Message; 
       SqlContext.Pipe.Send(ex.Message); 
       //throw ex; 
       return -1; 
      } 
     } 
    } 
    #endregion 
+1

ServerProperties-> Подключения-> Тайм-аут удаленного запроса –

ответ

0

Вы также можете запустить метод asynchronosly. CLR sp завершится немедленно, и вы не сможете вернуть результат, но у вас не будет проблем с тайм-аутом.

Устранение Web-адреса должно выполняться в асинхронном обратном вызове.