Search in sources :

Example 11 with TransactionManagerServiceImpl

use of com.hazelcast.transaction.impl.TransactionManagerServiceImpl in project hazelcast by hazelcast.

the class TransactionCreateMessageTask method innerCall.

@Override
protected Object innerCall() throws Exception {
    TransactionOptions options = new TransactionOptions();
    options.setDurability(parameters.durability);
    options.setTimeout(parameters.timeout, TimeUnit.MILLISECONDS);
    options.setTransactionType(TransactionOptions.TransactionType.getByValue(parameters.transactionType));
    TransactionManagerServiceImpl transactionManager = (TransactionManagerServiceImpl) clientEngine.getTransactionManagerService();
    TransactionContext context = transactionManager.newClientTransactionContext(options, endpoint.getUuid());
    context.beginTransaction();
    endpoint.setTransactionContext(context);
    return context.getTxnId();
}
Also used : TransactionOptions(com.hazelcast.transaction.TransactionOptions) TransactionManagerServiceImpl(com.hazelcast.transaction.impl.TransactionManagerServiceImpl) TransactionContext(com.hazelcast.transaction.TransactionContext)

Example 12 with TransactionManagerServiceImpl

use of com.hazelcast.transaction.impl.TransactionManagerServiceImpl in project hazelcast by hazelcast.

the class AdvancedClusterStateTest method changeClusterState_shouldFail_withoutBackup_whenInitiatorDies_beforePrepare.

@Test
public void changeClusterState_shouldFail_withoutBackup_whenInitiatorDies_beforePrepare() 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 beforePrepare() {
            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]);
        }
    });
}
Also used : HazelcastInstanceNotActiveException(com.hazelcast.core.HazelcastInstanceNotActiveException) HazelcastInstance(com.hazelcast.core.HazelcastInstance) TransactionManagerServiceImpl(com.hazelcast.transaction.impl.TransactionManagerServiceImpl) TransactionOptions(com.hazelcast.transaction.TransactionOptions) AssertTask(com.hazelcast.test.AssertTask) TestHazelcastInstanceFactory(com.hazelcast.test.TestHazelcastInstanceFactory) HazelcastInstanceNotActiveException(com.hazelcast.core.HazelcastInstanceNotActiveException) TargetNotMemberException(com.hazelcast.spi.exception.TargetNotMemberException) TransactionException(com.hazelcast.transaction.TransactionException) ExecutionException(java.util.concurrent.ExecutionException) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 13 with TransactionManagerServiceImpl

use of com.hazelcast.transaction.impl.TransactionManagerServiceImpl in project hazelcast by hazelcast.

the class AdvancedClusterStateTest method changeClusterState_shouldNotFail_whenInitiatorDies_afterPrepare.

@Test
public void changeClusterState_shouldNotFail_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 = TransactionOptions.getDefault().setDurability(1);
    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.FROZEN, instances[0], instances[1]);
        }
    });
}
Also used : HazelcastInstanceNotActiveException(com.hazelcast.core.HazelcastInstanceNotActiveException) HazelcastInstance(com.hazelcast.core.HazelcastInstance) TransactionManagerServiceImpl(com.hazelcast.transaction.impl.TransactionManagerServiceImpl) TransactionOptions(com.hazelcast.transaction.TransactionOptions) AssertTask(com.hazelcast.test.AssertTask) TestHazelcastInstanceFactory(com.hazelcast.test.TestHazelcastInstanceFactory) HazelcastInstanceNotActiveException(com.hazelcast.core.HazelcastInstanceNotActiveException) TargetNotMemberException(com.hazelcast.spi.exception.TargetNotMemberException) TransactionException(com.hazelcast.transaction.TransactionException) ExecutionException(java.util.concurrent.ExecutionException) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 14 with TransactionManagerServiceImpl

use of com.hazelcast.transaction.impl.TransactionManagerServiceImpl in project hazelcast by hazelcast.

the class AdvancedClusterStateTest method spyTransactionManagerService.

private static TransactionManagerServiceImpl spyTransactionManagerService(HazelcastInstance hz) throws Exception {
    NodeEngineImpl nodeEngine = getNode(hz).nodeEngine;
    TransactionManagerServiceImpl transactionManagerService = (TransactionManagerServiceImpl) nodeEngine.getTransactionManagerService();
    TransactionManagerServiceImpl spiedTransactionManagerService = spy(transactionManagerService);
    Field transactionManagerServiceField = NodeEngineImpl.class.getDeclaredField("transactionManagerService");
    transactionManagerServiceField.setAccessible(true);
    transactionManagerServiceField.set(nodeEngine, spiedTransactionManagerService);
    return spiedTransactionManagerService;
}
Also used : NodeEngineImpl(com.hazelcast.spi.impl.NodeEngineImpl) Field(java.lang.reflect.Field) TransactionManagerServiceImpl(com.hazelcast.transaction.impl.TransactionManagerServiceImpl)

Aggregations

TransactionManagerServiceImpl (com.hazelcast.transaction.impl.TransactionManagerServiceImpl)14 TargetNotMemberException (com.hazelcast.spi.exception.TargetNotMemberException)7 TransactionOptions (com.hazelcast.transaction.TransactionOptions)7 HazelcastInstance (com.hazelcast.core.HazelcastInstance)6 HazelcastInstanceNotActiveException (com.hazelcast.core.HazelcastInstanceNotActiveException)6 AssertTask (com.hazelcast.test.AssertTask)6 TestHazelcastInstanceFactory (com.hazelcast.test.TestHazelcastInstanceFactory)6 ParallelTest (com.hazelcast.test.annotation.ParallelTest)6 QuickTest (com.hazelcast.test.annotation.QuickTest)6 TransactionException (com.hazelcast.transaction.TransactionException)6 ExecutionException (java.util.concurrent.ExecutionException)6 Test (org.junit.Test)6 Address (com.hazelcast.nio.Address)2 NodeEngineImpl (com.hazelcast.spi.impl.NodeEngineImpl)2 MemberLeftException (com.hazelcast.core.MemberLeftException)1 TransactionContext (com.hazelcast.transaction.TransactionContext)1 Transaction (com.hazelcast.transaction.impl.Transaction)1 Field (java.lang.reflect.Field)1