use of com.hazelcast.transaction.impl.TransactionManagerServiceImpl in project hazelcast by hazelcast.
the class AdvancedClusterStateTest method changeClusterState_shouldFail_withoutBackup_whenInitiatorDies_afterPrepare.
@Test
public void changeClusterState_shouldFail_withoutBackup_whenInitiatorDies_afterPrepare() throws Exception {
final TestHazelcastInstanceFactory factory = createHazelcastInstanceFactory(3);
final HazelcastInstance[] instances = factory.newInstances();
final HazelcastInstance hz = instances[instances.length - 1];
TransactionManagerServiceImpl transactionManagerService = spyTransactionManagerService(hz);
TransactionOptions options = new TransactionOptions().setDurability(0).setTimeout(30, TimeUnit.SECONDS);
when(transactionManagerService.newAllowedDuringPassiveStateTransaction(options)).thenAnswer(new TransactionAnswer() {
@Override
protected void afterPrepare() {
terminateInstance(hz);
}
});
try {
hz.getCluster().changeClusterState(ClusterState.FROZEN, options);
fail("This instance is terminated. Cannot commit the transaction!");
} catch (HazelcastInstanceNotActiveException ignored) {
}
assertTrueEventually(new AssertTask() {
@Override
public void run() throws Exception {
assertClusterState(ClusterState.ACTIVE, instances[0], instances[1]);
}
});
}
use of com.hazelcast.transaction.impl.TransactionManagerServiceImpl in project hazelcast by hazelcast.
the class AdvancedClusterStateTest method changeClusterState_shouldNotFail_whenNonInitiatorMemberDies_duringCommit.
@Test
public void changeClusterState_shouldNotFail_whenNonInitiatorMemberDies_duringCommit() throws Exception {
final TestHazelcastInstanceFactory factory = createHazelcastInstanceFactory(3);
final HazelcastInstance[] instances = factory.newInstances();
final HazelcastInstance hz = instances[2];
TransactionManagerServiceImpl transactionManagerService = spyTransactionManagerService(hz);
final Address address = getAddress(instances[0]);
TransactionOptions options = TransactionOptions.getDefault().setDurability(0);
when(transactionManagerService.newAllowedDuringPassiveStateTransaction(options)).thenAnswer(new TransactionAnswer() {
@Override
protected void afterPrepare() {
terminateInstance(instances[0]);
}
});
hz.getCluster().changeClusterState(ClusterState.FROZEN, options);
assertTrueEventually(new AssertTask() {
@Override
public void run() throws Exception {
assertClusterState(ClusterState.FROZEN, instances[2], instances[1]);
}
});
instances[0] = factory.newHazelcastInstance(address);
assertClusterSizeEventually(3, instances[0]);
assertClusterSizeEventually(3, instances[1]);
assertClusterSizeEventually(3, instances[2]);
assertClusterState(ClusterState.FROZEN, instances);
}
use of com.hazelcast.transaction.impl.TransactionManagerServiceImpl in project hazelcast by hazelcast.
the class CreateAllowedDuringPassiveStateTxBackupLogOperation method run.
@Override
public void run() throws Exception {
TransactionManagerServiceImpl txManagerService = getService();
txManagerService.createAllowedDuringPassiveStateBackupLog(getCallerUuid(), getTxnId());
}
use of com.hazelcast.transaction.impl.TransactionManagerServiceImpl in project hazelcast by hazelcast.
the class PurgeTxBackupLogOperation method run.
@Override
public void run() throws Exception {
TransactionManagerServiceImpl txManagerService = getService();
txManagerService.purgeBackupLog(txnId);
}
use of com.hazelcast.transaction.impl.TransactionManagerServiceImpl in project hazelcast by hazelcast.
the class RollbackTxBackupLogOperation method run.
@Override
public void run() throws Exception {
TransactionManagerServiceImpl txManagerService = getService();
txManagerService.rollbackBackupLog(txnId);
}
Aggregations