Package com.hazelcast.transaction

Examples of com.hazelcast.transaction.TransactionContext


                } catch (HazelcastInstanceNotActiveException ignored) {
                }
            }
        }.start();

        final TransactionContext context = instances[0].newTransactionContext();
        context.beginTransaction();
        TransactionalQueue<String> q0 = context.getQueue(name0);
        TransactionalQueue<String> q1 = context.getQueue(name1);
        String s = null;
        latch.countDown();
        try {
            s = q0.poll(10, TimeUnit.SECONDS);
        } catch (InterruptedException e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
        assertEquals("item0", s);
        q1.offer(s);
        context.commitTransaction();

        assertEquals(0, getQueue(instances, name0).size());
        assertEquals("item0", getQueue(instances, name1).poll());
    }
View Full Code Here


        final String mapName = "defMap";
        TestHazelcastInstanceFactory factory = createHazelcastInstanceFactory(insCount);
        final HazelcastInstance[] instances = factory.newInstances(config);
        instances[0].getMap(mapName).lock("lock1");

        final TransactionContext context = instances[1].newTransactionContext(new TransactionOptions().setTimeout(5, TimeUnit.SECONDS));
        context.beginTransaction();
        try {
            boolean offered = context.getQueue(queueName).offer("item1");
            assertTrue(offered);
            context.getMap(mapName).put("lock1", "value1");
            fail();
        } catch (TransactionException ex) {
            // expected
            context.rollbackTransaction();
        }
        assertEquals(0, instances[0].getQueue(queueName).size());
        assertNull(instances[0].getMap(mapName).get("lock1"));
    }
View Full Code Here

    @Test
    public void testRollbackQueue() throws Throwable {
        final TestHazelcastInstanceFactory factory = createHazelcastInstanceFactory(4);
        final HazelcastInstance h1 = factory.newHazelcastInstance();

        final TransactionContext transactionContext = h1.newTransactionContext();

        transactionContext.beginTransaction();

        TransactionalQueue<String> queue = transactionContext.getQueue("testq");

        queue.offer("offered-val");

        transactionContext.rollbackTransaction();

        assertNull(h1.getQueue("testq").poll());

    }
View Full Code Here

    @Test(expected = TransactionNotActiveException.class)
    public void testTxnQueueOuterTransaction() throws Throwable {
        final HazelcastInstance h1 = createHazelcastInstance();

        final TransactionContext transactionContext = h1.newTransactionContext();
        transactionContext.beginTransaction();
        TransactionalQueue<Object> queue = transactionContext.getQueue("testTxnQueueOuterTransaction");
        queue.offer("item");
        transactionContext.commitTransaction();
        queue.poll();
    }
View Full Code Here

                this.outQueueName = outQueueName;
            }

            public void run() {
                while (active && count.get() != numberOfMessages && hazelcastInstance.getLifecycleService().isRunning()) {
                    TransactionContext transactionContext = hazelcastInstance.newTransactionContext();
                    try {
                        transactionContext.beginTransaction();
                    } catch (HazelcastInstanceNotActiveException ignored) {
                        break;
                    }
                    try {
                        TransactionalQueue<Object> queue = transactionContext.getQueue(inQueueName);
                        Object value = queue.poll();
                        if (value != null) {
                            TransactionalQueue<Object> outQueue = transactionContext.getQueue(outQueueName);
                            if (!outQueue.offer(value)) {
                                throw new RuntimeException();
                            }
                        }
                        transactionContext.commitTransaction();
                        if (value != null) {
                            count.incrementAndGet();
                        }
                    } catch (Exception e) {
                        try {
                            transactionContext.rollbackTransaction();
                        } catch (HazelcastInstanceNotActiveException ignored) {
                        }
                    }
                }
            }
View Full Code Here

        final int insCount = 4;
        final String name = "defQueue";
        final TestHazelcastInstanceFactory factory = createHazelcastInstanceFactory(insCount);
        final HazelcastInstance[] instances = factory.newInstances(config);

        final TransactionContext context = instances[0].newTransactionContext();
        context.beginTransaction();
        try {
            TransactionalQueue<String> q = context.getQueue(name);
            final String response1 = q.peek(10, TimeUnit.SECONDS);
            assertNull(response1);

            assertTrue(q.offer("ali"));

            final String response2 = q.peek();
            assertEquals("ali", response2);
            context.commitTransaction();
        } catch (TransactionException e) {
            context.rollbackTransaction();
            throw e;
        }
        assertEquals(1, getQueue(instances, name).size());
    }
View Full Code Here

    public void testTransactionalOfferAndPollWithTimeout() throws InterruptedException {
        final HazelcastInstance instance = createHazelcastInstanceFactory(1).newHazelcastInstance();
        final String item = "offered";
        final String queueName = "testTransactionalOfferAndPollWithTimeout";

        final TransactionContext context = instance.newTransactionContext();
        context.beginTransaction();
        TransactionalQueue<String> txnQueue = context.getQueue(queueName);
        assertTrue(txnQueue.offer(item));
        assertEquals(1, txnQueue.size());
        assertEquals(item, txnQueue.poll(5, TimeUnit.SECONDS));
        context.commitTransaction();
    }
View Full Code Here

    }

    @Override
    public Object innerCall() throws Exception {
        ClientEndpoint endpoint = getEndpoint();
        TransactionContext transactionContext = endpoint.getTransactionContext(txnId);
        if (prepareAndCommit) {
            transactionContext.commitTransaction();
        } else {
            Transaction transaction = TransactionAccessor.getTransaction(transactionContext);
            transaction.commit();
        }
        endpoint.removeTransactionContext(txnId);
View Full Code Here

                this.outQueueName = outQueueName;
            }

            public void run() {
                while (active && count.get() != numberOfMessages && hazelcastInstance.getLifecycleService().isRunning()) {
                    TransactionContext transactionContext = hazelcastInstance.newTransactionContext();
                    try {
                        transactionContext.beginTransaction();
                    } catch (HazelcastInstanceNotActiveException ignored) {
                        break;
                    }
                    try {
                        TransactionalQueue<Object> queue = transactionContext.getQueue(inQueueName);
                        Object value = queue.poll();
                        if (value != null) {
                            TransactionalQueue<Object> outQueue = transactionContext.getQueue(outQueueName);
                            if (!outQueue.offer(value)) {
                                throw new RuntimeException();
                            }
                        }
                        transactionContext.commitTransaction();
                        if (value != null) {
                            count.incrementAndGet();
                        }
                    } catch (Exception e) {
                        try {
                            transactionContext.rollbackTransaction();
                        } catch (HazelcastInstanceNotActiveException ignored) {
                        }
                    }
                }
            }
View Full Code Here

        return type;
    }

    @Override
    public TransactionContext getTransactionContext(String txnId) {
        final TransactionContext transactionContext = transactionContextMap.get(txnId);
        if (transactionContext == null) {
            throw new TransactionException("No transaction context found for txnId:" + txnId);
        }
        return transactionContext;
    }
View Full Code Here

TOP

Related Classes of com.hazelcast.transaction.TransactionContext

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.