NHibernate.Caches.MemCache web.config для срока действия кэша - PullRequest
1 голос
/ 10 декабря 2008

Я перехожу на Nhibernate 2.0 GA, но у меня возникли проблемы с настройкой срока действия кэша в поставщике memcached.

Я вижу в источниках NHibernate.Caches.MemCache, что есть свойство для срока действия и значение по умолчанию на 300 секунд.

Существуют также свойства для областей кэша, но обработчик раздела конфигурации, кажется, не отображает их.

Есть ли другой способ установки времени истечения срока действия кэша, который не зависит от поставщика -

Вот функциональный раздел веб-конфигурации (очевидно, без настроек срока действия).

<memcache>
    <memcached host="127.0.0.1" port="11211"/>
    <!-- or multiples -->
</memcache>

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
        <property name="show_sql">true</property>
        <property name="connection.provider" >NHibernate.Connection.DriverConnectionProvider</property>
        <property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
                <!--    <property name="hibernate.cache.provider_class" value="NHibernate.Caches.MemCache.MemCacheProvider,NHibernate.Caches.MemCache" /> -->
        <property name="connection.connection_string">Data Source=stage2.ripple6.com;Initial Catalog=r6stage;User Id=sa;Password=mworld7650;Application Name=Hibernate;</property>
        <property name="connection.isolation">ReadCommitted</property>
        <property name="cache.use_second_level_cache">true</property>
        <property name="cache.provider_class">NHibernate.Caches.MemCache.MemCacheProvider,NHibernate.Caches.MemCache</property>
        <property name="default_schema" >r6stage.dbo</property>
    </session-factory>

</hibernate-configuration>

Ответы [ 3 ]

1 голос
/ 09 мая 2011

Использовать default_expiration.

<property name="default_expiration" >YOUR_INTERVAL_IN_SECONDS</property>

Я видел в источнике, что значение срока действия по умолчанию установлено на 300 секунд. Но вы можете переопределить это значение, установив свойство default_expiration из файла конфигурации NHibernate.

0 голосов
/ 14 января 2009

Используйте срок действия.

<property name="expiration" >YOUR_INTERVAL_IN_SECONDS</property>

После этого, когда вы запускаете приложение с ведением журнала, вы можете увидеть:

NHibernate.Caches.MemCache.MemCacheClient: 20:57:55,762 DEBUG MemCacheClient:0 - using expiration of YOUR_INTERVAL_IN_SECONDS seconds
0 голосов
/ 12 декабря 2008

Насколько я понимаю, срок действия кэша зависит от поставщика, поскольку некоторые поставщики кэша не поддерживают это. Кроме того, это означает, что у вас нет ситуации, когда значение 60 означает час в одних случаях и минуту в других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...