不支持从 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
我正在使用 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