Hello Aaron!

- In Ignite, client nodes are always aware of backed storage
(cacheStoreFactory) of all caches. This is by design.

- In Ignite, client nodes perform operations on backed storage DB for
transactional caches.
The reasoning here is that transaction commit has to happen in one place,
and that place is the client which initiated transaction.
Otherwise there's no reliable way to make sure that backing non-distributed
DB is updated (or rolled back) properly.

- For atomic caches, client nodes should not be using cacheStore to talk to
DB but still instantiate it in full.

Please make sure that client has all the beans required for cacheStore
operation.

-- 
Ilya Kasnacheev

2017-11-08 13:52 GMT+03:00 aa...@tophold.com <aa...@tophold.com>:

> hi All,
>
> My server side cache configuration with JDBC storage as back-end.  whose
> data source refer to a bean "serverDatasource" from server spring context.
>
> While a pure client node to fetch data from the server, it always report:
>
>
> GridCachePartitionExchangeManager -
> * Failed to process custom exchange task*: ClientCacheChangeDummyDiscover
> yMessage [reqId=1ffc2697-6548-49b3-9c
> ac-a3c8a8672770, cachesToClose=null, startCaches=[ProductEntry]]
> org.apache.ignite.IgniteException: Failed to load bean in application
> context [beanName=*serverDatasource*, igniteConfig=org.
> springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApp
> licationContex
> t@2667f029: startup date [Wed Nov 08 10:36:06 UTC 2017];
> root of context hierarchy]
> at org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.create(
> CacheJdbcPojoStoreFactory.java:183) ~[ignite-core-2.3.0.jar!/:2.3.0]
> at org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.create(
> CacheJdbcPojoStoreFactory.java:100) ~[ignite-core-2.3.0.jar!/:2.3.0]
> at org.apache.ignite.internal.processors.cache.GridCacheProcessor.
> createCache(GridCacheProcessor.java:1318) ~[ignite-core-2.3.0.jar!/:2.3.0]
> at org.apache.ignite.internal.processors.cache.GridCacheProcessor.
> prepareCacheStart(GridCacheProcessor.java:1799)
> ~[ignite-core-2.3.0.jar!/:2.3.0]
> at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.
> processClientCacheStartRequests(CacheAffinitySharedManager.
> java:428) ~[ignite-core-2.3.0.jar!/:2.3.0]
> at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.
> processClientCachesChanges(CacheAffinitySharedManager.
> java:611) ~[ignite-core-2.3.0.jar!/:2.3.0]
> at org.apache.ignite.internal.processors.cache.GridCacheProcessor.
> processCustomExchangeTask(GridCacheProcessor.java:338) ~
> [ignite-core-2.3.0.jar!/:2.3.0]
> at org.apache.ignite.internal.processors.cache.
> GridCachePartitionExchangeManager$ExchangeWorker.processCustomTask(
> GridCachePartitionExchangeManager.java:2142) ~[ignite-core-
> 2.3.0.jar!/:2.3.0]
> at org.apache.ignite.internal.processors.cache.
> GridCachePartitionExchangeManager$ExchangeWorker.body(
> GridCachePartitionExchangeManager.java:2231) ~[ignite-core-
> 2.3.0.jar!/:2.3.0]
> at org.apache.ignite.internal.util.worker.GridWorker.run(
> GridWorker.java:110) ~[ignite-core-2.3.0.jar!/:2.3.0]
> at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
>
>  The client side never ever should have this "serverDatasource" in its
> context, also client suppose not to touch this DB.
>
> Client as : <property name="clientMode" value="true"/>
>
> Could you please advice, how suppose can we stop this check?  even trigger
> a read/write through, this suppose performed by the Server side? not the
> client right?
>
> BTW I already set: System.setProperty(org.apache.ignite.
> IgniteSystemProperties.IGNITE_SKIP_CONFIGURATION_CONSISTENCY_CHECK, "true"
> );  but this not work.
>
> Thanks for your time
>
> Regards
> Aaron
> ------------------------------
> aa...@tophold.com
>

Reply via email to