Hi all,
I've been trying to create a cache in my application with Cassandra as the persistent storage. My current setup is: - starting Ignite on the server with default configs. - application connects to the ignite server as a client and attempts to load the cache configuration and create the cache - the cache configuration uses CassandraCacheStoreFactory. I'm aware I cannot do this programmatically because DataSource is not serializable (until 1.8) so have been trying to use xml files. When my application starts it seems to create the cache ( [17:30:44,732][INFO][main][GridCacheProcessor] Started cache [name=ctntimestamp, mode=PARTITIONED]) but later just gets stuck with "[WARNING][main][GridCachePartitionExchangeManager] Still waiting for initial partition map exchange" every 40 seconds. In the logs for the server I see the error message "class org.apache.ignite.IgniteCheckedException: Spring bean with provided name doesn't exist , beanName=cassandraAdminDataSource]". My xml file is below and is in the src/main/resources folder. It is loaded with Ignition.start(getClass.getResource("/ignite-cass.xml")) Any ideas what the problem could be? P.S. When will 1.8 be released? I tried doing it all programmatically with 1.8 SNAPSHOT and it works fine. <?xml version="1.0" encoding="UTF-8"?> <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"> <bean id="loadBalancingPolicy" class="com.datastax.driver.core.policies.TokenAwarePolicy"> <constructor-arg type="com.datastax.driver.core.policies.LoadBalancingPolicy"> <bean class="com.datastax.driver.core.policies.RoundRobinPolicy"/> </constructor-arg> </bean> <util:list id="contactPoints" value-type="java.lang.String"> <value>127.0.0.1</value> </util:list> <bean id="cassandraAdminDataSource" class="org.apache.ignite.cache.store.cassandra.datasource.DataSource"> <property name="contactPoints" ref="contactPoints"/> <property name="readConsistency" value="ONE"/> <property name="writeConsistency" value="ONE"/> <property name="loadBalancingPolicy" ref="loadBalancingPolicy"/> </bean> <bean id="cache1_persistence_settings" class="org.apache.ignite.cache.store.cassandra.persistence.KeyValuePersistenceSettings"> <constructor-arg type="java.lang.String"> <value><![CDATA[ <persistence keyspace="test1" table="primitive_test1"> <keyPersistence class="java.lang.String" strategy="PRIMITIVE" column="key"/> <valuePersistence class="java.lang.Long" strategy="PRIMITIVE" column="value"/> </persistence>]]> </value> </constructor-arg> </bean> <!-- Ignite configuration --> <bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration"> <property name="clientMode" value="true"/> <property name="metricsLogFrequency" value="0"/> <property name="cacheConfiguration"> <list> <!-- Configuring persistence for "cache1" cache --> <bean class="org.apache.ignite.configuration.CacheConfiguration"> <property name="name" value="ctntimestamp"/> <property name="readThrough" value="true"/> <property name="writeThrough" value="true"/> <property name="cacheStoreFactory"> <bean class="org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory"> <property name="dataSourceBean" value="cassandraAdminDataSource"/> <property name="persistenceSettingsBean" value="cache1_persistence_settings"/> </bean> </property> </bean> </list> </property> <!-- Configuring remote ignite cluster connections --> <property name="discoverySpi"> <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> <property name="ipFinder"> <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> <property name="addresses"> <list> <value>127.0.0.1</value> </list> </property> </bean> </property> </bean> </property> </bean> </beans>