Dear Master Ignite,
i have exception "IgniteCheckedException: Failed to validate cache
configuration. Cache store factory is not s
erializable.".
*Here is my code:*
/**
*
*/
package com.sybase365.mobiliser.custom.btpn.brand.ignite.custom.config;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Properties;
import javax.cache.configuration.Factory;
import javax.sql.DataSource;
import org.apache.ignite.cache.CacheAtomicityMode;
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.cache.QueryEntity;
import org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory;
import org.apache.ignite.cache.store.jdbc.JdbcType;
import org.apache.ignite.cache.store.jdbc.JdbcTypeField;
import org.apache.ignite.cache.store.jdbc.dialect.OracleDialect;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import
org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
import oracle.jdbc.pool.OracleDataSource;
/**
* @author 17054072
*
*/
public class ClientConfigurationFactory implements Serializable{
/**
*
*/
private static final long serialVersionUID = 4067320674189197181L;
private static final Properties props = new Properties();
/*static {
try {
InputStream in =
IgniteConfiguration.class.getClassLoader().getResourceAsStream("META-INF/spring/secret.properties");
props.load(in);
}
catch (Exception ignored) {
// No-op.
}
}*/
public static class DataSources {
public static final OracleDataSource INSTANCE_dsOracle_Btpndev =
createdsOracle_Btpndev();
private static OracleDataSource createdsOracle_Btpndev() {
try {
OracleDataSource dsOracle_Btpndev = new OracleDataSource();
dsOracle_Btpndev.setURL("jdbc:oracle:thin:@10.1.92.63:1521:WOWDEV");
dsOracle_Btpndev.setUser("BTPN_BM_02");
dsOracle_Btpndev.setPassword("password");
/*dsOracle_Btpndev.setURL(props.getProperty("dsOracle_Btpndev.jdbc.url"));
dsOracle_Btpndev.setUser(props.getProperty("dsOracle_Btpndev.jdbc.username"));
dsOracle_Btpndev.setPassword(props.getProperty("dsOracle_Btpndev.jdbc.password"));*/
return dsOracle_Btpndev;
}
catch (SQLException ex) {
throw new Error(ex);
}
}
}
public static IgniteConfiguration createConfiguration() throws Exception
{
IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setClientMode(true);
cfg.setIgniteInstanceName("BrandCluster");
TcpDiscoverySpi discovery = new TcpDiscoverySpi();
TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
ipFinder.setAddresses(Arrays.asList("10.1.92.137:47500"));
discovery.setIpFinder(ipFinder);
cfg.setDiscoverySpi(discovery);
cfg.setCacheConfiguration(cacheSequenceCache());
return cfg;
}
public static CacheConfiguration cacheSequenceCache() throws Exception {
CacheConfiguration ccfg = new CacheConfiguration();
ccfg.setName("SequenceCache");
ccfg.setCacheMode(CacheMode.PARTITIONED);
ccfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
CacheJdbcPojoStoreFactory cacheStoreFactory = new
CacheJdbcPojoStoreFactory();
cacheStoreFactory.setDataSourceFactory(new Factory() {
/**
*
*/
private static final long serialVersionUID =
-8028910004810254541L;
/** {@inheritDoc} **/
public DataSource create() {
return DataSources.INSTANCE_dsOracle_Btpndev;
};
});
cacheStoreFactory.setDialect(new OracleDialect());
cacheStoreFactory.setTypes(jdbcTypeSequence(ccfg.getName()));
ccfg.setCacheStoreFactory(cacheStoreFactory);
ccfg.setReadThrough(true);
ccfg.setWriteThrough(true);
ccfg.setSqlSchema("PUBLIC");
ArrayList qryEntities = new ArrayList();
QueryEntity qryEntity = new QueryEntity();
qryEntity.setKeyType("java.lang.String");
qryEntity.setValueType("com.btpn.rizal.khaerul.model.Sequence");
qryEntity.setTableName("SEQUENCE");
qryEntit