Also another Marshaller issue, I start a client on the same class path. but the Client still throw a class not found exception.
Caused by: java.lang.ClassNotFoundException: Requesting mapping from grid failed for [platformId=0, typeId=-482681703] at org.apache.ignite.internal.MarshallerContextImpl.getClassName(MarshallerContextImpl.java:376) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:335) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:692) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1745) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1704) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:794) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.binary.BinaryObjectImpl.value(BinaryObjectImpl.java:142) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinary(CacheObjectContext.java:273) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinaryIfNeeded(CacheObjectContext.java:161) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinaryIfNeeded(CacheObjectContext.java:148) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.GridCacheContext.unwrapBinaryIfNeeded(GridCacheContext.java:1730) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.setResult(GridPartitionedSingleGetFuture.java:613) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.onResult(GridPartitionedSingleGetFuture.java:475) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter.processNearSingleGetResponse(GridDhtCacheAdapter.java:156) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.access$1200(GridDhtAtomicCache.java:127) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$14.apply(GridDhtAtomicCache.java:416) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$14.apply(GridDhtAtomicCache.java:411) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:863) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:386) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:308) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:100) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:253) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1257) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:885) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.managers.communication.GridIoManager.access$2100(GridIoManager.java:114) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.managers.communication.GridIoManager$7.run(GridIoManager.java:802) ~[ignite-core-2.0.0.jar:2.0.0] at org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:483) ~[ignite-core-2.0.0.jar:2.0.0] at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_102] Thanks very very much for your time, --- My Server side configuration like this: <bean class="org.apache.ignite.configuration.CacheConfiguration" id="ProductEntry"> <property name="name" value="#{T(com.tophold.trade.query.product.ProductEntry).IG_CACHE_NAME}"/> <property name="cacheMode" value="REPLICATED"/> <property name="atomicityMode" value="ATOMIC"/> <property name="readFromBackup" value="true"/> <property name="copyOnRead" value="true"/> <property name="readThrough" value="true"/> <property name="writeThrough" value="true"/> <property name="nodeFilter"> <bean class="org.apache.ignite.util.AttributeNodeFilter"> <constructor-arg index="0" value="#{T(com.tophold.trade.ignite.NodeNeedProductFilter).IGNITE_PRODUCT_NEEDED_NODE_ATTR}"/> <constructor-arg index="1" value="true"/> </bean> </property> <property name="nearConfiguration"> <bean class="org.apache.ignite.configuration.NearCacheConfiguration"> <property name="nearEvictionPolicy"> <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy"> <property name="maxSize" value="500"/> </bean> </property> </bean> </property> <property name="storeKeepBinary" value="true"/> <property name="cacheStoreFactory"> <bean class="org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory"> <property name="dataSourceBean" value="igniteDatasource"/> <property name="types"> <list> <bean class="org.apache.ignite.cache.store.jdbc.JdbcType"> <property name="cacheName" value="#{T(com.tophold.trade.query.product.ProductEntry).IG_CACHE_NAME}"/> <property name="keyType" value="#{T(com.tophold.trade.query.product.ProductEntry).IG_KEY_TYPE}"/> <property name="valueType" value="#{T(com.tophold.trade.query.product.ProductEntry).IG_VALUE_TYPE}"/> <property name="databaseTable" value="#{T(com.tophold.trade.query.product.ProductEntry).IG_DB_TB}"/> <property name="keyFields"> <list> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> <property name="databaseFieldName" value="productCode"/> <property name="databaseFieldType" value="#{T(java.sql.Types).VARCHAR}"/> <property name="javaFieldName" value="productCode"/> <property name="javaFieldType" value="java.lang.String"/> </bean> </list> </property> <property name="valueFields"> <list> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> <property name="databaseFieldName" value="productCode"/> <property name="databaseFieldType" value="#{T(java.sql.Types).VARCHAR}"/> <property name="javaFieldName" value="productCode"/> <property name="javaFieldType" value="java.lang.String"/> </bean> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> <property name="databaseFieldName" value="identifier"/> <property name="databaseFieldType" value="#{T(java.sql.Types).VARCHAR}"/> <property name="javaFieldName" value="identifier"/> <property name="javaFieldType" value="java.lang.String"/> </bean> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> <property name="databaseFieldName" value="active"/> <property name="databaseFieldType" value="#{T(java.sql.Types).BOOLEAN}"/> <property name="javaFieldName" value="active"/> <property name="javaFieldType" value="java.lang.Boolean"/> </bean> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> <property name="databaseFieldName" value="deleted"/> <property name="databaseFieldType" value="#{T(java.sql.Types).BOOLEAN}"/> <property name="javaFieldName" value="deleted"/> <property name="javaFieldType" value="java.lang.Boolean"/> </bean> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> <property name="databaseFieldName" value="extraId"/> <property name="databaseFieldType" value="#{T(java.sql.Types).BIGINT}"/> <property name="javaFieldName" value="extraId"/> <property name="javaFieldType" value="java.lang.Long"/> </bean> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> <property name="databaseFieldName" value="currency"/> <property name="databaseFieldType" value="#{T(java.sql.Types).VARCHAR}"/> <property name="javaFieldName" value="currency"/> <property name="javaFieldType" value="java.lang.String"/> </bean> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> <property name="databaseFieldName" value="fromCurrency"/> <property name="databaseFieldType" value="#{T(java.sql.Types).VARCHAR}"/> <property name="javaFieldName" value="fromCurrency"/> <property name="javaFieldType" value="java.lang.String"/> </bean> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> <property name="databaseFieldName" value="leverage"/> <property name="databaseFieldType" value="#{T(java.sql.Types).INTEGER}"/> <property name="javaFieldName" value="leverage"/> <property name="javaFieldType" value="java.lang.Integer"/> </bean> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> <property name="databaseFieldName" value="exchanger"/> <property name="databaseFieldType" value="#{T(java.sql.Types).VARCHAR}"/> <property name="javaFieldName" value="exchanger"/> <property name="javaFieldType" value="com.tophold.trade.product.Exchanger"/> </bean> <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField"> <property name="databaseFieldName" value="sequence"/> <property name="databaseFieldType" value="#{T(java.sql.Types).BIGINT}"/> <property name="javaFieldName" value="sequence"/> <property name="javaFieldType" value="java.lang.Long"/> </bean> </list> </property> </bean> </list> </property> </bean> </property> <property name="queryEntities"> <list> <bean class="org.apache.ignite.cache.QueryEntity"> <property name="keyType" value="#{T(com.tophold.trade.query.product.ProductEntry).IG_KEY_TYPE}"/> <property name="valueType" value="#{T(com.tophold.trade.query.product.ProductEntry).IG_VALUE_TYPE}"/> <property name="fields"> <map> <entry key="productCode" value="java.lang.String"/> <entry key="identifier" value="java.lang.String"/> <entry key="active" value="java.lang.Boolean"/> <entry key="deleted" value="java.lang.Boolean"/> <entry key="extraId" value="java.lang.Long"/> <entry key="currency" value="java.lang.String"/> <entry key="fromCurrency" value="java.lang.String"/> <entry key="leverage" value="java.lang.Integer"/> <entry key="exchanger" value="com.tophold.trade.product.Exchanger"/> <entry key="sequence" value="java.lang.Long"/> </map> </property> <property name="indexes"> <list> <bean class="org.apache.ignite.cache.QueryIndex"> <constructor-arg value="productCode"/> </bean> </list> </property> </bean> </list> </property> </bean> Regards aa...@tophold.com 发件人: aa...@tophold.com 发送时间: 2017-07-17 09:26 收件人: user 主题: Re: Re:Weird index out bound Exception Also what's the different between the #getOrCreateCache and #cache. So if a pure client query side which API should prefer? very appreciate your time. I'm a newer to the Ignite. Regards aa...@tophold.com 发件人: aa...@tophold.com 发送时间: 2017-07-17 09:16 收件人: user; aaron 主题: Re: 回复:Weird index out bound Exception Also If my server side cache with cache storage in backend, my client side also need to configuration this? as I notice client throw a exception : Spring application context resource is not injected; as my client maybe is a very Simple, not include all the configuration available in product. so Client should not be aware of the server side cache storage. --- Failed to wait for completion of partition map exchange (preloading will not start): GridDhtPartitionsExchangeFuture [dummy=false, forcePreload=false, reassign=false, discoEvt=DiscoveryCustomEvent [customMsg=null, affTopVer=AffinityTopologyVersion [topVer=4, minorTopVer=1], super=DiscoveryEvent [evtNode=TcpDiscoveryNode [id=a39278cf-4950-49b8-b516-72b821c45088, addrs=[0:0:0:0:0:0:0:1, 127.0.0.1, 192.168.1.58, 192.168.56.1, 2001:0:9d38:6ab8:3c42:1ec4:8a6f:e895], sockAddrs=[Aaron/192.168.56.1:0, /0:0:0:0:0:0:0:1:0, /127.0.0.1:0, /192.168.1.58:0, /2001:0:9d38:6ab8:3c42:1ec4:8a6f:e895:0], discPort=0, order=4, intOrder=0, lastExchangeTime=1500253677140, loc=true, ver=2.0.0#20170430-sha1:d4eef3c6, isClient=true], topVer=4, nodeId8=a39278cf, msg=null, type=DISCOVERY_CUSTOM_EVT, tstamp=1500253679239]], crd=TcpDiscoveryNode [id=51e73bad-3528-4634-b062-83b57dbdbd0a, addrs=[127.0.0.1, 192.168.1.58, 192.168.56.1], sockAddrs=[Aaron/192.168.56.1:47500, /127.0.0.1:47500, /192.168.1.58:47500], discPort=47500, order=1, intOrder=1, lastExchangeTime=1500253678911, loc=false, ver=2.0.0#20170430-sha1:d4eef3c6, isClient=false], exchId=GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=4, minorTopVer=1], nodeId=a39278cf, evt=DISCOVERY_CUSTOM_EVT], added=true, initFut=GridFutureAdapter [ignoreInterrupts=false, state=DONE, res=false, hash=146566071], init=false, lastVer=null, partReleaseFut=null, affChangeMsg=null, skipPreload=true, clientOnlyExchange=false, initTs=1500253679239, centralizedAff=false, changeGlobalStateE=null, exchangeOnChangeGlobalState=false, forcedRebFut=null, evtLatch=0, remaining=[51e73bad-3528-4634-b062-83b57dbdbd0a], srvNodes=[TcpDiscoveryNode [id=51e73bad-3528-4634-b062-83b57dbdbd0a, addrs=[127.0.0.1, 192.168.1.58, 192.168.56.1], sockAddrs=[Aaron/192.168.56.1:47500, /127.0.0.1:47500, /192.168.1.58:47500], discPort=47500, order=1, intOrder=1, lastExchangeTime=1500253678911, loc=false, ver=2.0.0#20170430-sha1:d4eef3c6, isClient=false]], super=GridFutureAdapter [ignoreInterrupts=false, state=DONE, res=class o.a.i.IgniteException: Spring application context resource is not injected., hash=1325230042]] class org.apache.ignite.IgniteCheckedException: Spring application context resource is not injected. at org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7242) at org.apache.ignite.internal.util.future.GridFutureAdapter.resolve(GridFutureAdapter.java:258) at org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:206) at org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:158) at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1812) 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:171) at org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.create(CacheJdbcPojoStoreFactory.java:100) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCache(GridCacheProcessor.java:1458) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1931) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1833) at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.onCacheChangeRequest(CacheAffinitySharedManager.java:379) at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onCacheChangeRequest(GridDhtPartitionsExchangeFuture.java:688) at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:529) at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1806) ... 2 more Regards Aaron aa...@tophold.com 发件人: Aaron 发送时间: 2017-07-15 09:22 收件人: user 主题: 回复:Weird index out bound Exception Thanks agura, so my data node model this cache is REPLICATED, how client suppose init the Cache configuration and get refer to the cache? if I init the client cache configuration as REPLICATED, it seem stuck there, Thanks again for your time! Regards Aaron ------------------------------------------------------------------ 发件人:agura <ag...@apache.org> 发送时间:2017年7月14日(星期五) 23:38 收件人:user <user@ignite.apache.org> 主 题:Re: Weird index out bound Exception Hi, I can't reproduce your case. But the issue could occur if you had a REPLICATED cache and after some time changed it to PARTITIONED and for example call to getOrCreateCache keeping old cache name. -- View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Weird-index-out-bound-Exception-tp14905p14920.html Sent from the Apache Ignite Users mailing list archive at Nabble.com.