15.2. JdbcStringBasedStores
The
JdbcStringBasedStore stores each entry in its own row in the table, instead of grouping multiple entries into each row, resulting in increased throughput under a concurrent load. It also uses a (pluggable) bijection that maps each key to a String object. The Key2StringMapper interface defines the bijection.
Red Hat JBoss Data Grid includes a default implementation called
DefaultTwoWayKey2StringMapper that handles primitive types.
15.2.1. JdbcStringBasedStore Configuration (Remote Client-Server Mode) Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
The following is a sample
JdbcStringBasedStore for Red Hat JBoss Data Grid's Remote Client-Server mode with Passivation enabled.
Procedure 15.4. Configure JdbcStringBasedStore in Remote Client-Server Mode
The string-keyed-jdbc-store Element
Thestring-keyed-jdbc-storeelement specifies the configuration for a string based keyed cache JDBC store.- The
datasourceparameter defines the name of a JNDI for the datasource. - The
passivationparameter determines whether entries in the cache are passivated (true) or if the cache store retains a copy of the contents in memory (false). - The
preloadparameter specifies whether to load entries into the cache during start up. Valid values for this parameter aretrueandfalse. - The
purgeparameter specifies whether or not the cache store is purged when it is started. Valid values for this parameter aretrueandfalse. - The
sharedparameter is used when multiple cache instances share a cache store. This parameter can be set to prevent multiple cache instances writing the same modification multiple times. Valid values for this parameter aretrueandfalse. - The
singletonparameter enables a singleton store cache store. SingletonStore is a delegating cache store used when only one instance in a cluster can interact with the underlying store.
<local-cache> ... <string-keyed-jdbc-store datasource="java:jboss/datasources/JdbcDS" passivation="true" preload="false" purge="false" shared="false" singleton="true">The string-keyed-table Element
Thestring-keyed-tableelement specifies information about the database table used to store string based cache entries.- The
prefixparameter specifies a prefix string for the database table name.
<local-cache> ... <string-keyed-jdbc-store datasource="java:jboss/datasources/JdbcDS" passivation="true" preload="false" purge="false" shared="false" singleton="true"> <string-keyed-table prefix="JDG">The id-column Element
Theid-columnelement specifies information about a database column that holds cache entry IDs.- The
nameparameter specifies the name of the ID column. - The
typeparameter specifies the type of the ID column.
<local-cache> ... <string-keyed-jdbc-store datasource="java:jboss/datasources/JdbcDS" passivation="true" preload="false" purge="false" shared="false" singleton="true"> <string-keyed-table prefix="JDG"> <id-column name="id" type="${id.column.type}"/>The data-column Element
Thedata-columnelement contains information about a database column that holds cache entry data.- The
nameparameter specifies the name of the database column. - The
typeparameter specifies the type of the database column.
<local-cache> ... <string-keyed-jdbc-store datasource="java:jboss/datasources/JdbcDS" passivation="true" preload="false" purge="false" shared="false" singleton="true"> <string-keyed-table prefix="JDG"> <id-column name="id" type="${id.column.type}"/> <data-column name="datum" type="${data.column.type}"/>The timestamp-column Element
Thetimestamp-columnelement specifies information about the database column that holds cache entry timestamps.- The
nameparameter specifies the name of the database column. - The
typeparameter specifies the type of the database column.
<local-cache> ... <string-keyed-jdbc-store datasource="java:jboss/datasources/JdbcDS" passivation="true" preload="false" purge="false" shared="false" singleton="true"> <string-keyed-table prefix="JDG"> <id-column name="id" type="${id.column.type}"/> <data-column name="datum" type="${data.column.type}"/> <timestamp-column name="version" type="${timestamp.column.type}"/> </string-keyed-table> </string-keyed-jdbc-store> </local-cache>