Hi, Make sure that you have cache store configuration on server and client nodes.
Also use only one type of node configuration: declarative (Spring XML) or programmatically configuration. What version of Ignite do you use? I need it for applying provided stack trace to proper version of code. On Tue, May 23, 2017 at 2:16 PM, debasish pradhan <debasis0...@gmail.com> wrote: > hi , > > > Please find the config file for client . > > import com.mchange.v2.c3p0.ComboPooledDataSource; > import java.io.InputStream; > import java.math.BigDecimal; > import java.sql.Types; > import java.util.ArrayList; > import java.util.Arrays; > 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.BasicJdbcDialect; > import org.apache.ignite.configuration.BinaryConfiguration; > import org.apache.ignite.configuration.CacheConfiguration; > import org.apache.ignite.configuration.IgniteConfiguration; > import org.apache.ignite.configuration.OdbcConfiguration; > import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; > import > org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; > //import com.timesten.jdbc.JdbcOdbcConnection; > //import com.timesten.jdbc.TimesTenDataSource; > > public class ClientConfigurationFactory { > /** Secret properties loading. **/ > private static final Properties props = new Properties(); > > static { > try (InputStream in = > IgniteConfiguration.class.getClassLoader().getResourceAsStream("secret.properties")) > { > props.load(in); > } > catch (Exception ignored) { > // No-op. > } > } > > /** Helper class for datasource creation. **/ > public static class DataSources { > public static final ComboPooledDataSource INSTANCE_dataStore = > createdataStore(); > > private static ComboPooledDataSource createdataStore() { > ComboPooledDataSource dataStore = new ComboPooledDataSource(); > > > dataStore.setJdbcUrl("jdbc:timesten:client:TTC_Server=localhost;TCP_PORT=53397;TTC_Server_DSN=EMSDSN;UID=test;PWD=test;TTC_Timeout=180"); > dataStore.setUser("kodiak"); > dataStore.setPassword("kodiak"); > > return dataStore; > } > } > > > /** > * Configure grid. > * > * @return Ignite configuration. > * @throws Exception If failed to construct Ignite configuration > instance. > **/ > public static IgniteConfiguration createConfiguration() throws Exception > { > IgniteConfiguration cfg = new IgniteConfiguration(); > > cfg.setClientMode(true); > cfg.setGridName("TestDB1"); > > TcpDiscoverySpi discovery = new TcpDiscoverySpi(); > > TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(); > > ipFinder.setAddresses(Arrays.asList("127.0.0.1:47500..47510")); > > discovery.setIpFinder(ipFinder); > > cfg.setDiscoverySpi(discovery); > > BinaryConfiguration binaryCfg = new BinaryConfiguration(); > > binaryCfg.setCompactFooter(false); > > cfg.setBinaryConfiguration(binaryCfg); > > cfg.setOdbcConfiguration(new OdbcConfiguration()); > > cfg.setCacheConfiguration(cacheEmployeeCache()); > > return cfg; > } > > /** > * Create configuration for cache "EmployeeCache". > * > * @return Configured cache. > * @throws Exception if failed to create cache configuration. > **/ > public static CacheConfiguration cacheEmployeeCache() throws Exception { > CacheConfiguration ccfg = new CacheConfiguration(); > > ccfg.setName("EmployeeCache"); > ccfg.setCacheMode(CacheMode.PARTITIONED); > ccfg.setAtomicityMode(CacheAtomicityMode.ATOMIC); > > CacheJdbcPojoStoreFactory cacheStoreFactory = new > CacheJdbcPojoStoreFactory(); > > cacheStoreFactory.setDataSourceFactory(new Factory<DataSource>() { > /** {@inheritDoc} **/ > @Override public DataSource create() { > return DataSources.INSTANCE_dataStore; > }; > }); > > cacheStoreFactory.setDialect(new BasicJdbcDialect()); > > cacheStoreFactory.setTypes(jdbcTypeEmployee(ccfg.getName())); > > ccfg.setCacheStoreFactory(cacheStoreFactory); > > ccfg.setReadThrough(true); > ccfg.setWriteThrough(true); > > ArrayList<QueryEntity> qryEntities = new ArrayList<>(); > > QueryEntity qryEntity = new QueryEntity(); > > qryEntity.setKeyType("com.gmail.orl.debasis.model.EmployeeKey"); > qryEntity.setValueType("com.gmail.orl.debasis.model.Employee"); > > LinkedHashMap<String, String> fields = new LinkedHashMap<>(); > > fields.put("id", "java.math.BigDecimal"); > fields.put("firstname", "java.lang.String"); > fields.put("lastname", "java.lang.String"); > > qryEntity.setFields(fields); > qryEntities.add(qryEntity); > > ccfg.setQueryEntities(qryEntities); > > return ccfg; > } > > /** > * Create JDBC type for "jdbcTypeEmployee". > * > * @param cacheName Cache name. > * @return Configured JDBC type. > **/ > private static JdbcType jdbcTypeEmployee(String cacheName) { > JdbcType type = new JdbcType(); > > type.setCacheName(cacheName); > type.setKeyType("com.gmail.orl.debasis.model.EmployeeKey"); > type.setValueType("com.gmail.orl.debasis.model.Employee"); > type.setDatabaseSchema("DG"); > type.setDatabaseTable("EMPLOYEE"); > > type.setValueFields( > new JdbcTypeField(Types.DECIMAL, "ID", BigDecimal.class, "id"), > new JdbcTypeField(Types.VARCHAR, "FIRSTNAME", String.class, > "firstname"), > new JdbcTypeField(Types.VARCHAR, "LASTNAME", String.class, > "lastname") > ); > > return type; > } > } > > ****************** > client-config.xml > > <?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"> > <!-- Load external properties file. --> > <bean id="placeholderConfig" > class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> > <property name="location" value="classpath:secret.properties"/> > </bean> > > <!-- Data source beans will be initialized from external properties > file. --> > <bean id="dataStore" class="com.mchange.v2.c3p0.ComboPooledDataSource"> > <property name="jdbcUrl" value="${dataStore.jdbc.url}"/> > <property name="user" value="${dataStore.jdbc.username}"/> > <property name="password" value="${dataStore.jdbc.password}"/> > </bean> > > <!-- Data source beans will be initialized from external properties > file. --> > <!-- <bean id="dataStore" class="com.timesten.jdbc.TimesTenDataSource"> > <property name="jdbcUrl" > value="jdbc:timesten:client:TTC_Server=localhost;TCP_PORT=53397;TTC_Server_DSN=emsdsn;UID=kodiak;PWD=kodiak;TTC_Timeout=180"/> > <property name="user" value="kodiak"/> > <property name="password" value="kodiak"/> > </bean>--> > > <bean class="org.apache.ignite.configuration.IgniteConfiguration"> > <property name="clientMode" value="false"/> > <property name="gridName" value="TestDB1"/> > > <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:47500..47510</value> > </list> > </property> > </bean> > </property> > </bean> > </property> > > <property name="binaryConfiguration"> > <bean > class="org.apache.ignite.configuration.BinaryConfiguration"> > <property name="compactFooter" value="false"/> > </bean> > </property> > > <property name="odbcConfiguration"> > <bean class="org.apache.ignite.configuration.OdbcConfiguration"> > </bean> > </property> > > <property name="cacheConfiguration"> > <list> > <bean > class="org.apache.ignite.configuration.CacheConfiguration"> > <property name="name" value="EmployeeCache"/> > <property name="cacheMode" value="PARTITIONED"/> > <property name="atomicityMode" value="ATOMIC"/> > > <property name="cacheStoreFactory"> > <bean > class="org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory"> > <property name="dataSourceBean" > value="dataStore"/> > <property name="dialect"> > <bean > class="org.apache.ignite.cache.store.jdbc.dialect.BasicJdbcDialect"> > </bean> > </property> > > <property name="types"> > <list> > <bean > class="org.apache.ignite.cache.store.jdbc.JdbcType"> > <property name="cacheName" > value="EmployeeCache"/> > <property name="keyType" > value="com.gmail.orl.debasis.model.EmployeeKey"/> > <property name="valueType" > value="com.gmail.orl.debasis.model.Employee"/> > <property name="databaseSchema" > value="DG"/> > <property name="databaseTable" > value="EMPLOYEE"/> > > <property name="valueFields"> > <list> > <bean > class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> > <constructor-arg> > <util:constant > static-field="java.sql.Types.DECIMAL"/> > </constructor-arg> > <constructor-arg > value="ID"/> > <constructor-arg > value="java.math.BigDecimal"/> > <constructor-arg > value="id"/> > </bean> > > <bean > class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> > <constructor-arg> > <util:constant > static-field="java.sql.Types.VARCHAR"/> > </constructor-arg> > <constructor-arg > value="FIRSTNAME"/> > <constructor-arg > value="java.lang.String"/> > <constructor-arg > value="firstname"/> > </bean> > > <bean > class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> > <constructor-arg> > <util:constant > static-field="java.sql.Types.VARCHAR"/> > </constructor-arg> > <constructor-arg > value="LASTNAME"/> > <constructor-arg > value="java.lang.String"/> > <constructor-arg > value="lastname"/> > </bean> > </list> > </property> > </bean> > </list> > </property> > </bean> > </property> > > <property name="readThrough" value="true"/> > <property name="writeThrough" value="true"/> > > <property name="queryEntities"> > <list> > <bean > class="org.apache.ignite.cache.QueryEntity"> > <property name="keyType" > value="com.gmail.orl.debasis.model.EmployeeKey"/> > <property name="valueType" > value="com.gmail.orl.debasis.model.Employee"/> > > <property name="fields"> > <map> > <entry key="id" > value="java.math.BigDecimal"/> > <entry key="firstname" > value="java.lang.String"/> > <entry key="lastname" > value="java.lang.String"/> > </map> > </property> > </bean> > </list> > </property> > </bean> > </list> > </property> > </bean> > </beans> > > On Tue, May 23, 2017 at 4:34 PM, Evgenii Zhuravlev > <e.zhuravlev...@gmail.com> wrote: >> >> Hi, >> >> Could you provide your full config file? >> >> 2017-05-22 15:00 GMT+03:00 debasish pradhan <debasis0...@gmail.com>: >>> >>> Hi , >>> >>> I am new to apache ignite. I was trying to connect Timesten DB to fetch >>> data , but its failing . I downloaded the project from web console . As per >>> instruction I started the server node . After that I am trying to run >>> loadcache . but its failing with following error. >>> >>> cache load code: >>> ========= >>> >>> try (Ignite ignite = Ignition.start("TestDB1-client.xml")) { >>> >>> System.out.println(">>> Loading caches..."); >>> >>> System.out.println(">>> Loading cache:...EmployeeCache"); >>> >>> //ignite.cache("EmployeeCache").loadCache(null); >>> >>> ignite.cache("EmployeeCache").loadCache(null, Employee.class.getName(), >>> "select * from DG.Employee"); >>> >>> >>> configuration:jdbc driver : >>> >>> public static class DataSources { >>> public static final TimesTenDataSource INSTANCE_dataStore = >>> createdataStore(); >>> private static TimesTenDataSource createdataStore() { >>> TimesTenDataSource dataStore = new TimesTenDataSource(); >>> >>> dataStore.setUrl("jdbc:timesten:client:TTC_Server=localhost;TCP_PORT=53397;TTC_Server_DSN=TESTDSN;UID=test;PWD=test;TTC_Timeout=180"); >>> dataStore.setUser("test"); >>> dataStore.setPassword("test"); >>> return dataStore; >>> } >>> } >>> >>> >>> TestDB1-client.xml--> >>> >>> <bean id="dataSource" class="com.timesten.jdbc.TimesTenDataSource"> >>> <property name="url" >>> value="jdbc:timesten:client:TTC_Server=localhost;TCP_PORT=53397;TTC_Server_DSN=TestDSN;UID=test;PWD=test;TTC_Timeout=180" >>> /> >>> <property name="username" value="kodiak" /> >>> <property name="password" value="kodiak" /> >>> </bean> >>> >>> >>> [17:04:12,860][SEVERE][main][GridJobWorker] Failed to execute job >>> [jobId=1a08fef2c51-8b249f71-34cd-4ec7-8056-c32a3e61034b, >>> ses=GridJobSessionImpl [ses=GridTaskSessionImpl >>> [taskName=o.a.i.i.processors.cache.GridCacheAdapter$LoadCacheJobV2, >>> dep=LocalDeployment [super=GridDeployment [ts=1495452846874, depMode=SHARED, >>> clsLdr=sun.misc.Launcher$AppClassLoader@4e0e2f2a, >>> clsLdrId=6608fef2c51-8b249f71-34cd-4ec7-8056-c32a3e61034b, userVer=0, >>> loc=true, sampleClsName=java.lang.String, pendingUndeploy=false, >>> undeployed=false, usage=0]], >>> taskClsName=o.a.i.i.processors.cache.GridCacheAdapter$LoadCacheJobV2, >>> sesId=0a08fef2c51-8b249f71-34cd-4ec7-8056-c32a3e61034b, >>> startTime=1495452852829, endTime=9223372036854775807, >>> taskNodeId=8b249f71-34cd-4ec7-8056-c32a3e61034b, >>> clsLdr=sun.misc.Launcher$AppClassLoader@4e0e2f2a, closed=false, cpSpi=null, >>> failSpi=null, loadSpi=null, usage=1, fullSup=false, internal=true, >>> subjId=8b249f71-34cd-4ec7-8056-c32a3e61034b, mapFut=IgniteFuture >>> [orig=GridFutureAdapter [resFlag=0, res=null, startTime=1495452852839, >>> endTime=0, ignoreInterrupts=false, state=INIT]]], >>> jobId=1a08fef2c51-8b249f71-34cd-4ec7-8056-c32a3e61034b]] >>> >>> class org.apache.ignite.IgniteException: java.lang.NullPointerException >>> >>> at >>> org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2V2.execute(GridClosureProcessor.java:2059) >>> >>> at >>> org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:560) >>> >>> at >>> org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6620) >>> >>> at >>> org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:554) >>> >>> at >>> org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:483) >>> >>> at >>> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) >>> >>> at >>> org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1114) >>> >>> at >>> org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1383) >>> >>> at >>> org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:645) >>> >>> at >>> org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:537) >>> >>> at >>> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) >>> >>> at >>> org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:679) >>> >>> at >>> org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:403) >>> >>> at >>> org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:418) >>> >>> at >>> org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:391) >>> >>> at >>> org.apache.ignite.internal.processors.cache.GridCacheAdapter.globalLoadCacheAsync(GridCacheAdapter.java:3718) >>> >>> at >>> org.apache.ignite.internal.processors.cache.GridCacheAdapter.globalLoadCache(GridCacheAdapter.java:3657) >>> >>> at >>> org.apache.ignite.internal.processors.cache.IgniteCacheProxy.loadCache(IgniteCacheProxy.java:390) >>> >>> at load.LoadCaches.main(LoadCaches.java:28) >>> >>> >>> >> >