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 <[email protected]> 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 <[email protected]> > 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 <[email protected]> >> 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 <[email protected]> >>> 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 <[email protected]> >>>> 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. >>>>> >>>> >>>> >>> >> >
