/** * */ @Test public void testPrepareOnUnstableTopology() throws Exception { for (TransactionIsolation isolation : TransactionIsolation.values()) { doPrepareOnUnstableTopology(4, false, isolation, 0); doPrepareOnUnstableTopology(4, true, isolation, 0); doPrepareOnUnstableTopology(4, false, isolation, TimeUnit.DAYS.toMillis(1)); doPrepareOnUnstableTopology(4, true, isolation, TimeUnit.DAYS.toMillis(1)); } }
/** * Tests timeouts in all tx configurations. * * @throws Exception If failed. */ @Test public void testSimple() throws Exception { for (TransactionConcurrency concurrency : TransactionConcurrency.values()) for (TransactionIsolation isolation : TransactionIsolation.values()) { for (int op = 0; op < 4; op++) testSimple0(concurrency, isolation, op); } }
/** */ private void executeWithAllTxCaches(final TestClosure clo) throws Exception { for (CacheConfiguration ccfg : cacheConfigurations()) { if (ccfg.getAtomicityMode() == CacheAtomicityMode.TRANSACTIONAL) { for (TransactionConcurrency con : TransactionConcurrency.values()) { for (TransactionIsolation iso : TransactionIsolation.values()) executeForCache(ccfg, clo, con, iso); } } } }
/** * @throws Exception If failed. */ @Test public void testCause() throws Exception { startGrids(1); for (TransactionIsolation isolation : TransactionIsolation.values()) { testCauseObject(1, 2, 1000, isolation, true); testCauseObject(1, 2, 1000, isolation, false); } }
/** * @throws Exception If failed. */ @Test public void testCauseSeveralNodes() throws Exception { startGrids(2); for (TransactionIsolation isolation : TransactionIsolation.values()) { testCauseObject(2, 2, 1500, isolation, true); testCauseObject(2, 2, 1500, isolation, false); } }
/** * Tests that deactivation is prohibited if transaction is active in current thread. * * @throws Exception If failed. */ @Test public void testDeactivationWithPendingTransaction() throws Exception { startGrids(GRID_CNT); for (TransactionConcurrency concurrency : TransactionConcurrency.values()) { for (TransactionIsolation isolation : TransactionIsolation.values()) deactivateWithPendingTransaction(concurrency, isolation); } }
/** * Test we can resume and complete transaction if topology changed while transaction is suspended. * * @throws Exception If failed. */ @Test public void testSuspendTxAndResumeAfterTopologyChange() throws Exception { Ignite srv = ignite(ThreadLocalRandom.current().nextInt(SERVER_CNT)); Ignite client = ignite(SERVER_CNT); Ignite clientNear = ignite(SERVER_CNT + 1); Map<String, List<List<Integer>>> cacheKeys = generateKeys(srv, TransactionIsolation.values().length); doCheckSuspendTxAndResume(srv, cacheKeys); doCheckSuspendTxAndResume(client, cacheKeys); doCheckSuspendTxAndResume(clientNear, cacheKeys); }
@Override public void applyx(Ignite ignite, final IgniteCache<Integer, Integer> cache) throws Exception { for (CI1Exc<Transaction> txOperation : SUSPENDED_TX_PROHIBITED_OPS) { for (TransactionIsolation isolation : TransactionIsolation.values()) { Transaction tx = ignite.transactions().txStart(OPTIMISTIC, isolation); cache.put(1, 1); tx.suspend(); GridTestUtils.assertThrowsWithCause(txOperation, tx, IgniteException.class); tx.resume(); tx.close(); assertNull(cache.get(1)); } } } });
/** * @throws Exception If failed. */ @Test public void testInvokeAllAsyncTx() throws Exception { if (!txShouldBeUsed()) return; for (TransactionConcurrency conc : TransactionConcurrency.values()) { for (TransactionIsolation isolation : TransactionIsolation.values()) { checkInvokeAllAsycnTx(conc, isolation); jcache().removeAll(); } } }
/** * @throws Exception If failed. */ @Test public void testInvokeAllTx() throws Exception { if (!txShouldBeUsed()) return; for (TransactionConcurrency conc : TransactionConcurrency.values()) { for (TransactionIsolation isolation : TransactionIsolation.values()) { checkInvokeAllTx(conc, isolation); jcache().removeAll(); } } }
/** * @throws Exception If failed. */ @Test public void testInvokeAsyncTx() throws Exception { if (!txShouldBeUsed()) return; for (TransactionConcurrency conc : TransactionConcurrency.values()) { for (TransactionIsolation isolation : TransactionIsolation.values()) { checkInvokeAsyncTx(conc, isolation); jcache().removeAll(); } } }
/** * Tests timeout on DHT primary node for all tx configurations. * * @throws Exception If failed. */ @Test public void testTimeoutOnPrimaryDHTNode() throws Exception { final ClusterNode n0 = grid(0).affinity(CACHE_NAME).mapKeyToNode(0); final Ignite prim = G.ignite(n0.id()); for (TransactionConcurrency concurrency : TransactionConcurrency.values()) { for (TransactionIsolation isolation : TransactionIsolation.values()) testTimeoutOnPrimaryDhtNode0(prim, concurrency, isolation); } }
/** * @throws Exception If failed. */ @Test public void testCauseNear() throws Exception { ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME) .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL) .setNearConfiguration(new NearCacheConfiguration()); startGrids(1); for (TransactionIsolation isolation : TransactionIsolation.values()) { testCauseObject(1, 2, 1000, isolation, true); testCauseObject(1, 2, 1000, isolation, false); } }
/** * @throws Exception If failed. */ @Test public void testCauseSeveralNodesNear() throws Exception { ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME) .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL) .setNearConfiguration(new NearCacheConfiguration()); startGrids(4); for (TransactionIsolation isolation : TransactionIsolation.values()) { testCauseObject(2, 2, 2000, isolation, true); testCauseObject(2, 2, 2000, isolation, false); } }
/** * @throws Exception If failed. */ @Test public void testPutNearTx() throws Exception { for (TransactionConcurrency concurrency : TransactionConcurrency.values()) { for (TransactionIsolation isolation : TransactionIsolation.values()) { checkPutTx(true, concurrency, isolation, keyForNode(grid(0).localNode(), NOT_PRIMARY_AND_BACKUP)); checkPutTx(false, concurrency, isolation, keyForNode(grid(0).localNode(), NOT_PRIMARY_AND_BACKUP)); } } }
/** * @throws Exception If failed. */ @Test public void testPutBackupTx() throws Exception { for (TransactionConcurrency concurrency : TransactionConcurrency.values()) { for (TransactionIsolation isolation : TransactionIsolation.values()) { checkPutTx(true, concurrency, isolation, keyForNode(grid(0).localNode(), BACKUP)); checkPutTx(false, concurrency, isolation, keyForNode(grid(0).localNode(), BACKUP)); } } }
/** * @throws Exception If failed. */ @Test public void testPutNearTx() throws Exception { for (TransactionConcurrency concurrency : TransactionConcurrency.values()) { for (TransactionIsolation isolation : TransactionIsolation.values()) { checkPutTx(true, concurrency, isolation, keyForNode(grid(0).localNode(), NOT_PRIMARY_AND_BACKUP)); checkPutTx(false, concurrency, isolation, keyForNode(grid(0).localNode(), NOT_PRIMARY_AND_BACKUP)); } } }
/** * @throws Exception If failed. */ @Test public void testPutPrimaryTx() throws Exception { for (TransactionConcurrency concurrency : TransactionConcurrency.values()) { for (TransactionIsolation isolation : TransactionIsolation.values()) { checkPutTx(true, concurrency, isolation, keyForNode(grid(0).localNode(), PRIMARY)); checkPutTx(false, concurrency, isolation, keyForNode(grid(0).localNode(), PRIMARY)); } } }
/** * @throws Exception If failed. */ @Test public void testPutPrimaryTx() throws Exception { for (TransactionConcurrency concurrency : TransactionConcurrency.values()) { for (TransactionIsolation isolation : TransactionIsolation.values()) { checkPutTx(true, concurrency, isolation, keyForNode(grid(0).localNode(), PRIMARY)); checkPutTx(false, concurrency, isolation, keyForNode(grid(0).localNode(), PRIMARY)); } } }
/** * @throws Exception If failed. */ @Test public void testPutBackupTx() throws Exception { for (TransactionConcurrency concurrency : TransactionConcurrency.values()) { for (TransactionIsolation isolation : TransactionIsolation.values()) { checkPutTx(true, concurrency, isolation, keyForNode(grid(0).localNode(), BACKUP)); checkPutTx(false, concurrency, isolation, keyForNode(grid(0).localNode(), BACKUP)); } } }