是否可以通过并发多线程从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

最佳答案

Hazelcast中的事务被设计为通过单个线程工作,因此不可能同时访问事务中的TransactionalMap
如果您解释了用例,也许我们可以想到一些更好的方法来实现呢?

10-06 09:25