ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Murthy Kakarlamudi <ksa...@gmail.com>
Subject Re: Error running nodes in .net and c++
Date Tue, 19 Apr 2016 10:06:20 GMT
Thank You.
On Apr 19, 2016 6:01 AM, "Igor Sapego" <isapego@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 <ksatya@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 <ptupitsyn@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 <ksatya@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 <ptupitsyn@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 <ksatya@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.
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

Mime
View raw message