是否可以通过并发多线程从TransactionalMap
访问TransactionContext
。
已将xaResource
用于现有事务,已使用transactionalContext
,以获取TransactionalMap
,并发*transMap,put(K,V)*
,将我带到例外。
com.hazelcast.transaction.TransactionException:
交易无法锁定密钥。 HazelCast 版本: 3.6.3 。
征募:
HazelcastXAResource xaResource = hazelcastInstance.getXAResource();
Transaction transaction = userTransactionManager.getTransaction();
transaction.enlistResource(xaResource);
TransactionalMap:
TransactionalMap<String,Serializable> transactionalMap=hcTransactionalContext.getMap("UUID");
Map<K,V> map = transactionalMap.get("uuid");
map.put(K,V);
例外1:
com.hazelcast.transaction.TransactionException: Transaction couldn't obtain lock for the key: uuid
例外2:
There is no suitable serializer for class com.hazelcast.map.impl.tx.TransactionalMapProxy
答案 0 :(得分:1)
Hazelcast中的事务旨在由单个线程工作,因此无法在事务中对TransactionalMap
进行并发访问。
如果你解释一下你的用例,也许我们可以想一些更好的东西来实现它?