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

Reply via email to