Oh OK. Thanks for the information. I was able to start a java based server node that reads data from SQL Server for my use case. Next I am going to start c++ in client mode and see if I can access the cache.
Thanks, Satya. On Wed, Apr 20, 2016 at 4:31 AM, Vladimir Ozerov <voze...@gridgain.com> wrote: > Hi Murthy, > > Yes, there will be more examples in further versions. Though, for now it > is impossible to plug C++ based store, and this feature is not planned for > 1.6 release. So I do not expect C++ examples with stores in 1.6. > Instead, I'd better to look at Java or .NET examples with store as these > platforms support plugable store implementations. > > Vladimir. > > On Tue, Apr 19, 2016 at 7:34 PM, Murthy Kakarlamudi <ksa...@gmail.com> > wrote: > >> Thanks Vladimir for the explanation. I am working on the workaround >> suggested by Igor. I will reach out to the group if I run into any issues. >> >> One quick question. I am using 1.5 version. I only see 1 c++ example. Are >> there more c++ examples in future versions? Especially around using stores. >> >> Regards >> Satya. >> >> On Tue, Apr 19, 2016 at 9:20 AM, Vladimir Ozerov <voze...@gridgain.com> >> wrote: >> >>> Hi Murthy, >>> >>> Exception you observed is essentially not a bug, but rather expected >>> behavior with current Ignite architecture. Ignite support transactions. >>> When you initiate a transaction from a client node, only this node has the >>> full set of updated keys, and hence only this node is able to propagate >>> updates to underlying database within a single database transaction. For >>> this reason, Ignite creates and initializes store on every node, even if >>> this node is client. >>> >>> As Igor suggested, the best workaround for now is to rely on Java store >>> because every node (Java, C++, .NET) has a Java inside and hence is able to >>> work with Java-based store. On the other hand, I clearly understand that >>> this architecture doesn't fit well in your use case and is not very >>> convenient from user perspective. We will think about possible ways to >>> resolve it. >>> >>> One very simple solution - do not initialize store if we know for sure >>> that the client will not use it. For example, this is so in case of ATOMIC >>> cache or asynchronous (write-behind) store. >>> >>> Vladimir. >>> >>> >>> >>> On Tue, Apr 19, 2016 at 2:31 PM, Murthy Kakarlamudi <ksa...@gmail.com> >>> wrote: >>> >>>> OK Igor. Let me try from Java. >>>> >>>> From a high level, we have a backend application implemented in c++ and >>>> the front end is asp.net mvc. Data store is SQL Server. >>>> >>>> Use case is, I need to load data from SQL Server into Ignite Cache upon >>>> start up. .Net and C++ acting as clients need to access the cache and >>>> update it. Those updates should be written to the underlying SQL Server in >>>> an asynchronous way so as not to impact the cache performance. The updates >>>> that gets written from .Net client need to be accessed by C++ client. We >>>> have a need to use SQL Queries to access cache from either of the clients. >>>> >>>> I can start the cache from Java server node. However, as .net and c++ >>>> are being used in our application, we prefer sticking to those 2 and not >>>> introduce Java. >>>> >>>> Thanks, >>>> Satya. >>>> >>>> On Tue, Apr 19, 2016 at 6:30 AM, Igor Sapego <isap...@gridgain.com> >>>> wrote: >>>> >>>>> Right now I can see the following workaround for you: you can switch >>>>> from .Net CacheStoreFactory to Java's one. This way all types of >>>>> clients >>>>> will be able to instantiate your cache. >>>>> >>>>> If you are willing to you can describe your use-case so we can >>>>> try and find some other solution if this workaround is not suitable >>>>> for you. >>>>> >>>>> Best Regards, >>>>> Igor >>>>> >>>>> On Tue, Apr 19, 2016 at 1:06 PM, Murthy Kakarlamudi <ksa...@gmail.com> >>>>> wrote: >>>>> >>>>>> Thank You. >>>>>> On Apr 19, 2016 6:01 AM, "Igor Sapego" <isap...@gridgain.com> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> It looks like a bug for me. I've submitted an issue for it - [1]. >>>>>>> >>>>>>> [1] - https://issues.apache.org/jira/browse/IGNITE-3025. >>>>>>> >>>>>>> Best Regards, >>>>>>> Igor >>>>>>> >>>>>>> On Mon, Apr 18, 2016 at 1:35 AM, Murthy Kakarlamudi < >>>>>>> ksa...@gmail.com> wrote: >>>>>>> >>>>>>>> The client node itself starts after making the change, but getting >>>>>>>> the below error trying to access the cache: >>>>>>>> >>>>>>>> [12:16:45] Topology snapshot [ver=2, servers=1, clients=1, CPUs=4, >>>>>>>> heap=1.4GB] >>>>>>>> >>>>>>>> >>> Cache node started. >>>>>>>> >>>>>>>> [12:16:45,439][SEVERE][exchange-worker-#38%null%][GridDhtPartitionsExchangeFuture] >>>>>>>> Failed to reinitialize local partitions (preloading will be stopped): >>>>>>>> GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=2, >>>>>>>> minorTopVer=1], nodeId=2bf10735, evt=DISCOVERY_CUSTOM_EVT] >>>>>>>> PlatformNoCallbackException [] >>>>>>>> at >>>>>>>> org.apache.ignite.internal.processors.platform.callback.PlatformCallbackUtils.cacheStoreCreate(Native >>>>>>>> Method) >>>>>>>> at >>>>>>>> org.apache.ignite.internal.processors.platform.callback.PlatformCallbackGateway.cacheStoreCreate(PlatformCallbackGateway.java:63) >>>>>>>> at >>>>>>>> org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetCacheStore.initialize(PlatformDotNetCacheStore.java:338) >>>>>>>> at >>>>>>>> org.apache.ignite.internal.processors.platform.PlatformProcessorImpl.registerStore0(PlatformProcessorImpl.java:347) >>>>>>>> at >>>>>>>> org.apache.ignite.internal.processors.platform.PlatformProcessorImpl.registerStore(PlatformProcessorImpl.java:317) >>>>>>>> at >>>>>>>> org.apache.ignite.internal.processors.cache.store.CacheOsStoreManager.start0(CacheOsStoreManager.java:60) >>>>>>>> at >>>>>>>> org.apache.ignite.internal.processors.cache.GridCacheManagerAdapter.start(GridCacheManagerAdapter.java:50) >>>>>>>> at >>>>>>>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCache(GridCacheProcessor.java:1051) >>>>>>>> at >>>>>>>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1648) >>>>>>>> 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) >>>>>>>> >>>>>>>> On Sun, Apr 17, 2016 at 10:49 AM, Pavel Tupitsyn < >>>>>>>> ptupit...@gridgain.com> wrote: >>>>>>>> >>>>>>>>> This exception appears due to the fact that .NET store can't be >>>>>>>>> initialized on C++ node. >>>>>>>>> >>>>>>>>> Add the following line to C++ config to run the node in client >>>>>>>>> mode, so it does not store cache data and initialize cache store: >>>>>>>>> <property name="clientMode" value="true"/> >>>>>>>>> >>>>>>>>> Let me know if this helps. >>>>>>>>> >>>>>>>>> Pavel. >>>>>>>>> >>>>>>>>> On Sun, Apr 17, 2016 at 2:35 PM, Murthy Kakarlamudi < >>>>>>>>> ksa...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> Hi Pavel...such an obvious thing that I missed. I was always >>>>>>>>>> looking at the .net node config as the error said remote node. >>>>>>>>>> Thanks for >>>>>>>>>> pointing it out. I am now getting a different error. I do have a >>>>>>>>>> question. >>>>>>>>>> As I mentioned node that gets started from .net acts as server node >>>>>>>>>> and >>>>>>>>>> loads the database into cache. So its config has all the CacheStore >>>>>>>>>> relation information. In my c++ node, acting as a client, what >>>>>>>>>> should go in >>>>>>>>>> its config? As it does not access DB, I assumed CacheStore related >>>>>>>>>> information is not needed in its config. So I am not sure what >>>>>>>>>> should go >>>>>>>>>> into my c++ config. If I do have to have the CacheStore info in the >>>>>>>>>> c++ >>>>>>>>>> client node, Is there a c++ cachestore implementation example? >>>>>>>>>> >>>>>>>>>> Below is the error I am getting: >>>>>>>>>> [07:18:03,292][SEVERE][main][IgniteKernal] Got exception while >>>>>>>>>> starting (will rollback startup routine). >>>>>>>>>> PlatformNoCallbackException [] >>>>>>>>>> at >>>>>>>>>> org.apache.ignite.internal.processors.platform.callback.PlatformCallbackUtils.cacheStoreCreate(Native >>>>>>>>>> Method) >>>>>>>>>> at >>>>>>>>>> org.apache.ignite.internal.processors.platform.callback.PlatformCallbackGateway.cacheStoreCreate(PlatformCallbackGateway.java:63) >>>>>>>>>> at >>>>>>>>>> org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetCacheStore.initialize(PlatformDotNetCacheStore.java:338) >>>>>>>>>> at >>>>>>>>>> org.apache.ignite.internal.processors.platform.PlatformProcessorImpl.registerStore0(PlatformProcessorImpl.java:347) >>>>>>>>>> at >>>>>>>>>> org.apache.ignite.internal.processors.platform.PlatformProcessorImpl.registerStore(PlatformProcessorImpl.java:317) >>>>>>>>>> at >>>>>>>>>> org.apache.ignite.internal.processors.cache.store.CacheOsStoreManager.start0(CacheOsStoreManager.java:60) >>>>>>>>>> at >>>>>>>>>> org.apache.ignite.internal.processors.cache.GridCacheManagerAdapter.start(GridCacheManagerAdapter.java:50) >>>>>>>>>> at >>>>>>>>>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCache(GridCacheProcessor.java:1051) >>>>>>>>>> at >>>>>>>>>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.onKernalStart(GridCacheProcessor.java:787) >>>>>>>>>> at >>>>>>>>>> org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:946) >>>>>>>>>> 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:36) >>>>>>>>>> at >>>>>>>>>> org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:72) >>>>>>>>>> [07:18:03] Ignite node stopped OK [uptime=00:00:08:267] >>>>>>>>>> An error occurred: Callback handler is not set in native platform. >>>>>>>>>> >>>>>>>>>> On Sun, Apr 17, 2016 at 4:15 AM, Pavel Tupitsyn < >>>>>>>>>> ptupit...@gridgain.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> > Remote node has peer class loading enabled flag different >>>>>>>>>>> from local >>>>>>>>>>> As the error message says, peerClassLoading flag has to be the >>>>>>>>>>> same on all nodes. >>>>>>>>>>> >>>>>>>>>>> Please remove the following line from your C++ config: >>>>>>>>>>> <property name="peerClassLoadingEnabled" value="true"/> >>>>>>>>>>> >>>>>>>>>>> Pavel. >>>>>>>>>>> >>>>>>>>>>> On Sun, Apr 17, 2016 at 2:29 AM, 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. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>> >>>> >>> >> >