Я использую 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.
Спасибо, Фил. Я пробовал проект Саймона, я успешно загружал элементы в кэше L2 в запросе Criteria, покупая, когда я повторно запускаю запрос, Nhibernate обращается к базе данных, а не к чтению данных из кеша. Кто-нибудь выполнил успешную реализацию проекта Саймона? Спасибо, C. – user1140689
Это отлично работает для меня - но тогда я бы сказал, что не буду, O). Не стесняйтесь обращаться ко мне через мой блог, и я буду изучать его дальше для вас. – s1mm0t
Спасибо, Саймон. Хотя я сделал это работать (в файле конфигурации отсутствовал раздел LocalCache, это и стало причиной моей проблемы), но у меня могут возникнуть проблемы с пониманием того, как все работает. Я ценю ваше обязательство, и вскоре я могу написать вам более крупное письмо. Еще раз спасибо. – user1140689