我们使用Silverlight和NHibernate创建了一个应用程序。 并且使用了SOA架构。
当我运行应用程序时,它会创建NHibernate会话,我可以在sqlserver活动监视器中看到它。但是在完成交易之后,该会话仍然不会被关闭[我可以看到处于睡眠模式的会话]。 5-10分钟之后它会关闭[ByDefault]。
我们正在使用NHibernateDataContext对象。 在开始业务操作之前,调用EnlistTransaction并在完成后调用CompleteTransaction。但我仍然可以在Sql server活动监视器中看到睡眠会话。
有人可以解决这个问题吗?
答案 0 :(得分:1)
您需要使用NHibernate Profiler或SQL Profiler之类的内容来更详细地查看针对您的数据库执行的语句。很可能事务是按照您的预期提交,但由于连接池,连接保持打开状态。