NHibernate的多实例

时间:2012-09-17 12:31:58

标签: c# .net hibernate nhibernate

我有4个应用程序在名为“Infocenter”的数据库上使用相同的数据。 (因此有4个NHibernate实例< =>一个应用程序)

我知道Hibernate使用两个缓存(级别1和级别2)。 我认为缓存可以优化数据库访问的时间。 但是,我使用了4个应用程序,因此有4个缓存。 我不确定,但如果application1更新其缓存,则application2可能会使用旧数据。 所以我想知道我是否必须禁用nhibernate缓存(和其他东西)。

提前致谢。

Bobby Fish

1 个答案:

答案 0 :(得分:1)

如果应用1更改当前存储在应用2缓存中的数据,并且您正在使用SysCacheProvider(或任何进程内缓存),则应用2将不会发现数据已更改,您可能会丢失数据或做出错误的决策在您的应用中。

您有多种选择:

  1. 您可以使用像memcached这样的分布式缓存(这是我推荐的),并且所有4个应用都使用相同的缓存
  2. 您可以查看使用SysCache2提供程序并设置SqlDependencies
  3. 您可以关闭二级缓存
  4. 我已经在这样的场景中使用了memcached很多年了,并且对它非常满意。