Can someone please help how Ignite works for the following use case. The server node loads data from Persistent Store into cache upon start up. There will be a couple of client nodes (c++, .net based) that needs to access the cache. The server node will have the configuration for cachestore. Should the client nodes also have the configuration for cachestore? I am hoping no because all they need is to read the cache. But I am assuming, if these client nodes can also update the cache then the cachestore config is required if write through is enabled. Please validate my assumptions.
Thanks, Satya... On Tue, Apr 26, 2016 at 9:44 AM, Murthy Kakarlamudi <ksa...@gmail.com> wrote: > No..I am not. I have different configs for my server node in java vs my > client node in c++. That was the question I had. In my server node that > loads the data from persistent store to cache, I configured cachestore. But > my c++ node is only a client node that needs to access cache. So I was not > sure if my client node config should have the cachestore details as well. > > Let me try the option you suggested. > > On Tue, Apr 26, 2016 at 9:40 AM, Vladimir Ozerov <voze...@gridgain.com> > wrote: > >> HI Murthy, >> >> Do you start all nodes with the same XML configuration? Please ensure >> that this is so, and all nodes know all caches from configuration in >> advance. >> >> Vladimir. >> >> On Tue, Apr 26, 2016 at 3:27 PM, Murthy Kakarlamudi <ksa...@gmail.com> >> wrote: >> >>> Hi Vladimir...I made the update and still running into the same issue. >>> >>> Here is the updated spring config for my Java node: >>> <?xml version="1.0" encoding="UTF-8"?> >>> >>> <!-- Licensed to the Apache Software Foundation (ASF) under one or more >>> contributor >>> license agreements. See the NOTICE file distributed with this work for >>> additional >>> information regarding copyright ownership. The ASF licenses this file to >>> You under the Apache License, Version 2.0 (the "License"); you may not >>> use >>> this file except in compliance with the License. You may obtain a copy >>> of >>> the License at http://www.apache.org/licenses/LICENSE-2.0 Unless >>> required >>> by applicable law or agreed to in writing, software distributed under >>> the >>> License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR >>> CONDITIONS >>> OF ANY KIND, either express or implied. See the License for the specific >>> language governing permissions and limitations under the License. --> >>> >>> <!-- Ignite Spring configuration file to startup Ignite cache. This file >>> demonstrates how to configure cache using Spring. Provided cache will be >>> created on node startup. Use this configuration file when running HTTP >>> REST >>> examples (see 'examples/rest' folder). When starting a standalone node, >>> you >>> need to execute the following command: {IGNITE_HOME}/bin/ignite.{bat|sh} >>> examples/config/example-cache.xml When starting Ignite from Java IDE, >>> pass >>> path to this file to Ignition: >>> Ignition.start("examples/config/example-cache.xml"); --> >>> <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-2.5.xsd"> >>> >>> <bean id="myDataSource" >>> class="org.springframework.jdbc.datasource.DriverManagerDataSource"> >>> <property name="driverClassName" >>> value="com.microsoft.sqlserver.jdbc.SQLServerDriver" /> >>> <property name="url" >>> value="jdbc:sqlserver://LAPTOP-QIT4AVOG\MSSQLSERVER64;databaseName=PrimeOne;integratedSecurity=true" >>> /> >>> </bean> >>> >>> <bean id="ignite.cfg" >>> class="org.apache.ignite.configuration.IgniteConfiguration"> >>> <property name="binaryConfiguration"> >>> <bean class="org.apache.ignite.configuration.BinaryConfiguration"> >>> <property name="compactFooter" value="false" /> >>> </bean> >>> </property> >>> >>> <property name="cacheConfiguration"> >>> <list> >>> <!-- Partitioned cache example configuration (Atomic mode). --> >>> <bean class="org.apache.ignite.configuration.CacheConfiguration"> >>> >>> <property name="atomicityMode" value="ATOMIC" /> >>> <property name="backups" value="1" /> >>> <property name="readThrough" value="true" /> >>> <property name="writeThrough" value="true" /> >>> <property name="cacheStoreFactory"> >>> <bean >>> class="org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory"> >>> <!-- <property name="dataSourceBean" value="myDataSource" /> --> >>> <property name="dataSource" ref="myDataSource" /> >>> <property name="types"> >>> <list> >>> <bean class="org.apache.ignite.cache.store.jdbc.JdbcType"> >>> <property name="cacheName" value="buCache" /> >>> <property name="databaseTable" value="BusinessUnit" /> >>> <property name="keyType" value="java.lang.Integer" /> >>> <property name="keyFields"> >>> <list> >>> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> >>> <property name="databaseFieldType"> >>> <util:constant static-field="java.sql.Types.BIGINT" /> >>> </property> >>> <property name="databaseFieldName" value="BUID" /> >>> <property name="javaFieldType" value="java.lang.Integer" /> >>> <property name="javaFieldName" value="buid" /> >>> </bean> >>> </list> >>> </property> >>> <property name="valueType" value="models.BusinessUnit" /> >>> <property name="valueFields"> >>> <list> >>> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> >>> <property name="databaseFieldType"> >>> <util:constant static-field="java.sql.Types.BIGINT" /> >>> </property> >>> <property name="databaseFieldName" value="BUID" /> >>> <property name="javaFieldType" value="java.lang.Integer" /> >>> <property name="javaFieldName" value="buid" /> >>> </bean> >>> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> >>> <property name="databaseFieldType"> >>> <util:constant static-field="java.sql.Types.VARCHAR" /> >>> </property> >>> <property name="databaseFieldName" value="BUName" /> >>> <property name="javaFieldType" value="java.lang.String" /> >>> <property name="javaFieldName" value="buName" /> >>> </bean> >>> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> >>> <property name="databaseFieldType"> >>> <util:constant static-field="java.sql.Types.BIGINT" /> >>> </property> >>> <property name="databaseFieldName" value="CreatedByID" /> >>> <property name="javaFieldType" value="java.lang.Integer" /> >>> <property name="javaFieldName" value="createdByID" /> >>> </bean> >>> </list> >>> </property> >>> </bean> >>> </list> >>> </property> >>> </bean> >>> </property> >>> </bean> >>> </list> >>> </property> >>> >>> <!-- Explicitly configure TCP discovery SPI to provide list of initial >>> nodes. --> >>> <property name="discoverySpi"> >>> <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> >>> <property name="ipFinder"> >>> <!-- Ignite provides several options for automatic discovery that can >>> be used instead os static IP based discovery. For information on all >>> options >>> refer to our documentation: >>> http://apacheignite.readme.io/docs/cluster-config --> >>> <!-- Uncomment static IP finder to enable static-based discovery of >>> initial nodes. --> >>> <bean >>> >>> class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> >>> <!-- <bean >>> class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder"> >>> --> >>> <property name="addresses"> >>> <list> >>> <!-- In distributed environment, replace with actual host IP address. --> >>> <value>127.0.0.1:47500..47509</value> >>> </list> >>> </property> >>> </bean> >>> </property> >>> </bean> >>> </property> >>> </bean> >>> </beans> >>> >>> >>> Error: >>> >>> Cache node started. >>> >>> [08:27:25,045][SEVERE][exchange-worker-#38%null%][GridDhtPartitionsExchangeFuture] >>> Failed to reinitialize local partitions (preloading will be stopped): >>> GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=11, >>> minorTopVer=1], nodeId=bc7d2aa2, evt=DISCOVERY_CUSTOM_EVT] >>> class org.apache.ignite.IgniteException: Spring application context >>> resource is not injected. >>> at >>> org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.create(CacheJdbcPojoStoreFactory.java:156) >>> at >>> org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.create(CacheJdbcPojoStoreFactory.java:96) >>> at >>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCache(GridCacheProcessor.java:1243) >>> at >>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1638) >>> at >>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCachesStart(GridCacheProcessor.java:1563) >>> at >>> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.startCaches(GridDhtPartitionsExchangeFuture.java:956) >>> at >>> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:523) >>> at >>> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1297) >>> at >>> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) >>> at java.lang.Thread.run(Thread.java:745) >>> [08:27:25,063][SEVERE][exchange-worker-#38%null%][GridCachePartitionExchangeManager] >>> Failed to wait for completion of partition map exchange (preloading will >>> not start): GridDhtPartitionsExchangeFuture [dummy=false, >>> forcePreload=false, reassign=false, discoEvt=DiscoveryCustomEvent >>> [customMsg=DynamicCacheChangeBatch [reqs=[DynamicCacheChangeRequest >>> [deploymentId=8ea535e3451-d29afc27-9b4b-4125-bbf2-232c08daa0cb, >>> startCfg=CacheConfiguration [name=buCache, >>> storeConcurrentLoadAllThreshold=5, rebalancePoolSize=2, >>> rebalanceTimeout=10000, evictPlc=null, evictSync=false, >>> evictKeyBufSize=1024, evictSyncConcurrencyLvl=4, evictSyncTimeout=10000, >>> evictFilter=null, evictMaxOverflowRatio=10.0, eagerTtl=true, >>> dfltLockTimeout=0, startSize=1500000, nearCfg=null, writeSync=PRIMARY_SYNC, >>> storeFactory=CacheJdbcPojoStoreFactory [batchSizw=512, >>> dataSrcBean=myDataSource, dialect=null, maxPoolSize=4, maxWriteAttempts=2, >>> parallelLoadCacheMinThreshold=512, >>> hasher=o.a.i.cache.store.jdbc.JdbcTypeDefaultHasher@78d010a2, >>> dataSrc=null], storeKeepBinary=false, loadPrevVal=false, >>> aff=o.a.i.cache.affinity.rendezvous.RendezvousAffinityFunction@76311661, >>> cacheMode=PARTITIONED, atomicityMode=ATOMIC, atomicWriteOrderMode=PRIMARY, >>> backups=1, invalidate=false, tmLookupClsName=null, rebalanceMode=ASYNC, >>> rebalanceOrder=0, rebalanceBatchSize=524288, >>> rebalanceBatchesPrefetchCount=2, offHeapMaxMem=-1, swapEnabled=false, >>> maxConcurrentAsyncOps=500, writeBehindEnabled=false, >>> writeBehindFlushSize=10240, writeBehindFlushFreq=5000, >>> writeBehindFlushThreadCnt=1, writeBehindBatchSize=512, >>> memMode=ONHEAP_TIERED, >>> affMapper=o.a.i.i.processors.cache.CacheDefaultBinaryAffinityKeyMapper@2e41d426, >>> rebalanceDelay=0, rebalanceThrottle=0, interceptor=null, >>> longQryWarnTimeout=3000, readFromBackup=true, >>> nodeFilter=o.a.i.configuration.CacheConfiguration$IgniteAllNodesPredicate@d211e68, >>> sqlSchema=null, sqlEscapeAll=false, sqlOnheapRowCacheSize=10240, >>> snapshotableIdx=false, cpOnRead=true, topValidator=null], cacheType=USER, >>> initiatingNodeId=bc7d2aa2-4a64-467f-8097-d0f579dec0b3, nearCacheCfg=null, >>> clientStartOnly=true, stop=false, close=false, failIfExists=false, >>> template=false, exchangeNeeded=true, cacheFutTopVer=null, >>> cacheName=buCache]], clientNodes=null, >>> id=45ec9825451-cbb8263a-223e-4f3e-8492-71f2612ddae6, >>> clientReconnect=false], affTopVer=AffinityTopologyVersion [topVer=11, >>> minorTopVer=1], super=DiscoveryEvent [evtNode=TcpDiscoveryNode >>> [id=bc7d2aa2-4a64-467f-8097-d0f579dec0b3, addrs=[0:0:0:0:0:0:0:1, >>> 127.0.0.1, 192.168.0.5, 2001:0:9d38:90d7:1064:ea:bb9b:11d9, >>> 2600:8806:0:8d00:0:0:0:1, 2600:8806:0:8d00:15e5:c0bf:286e:8785, >>> 2600:8806:0:8d00:3ccf:1e94:1ab4:83a9], sockAddrs=[LAPTOP-QIT4AVOG/ >>> 192.168.0.5:0, /0:0:0:0:0:0:0:1:0, LAPTOP-QIT4AVOG/192.168.0.5:0, / >>> 127.0.0.1:0, LAPTOP-QIT4AVOG/192.168.0.5:0, /192.168.0.5:0, >>> LAPTOP-QIT4AVOG/192.168.0.5:0, /2001:0:9d38:90d7:1064:ea:bb9b:11d9:0, >>> LAPTOP-QIT4AVOG/192.168.0.5:0, /2600:8806:0:8d00:0:0:0:1:0, >>> /2600:8806:0:8d00:15e5:c0bf:286e:8785:0, >>> /2600:8806:0:8d00:3ccf:1e94:1ab4:83a9:0], discPort=0, order=11, intOrder=0, >>> lastExchangeTime=1461673644205, loc=true, ver=1.5.0#20151229-sha1:f1f8cda2, >>> isClient=true], topVer=11, nodeId8=bc7d2aa2, msg=null, >>> type=DISCOVERY_CUSTOM_EVT, tstamp=1461673645026]], >>> rcvdIds=GridConcurrentHashSet [elements=[]], rmtIds=null, >>> exchId=GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion >>> [topVer=11, minorTopVer=1], nodeId=bc7d2aa2, evt=DISCOVERY_CUSTOM_EVT], >>> init=true, ready=false, replied=false, added=true, >>> initFut=GridFutureAdapter [resFlag=2, res=false, startTime=1461673645026, >>> endTime=1461673645046, ignoreInterrupts=false, lsnr=null, state=DONE], >>> topSnapshot=null, lastVer=null, partReleaseFut=null, skipPreload=false, >>> clientOnlyExchange=false, initTs=1461673645026, >>> oldest=7700cd68-08b1-4571-8744-0e91dcdad9b0, oldestOrder=1, evtLatch=0, >>> remaining=[], super=GridFutureAdapter [resFlag=1, res=class >>> o.a.i.IgniteException: Spring application context resource is not >>> injected., startTime=1461673645026, endTime=1461673645046, >>> ignoreInterrupts=false, lsnr=null, state=DONE]] >>> class org.apache.ignite.IgniteCheckedException: Spring application >>> context resource is not injected. >>> at >>> org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7005) >>> at >>> org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:166) >>> at >>> org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:115) >>> at >>> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1299) >>> at >>> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) >>> at java.lang.Thread.run(Thread.java:745) >>> Caused by: class org.apache.ignite.IgniteException: Spring application >>> context resource is not injected. >>> at >>> org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.create(CacheJdbcPojoStoreFactory.java:156) >>> at >>> org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.create(CacheJdbcPojoStoreFactory.java:96) >>> at >>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCache(GridCacheProcessor.java:1243) >>> at >>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1638) >>> at >>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCachesStart(GridCacheProcessor.java:1563) >>> at >>> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.startCaches(GridDhtPartitionsExchangeFuture.java:956) >>> at >>> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:523) >>> at >>> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1297) >>> >>> On Tue, Apr 26, 2016 at 8:06 AM, Vladimir Ozerov <voze...@gridgain.com> >>> wrote: >>> >>>> Hi Murthy, >>>> >>>> Seems that you faced a kind of usability issue, which happens only in >>>> some specific cases. Please try replacing the following line in your >>>> config: >>>> >>>> <property name="dataSourceBean" value="myDataSource" /> >>>> >>>> with this: >>>> >>>> <property name="dataSource" ref="myDataSource" /> >>>> >>>> It should help. >>>> >>>> Vladimir. >>>> >>>> On Tue, Apr 26, 2016 at 1:36 AM, Murthy Kakarlamudi <ksa...@gmail.com> >>>> wrote: >>>> >>>>> Hi Alexey...Apologize the delay in my response. Below are the 2 links >>>>> from gdrive for my Java and c++ projects. >>>>> >>>>> Java Project: >>>>> https://drive.google.com/open?id=0B8lM91-_3MwRZmF6N0tnN1pyN2M >>>>> >>>>> C++ Project: >>>>> https://drive.google.com/open?id=0B8lM91-_3MwRMGE5akVWVXc0RXc >>>>> >>>>> Please let me know if you have any difficulty downloading the projects. >>>>> >>>>> Thanks, >>>>> Satya. >>>>> >>>>> On Mon, Apr 25, 2016 at 10:49 AM, Alexey Kuznetsov < >>>>> akuznet...@gridgain.com> wrote: >>>>> >>>>>> I see in stack trace "Caused by: class org.apache.ignite.IgniteException: >>>>>> Spring application context resource is not injected." >>>>>> >>>>>> Also CacheJdbcPojoStoreFactory contains such declaration: >>>>>> @SpringApplicationContextResource >>>>>> private transient Object appCtx; >>>>>> >>>>>> Anybody know why appCtx may not be injected? >>>>>> >>>>>> Also Satya, it is possible for you to prepare small reproducible >>>>>> example that we could debug? >>>>>> >>>>>> >>>>>> On Mon, Apr 25, 2016 at 9:39 PM, Vladimir Ozerov < >>>>>> voze...@gridgain.com> wrote: >>>>>> >>>>>>> Alexey Kuznetsov, >>>>>>> >>>>>>> Provided you have more expertise with POJO store, could you please >>>>>>> advise what could cause this exception? Seems that POJO store expects >>>>>>> some >>>>>>> injection, which doesn't happen. >>>>>>> Are there any specific requirements here? C++ node starts as a >>>>>>> regular node and also use Spring. >>>>>>> >>>>>>> Vladimir. >>>>>>> >>>>>>> On Mon, Apr 25, 2016 at 5:32 PM, Murthy Kakarlamudi < >>>>>>> ksa...@gmail.com> wrote: >>>>>>> >>>>>>>> Any help on this issue please... >>>>>>>> >>>>>>>> On Sat, Apr 16, 2016 at 7:29 PM, Murthy Kakarlamudi < >>>>>>>> ksa...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> In my use case, I am starting a node from .net which loads data >>>>>>>>> from SQL Server table into cache upon start up. I have to read those >>>>>>>>> entries from cache from a c++ node that acts as a client. I am >>>>>>>>> getting the >>>>>>>>> below error trying to start the node from c++. >>>>>>>>> >>>>>>>>> [19:08:57] Security status [authentication=off, tls/ssl=off] >>>>>>>>> [19:08:58,163][SEVERE][main][IgniteKernal] Failed to start >>>>>>>>> manager: GridManagerAdapter [enabled=true, >>>>>>>>> name=o.a.i.i.managers.discovery.GridDiscoveryManager] >>>>>>>>> class org.apache.ignite.IgniteCheckedException: Remote node has >>>>>>>>> peer class loading enabled flag different from local [locId8=f02445af, >>>>>>>>> locPeerClassLoading=true, rmtId8=8e52f9c9, rmtPeerClassLoading=false, >>>>>>>>> rmtAddrs=[LAPTOP-QIT4AVOG/0:0:0:0:0:0:0:1, LAPTOP-QIT4AVOG/ >>>>>>>>> 127.0.0.1, LAPTOP-QIT4AVOG/192.168.0.5, >>>>>>>>> LAPTOP-QIT4AVOG/2001:0:9d38:90d7:145b:5bf:bb9b:11d9, >>>>>>>>> LAPTOP-QIT4AVOG/2600:8806:0:8d00:0:0:0:1, >>>>>>>>> /2600:8806:0:8d00:3ccf:1e94:1ab4:83a9, >>>>>>>>> /2600:8806:0:8d00:f114:bf30:2068:352d]] >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.checkAttributes(GridDiscoveryManager.java:1027) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:680) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1505) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:917) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1688) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1547) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1003) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:534) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:515) >>>>>>>>> at org.apache.ignite.Ignition.start(Ignition.java:322) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java >>>>>>>>> >>>>>>>>> Below if my config for .net node: >>>>>>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>>>>>> >>>>>>>>> <beans xmlns="http://www.springframework.org/schema/beans" >>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>>>>>>> xsi:schemaLocation=" >>>>>>>>> http://www.springframework.org/schema/beans >>>>>>>>> >>>>>>>>> http://www.springframework.org/schema/beans/spring-beans.xsd"> >>>>>>>>> <bean id="ignite.cfg" >>>>>>>>> class="org.apache.ignite.configuration.IgniteConfiguration"> >>>>>>>>> <property name="connectorConfiguration"> >>>>>>>>> <bean >>>>>>>>> class="org.apache.ignite.configuration.ConnectorConfiguration"> >>>>>>>>> <property name="idleTimeout" value="20000"/> >>>>>>>>> </bean> >>>>>>>>> </property> >>>>>>>>> >>>>>>>>> <property name="cacheConfiguration"> >>>>>>>>> <list> >>>>>>>>> <bean >>>>>>>>> class="org.apache.ignite.configuration.CacheConfiguration"> >>>>>>>>> <property name="name" value="BU"/> >>>>>>>>> <property name="writeThrough" value="true"/> >>>>>>>>> <property name="readThrough" value="true"/> >>>>>>>>> <property name="writeBehindEnabled" value="true"/> >>>>>>>>> <property name="writeBehindFlushFrequency" >>>>>>>>> value="120000"/> >>>>>>>>> <property name="cacheStoreFactory"> >>>>>>>>> <bean >>>>>>>>> class="org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactory"> >>>>>>>>> <property name="typeName" >>>>>>>>> value="TestIgniteDAL.SQLServerStore, TestIgniteDAL"/> >>>>>>>>> </bean> >>>>>>>>> </property> >>>>>>>>> <property name ="typeMetadata"> >>>>>>>>> <list> >>>>>>>>> <bean >>>>>>>>> class="org.apache.ignite.cache.CacheTypeMetadata"> >>>>>>>>> <!-- Type to query. --> >>>>>>>>> <property name="valueType" value="BusinessUnit"/> >>>>>>>>> <!-- Fields to be queried. --> >>>>>>>>> <property name="queryFields"> >>>>>>>>> <map> >>>>>>>>> <entry key="BUID" value="java.lang.Integer"/> >>>>>>>>> <entry key="BUName" value="java.lang.String"/> >>>>>>>>> <entry key="CreatedByID" >>>>>>>>> value="java.lang.Integer"/> >>>>>>>>> <entry key="CreatedDate" >>>>>>>>> value="java.util.Date"/> >>>>>>>>> <entry key="ModifiedByID" >>>>>>>>> value="java.lang.Integer"/> >>>>>>>>> <entry key="ModifiedDate" >>>>>>>>> value="java.util.Date"/> >>>>>>>>> </map> >>>>>>>>> </property> >>>>>>>>> <!-- Fields to index in ascending order. --> >>>>>>>>> <property name="ascendingFields"> >>>>>>>>> <map> >>>>>>>>> <entry key="BUID" value="java.lang.Integer"/> >>>>>>>>> </map> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </list> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </list> >>>>>>>>> </property> >>>>>>>>> >>>>>>>>> <property name="communicationSpi"> >>>>>>>>> <bean >>>>>>>>> class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi"> >>>>>>>>> <property name="sharedMemoryPort" value="-1"/> >>>>>>>>> </bean> >>>>>>>>> </property> >>>>>>>>> >>>>>>>>> <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..47509</value> >>>>>>>>> </list> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </beans> >>>>>>>>> >>>>>>>>> >>>>>>>>> Below is my config for node from c++: >>>>>>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>>>>>> >>>>>>>>> <!-- >>>>>>>>> Licensed to the Apache Software Foundation (ASF) under one or >>>>>>>>> more >>>>>>>>> contributor license agreements. See the NOTICE file distributed >>>>>>>>> with >>>>>>>>> this work for additional information regarding copyright >>>>>>>>> ownership. >>>>>>>>> The ASF licenses this file to You under the Apache License, >>>>>>>>> Version 2.0 >>>>>>>>> (the "License"); you may not use this file except in compliance >>>>>>>>> with >>>>>>>>> the License. You may obtain a copy of the License at >>>>>>>>> >>>>>>>>> http://www.apache.org/licenses/LICENSE-2.0 >>>>>>>>> >>>>>>>>> Unless required by applicable law or agreed to in writing, >>>>>>>>> software >>>>>>>>> distributed under the License is distributed on an "AS IS" BASIS, >>>>>>>>> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or >>>>>>>>> implied. >>>>>>>>> See the License for the specific language governing permissions >>>>>>>>> and >>>>>>>>> limitations under the License. >>>>>>>>> --> >>>>>>>>> >>>>>>>>> <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="grid.cfg" >>>>>>>>> class="org.apache.ignite.configuration.IgniteConfiguration"> >>>>>>>>> <!-- Set to true to enable distributed class loading for >>>>>>>>> examples, default is false. --> >>>>>>>>> <property name="peerClassLoadingEnabled" value="true"/> >>>>>>>>> >>>>>>>>> <property name="cacheConfiguration"> >>>>>>>>> <list> >>>>>>>>> <!-- >>>>>>>>> Partitioned cache example configuration with >>>>>>>>> binary objects enabled. >>>>>>>>> Used in .NET example that is available only in >>>>>>>>> enterprise edition. >>>>>>>>> --> >>>>>>>>> <bean >>>>>>>>> class="org.apache.ignite.configuration.CacheConfiguration"> >>>>>>>>> <property name="atomicityMode" value="ATOMIC"/> >>>>>>>>> <property name="backups" value="1"/> >>>>>>>>> </bean> >>>>>>>>> >>>>>>>>> <!-- >>>>>>>>> Partitioned cache example configuration. >>>>>>>>> Used in .NET cache store example that is >>>>>>>>> available only in enterprise edition. >>>>>>>>> --> >>>>>>>>> <bean >>>>>>>>> class="org.apache.ignite.configuration.CacheConfiguration"> >>>>>>>>> <property name="name" value="tx"/> >>>>>>>>> <property name="atomicityMode" >>>>>>>>> value="TRANSACTIONAL"/> >>>>>>>>> <property name="backups" value="1"/> >>>>>>>>> </bean> >>>>>>>>> </list> >>>>>>>>> </property> >>>>>>>>> >>>>>>>>> <!-- Explicitly configure TCP discovery SPI to provide >>>>>>>>> list of initial nodes. --> >>>>>>>>> <property name="discoverySpi"> >>>>>>>>> <bean >>>>>>>>> class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> >>>>>>>>> <property name="ipFinder"> >>>>>>>>> <!-- >>>>>>>>> Ignite provides several options for >>>>>>>>> automatic discovery that can be used >>>>>>>>> instead os static IP based discovery. >>>>>>>>> --> >>>>>>>>> <!-- Uncomment static IP finder to enable >>>>>>>>> static-based discovery of initial nodes. --> >>>>>>>>> <bean >>>>>>>>> class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> >>>>>>>>> <!-- <bean >>>>>>>>> class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder"> >>>>>>>>> --> >>>>>>>>> <property name="addresses"> >>>>>>>>> <list> >>>>>>>>> <!-- In distributed environment, >>>>>>>>> replace with actual host IP address. --> >>>>>>>>> <value>127.0.0.1:47500 >>>>>>>>> ..47501</value> >>>>>>>>> </list> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </beans> >>>>>>>>> >>>>>>>>> Below c++ code is trying to access the cache: >>>>>>>>> int main() >>>>>>>>> { >>>>>>>>> IgniteConfiguration cfg; >>>>>>>>> >>>>>>>>> cfg.jvmInitMem = 512; >>>>>>>>> cfg.jvmMaxMem = 512; >>>>>>>>> >>>>>>>>> //cfg.springCfgPath = >>>>>>>>> "platforms/cpp/examples/config/example-cache.xml"; >>>>>>>>> cfg.springCfgPath = "config/example-cache.xml"; >>>>>>>>> try >>>>>>>>> { >>>>>>>>> // Start a node. >>>>>>>>> Ignite grid = Ignition::Start(cfg); >>>>>>>>> std::cout << std::endl; >>>>>>>>> std::cout << ">>> Cache node started." << std::endl; >>>>>>>>> std::cout << std::endl; >>>>>>>>> >>>>>>>>> //string key >>>>>>>>> Cache<std::string, CBusinessObject> cache = >>>>>>>>> grid.GetCache<std::string, CBusinessObject>("BU"); >>>>>>>>> cache.Clear(); >>>>>>>>> CBusinessObject obj("MSFT", 45.23); >>>>>>>>> //save in cache >>>>>>>>> cache.Put("MSFT", obj); >>>>>>>>> >>>>>>>>> //retreive from cache >>>>>>>>> CBusinessObject result = cache.Get("MSFT"); >>>>>>>>> >>>>>>>>> std::cout << result.ToString(); >>>>>>>>> >>>>>>>>> // Stop node. >>>>>>>>> Ignition::StopAll(false); >>>>>>>>> } >>>>>>>>> catch (IgniteError& err) >>>>>>>>> { >>>>>>>>> std::cout << "An error occurred: " << err.GetText() << std::endl; >>>>>>>>> } >>>>>>>>> >>>>>>>>> std::cout << std::endl; >>>>>>>>> std::cout << ">>> Execution finished, press any key to exit ..." >>>>>>>>> << std::endl; >>>>>>>>> std::cout << std::endl; >>>>>>>>> >>>>>>>>> std::cin.get(); >>>>>>>>> >>>>>>>>> return 0; >>>>>>>>> } >>>>>>>>> >>>>>>>>> Thanks for any help. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Alexey Kuznetsov >>>>>> GridGain Systems >>>>>> www.gridgain.com >>>>>> >>>>> >>>>> >>>> >>> >> >