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)
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-store
element specifies the configuration for a string based keyed cache JDBC store.- The
datasource
parameter defines the name of a JNDI for the datasource. - The
passivation
parameter determines whether entries in the cache are passivated (true
) or if the cache store retains a copy of the contents in memory (false
). - The
preload
parameter specifies whether to load entries into the cache during start up. Valid values for this parameter aretrue
andfalse
. - The
purge
parameter specifies whether or not the cache store is purged when it is started. Valid values for this parameter aretrue
andfalse
. - The
shared
parameter 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 aretrue
andfalse
. - The
singleton
parameter 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-table
element specifies information about the database table used to store string based cache entries.- The
prefix
parameter 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-column
element specifies information about a database column that holds cache entry IDs.- The
name
parameter specifies the name of the ID column. - The
type
parameter 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-column
element contains information about a database column that holds cache entry data.- The
name
parameter specifies the name of the database column. - The
type
parameter 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-column
element specifies information about the database column that holds cache entry timestamps.- The
name
parameter specifies the name of the database column. - The
type
parameter 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>