In order to commit DB transaction consistently with in-memory one it is
committed from near node (which is client node in your case).

Currently we don't have an option to write-through from dht nodes, but for
now you can try write behind functionality -
https://apacheignite.readme.io/docs/persistent-store#write-behind-caching

--Yakov

2017-06-01 14:40 GMT+03:00 rick_tem <[email protected]>:

> Hello,
>
> I have a written a cache store and started it up on one node and call
> loadCache() and the output is shown below.
>
> public class IgniteXMLClobCacheStoreimplements CacheStore<String, String>
> {
>
> }
>
> IgniteXMLClobCacheStore::loadCache Loading: LAYOUT
> IgniteXMLClobCacheStore::loadCache Loading: RISK
> IgniteXMLClobCacheStore::loadCache Loading: TOP_ACCOUNT
> IgniteXMLClobCacheStore::loadCache finished loading. Now listening...
> [11:27:14] Topology snapshot [ver=2, servers=1, clients=1, CPUs=4,
> heap=1.3GB]
>
> I start another in client mode (see above topology snapshot), in this case
> loadCache() is not called (as expected), however write() is called.  I
> eventually get a null pointer as something isn't initialized when I call
> loadCache.  In the stack trace below it looks like it is treating it as a
> nearCache.  Shouldn't write() be called on my server node and not my
> client?
> If I am doing something wrong, how then would I then initialize something
> as
> this object is created by Ignite and I can't pass it via loadCache() since
> it isn't called in client mode.  ie,
>
>                                 <bean class="org.apache.ignite.
> configuration.CacheConfiguration">
>                                         <property name="name" 
> value="TablesXMLClobWriteThrough"
> />
>                                         <property name="cacheStoreFactory">
>                                                 <bean class="javax.cache.
> configuration.FactoryBuilder"
>
> factory-method="factoryOf">
>                                                         <constructor-arg
>
> value="com.temenos.tafj.cache.impl.IgniteXMLClobCacheStore">
> </constructor-arg>
>                                                 </bean>
>                                         </property>
>
>
> [ERROR] 2017-06-01 11:27:42,652 [sys-stripe-3-#4%TemenosGrid%] CACHE -
> IgniteXMLClobCacheStore::Error in write with Key: BLA*RANK
> java.lang.NullPointerException: null
>         at
> com.temenos.tafj.cache.impl.IgniteXMLClobCacheStore.write(
> IgniteXMLClobCacheStore.java:451)
> [TAFJCache.jar:18.1.0-SNAPSHOT]
>         at
> org.apache.ignite.internal.processors.cache.store.
> GridCacheStoreManagerAdapter.put(GridCacheStoreManagerAdapter.java:568)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.store.
> GridCacheStoreManagerAdapter.putAll(GridCacheStoreManagerAdapter.java:609)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxAdapter.
> batchStoreCommit(IgniteTxAdapter.java:1326)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.transactions.
> IgniteTxLocalAdapter.userCommit(IgniteTxLocalAdapter.java:500)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.distributed.
> near.GridNearTxLocal.localFinish(GridNearTxLocal.java:3021)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.distributed.
> near.GridNearTxFinishFuture.finish(GridNearTxFinishFuture.java:405)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.distributed.
> near.GridNearTxLocal$16.apply(GridNearTxLocal.java:3171)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.distributed.
> near.GridNearTxLocal$16.apply(GridNearTxLocal.java:3163)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(
> GridFutureAdapter.java:382)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridFutureAdapter.
> unblock(GridFutureAdapter.java:346)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridFutureAdapter.
> unblockAll(GridFutureAdapter.java:334)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridFutureAdapter.
> onDone(GridFutureAdapter.java:494)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.GridCacheCompoundFuture.
> onDone(GridCacheCompoundFuture.java:56)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridFutureAdapter.
> onDone(GridFutureAdapter.java:473)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.distributed.near.
> GridNearOptimisticTxPrepareFuture.onComplete(
> GridNearOptimisticTxPrepareFuture.java:295)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.distributed.near.
> GridNearOptimisticTxPrepareFuture.onDone(GridNearOptimisticTxPrepareFut
> ure.java:273)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.distributed.near.
> GridNearOptimisticTxPrepareFuture.onDone(GridNearOptimisticTxPrepareFut
> ure.java:72)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridFutureAdapter.
> onDone(GridFutureAdapter.java:450)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(
> GridCompoundFuture.java:278)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridCompoundFuture.apply(
> GridCompoundFuture.java:148)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridCompoundFuture.apply(
> GridCompoundFuture.java:45)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(
> GridFutureAdapter.java:382)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridFutureAdapter.
> unblock(GridFutureAdapter.java:346)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridFutureAdapter.
> unblockAll(GridFutureAdapter.java:334)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridFutureAdapter.
> onDone(GridFutureAdapter.java:494)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridFutureAdapter.
> onDone(GridFutureAdapter.java:473)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.util.future.GridFutureAdapter.
> onDone(GridFutureAdapter.java:450)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.distributed.near.
> GridNearOptimisticTxPrepareFuture$MiniFuture.onResult(
> GridNearOptimisticTxPrepareFuture.java:935)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.distributed.near.
> GridNearOptimisticTxPrepareFuture.onResult(GridNearOptimisticTxPrepareFut
> ure.java:183)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.
> processNearTxPrepareResponse(IgniteTxHandler.java:555)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.transactions.
> IgniteTxHandler.access$100(IgniteTxHandler.java:95)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.transactions.
> IgniteTxHandler$2.apply(IgniteTxHandler.java:147)
> [ignite-core-2.0.0.jar:2.0.0]
>         at
> org.apache.ignite.internal.processors.cache.transactions.
> IgniteTxHandler$2.apply(IgniteTxHandler.java:145)
> [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) [?:1.8.0_66]
>
>
>
>
>
> --
> View this message in context: http://apache-ignite-users.
> 70518.x6.nabble.com/Why-is-custom-cacheStore-write-being-
> called-in-clientMode-tp13309.html
> Sent from the Apache Ignite Users mailing list archive at Nabble.com.
>

Reply via email to