2012-01-10 2 views
0

Я использую AppFabric в качестве провайдера кеша NHibernate 2L.Кэш NHibernate + AppFabric

Я установил AppFabric службы кэша, сконфигурированный кластер кэша и один дополнительный кэш, кроме установленного по умолчанию:

<dataCache size="Small"> 
     <caches> 
      <cache consistency="StrongConsistency" name="NHibernate"> 
       <policy> 
        <eviction type="Lru" /> 
        <expiration defaultTTL="10" isExpirable="true" /> 
       </policy> 
      </cache> 
      <cache consistency="StrongConsistency" name="default"> 
       <policy> 
        <eviction type="Lru" /> 
        <expiration defaultTTL="10" isExpirable="true" /> 
       </policy> 
      </cache> 
     </caches> 
     <hosts> 
      <host replicationPort="22236" arbitrationPort="22235" clusterPort="22234" 
       hostId="963417840" size="2047" leadHost="true" account="ZEUS\CATALINP" 
       cacheHostName="AppFabricCachingService" name="ZEUS" 
       cachePort="22233" /> 
     </hosts> 
</dataCache> 

Все, кажется, хорошо на стороне поставщика кэша. Конфигурация

Cache клиента, используемый в app.config, является следующая:

<dcacheClient localCache ="True" deployment="simple"> 
    <localCache isEnabled="True" sync="TimeoutBased" ttlValue="300" /> 
    <hosts> 
     <host name="ZEUS" cachePort="22233" cacheHostName="AppFabricCachingService"/> 
    </hosts> 
    </dcacheClient> 

Ничего особенного, только общие настройки.

Тем не менее, когда я бегу applicacion, я могу увидеть следующий вывод в отладчик:

DeadServerCallback Called, сервер URI: net.tcp: // ZEUS: 22233/AppFabricCachingService DeadServerCallback: матчи Мой сервер, Очистка в ожидании запросов SendMsgAndWait: Удаленный магазин Operation Failed: MsgID = 1 ExecuteAPI: Ответ является Null, MsgID = 1

Наконец, приложение разбился со следующим сообщением:

«ErrorCode: Cache :: Get: Не удалось связаться с кешем . Как связаться с администратором и обратитесь к продукту справочной документации возможных причины.»

сервис

Кэша, кажется, настроен правильно (мне удалось подключиться к нему с помощью команд Powershell), конфигурация NHibernate кажется правильным, а также , однако NHibernate не может подключиться к службе кэша.

кто-нибудь испытывает что-то подобное?

Спасибо,

C.

ответ

1

Поставщик скорости NHibernate нарушает работу и не будет работать с AppFabric. См. this question, а затем перейдите на страницу here для поставщика s1mm0t для AppFabric.

+0

Спасибо, Фил. Я пробовал проект Саймона, я успешно загружал элементы в кэше L2 в запросе Criteria, покупая, когда я повторно запускаю запрос, Nhibernate обращается к базе данных, а не к чтению данных из кеша. Кто-нибудь выполнил успешную реализацию проекта Саймона? Спасибо, C. – user1140689

+0

Это отлично работает для меня - но тогда я бы сказал, что не буду, O). Не стесняйтесь обращаться ко мне через мой блог, и я буду изучать его дальше для вас. – s1mm0t

+0

Спасибо, Саймон. Хотя я сделал это работать (в файле конфигурации отсутствовал раздел LocalCache, это и стало причиной моей проблемы), но у меня могут возникнуть проблемы с пониманием того, как все работает. Я ценю ваше обязательство, и вскоре я могу написать вам более крупное письмо. Еще раз спасибо. – user1140689