use of com.hazelcast.transaction.TransactionNotActiveException in project hazelcast by hazelcast.
the class XATransactionContextProxy method getTransactionalObject.
@Override
public <T extends TransactionalObject> T getTransactionalObject(String serviceName, String name) {
if (transaction.getState() != Transaction.State.ACTIVE) {
throw new TransactionNotActiveException("No transaction is found while accessing " + "transactional object -> " + serviceName + "[" + name + "]!");
}
TransactionalObjectKey key = new TransactionalObjectKey(serviceName, name);
TransactionalObject obj = txnObjectMap.get(key);
if (obj == null) {
if (serviceName.equals(QueueService.SERVICE_NAME)) {
obj = new ClientTxnQueueProxy(name, this);
} else if (serviceName.equals(MapService.SERVICE_NAME)) {
obj = new ClientTxnMapProxy(name, this);
} else if (serviceName.equals(MultiMapService.SERVICE_NAME)) {
obj = new ClientTxnMultiMapProxy(name, this);
} else if (serviceName.equals(ListService.SERVICE_NAME)) {
obj = new ClientTxnListProxy(name, this);
} else if (serviceName.equals(SetService.SERVICE_NAME)) {
obj = new ClientTxnSetProxy(name, this);
}
if (obj == null) {
throw new IllegalArgumentException("Service[" + serviceName + "] is not transactional!");
}
txnObjectMap.put(key, obj);
}
return (T) obj;
}
use of com.hazelcast.transaction.TransactionNotActiveException in project hazelcast by hazelcast.
the class XATransactionProxy method prepare.
void prepare() {
checkTimeout();
try {
if (state != ACTIVE) {
throw new TransactionNotActiveException("Transaction is not active");
}
ClientMessage request = XATransactionPrepareCodec.encodeRequest(txnId);
invoke(request);
state = PREPARED;
} catch (Exception e) {
state = ROLLING_BACK;
throw ExceptionUtil.rethrow(e);
}
}
use of com.hazelcast.transaction.TransactionNotActiveException in project hazelcast by hazelcast.
the class XATransactionContextImpl method getTransactionalObject.
@SuppressWarnings("unchecked")
@Override
public TransactionalObject getTransactionalObject(String serviceName, String name) {
if (transaction.getState() != Transaction.State.ACTIVE) {
throw new TransactionNotActiveException("No transaction is found while accessing " + "transactional object -> " + serviceName + "[" + name + "]!");
}
TransactionalObjectKey key = new TransactionalObjectKey(serviceName, name);
TransactionalObject obj = txnObjectMap.get(key);
if (obj != null) {
return obj;
}
final Object service = nodeEngine.getService(serviceName);
if (service instanceof TransactionalService) {
nodeEngine.getProxyService().initializeDistributedObject(serviceName, name, transaction.getOwnerUuid());
obj = ((TransactionalService) service).createTransactionalObject(name, transaction);
txnObjectMap.put(key, obj);
} else {
throw new IllegalArgumentException("Service[" + serviceName + "] is not transactional!");
}
return obj;
}
use of com.hazelcast.transaction.TransactionNotActiveException in project hazelcast by hazelcast.
the class TransactionProxy method commit.
void commit() {
try {
if (state != ACTIVE) {
throw new TransactionNotActiveException("Transaction is not active");
}
state = COMMITTING;
checkThread();
checkTimeout();
ClientMessage request = TransactionCommitCodec.encodeRequest(txnId, threadId);
ClientTransactionUtil.invoke(request, getTxnId(), client, connection);
state = COMMITTED;
} catch (Exception e) {
state = COMMIT_FAILED;
throw rethrow(e);
} finally {
TRANSACTION_EXISTS.set(null);
}
}
Aggregations