我遇到了一个问题,希望有人能给我一些指导。 我正在处理一个应用程序,该应用程序已经使用.NET 3.5和NHibernate 1.2多年。在过去的一周中,交易似乎会随机锁定。我注意到NH的command_timeout为100000。现在我将其降低到30,因为100000看起来很疯狂!但问题仍在发生。
SQL Server Activity Monitor在出现问题时显示阻塞事务,通常处于SUSPENDED状态。如果我杀死阻塞进程,那些被阻塞的进程就会启动并且系统正常运行。
通过对阻塞进程进行检查,我可以看到大致执行的SQL语句引起了这个问题,但它是一个在整个系统中执行的语句,检索大多数页面上的常见数据。
我认为是什么原因导致了这个问题?没有明显的...我们发布了几个小更改,但没有一个应该有这种影响。最近安装了Windows更新/服务包。 SQL / .NET SP更新可能是此问题的原因吗?
现在已将command_tinmeout更新为30秒,超过此执行时间的查询将自动终止-至少在Activity Monitor中是这样。然而,似乎还有其他事情正在发生,因为重复查询也会超时失败。但是,如果我停止并重新启动应用程序池,则一切都会正常工作,至少有一段时间。
SQL Server Activity Monitor在出现问题时显示阻塞事务,通常处于SUSPENDED状态。如果我杀死阻塞进程,那些被阻塞的进程就会启动并且系统正常运行。
通过对阻塞进程进行检查,我可以看到大致执行的SQL语句引起了这个问题,但它是一个在整个系统中执行的语句,检索大多数页面上的常见数据。
我认为是什么原因导致了这个问题?没有明显的...我们发布了几个小更改,但没有一个应该有这种影响。最近安装了Windows更新/服务包。 SQL / .NET SP更新可能是此问题的原因吗?
现在已将command_tinmeout更新为30秒,超过此执行时间的查询将自动终止-至少在Activity Monitor中是这样。然而,似乎还有其他事情正在发生,因为重复查询也会超时失败。但是,如果我停止并重新启动应用程序池,则一切都会正常工作,至少有一段时间。