2

infinispan Cached ストアのキャッシュされたオブジェクトをリレーショナル データベース テーブルに永続化する方法はありますか?キャッシュローダーとして実行しようとしていました。

 <loader class="org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore" fetchPersistentState="true" ignoreModifications="false" purgeOnStartup="false">
    <properties>
     <property name="stringsTableNamePrefix" value="ISPN_STRING_TABLE"/>
     <property name="idColumnName" value="ID_COLUMN"/>
     <property name="dataColumnName" value="DATA_COLUMN"/>
     <property name="timestampColumnName" value="TIMESTAMP_COLUMN"/>
     <property name="timestampColumnType" value="BIGINT"/>
     <property name="connectionFactoryClass" value="org.infinispan.loaders.jdbc.connectionfactory.PooledConnectionFactory"/>
     <property name="connectionUrl" value="jdbc:derby://localhost:1527/DB;create=true"/>
     <property name="userName" value="user"/>
     <property name="password" value="password"/>
     <property name="driverClass" value="org.apache.derby.jdbc.ClientDriver"/>
     <property name="idColumnType" value="VARCHAR(255)"/>
     <property name="dataColumnType" value="BLOB"/>
     <property name="dropTableOnExit" value="false"/>
     <property name="createTableOnStart" value="true"/>

    </properties>
 </loader> 

From このキーと値は、<namedCache name="TEST_STORE"> である ISPN_STRING_TABLE_TEST_STORE に保存されます。ID列にキーを保存し、DATA_COLUMNに値をBlobとして保存します。このBlob Containデータをリレーショナルデータベース(オブジェクトとしてではなく)に配置したいです。例として、従業員オブジェクトをキャッシュに配置する場合、データベーステーブルをそのテーブルのフィールドとして従業員のプロパティを持つ従業員テーブル(従業員名、年齢など)。これを行う方法はありますか?

4

2 に答える 2

3

Infinispan Data Grid Platform Bookには、 MySQLをリレーショナルデータベースとして使用してJdbcStringBasedCacheStoreを構成する方法を説明する例があります。この例では、接続URLでデータソースが使用されていますが、ニーズに合わせて調整することは難しくありません。お役に立てば幸いです。
よろしく

<loaders>
    <loader
        class="org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore"
        fetchPersistentState="true" ignoreModifications="false"
        purgeOnStartup="false">
        <properties>
            <property name="stringsTableNamePrefix" value="ISPN_STRING_TABLE" />
            <property name="idColumnName" value="ID_COLUMN" />
            <property name="idColumnType" value="VARCHAR(255)" />
            <property name="dataColumnName" value="DATA_COLUMN" />
            <property name="dataColumnType" value="TRUE" />
            <property name="timestampColumnName" value="TIMESTAMP_COLUMN" />
            <property name="timestampColumnType" value="BIGINT" />
            <property name="connectionFactoryClass"
                value="org.infinispan.loaders.jdbc.
    connectionfactory.PooledConnectionFactory" />
            <property name="connectionUrl" value="java:jboss/datasources/MySQLDS" />
            <property name="userName" value="xxxx" />
            <property name="password" value="xxxx" />
            <property name="driverClass" value="com.mysql.jdbc.Driver" />
            <property name="dropTableOnExit" value="true" />
            <property name="createTableOnStart" value="true" />
        </properties>
    </loader>
</loaders>
于 2012-09-13T13:29:56.723 に答える
2

状況は変わったようです。これは、Infinispan 5.2 および 5.3 で動作するようです。

   <loaders [...]>
      <stringKeyedJdbcStore
            xmlns="urn:infinispan:config:jdbc:5.2"
            fetchPersistentState="false"
            ignoreModifications="false"
            purgeOnStartup="false">
         <dataSource jndiUrl="java:jboss/datasources/MySQLDS" />
<!--
         <connectionPool connectionUrl="jdbc:mysql://[host][:port]/[database]"
                         username="xxxx"
                         password="xxxx"
                         driverClass="com.mysql.jdbc.Driver"/>
-->
         <stringKeyedTable dropOnExit="true"
                           createOnStart="true"
                           prefix="ISPN_STRING_TABLE">
            <idColumn name="ID_COLUMN" type="VARCHAR(255)" />
            <dataColumn name="DATA_COLUMN" type="BINARY" />
            <timestampColumn name="TIMESTAMP_COLUMN" type="BIGINT" />
         </stringKeyedTable>
      </stringKeyedJdbcStore>
   </loaders>

xmlns を使用urn:infinispan:config:jdbc:5.2(リンクの schemaLocation)

于 2013-06-04T18:18:18.140 に答える