是否可以使用并发多线程从TransactionContext
访问TransactionalMap
..
已将xaResource
登记到现有事务中,使用transactionalContext
来获取TransactionalMap
,并发*transMap,put(K, V)*
,让我遇到了一个异常(exception)..
com.hazelcast.transaction.TransactionException:
事务无法获取 key 的锁。 HazelCast 版本:3.6.3。
入伍:
HazelcastXAResource xaResource = hazelcastInstance.getXAResource();
Transaction transaction = userTransactionManager.getTransaction();
transaction.enlistResource(xaResource);
事务映射:
TransactionalMap<String,Serializable> transactionalMap=hcTransactionalContext.getMap("UUID");
Map<K,V> map = transactionalMap.get("uuid");
map.put(K,V);
异常(exception)1:
com.hazelcast.transaction.TransactionException: Transaction couldn't obtain lock for the key: uuid
异常(exception)2:
There is no suitable serializer for class com.hazelcast.map.impl.tx.TransactionalMapProxy
最佳答案
Hazelcast 中的事务设计为由单线程工作,因此不可能在事务中对 TransactionalMap
进行并发访问。
如果您解释一下您的用例,也许我们可以想出更好的方法来实现它?
关于java - HazelCast TransactionalMap 和并发线程访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38279607/