具有多个数据库的NHibernate Webapp要使用哪个SessionContext

时间:2012-02-06 14:20:59

标签: nhibernate database-connection sessionfactory

我们在Web应用程序中使用NHibernate和流畅的配置。

我们有一个配置数据库和多个不同的数据库来保存客户数据。

对于每个数据库,我们在首次使用时进行流畅的配置和SessionFactory。

我们通过调用OpenSession方法来获取会话,并在我们完成它时将其处理。

但是,有时我们会在尝试读取时收到ADO数据读取器仍处于活动状态的错误消息。表明NHibernate试图(重新)使用相同的连接,这是我们试图避免的。

我们如何确保我们的数据库请求以原子方式由连接处理。 (其他请求不得重复使用)

我想重新创建SessionFactory可能会有效,但这看起来很昂贵

1 个答案:

答案 0 :(得分:2)

几个问题

  • 您使用的是不同的连接字符串,因此它是单独的应用程序池吗?
  • 您收到的确切错误消息是什么?

我看不出这应该是nHibernate的错。如果问题很容易重现,那么也许你可以尝试:

  • 从数据库端跟踪以查看最新情况(特别是sp_resetconnection)
  • 禁用连接池以查看是否有所作为