不支持从 DataStream 接收器点燃事务?

Ignite Transactional From DataStream Receiver not supported?

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

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

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); 
            } 
        }

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