2016-08-22 12 views
1

たとえば、キャッシュA1はデータベースdb1から準備され、キャッシュB1はデータベースdb2から準備される必要があるため、複数の永続ストアをサポートする必要があります。これを行うことができますか?私は、このデータベースを右にアクセスすることができ、私のCacheStore実装ではApache Ignite用の複数の永続ストア

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" 
xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/util 
    http://www.springframework.org/schema/util/spring-util.xsd"> 

<!-- Datasource for Persistence. --> 
<bean name="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> 
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:roc12c" /> 
    <property name="username" value="test" /> 
    <property name="password" value="test" /> 
</bean> 

、私は唯一の永続ストアの詳細を提供することができます設定XMLを点火.IN?。

+0

あなたはそのサンプルを入手できますか? –

+0

@Carlosこれは、igniteサイトで提供されているサンプルプログラムに付属のIgnite-Config.xmlの一部です。この 'dataSource' Beanを** CacheJdbcPojoStoreFactory **オブジェクトに挿入します。このファクトリは** CacheConfiguration.setCacheStoreFactory **メソッドを使用して** CacheConfiguration **オブジェクト内に設定されます。私は実際に、各キャッシュ[リンク] https://apacheignite.readme.io/docs/automatic-persistenceごとにCacheStore実装を避けることができる自動永続化手法に従っています。 –

答えて

3

私はこれを試していませんが、他のBean構成のシステムに似ています。別の名前と構成で別のBeanを作成できるはずです。次に、A1B1のキャッシュ構成で、さまざまなデータソースを指定します。つまり、私はそれを理論的に推測しています。

あなたはすでにそうしているかもしれませんが、あなたの質問からはわかりません。代わりにこの方法でキャッシュを実装することを選択した場合、https://apacheignite.readme.io/docs/persistent-storeでは、2つのキャッシュが異なるデータソースを持つように構成できます。これは私が現在複数のキャッシュを実装している方法です。私が使用するキャッシュストアでは、具体的にどのデータベースを呼び出すかを呼び出します。

私が私のために使用するキャッシュ構成は次のとおりです。

<property name="cacheConfiguration"> 
     <bean class="org.apache.ignite.configuration.CacheConfiguration"> 
      <!-- Set a cache name. --> 
      <property name="name" value="recordData"/> 
      <property name="rebalanceMode" value="ASYNC"/> 
      <property name="cacheMode" value="PARTITIONED"/> 
      <property name="backups" value="1"/> 
      <!-- Enable Off-Heap memory with max size of 10 Gigabytes (0 for unlimited). --> 
      <property name="memoryMode" value="OFFHEAP_TIERED"/> 
      <property name="offHeapMaxMemory" value="0"/> 
      <property name="swapEnabled" value="false"/> 

      <property name="cacheStoreFactory"> 
       <bean class="javax.cache.configuration.FactoryBuilder" factory-method="factoryOf"> 
        <constructor-arg value="com.company.util.MyDataStore"/> 
       </bean> 
      </property> 
      <property name="readThrough" value="true"/> 
      <property name="writeThrough" value="true"/> 

     </bean> 
    </property> 
2

キャッシュストアはキャッシュごとに構成されているため、異なるストアに異なるデータソースを注入するだけで済みます。あなたが示したのは単なるスタンドアロンのデータソースBeanで、それはIgniteConfigurationの一部でもありません。異なるIDを持つ複数のデータソースBeanを持つことができます。

関連する問題