第2レベルのNHibernateキャッシュ
NHibernateには、デフォルトで使用される第1レベル(セッションレベル)キャッシュがあります。各セッションは、他のセッションと共有されない独自のセッションレベルキャッシュを保持しています。このキャッシュは、セッションが閉じられるたびに破棄されます。ただし、NHibernateは、複数のセッション間で共有され、個々のセッションの存続期間を超えて保持される第2レベルキャッシュもサポートしています。
NCache NHibernate の分散型セカンドレベルまたはプロセスレベルのキャッシュを実装することで、NHibernate にキャッシュを提供します。 ICacheProvider (NAIST) と ICache インターフェイス。 これにより、 NCache 既存の NHibernate アプリケーションでコードを変更することなく NHibernate のセカンド レベル キャッシュとして使用できます。必要なのは、NHibernate 構成ファイルを変更してプラグインすることだけです。 NCache キャッシュプロバイダーとして。
第 2 レベル キャッシュは、それを有効にし、NHibernate 構成で第 2 レベル キャッシュ プロバイダーを構成することによって構成できます。
設定方法 NCache NHibernateの2次キャッシュプロバイダーとして
重要
インストールされているNHibernateがサポートするNHibernateのバージョンを使用してください。NCache パッケージ。
NHibernate設定セクションWeb.configを登録する
加えます <hibernate-configuration> in Web.config 下 <configSections> タグ:
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
NHibernateリージョンの構成を指定する
インストール NCache ローカル環境を持たないアプリケーション用の NuGet パッケージ NCache インストール。 で次のコマンドのいずれかを実行します パッケージ マネージャー コンソール Visual Studio内:
大手機関向け:
Install-Package NHibernate.NCacheOpenSourceの場合:
Install-Package NHibernate.NCache.Opensource
構成 NCache NHibernateのセカンドレベルキャッシュプロバイダとして、
cache.provider_class下のプロパティ要素 ( <hibernate-configuration>).アプリケーションで第2レベルキャッシュの使用を有効にするには、
cache.use_second_level_cacheプロパティを True にします。
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="cache.provider_class">Alachisoft.NCache.Integrations.NHibernate.Cache.NCacheProvider, Alachisoft.NCache.Integrations.NHibernate.Cache</property>
<property name="cache.use_second_level_cache">true</property>
</session-factory>
</hibernate-configuration>
アプリケーションIDを指定します NCache NHibernateプロバイダー
NCache NHibernateのプロバイダーは、各アプリケーションを一意の アプリケーションID。この ID は、そのアプリケーションに適切な構成を NCache NHibernateの構成ファイル(NCacheNHibernate.xml)。 この アプリケーションID アプリケーションの構成ファイルで指定する必要があります (Web.config):
<appSettings>
<add key="ncache.application_id" value="myapp" />
</appSettings>
L2キャッシュ用のNHibernateエンティティのマッピング
2次キャッシュの使用を有効にすると、デフォルトでは各クラスオブジェクトがキャッシュされません。代わりに、キャッシュする必要があるクラスは、クラスマッピングでキャッシュ可能としてマークされます(.hbm.xml) ファイル。クラスをキャッシュ可能としてマークするには、クラスの設定に次のタグを追加します。
<cache usage="read-write" region ="AbsoluteExpirationRegion"/>
上記のタグでは、プロパティ usage (NAIST) と region 変更可能。
| 加盟国 | 詳細説明 |
|---|---|
region |
このクラス オブジェクトに使用する第 2 レベル キャッシュ領域の名前を指定します。領域が指定されていない場合は、デフォルトの領域構成で完全修飾名 (FQN) が領域名として使用されます。 |
usage |
このクラスに使用するキャッシュ同時実行方式を指定します。 Hibernate では、次の 3 つの同時実行戦略をキャッシュに使用できます。 - Read-Write- Nonstrict-Read-Write- Read-Only |
キャッシュ領域の構成
NHibernateはキャッシュ領域を使用してオブジェクトを格納します。 NCache NHibernateのキャッシュ領域をさまざまなプロパティで設定できます。この目的のために、 NCache という名前の設定ファイルがあります NCacheNHibernate.xmlには、NHibernateの2次キャッシュで使用されるすべての領域の構成が含まれています。このファイルは、アプリケーションのルートディレクトリまたは %NCHOME%\config (Windows)または /opt/ncache/config (Linux)。
<configuration>
<application-config application-id="myapp" enable-cache-exception="true" default-region-name="default" key-case-sensitivity="false">
<cache-regions>
<region name="AbsoluteExpirationRegion" cache-name="demoCache"
priority="Default" expiration-type="absolute" expiration-period="180"/>
<region name="default" cache-name="demoCache" priority="default"
expiration-type="none" expiration-period="0"/>
</cache-regions>
</application-config>
</configuration>
複数のアプリケーション構成をで指定できます NCacheNHibernate.xml。すべての NHibernate アプリケーションは、 アプリケーションID 申請書に指定された アプリの構成/Web.config ファイルにソフトウェアを指定する必要があります。
以下は、 application-config のセクションから無料でダウンロードできます。
| Member | 詳細説明 |
|---|---|
application-id |
このオプションを使用すると、ユーザーは現在の ID に一意の ID を指定できます。 application-config。 この ID は、特定のアプリケーションに適切な構成を選択するために使用されます。 |
enable-cache-exception |
で発生した例外が発生したかどうかを識別します。 NCache NHibernate プロバイダーに伝播するかどうか。 |
default-region-name |
アプリケーションのデフォルトリージョンを指定できます。特定のリージョンの設定が見つからない場合は、デフォルトリージョンの設定が使用されます。指定されたデフォルトリージョンの設定は、 cache-regions のセクションから無料でダウンロードできます。 |
key-case-sensitivity |
このオプションを使用すると、キャッシュ キーで大文字と小文字を区別するかどうかを指定できます。このオプションは、使用するデータベースに応じて設定する必要があります。データベースで大文字と小文字が区別される場合は、このオプションを True に設定し、そうでない場合は False に設定します。 |
cache-regions |
このセクションでは、ユーザーが NHibernate アプリケーションの複数のキャッシュ領域を構成できるようにします。各リージョンの構成は、 地域 タグ。 |
region |
このタグには、XNUMX つの特定の領域の構成が含まれています。 次のオプションは、特定のリージョンに対して構成できます。
|
database-dependencies |
これにより、ユーザーは現在の NHibernate アプリケーションのデータベース依存関係を指定できます。
|
も参照してください
NHibernateクエリキャッシングの使用
NHibernateを使用したデータベース同期の構成
EntityFrameworkキャッシュプロバイダー