Thank You. On Apr 19, 2016 6:01 AM, "Igor Sapego" <[email protected]> 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 <[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. >>>>>> >>>>> >>>>> >>>> >>> >> >
