10.2.3. JDBC 文字列ベースのキャッシュストア
JDBC 文字列ベースのキャッシュストアである JdbcStringBasedStore
は JDBC ドライバーを使用して、基礎となるデータベースに値を読み込みおよび保存します。
JdbcStringBasedStore
はテーブル内の独自の行に各エントリーを保存し、同時読み込みのスループットを高めます。JdbcStringBasedStore
は、key-to-string-mapper
インターフェイスを使用して各キーを String
オブジェクトにマッピングする単純な 1 対 1 のマッピングも使用します。
Data Grid は、プリミティブタイプを処理する DefaultTwoWayKey2StringMapper
のデフォルト実装を提供します。
デフォルトでは、Data Grid 共有は保存されません。つまり、クラスター内のすべてのノードが更新ごとに基盤のストアに書き込まれます。基盤のデータベースに一度書き込みを行う場合、JDBC ストアを共有として設定する必要があります。
セグメンテーション
JdbcStringBasedStore
はデフォルトでセグメンテーションを使用し、エントリーが属するセグメントを表すためにデータベーステーブルの列を必要とします。
10.2.3.1. 接続ファクトリー
JdbcStringBasedStore
は、ConnectionFactory
実装に依存してデータベースに接続します。
Data Grid は以下の ConnectionFactory
実装を提供します。
PooledConnectionFactoryConfigurationBuilder
PooledConnectionFactoryConfiguration
で設定する Agroal に基づく接続ファクトリー。
または、以下の例のように、org.infinispan.agroal.
の接頭辞が付けられた設定プロパティーを指定することもできます。
org.infinispan.agroal.metricsEnabled=false org.infinispan.agroal.minSize=10 org.infinispan.agroal.maxSize=100 org.infinispan.agroal.initialSize=20 org.infinispan.agroal.acquisitionTimeout_s=1 org.infinispan.agroal.validationTimeout_m=1 org.infinispan.agroal.leakTimeout_s=10 org.infinispan.agroal.reapTimeout_m=10 org.infinispan.agroal.metricsEnabled=false org.infinispan.agroal.autoCommit=true org.infinispan.agroal.jdbcTransactionIsolation=READ_COMMITTED org.infinispan.agroal.jdbcUrl=jdbc:h2:mem:PooledConnectionFactoryTest;DB_CLOSE_DELAY=-1 org.infinispan.agroal.driverClassName=org.h2.Driver.class org.infinispan.agroal.principal=sa org.infinispan.agroal.credential=sa
その後、Data Grid が PooledConnectionFactoryConfiguration.propertyFile
でプロパティーファイルを使用するように設定します。
サーブレットコンテナーのデプロイメントではなく、スタンドアロンデプロイメントで PooledConnectionFactory
を使用する必要があります。
ManagedConnectionFactoryConfigurationBuilder
アプリケーションサーバーなどの管理環境で使用できる接続ファクトリー。この接続ファクトリーは JNDI ツリーで設定可能な場所を確認し、接続管理を DataSource
に委譲できます。
SimpleConnectionFactoryConfigurationBuilder
呼び出しごとにデータベース接続を作成する接続ファクトリー。この接続ファクトリーは、テスト環境または開発環境にのみ使用してください。