HazelCast TransactionalMap,以及并发线程访问

时间:2016-07-09 07:49:41

标签: java multithreading hazelcast jta distributed-transactions

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

1 个答案:

答案 0 :(得分:1)

Hazelcast中的事务旨在由单个线程工作,因此无法在事务中对TransactionalMap进行并发访问。 如果你解释一下你的用例,也许我们可以想一些更好的东西来实现它?