第15章 JDBC ベースのキャッシュストア
JdbcBinaryStore。JdbcStringBasedStore。JdbcMixedStore。
15.1. JdbcBinaryStores リンクのコピーリンクがクリップボードにコピーされました!
JdbcBinaryStore はすべてのキータイプをサポートします。同じテーブル行/Blob の同じハッシュ値 (キー上の hashCode メソッド) を持つすべてのキーを格納します。組み込まれるキーに共通するハッシュ値が、テーブルの行/Blob の主キーとして設定されます。このハッシュ値により、JdbcBinaryStore は大変優れた柔軟性を提供しますが、これにより平行性とスループットのレベルが下がります。
k1、k2、k3) のハッシュコードが同じである場合、同じテーブル行に格納されます。3 つの異なるスレッドが k1、k2、k3 を同時に更新しようとすると、すべてのキーが同じ行を共有するため同時には更新できないことから、順次更新する必要があります。
15.1.1. JdbcBinaryStore の設定 (リモートクライアントサーバーモード) リンクのコピーリンクがクリップボードにコピーされました!
JdbcBinaryStore の設定です。
手順15.1 リモートクライアントサーバーノード用に JdbcBinaryStore を設定します。
binary-keyed-jdbc-store 要素
binary-keyed-jdbc-store要素は、バイナリのキーボードから情報が入力されたキャッシュの JDBC ストアに対する設定を指定します。datasourceパラメーターはデータソースの JNDI 名を定義します。passivationパラメーターは、キャッシュのエントリーがパッシベートされるか (true) またはキャッシュストアが内容のコピーをメモリーに保持するか (false) を決定します。preloadパラメーターは、起動中にエントリーをキャッシュにロードするかどうかを指定します。このパラメーターの有効な値はtrueとfalseです。purgeパラメーターは、起動時にキャッスストアがパージされるかどうかを指定します。 このパラメーターの有効な値はtrueとfalseです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow binary-keyed-table 要素
binary-keyed-table要素は、バイナリーのキャッシュエントリーを格納するために使用されるデータベーステーブルに関する情報を指定します。prefixパラメーターはデータベーステーブル名のプレフィックスの文字列を指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow id-column 要素
id-column要素は、キャッシュエントリーの ID を保持するデータベース列に関する情報を指定します。nameパラメーターはデータベース列の名前を指定します。typeパラメーターはデータベース列のタイプを指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow data-column 要素
data-column要素には、キャッシュエントリーデータを保持するデータベース列に関する情報が含まれます。nameパラメーターはデータベース列の名前を指定します。typeパラメーターはデータベース列のタイプを指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow timestamp-column 要素
timestamp-column要素は、キャッシュエントリーのタイムスタンプを保持するデータベース列に関する情報を指定します。nameパラメーターはデータベース列の名前を指定します。typeパラメーターはデータベース列のタイプを指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.1.2. JdbcBinaryStore の設定 (ライブラリーモード) リンクのコピーリンクがクリップボードにコピーされました!
JdbcBinaryStore の設定例です。
手順15.2 ライブラリーモードの JdbcBinaryStore の設定
binaryKeyedJdbcStore 要素
binaryKeyedJdbcStore要素は、キャッシュストアを設定するための次のパラメーターを使用します。fetchPersistentStateパラメーターは、クラスターへ参加する時に永続状態が取り込まれるかを決定します。クラスター環境でレプリケーションとインバリデーションを使用している場合は、これをtrueに設定します。さらに、複数のキャッシュストアがチェーンされている場合、1 つのキャッシュストアのみがこのプロパティーを有効に設定できます。共有キャッシュストアが使用されている場合、キャッシュは、このプロパティーがtrueに設定されているにも関わらず、永続状態の転送を許可しません。fetchPersistentStateパラメーターはデフォルトではfalseに設定されます。ignoreModificationsパラメーターは、キャッシュを変更する操作 (例: 配置、削除、消去、保存など) がキャッシュストアに影響を与えるかどうかを決定します。結果として、キャッシュストアは、キャッシュと同期しなくなります。purgeOnStartupパラメーターは、初回起動時にキャッシュがパージされるかどうかを指定します。
<persistence> <binaryKeyedJdbcStore fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
<persistence> <binaryKeyedJdbcStore fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">Copy to Clipboard Copied! Toggle word wrap Toggle overflow connectionPool 要素
connectionPool要素は、次のパラメーターを使用して JDBC ドライバーの接続プールを指定します。connectionUrlパラメーターは、JDBC ドライバー固有の接続 URL を指定します。usernameパラメーターには、connectionUrl経由で接続するために使用されるユーザー名が含まれます。driverClassパラメーターは、データベースに接続するために使用されるドライバーのクラス名を指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow binaryKeyedTable 要素
binaryKeyedTable要素は、キャッシュエントリーを保存するテーブルを定義します。これは、キャッシュストアを設定するために以下のパラメーターを使用します。dropOnExitパラメーターは、シャットダウン時にデータベーステーブルがドロップされるかどうかを指定します。createOnStartパラメーターは、スタートアップ時にストアによってデータベーステーブルが作成されるかどうかを指定します。prefixパラメーターは、キャッシュバケットテーブルの名前を作成する際に、ターゲットキャッシュの名前に付与される文字列を定義します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow idColumn 要素
idColumn要素は、キャッシュキーまたはバケット ID が保存される列を定義します。これは以下のパラメーターを使用します。- 使用されている列の名前を指定するには、
nameパラメーターを使用します。 - 使用されている列のタイプを指定するには、
typeパラメーターを使用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dataColumn 要素
dataColumn要素は、キャッシュエントリーまたはバケットが保存される列を指定します。- 使用されている列の名前を指定するには、
nameパラメーターを使用します。 - 使用されている列のタイプを指定するには、
typeパラメーターを使用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow timestampColumn 要素
timestampColumn要素は、キャッシュエントリーまたはバケットのタイムスタンプが保存される列を指定します。- 使用されている列の名前を指定するには、
nameパラメーターを使用します。 - 使用されている列のタイプを指定するには、
typeパラメーターを使用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.1.3. JdbcBinaryStore のプログラムを用いた設定 リンクのコピーリンクがクリップボードにコピーされました!
JdbcBinaryStore の設定例です。
手順15.3 JdbcBinaryStore のプログラムを用いた設定 (ライブラリーモード)
新規設定ビルダーを作成します。
ConfigurationBuilderを使用して、新規の設定オブジェクトを作成します。ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence()
ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence()Copy to Clipboard Copied! Toggle word wrap Toggle overflow JdbcBinaryStoreConfigurationBuilderを追加します。このストアに関連する特定の設定を構築するには、JdbcBinaryStore設定ビルダーを追加します。ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .addStore(JdbcBinaryStoreConfigurationBuilder.class)ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .addStore(JdbcBinaryStoreConfigurationBuilder.class)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 永続性のセットアップ
fetchPersistentStateは、キャッシュの永続状態を取り込むかどうかを決定し、クラスターに参加する際にこれをローカルキャッシュストアに適用します。キャッシュストアが共有される場合、キャッシュが同じキャッシュストアにアクセスする際に、永続状態の取り込みは無視されます。複数のキャッシュローダーがこのプロパティーをtrueに設定する場合にキャッシュサービスを起動すると、設定の例外がスローされます。fetchPersistentStateプロパティーはデフォルトではfalseです。ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .addStore(JdbcBinaryStoreConfigurationBuilder.class) .fetchPersistentState(false)ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .addStore(JdbcBinaryStoreConfigurationBuilder.class) .fetchPersistentState(false)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更の設定
ignoreModificationsは、書き込み操作を共有キャッシュローダーではなく、ローカルファイルキャッシュローダーに許可することで、書き込みメソッドが特定のキャッシュローダーにプッシュされるかどうかを決定します。特定の場合に、一時的なアプリケーションデータは、インメモリーキャッシュと同じサーバー上のファイルベースのキャッシュローダーにのみ存在します。たとえば、これはネットワーク内のすべてのサーバーによって使用される追加の JDBC ベースのキャッシュローダーで適用されます。ignoreModificationsはデフォルトではfalseです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow パージの設定
purgeOnStartupは、初回の起動時にキャッシュがパージされるかどうかを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow テーブルの設定
Drop Table On Exit メソッドの設定
dropOnExitは、キャッシュストアが停止している際にテーブルが作成されるかどうかを決定します。これは、デフォルトではfalseに設定されます。Create Table On Start メソッドの設定
createOnStartは、現在テーブルが存在しない場合にキャッシュストアを起動すると、テーブルを作成します。このメソッドはデフォルトではtrueです。Table Name Prefix の設定
tableNamePrefixは、データが保存されるテーブルの名前にプレフィックスを設定します。idColumnNameidColumnNameプロパティーは、キャッシュキーまたはバケット ID が保存される列を定義します。dataColumnNamedataColumnNameプロパティーは、キャッシュエントリーまたはバケット ID が保存される列を指定します。timestampColumnNametimestampColumnName要素は、キャッシュエントリーのタイムスタンプまたはバケットが保存される列を指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow connectionPool 要素
connectionPool要素は、次のパラメーターを使用して JDBC ドライバーの接続プールを指定します。connectionUrlパラメーターは、JDBC ドライバー固有の接続 URL を指定します。usernameパラメーターには、connectionUrl経由で接続するために使用されるユーザー名が含まれます。driverClassパラメーターは、データベースに接続するために使用されるドライバーのクラス名を指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注記