Argh… sorry, I forgot :( On Wed, Apr 27, 2016 at 8:48 AM, Pavel Tupitsyn <[email protected]> wrote:
> Dmitriy, nightly builds do not include Ignite.NET. > > On Wed, Apr 27, 2016 at 6:45 PM, Dmitriy Setrakyan <[email protected]> > wrote: > >> Murthy, >> >> Is this what you are looking for? >> https://ignite.apache.org/community/contribute.html#nightly-builds >> >> D. >> >> On Wed, Apr 27, 2016 at 8:13 AM, Murthy Kakarlamudi <[email protected]> >> wrote: >> >>> Great..Thank you so much Vladimir. While I wait for 1.6 release, can I >>> get the latest source, build it to use? Or are the pre-GA 1.6 binaries >>> available to download? >>> >>> Thanks, >>> Murthy. >>> >>> On Wed, Apr 27, 2016 at 9:45 AM, Vladimir Ozerov <[email protected]> >>> wrote: >>> >>>> Murthy, >>>> >>>> As per initial issue - I created a ticket and fixed the bug causing >>>> your initial problem (*"org.apache.ignite.**IgniteException: Spring >>>> application context resource is not injected"*). The fix will be >>>> included into upcoming Ignite 1.6 release. >>>> >>>> Vladimir. >>>> >>>> On Wed, Apr 27, 2016 at 11:50 AM, Vladimir Ozerov <[email protected] >>>> > wrote: >>>> >>>>> Hi Murthy, >>>>> >>>>> Please provide configs you used to start clients and servers. >>>>> >>>>> Vladimir. >>>>> >>>>> On Wed, Apr 27, 2016 at 5:45 AM, Murthy Kakarlamudi <[email protected]> >>>>> wrote: >>>>> >>>>>> Can someone please help how Ignite works for the following use case. >>>>>> The server node loads data from Persistent Store into cache upon start >>>>>> up. >>>>>> There will be a couple of client nodes (c++, .net based) that needs to >>>>>> access the cache. >>>>>> The server node will have the configuration for cachestore. Should >>>>>> the client nodes also have the configuration for cachestore? I am hoping >>>>>> no >>>>>> because all they need is to read the cache. >>>>>> But I am assuming, if these client nodes can also update the cache >>>>>> then the cachestore config is required if write through is enabled. >>>>>> Please validate my assumptions. >>>>>> >>>>>> Thanks, >>>>>> Satya... >>>>>> >>>>>> On Tue, Apr 26, 2016 at 9:44 AM, Murthy Kakarlamudi <[email protected] >>>>>> > wrote: >>>>>> >>>>>>> No..I am not. I have different configs for my server node in java vs >>>>>>> my client node in c++. That was the question I had. In my server node >>>>>>> that >>>>>>> loads the data from persistent store to cache, I configured cachestore. >>>>>>> But >>>>>>> my c++ node is only a client node that needs to access cache. So I was >>>>>>> not >>>>>>> sure if my client node config should have the cachestore details as >>>>>>> well. >>>>>>> >>>>>>> Let me try the option you suggested. >>>>>>> >>>>>>> On Tue, Apr 26, 2016 at 9:40 AM, Vladimir Ozerov < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> HI Murthy, >>>>>>>> >>>>>>>> Do you start all nodes with the same XML configuration? Please >>>>>>>> ensure that this is so, and all nodes know all caches from >>>>>>>> configuration in >>>>>>>> advance. >>>>>>>> >>>>>>>> Vladimir. >>>>>>>> >>>>>>>> On Tue, Apr 26, 2016 at 3:27 PM, Murthy Kakarlamudi < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi Vladimir...I made the update and still running into the same >>>>>>>>> issue. >>>>>>>>> >>>>>>>>> Here is the updated spring config for my Java node: >>>>>>>>> <?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. >>>>>>>>> --> >>>>>>>>> >>>>>>>>> <!-- Ignite Spring configuration file to startup Ignite cache. >>>>>>>>> This file >>>>>>>>> demonstrates how to configure cache using Spring. Provided cache >>>>>>>>> will be >>>>>>>>> created on node startup. Use this configuration file when running >>>>>>>>> HTTP REST >>>>>>>>> examples (see 'examples/rest' folder). When starting a standalone >>>>>>>>> node, you >>>>>>>>> need to execute the following command: >>>>>>>>> {IGNITE_HOME}/bin/ignite.{bat|sh} >>>>>>>>> examples/config/example-cache.xml When starting Ignite from Java >>>>>>>>> IDE, pass >>>>>>>>> path to this file to Ignition: >>>>>>>>> Ignition.start("examples/config/example-cache.xml"); --> >>>>>>>>> <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-2.5.xsd >>>>>>>>> "> >>>>>>>>> >>>>>>>>> <bean id="myDataSource" >>>>>>>>> >>>>>>>>> class="org.springframework.jdbc.datasource.DriverManagerDataSource"> >>>>>>>>> <property name="driverClassName" >>>>>>>>> value="com.microsoft.sqlserver.jdbc.SQLServerDriver" /> >>>>>>>>> <property name="url" >>>>>>>>> value="jdbc:sqlserver://LAPTOP-QIT4AVOG\MSSQLSERVER64;databaseName=PrimeOne;integratedSecurity=true" >>>>>>>>> /> >>>>>>>>> </bean> >>>>>>>>> >>>>>>>>> <bean id="ignite.cfg" >>>>>>>>> class="org.apache.ignite.configuration.IgniteConfiguration"> >>>>>>>>> <property name="binaryConfiguration"> >>>>>>>>> <bean class="org.apache.ignite.configuration.BinaryConfiguration"> >>>>>>>>> <property name="compactFooter" value="false" /> >>>>>>>>> </bean> >>>>>>>>> </property> >>>>>>>>> >>>>>>>>> <property name="cacheConfiguration"> >>>>>>>>> <list> >>>>>>>>> <!-- Partitioned cache example configuration (Atomic mode). --> >>>>>>>>> <bean class="org.apache.ignite.configuration.CacheConfiguration"> >>>>>>>>> >>>>>>>>> <property name="atomicityMode" value="ATOMIC" /> >>>>>>>>> <property name="backups" value="1" /> >>>>>>>>> <property name="readThrough" value="true" /> >>>>>>>>> <property name="writeThrough" value="true" /> >>>>>>>>> <property name="cacheStoreFactory"> >>>>>>>>> <bean >>>>>>>>> >>>>>>>>> class="org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory"> >>>>>>>>> <!-- <property name="dataSourceBean" value="myDataSource" /> --> >>>>>>>>> <property name="dataSource" ref="myDataSource" /> >>>>>>>>> <property name="types"> >>>>>>>>> <list> >>>>>>>>> <bean class="org.apache.ignite.cache.store.jdbc.JdbcType"> >>>>>>>>> <property name="cacheName" value="buCache" /> >>>>>>>>> <property name="databaseTable" value="BusinessUnit" /> >>>>>>>>> <property name="keyType" value="java.lang.Integer" /> >>>>>>>>> <property name="keyFields"> >>>>>>>>> <list> >>>>>>>>> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> >>>>>>>>> <property name="databaseFieldType"> >>>>>>>>> <util:constant static-field="java.sql.Types.BIGINT" /> >>>>>>>>> </property> >>>>>>>>> <property name="databaseFieldName" value="BUID" /> >>>>>>>>> <property name="javaFieldType" value="java.lang.Integer" /> >>>>>>>>> <property name="javaFieldName" value="buid" /> >>>>>>>>> </bean> >>>>>>>>> </list> >>>>>>>>> </property> >>>>>>>>> <property name="valueType" value="models.BusinessUnit" /> >>>>>>>>> <property name="valueFields"> >>>>>>>>> <list> >>>>>>>>> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> >>>>>>>>> <property name="databaseFieldType"> >>>>>>>>> <util:constant static-field="java.sql.Types.BIGINT" /> >>>>>>>>> </property> >>>>>>>>> <property name="databaseFieldName" value="BUID" /> >>>>>>>>> <property name="javaFieldType" value="java.lang.Integer" /> >>>>>>>>> <property name="javaFieldName" value="buid" /> >>>>>>>>> </bean> >>>>>>>>> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> >>>>>>>>> <property name="databaseFieldType"> >>>>>>>>> <util:constant static-field="java.sql.Types.VARCHAR" /> >>>>>>>>> </property> >>>>>>>>> <property name="databaseFieldName" value="BUName" /> >>>>>>>>> <property name="javaFieldType" value="java.lang.String" /> >>>>>>>>> <property name="javaFieldName" value="buName" /> >>>>>>>>> </bean> >>>>>>>>> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> >>>>>>>>> <property name="databaseFieldType"> >>>>>>>>> <util:constant static-field="java.sql.Types.BIGINT" /> >>>>>>>>> </property> >>>>>>>>> <property name="databaseFieldName" value="CreatedByID" /> >>>>>>>>> <property name="javaFieldType" value="java.lang.Integer" /> >>>>>>>>> <property name="javaFieldName" value="createdByID" /> >>>>>>>>> </bean> >>>>>>>>> </list> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </list> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </property> >>>>>>>>> </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. For information on >>>>>>>>> all options >>>>>>>>> refer to our documentation: >>>>>>>>> http://apacheignite.readme.io/docs/cluster-config --> >>>>>>>>> <!-- 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..47509</value> >>>>>>>>> </list> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> </beans> >>>>>>>>> >>>>>>>>> >>>>>>>>> Error: >>>>>>>>> >>> Cache node started. >>>>>>>>> >>>>>>>>> [08:27:25,045][SEVERE][exchange-worker-#38%null%][GridDhtPartitionsExchangeFuture] >>>>>>>>> Failed to reinitialize local partitions (preloading will be stopped): >>>>>>>>> GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=11, >>>>>>>>> minorTopVer=1], nodeId=bc7d2aa2, evt=DISCOVERY_CUSTOM_EVT] >>>>>>>>> class org.apache.ignite.IgniteException: Spring application >>>>>>>>> context resource is not injected. >>>>>>>>> at >>>>>>>>> org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.create(CacheJdbcPojoStoreFactory.java:156) >>>>>>>>> at >>>>>>>>> org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.create(CacheJdbcPojoStoreFactory.java:96) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCache(GridCacheProcessor.java:1243) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1638) >>>>>>>>> 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) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1297) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) >>>>>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>>>>> [08:27:25,063][SEVERE][exchange-worker-#38%null%][GridCachePartitionExchangeManager] >>>>>>>>> Failed to wait for completion of partition map exchange (preloading >>>>>>>>> will >>>>>>>>> not start): GridDhtPartitionsExchangeFuture [dummy=false, >>>>>>>>> forcePreload=false, reassign=false, discoEvt=DiscoveryCustomEvent >>>>>>>>> [customMsg=DynamicCacheChangeBatch [reqs=[DynamicCacheChangeRequest >>>>>>>>> [deploymentId=8ea535e3451-d29afc27-9b4b-4125-bbf2-232c08daa0cb, >>>>>>>>> startCfg=CacheConfiguration [name=buCache, >>>>>>>>> storeConcurrentLoadAllThreshold=5, rebalancePoolSize=2, >>>>>>>>> rebalanceTimeout=10000, evictPlc=null, evictSync=false, >>>>>>>>> evictKeyBufSize=1024, evictSyncConcurrencyLvl=4, >>>>>>>>> evictSyncTimeout=10000, >>>>>>>>> evictFilter=null, evictMaxOverflowRatio=10.0, eagerTtl=true, >>>>>>>>> dfltLockTimeout=0, startSize=1500000, nearCfg=null, >>>>>>>>> writeSync=PRIMARY_SYNC, >>>>>>>>> storeFactory=CacheJdbcPojoStoreFactory [batchSizw=512, >>>>>>>>> dataSrcBean=myDataSource, dialect=null, maxPoolSize=4, >>>>>>>>> maxWriteAttempts=2, >>>>>>>>> parallelLoadCacheMinThreshold=512, >>>>>>>>> hasher=o.a.i.cache.store.jdbc.JdbcTypeDefaultHasher@78d010a2, >>>>>>>>> dataSrc=null], storeKeepBinary=false, loadPrevVal=false, >>>>>>>>> aff=o.a.i.cache.affinity.rendezvous.RendezvousAffinityFunction@76311661, >>>>>>>>> cacheMode=PARTITIONED, atomicityMode=ATOMIC, >>>>>>>>> atomicWriteOrderMode=PRIMARY, >>>>>>>>> backups=1, invalidate=false, tmLookupClsName=null, >>>>>>>>> rebalanceMode=ASYNC, >>>>>>>>> rebalanceOrder=0, rebalanceBatchSize=524288, >>>>>>>>> rebalanceBatchesPrefetchCount=2, offHeapMaxMem=-1, swapEnabled=false, >>>>>>>>> maxConcurrentAsyncOps=500, writeBehindEnabled=false, >>>>>>>>> writeBehindFlushSize=10240, writeBehindFlushFreq=5000, >>>>>>>>> writeBehindFlushThreadCnt=1, writeBehindBatchSize=512, >>>>>>>>> memMode=ONHEAP_TIERED, >>>>>>>>> affMapper=o.a.i.i.processors.cache.CacheDefaultBinaryAffinityKeyMapper@2e41d426, >>>>>>>>> rebalanceDelay=0, rebalanceThrottle=0, interceptor=null, >>>>>>>>> longQryWarnTimeout=3000, readFromBackup=true, >>>>>>>>> nodeFilter=o.a.i.configuration.CacheConfiguration$IgniteAllNodesPredicate@d211e68, >>>>>>>>> sqlSchema=null, sqlEscapeAll=false, sqlOnheapRowCacheSize=10240, >>>>>>>>> snapshotableIdx=false, cpOnRead=true, topValidator=null], >>>>>>>>> cacheType=USER, >>>>>>>>> initiatingNodeId=bc7d2aa2-4a64-467f-8097-d0f579dec0b3, >>>>>>>>> nearCacheCfg=null, >>>>>>>>> clientStartOnly=true, stop=false, close=false, failIfExists=false, >>>>>>>>> template=false, exchangeNeeded=true, cacheFutTopVer=null, >>>>>>>>> cacheName=buCache]], clientNodes=null, >>>>>>>>> id=45ec9825451-cbb8263a-223e-4f3e-8492-71f2612ddae6, >>>>>>>>> clientReconnect=false], affTopVer=AffinityTopologyVersion [topVer=11, >>>>>>>>> minorTopVer=1], super=DiscoveryEvent [evtNode=TcpDiscoveryNode >>>>>>>>> [id=bc7d2aa2-4a64-467f-8097-d0f579dec0b3, addrs=[0:0:0:0:0:0:0:1, >>>>>>>>> 127.0.0.1, 192.168.0.5, 2001:0:9d38:90d7:1064:ea:bb9b:11d9, >>>>>>>>> 2600:8806:0:8d00:0:0:0:1, 2600:8806:0:8d00:15e5:c0bf:286e:8785, >>>>>>>>> 2600:8806:0:8d00:3ccf:1e94:1ab4:83a9], sockAddrs=[LAPTOP-QIT4AVOG/ >>>>>>>>> 192.168.0.5:0, /0:0:0:0:0:0:0:1:0, LAPTOP-QIT4AVOG/192.168.0.5:0, >>>>>>>>> /127.0.0.1:0, LAPTOP-QIT4AVOG/192.168.0.5:0, /192.168.0.5:0, >>>>>>>>> LAPTOP-QIT4AVOG/192.168.0.5:0, >>>>>>>>> /2001:0:9d38:90d7:1064:ea:bb9b:11d9:0, LAPTOP-QIT4AVOG/ >>>>>>>>> 192.168.0.5:0, /2600:8806:0:8d00:0:0:0:1:0, >>>>>>>>> /2600:8806:0:8d00:15e5:c0bf:286e:8785:0, >>>>>>>>> /2600:8806:0:8d00:3ccf:1e94:1ab4:83a9:0], discPort=0, order=11, >>>>>>>>> intOrder=0, >>>>>>>>> lastExchangeTime=1461673644205, loc=true, >>>>>>>>> ver=1.5.0#20151229-sha1:f1f8cda2, >>>>>>>>> isClient=true], topVer=11, nodeId8=bc7d2aa2, msg=null, >>>>>>>>> type=DISCOVERY_CUSTOM_EVT, tstamp=1461673645026]], >>>>>>>>> rcvdIds=GridConcurrentHashSet [elements=[]], rmtIds=null, >>>>>>>>> exchId=GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion >>>>>>>>> [topVer=11, minorTopVer=1], nodeId=bc7d2aa2, >>>>>>>>> evt=DISCOVERY_CUSTOM_EVT], >>>>>>>>> init=true, ready=false, replied=false, added=true, >>>>>>>>> initFut=GridFutureAdapter [resFlag=2, res=false, >>>>>>>>> startTime=1461673645026, >>>>>>>>> endTime=1461673645046, ignoreInterrupts=false, lsnr=null, state=DONE], >>>>>>>>> topSnapshot=null, lastVer=null, partReleaseFut=null, >>>>>>>>> skipPreload=false, >>>>>>>>> clientOnlyExchange=false, initTs=1461673645026, >>>>>>>>> oldest=7700cd68-08b1-4571-8744-0e91dcdad9b0, oldestOrder=1, >>>>>>>>> evtLatch=0, >>>>>>>>> remaining=[], super=GridFutureAdapter [resFlag=1, res=class >>>>>>>>> o.a.i.IgniteException: Spring application context resource is not >>>>>>>>> injected., startTime=1461673645026, endTime=1461673645046, >>>>>>>>> ignoreInterrupts=false, lsnr=null, state=DONE]] >>>>>>>>> class org.apache.ignite.IgniteCheckedException: Spring application >>>>>>>>> context resource is not injected. >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7005) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:166) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:115) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1299) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) >>>>>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>>>>> Caused by: class org.apache.ignite.IgniteException: Spring >>>>>>>>> application context resource is not injected. >>>>>>>>> at >>>>>>>>> org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.create(CacheJdbcPojoStoreFactory.java:156) >>>>>>>>> at >>>>>>>>> org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.create(CacheJdbcPojoStoreFactory.java:96) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCache(GridCacheProcessor.java:1243) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1638) >>>>>>>>> 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) >>>>>>>>> at >>>>>>>>> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1297) >>>>>>>>> >>>>>>>>> On Tue, Apr 26, 2016 at 8:06 AM, Vladimir Ozerov < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi Murthy, >>>>>>>>>> >>>>>>>>>> Seems that you faced a kind of usability issue, which happens >>>>>>>>>> only in some specific cases. Please try replacing the following line >>>>>>>>>> in >>>>>>>>>> your config: >>>>>>>>>> >>>>>>>>>> <property name="dataSourceBean" value="myDataSource" /> >>>>>>>>>> >>>>>>>>>> with this: >>>>>>>>>> >>>>>>>>>> <property name="dataSource" ref="myDataSource" /> >>>>>>>>>> >>>>>>>>>> It should help. >>>>>>>>>> >>>>>>>>>> Vladimir. >>>>>>>>>> >>>>>>>>>> On Tue, Apr 26, 2016 at 1:36 AM, Murthy Kakarlamudi < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Alexey...Apologize the delay in my response. Below are the 2 >>>>>>>>>>> links from gdrive for my Java and c++ projects. >>>>>>>>>>> >>>>>>>>>>> Java Project: >>>>>>>>>>> https://drive.google.com/open?id=0B8lM91-_3MwRZmF6N0tnN1pyN2M >>>>>>>>>>> >>>>>>>>>>> C++ Project: >>>>>>>>>>> https://drive.google.com/open?id=0B8lM91-_3MwRMGE5akVWVXc0RXc >>>>>>>>>>> >>>>>>>>>>> Please let me know if you have any difficulty downloading the >>>>>>>>>>> projects. >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> Satya. >>>>>>>>>>> >>>>>>>>>>> On Mon, Apr 25, 2016 at 10:49 AM, Alexey Kuznetsov < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> 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 < >>>>>>>>>>>> [email protected]> 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 < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Any help on this issue please... >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Sat, Apr 16, 2016 at 7:29 PM, 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. >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Alexey Kuznetsov >>>>>>>>>>>> GridGain Systems >>>>>>>>>>>> www.gridgain.com >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >
