/** {@inheritDoc} */ @Override protected void beforeTestsStarted() throws Exception { startGrids(2); }
/** {@inheritDoc} */ @Override protected void afterTestsStopped() throws Exception { stopAllGrids(); }
/** * */ @Test public void testPessimisticReadCommittedTxInvokeSequentialCall() throws Exception { transactionInvokeSequentialCallOnPrimaryNode(TransactionConcurrency.PESSIMISTIC, TransactionIsolation.READ_COMMITTED); transactionInvokeSequentialCallOnNearNode(TransactionConcurrency.PESSIMISTIC, TransactionIsolation.READ_COMMITTED); }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); CacheConfiguration ccfg = cacheConfiguration(CACHE); CacheConfiguration mvccCfg = cacheConfiguration(MVCC_CACHE) .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT); cfg.setCacheConfiguration(ccfg, mvccCfg); return cfg; }
/** * Test for sequential entry processor invoking not null value on primary cache. * In this test entry processor gets value from local node. * * @param transactionConcurrency Transaction concurrency. * @param transactionIsolation Transaction isolation. */ public void transactionInvokeSequentialCallOnPrimaryNode(TransactionConcurrency transactionConcurrency, TransactionIsolation transactionIsolation) throws Exception { TestKey key = new TestKey(1L); TestValue val = new TestValue(); val.value("1"); Ignite primaryIgnite; if (ignite(0).affinity(cacheName).isPrimary(ignite(0).cluster().localNode(), key)) primaryIgnite = ignite(0); else primaryIgnite = ignite(1); IgniteCache<TestKey, TestValue> cache = primaryIgnite.cache(cacheName); cache.put(key, val); NotNullCacheEntryProcessor cacheEntryProcessor = new NotNullCacheEntryProcessor(); try (Transaction transaction = primaryIgnite.transactions().txStart(transactionConcurrency, transactionIsolation)) { cache.invoke(key, cacheEntryProcessor); cache.invoke(key, cacheEntryProcessor); transaction.commit(); } cache.remove(key); }
/** * */ @Test public void testOptimisticSerializableTxInvokeSequentialCall() throws Exception { transactionInvokeSequentialCallOnPrimaryNode(TransactionConcurrency.OPTIMISTIC, TransactionIsolation.SERIALIZABLE); transactionInvokeSequentialCallOnNearNode(TransactionConcurrency.OPTIMISTIC, TransactionIsolation.SERIALIZABLE); }
/** * */ @Test public void testPessimisticSerializableTxInvokeSequentialCall() throws Exception { transactionInvokeSequentialCallOnPrimaryNode(TransactionConcurrency.PESSIMISTIC, TransactionIsolation.SERIALIZABLE); transactionInvokeSequentialCallOnNearNode(TransactionConcurrency.PESSIMISTIC, TransactionIsolation.SERIALIZABLE); }
/** * */ @Test public void testMvccTxInvokeSequentialCall() throws Exception { cacheName = MVCC_CACHE; transactionInvokeSequentialCallOnPrimaryNode(TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ); transactionInvokeSequentialCallOnNearNode(TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ); }
/** * */ @Test public void testOptimisticRepeatableReadTxInvokeSequentialCall() throws Exception { transactionInvokeSequentialCallOnPrimaryNode(TransactionConcurrency.OPTIMISTIC, TransactionIsolation.REPEATABLE_READ); transactionInvokeSequentialCallOnNearNode(TransactionConcurrency.OPTIMISTIC, TransactionIsolation.REPEATABLE_READ); }
/** * */ @Test public void testOptimisticReadCommittedTxInvokeSequentialCall() throws Exception { transactionInvokeSequentialCallOnPrimaryNode(TransactionConcurrency.OPTIMISTIC, TransactionIsolation.READ_COMMITTED); transactionInvokeSequentialCallOnNearNode(TransactionConcurrency.OPTIMISTIC, TransactionIsolation.READ_COMMITTED); }
/** * */ @Test public void testPessimisticRepeatableReadTxInvokeSequentialCall() throws Exception { transactionInvokeSequentialCallOnPrimaryNode(TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ); transactionInvokeSequentialCallOnNearNode(TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ); }