sql clr 超时
我有一个调用 webmethod 的 CLR 存储过程。 webmethod 调用的运行时间有点长(大约需要 3 分钟才能完成)。 CLR sp根本不调用Sql服务器,但是它超时了。我该如何调整超时时间。 代码如下:
[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
I have a CLR Stored procedure that calls a webmethod. The webmethod call is a somewhat long running taks ( about 3 minutes to complete). The CLR sp does not call Sql server at all, However it times out. How can I adjust the time out.
The code is as follows:
[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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您还可以异步运行该方法。 CLR sp 将立即结束,您无法返回结果,但不会出现任何超时问题。
处理 Webreference 应在异步回调中完成。
You could also run the method asynchronosly. The CLR sp would end immediately and you could not return a result, but you would not have any timeout problems.
Disposing the Webreference should be done in the async callback.