NHibernate没有区域的二级appfabric缓存

时间:2014-06-11 19:19:29

标签: c# caching nhibernate appfabric

在我当前的项目中,他们正在使用AppFabric缓存。但我们发现我们没有正确使用它。

如果我正确阅读了以下article。区域限制为一个缓存主机,命名缓存跨越整个群集。

我们当前看到以下行为。即使我们指定CacheType="Named",NHibernate也会创建缓存区域。因此,如果我们重新启动缓存集群,则不会使用集群中的多个节点。

我们只想使用没有区域的命名缓存。

配置如下所示:

<AppFabricProviderSettings CacheType="Named" NamedCacheTypeRegionName="nhibernate" NamedCachesMustExist="false" LockTimeout="30000" LocksRegionName="Locks" />

决定缓存哪个实体的代码如下所示:

if (condition == true)
{
    mapping.CacheConcurrencyStrategy = "nonstrict-read-write";
    nhConfig.SetCacheConcurrencyStrategy(mapping.EntityName, "nonstrict-read-write", weekCacheName);
}
else if (secondCondition == true)
{
    mapping.CacheConcurrencyStrategy = "nonstrict-read-write";
    nhConfig.SetCacheConcurrencyStrategy(mapping.EntityName, "nonstrict-read-write", dayCacheName);
}
else
{
    mapping.CacheConcurrencyStrategy = "nonstrict-read-write";
    nhConfig.SetCacheConcurrencyStrategy(mapping.EntityName, "nonstrict-read-write", hourCacheName);
}

有人可以澄清我们做错了什么以及如何只命名缓存而不是区域?

我还查看了Nhibernate.Caches.AppFabric的代码,我发现令人不安的是关键字区域在代码中被广泛使用。

我们的缓存有效,但有时内存不足,因为所有区域都是在同一主机上创建的

0 个答案:

没有答案