Ignite Transactional来自DataStream Receiver不受支持?

时间:2017-06-04 19:59:17

标签: ignite

我正在使用igniteDataStreamer,并想知道是否可以使用来自闭包的事务。

不幸的是,当从不同的IgniteDataStreamer线程运行同一记录以在缓存中更新(StreamReceiver中的receive()方法)时,即使CacheConfiguration atomicityMode是TRANSACTIONAL,Ignite也不会抛出任何TransactionOptimisticException。

try (Transaction t = ignite.transactions().txStart(TransactionConcurrency.OPTIMISTIC, TransactionIsolation.SERIALIZABLE)) { 
            try { 
                cache.putAll(update); 
                t.commit(); 
            catch (TransactionOptimisticException toe) { 
                LOG.error("TransactionOptimisticException Could not put all the profiles",toe); 
            } 
        }

1 个答案:

答案 0 :(得分:1)

数据流不是交易性的。要在单个事务中执行更新,必须在同一节点和同一线程上启动它们。有关更多详细信息和示例,请参阅此处:https://apacheignite.readme.io/docs/transactions