Search in sources :

Example 6 with TransactionalMultiMap

use of com.hazelcast.core.TransactionalMultiMap in project hazelcast by hazelcast.

the class ClientTxnMultiMapTest method testPutAndRoleBack.

@Test
public void testPutAndRoleBack() throws Exception {
    final String mapName = randomString();
    final String key = "key";
    final String value = "value";
    final MultiMap multiMap = client.getMultiMap(mapName);
    TransactionContext tx = client.newTransactionContext();
    tx.beginTransaction();
    TransactionalMultiMap mulitMapTxn = tx.getMultiMap(mapName);
    mulitMapTxn.put(key, value);
    mulitMapTxn.put(key, value);
    tx.rollbackTransaction();
    assertEquals(0, multiMap.get(key).size());
}
Also used : MultiMap(com.hazelcast.core.MultiMap) TransactionalMultiMap(com.hazelcast.core.TransactionalMultiMap) TransactionContext(com.hazelcast.transaction.TransactionContext) TransactionalMultiMap(com.hazelcast.core.TransactionalMultiMap) HazelcastTestSupport.randomString(com.hazelcast.test.HazelcastTestSupport.randomString) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 7 with TransactionalMultiMap

use of com.hazelcast.core.TransactionalMultiMap in project hazelcast by hazelcast.

the class ClientTxnMultiMapTest method testGet_whenBackedWithList.

@Test
public void testGet_whenBackedWithList() throws Exception {
    final String mapName = multiMapBackedByList + randomString();
    final String key = "key";
    final String value = "value";
    final MultiMap multiMap = server.getMultiMap(mapName);
    multiMap.put(key, value);
    TransactionContext tx = client.newTransactionContext();
    tx.beginTransaction();
    TransactionalMultiMap mulitMapTxn = tx.getMultiMap(mapName);
    Collection c = mulitMapTxn.get(key);
    assertFalse(c.isEmpty());
    tx.commitTransaction();
}
Also used : MultiMap(com.hazelcast.core.MultiMap) TransactionalMultiMap(com.hazelcast.core.TransactionalMultiMap) TransactionContext(com.hazelcast.transaction.TransactionContext) TransactionalMultiMap(com.hazelcast.core.TransactionalMultiMap) Collection(java.util.Collection) HazelcastTestSupport.randomString(com.hazelcast.test.HazelcastTestSupport.randomString) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 8 with TransactionalMultiMap

use of com.hazelcast.core.TransactionalMultiMap in project hazelcast by hazelcast.

the class ClientTxnMultiMapTest method testConcrruentTxnPut.

@Test
public void testConcrruentTxnPut() throws Exception {
    final String mapName = randomString();
    final MultiMap multiMap = client.getMultiMap(mapName);
    final int threads = 10;
    final ExecutorService ex = Executors.newFixedThreadPool(threads);
    final CountDownLatch latch = new CountDownLatch(threads);
    final AtomicReference<Throwable> error = new AtomicReference<Throwable>(null);
    for (int i = 0; i < threads; i++) {
        final int key = i;
        ex.execute(new Runnable() {

            public void run() {
                multiMap.put(key, "value");
                final TransactionContext context = client.newTransactionContext();
                try {
                    context.beginTransaction();
                    final TransactionalMultiMap txnMultiMap = context.getMultiMap(mapName);
                    txnMultiMap.put(key, "value");
                    txnMultiMap.put(key, "value1");
                    txnMultiMap.put(key, "value2");
                    assertEquals(3, txnMultiMap.get(key).size());
                    context.commitTransaction();
                    assertEquals(3, multiMap.get(key).size());
                } catch (Exception e) {
                    error.compareAndSet(null, e);
                } finally {
                    latch.countDown();
                }
            }
        });
    }
    try {
        latch.await(1, TimeUnit.MINUTES);
        assertNull(error.get());
    } finally {
        ex.shutdownNow();
    }
}
Also used : MultiMap(com.hazelcast.core.MultiMap) TransactionalMultiMap(com.hazelcast.core.TransactionalMultiMap) TransactionContext(com.hazelcast.transaction.TransactionContext) TransactionalMultiMap(com.hazelcast.core.TransactionalMultiMap) ExecutorService(java.util.concurrent.ExecutorService) AtomicReference(java.util.concurrent.atomic.AtomicReference) HazelcastTestSupport.randomString(com.hazelcast.test.HazelcastTestSupport.randomString) CountDownLatch(java.util.concurrent.CountDownLatch) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 9 with TransactionalMultiMap

use of com.hazelcast.core.TransactionalMultiMap in project hazelcast by hazelcast.

the class ClientTxnMultiMapTest method testRemove_whenBackedWithList.

@Test
public void testRemove_whenBackedWithList() throws Exception {
    final String mapName = multiMapBackedByList + randomString();
    final String key = "key";
    final String value = "value";
    final MultiMap multiMap = server.getMultiMap(mapName);
    multiMap.put(key, value);
    TransactionContext tx = client.newTransactionContext();
    tx.beginTransaction();
    TransactionalMultiMap mulitMapTxn = tx.getMultiMap(mapName);
    Collection c = mulitMapTxn.remove(key);
    assertFalse(c.isEmpty());
    tx.commitTransaction();
}
Also used : MultiMap(com.hazelcast.core.MultiMap) TransactionalMultiMap(com.hazelcast.core.TransactionalMultiMap) TransactionContext(com.hazelcast.transaction.TransactionContext) TransactionalMultiMap(com.hazelcast.core.TransactionalMultiMap) Collection(java.util.Collection) HazelcastTestSupport.randomString(com.hazelcast.test.HazelcastTestSupport.randomString) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 10 with TransactionalMultiMap

use of com.hazelcast.core.TransactionalMultiMap in project hazelcast by hazelcast.

the class ClientTxnMultiMapTest method testRemoveAll.

@Test
public void testRemoveAll() throws Exception {
    final String mapName = randomString();
    final String key = "key";
    MultiMap multiMap = client.getMultiMap(mapName);
    for (int i = 0; i < 10; i++) {
        multiMap.put(key, i);
    }
    TransactionContext tx = client.newTransactionContext();
    tx.beginTransaction();
    TransactionalMultiMap txnMultiMap = tx.getMultiMap(mapName);
    txnMultiMap.remove(key);
    tx.commitTransaction();
    assertTrue(multiMap.get(key).isEmpty());
}
Also used : MultiMap(com.hazelcast.core.MultiMap) TransactionalMultiMap(com.hazelcast.core.TransactionalMultiMap) TransactionContext(com.hazelcast.transaction.TransactionContext) TransactionalMultiMap(com.hazelcast.core.TransactionalMultiMap) HazelcastTestSupport.randomString(com.hazelcast.test.HazelcastTestSupport.randomString) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Aggregations

TransactionalMultiMap (com.hazelcast.core.TransactionalMultiMap)10 ParallelTest (com.hazelcast.test.annotation.ParallelTest)10 QuickTest (com.hazelcast.test.annotation.QuickTest)10 Test (org.junit.Test)10 TransactionContext (com.hazelcast.transaction.TransactionContext)9 MultiMap (com.hazelcast.core.MultiMap)8 HazelcastTestSupport.randomString (com.hazelcast.test.HazelcastTestSupport.randomString)8 HazelcastInstance (com.hazelcast.core.HazelcastInstance)2 TestHazelcastInstanceFactory (com.hazelcast.test.TestHazelcastInstanceFactory)2 TransactionException (com.hazelcast.transaction.TransactionException)2 Collection (java.util.Collection)2 Config (com.hazelcast.config.Config)1 MultiMapConfig (com.hazelcast.config.MultiMapConfig)1 TransactionNotActiveException (com.hazelcast.transaction.TransactionNotActiveException)1 TransactionalTaskContext (com.hazelcast.transaction.TransactionalTaskContext)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 ExecutorService (java.util.concurrent.ExecutorService)1 AtomicReference (java.util.concurrent.atomic.AtomicReference)1