/** * 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); } }
/** {@inheritDoc} */ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException { dfltConcurrency = TransactionConcurrency.fromOrdinal(in.readByte()); dfltIsolation = TransactionIsolation.fromOrdinal(in.readByte()); dfltTimeout = in.readLong(); pessimisticTxLogLinger = in.readInt(); pessimisticTxLogSize = in.readInt(); txMgrFactory = U.readString(in); }
/** {@inheritDoc} */ @Override public void writeExternal(ObjectOutput out) throws IOException { writeExternalMeta(out); out.writeObject(xidVer); out.writeBoolean(invalidate); out.writeLong(timeout); out.writeLong(threadId); out.writeLong(startTime); U.writeUuid(out, nodeId); out.write(isolation.ordinal()); out.write(concurrency.ordinal()); out.write(state().ordinal()); }
/** */ protected GridCacheAbstractLoadTest() { Properties props = new Properties(); try { props.load(new FileReader(GridTestUtils.resolveIgnitePath( "modules/tests/config/cache-load.properties"))); } catch (IOException e) { throw new RuntimeException(e); } tx = Boolean.valueOf(props.getProperty("transactions")); operationsPerTx = Integer.valueOf(props.getProperty("operations.per.tx")); isolation = TransactionIsolation.valueOf(props.getProperty("isolation")); concurrency = TransactionConcurrency.valueOf(props.getProperty("concurrency")); threads = Integer.valueOf(props.getProperty("threads")); writeRatio = Double.valueOf(props.getProperty("write.ratio")); testDuration = Long.valueOf(props.getProperty("duration")); valSize = Integer.valueOf(props.getProperty("value.size")); }
/** */ 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); } } } }
/** {@inheritDoc} */ @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { readExternalMeta(in); xidVer = (GridCacheVersion)in.readObject(); invalidate = in.readBoolean(); timeout = in.readLong(); threadId = in.readLong(); startTime = in.readLong(); nodeId = U.readUuid(in); isolation = TransactionIsolation.fromOrdinal(in.read()); concurrency = TransactionConcurrency.fromOrdinal(in.read()); state = TransactionState.fromOrdinal(in.read()); }
@Override public void write(BinaryRawWriterEx writer, Transaction tx) { writer.writeLong(registerTx(tx)); writer.writeInt(tx.concurrency().ordinal()); writer.writeInt(tx.isolation().ordinal()); writer.writeLong(tx.timeout()); } });
/** * 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); } }
/** {@inheritDoc} */ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException { xid = U.readGridUuid(in); duration = in.readLong(); isolation = TransactionIsolation.fromOrdinal(in.readByte()); concurrency = TransactionConcurrency.fromOrdinal(in.readByte()); timeout = in.readLong(); lb = U.readString(in); primaryNodes = U.readCollection(in); state = TransactionState.fromOrdinal(in.readByte()); size = in.readInt(); if (protoVer >= V2) { nearXid = U.readGridUuid(in); masterNodeIds = U.readCollection(in); startTime = in.readLong(); } if (protoVer >= V3) { long topVer = in.readLong(); int minorTopVer = in.readInt(); if (topVer != -1) this.topVer = new AffinityTopologyVersion(topVer, minorTopVer); } }
TransactionConfiguration txCfg = platformCtx.kernalContext().config().getTransactionConfiguration(); writer.writeInt(txCfg.getDefaultTxConcurrency().ordinal()); writer.writeInt(txCfg.getDefaultTxIsolation().ordinal()); writer.writeLong(txCfg.getDefaultTxTimeout());
/** * @throws Exception If failed. */ private void doTestIndexingSpiWithTx(IgniteEx ignite, int key) throws Exception { final IgniteCache<Integer, Integer> cache = ignite.cache(DEFAULT_CACHE_NAME); final IgniteTransactions txs = ignite.transactions(); for (final TransactionConcurrency concurrency : TransactionConcurrency.values()) { for (final TransactionIsolation isolation : TransactionIsolation.values()) { System.out.println("Run in transaction: " + concurrency + " " + isolation); GridTestUtils.assertThrowsWithCause(new Callable<Void>() { @Override public Void call() throws Exception { Transaction tx; try (Transaction tx0 = tx = txs.txStart(concurrency, isolation)) { cache.put(key, key); tx0.commit(); } assertEquals(TransactionState.ROLLED_BACK, tx.state()); return null; } }, IgniteTxHeuristicCheckedException.class); checkFutures(); } } }
/** {@inheritDoc} */ @Override public void processInStreamOutStream(int type, BinaryRawReaderEx reader, BinaryRawWriterEx writer) throws IgniteCheckedException { switch (type) { case OP_START: { TransactionConcurrency txConcurrency = TransactionConcurrency.fromOrdinal(reader.readInt()); assert txConcurrency != null; TransactionIsolation txIsolation = TransactionIsolation.fromOrdinal(reader.readInt()); assert txIsolation != null; Transaction tx = txs.txStart(txConcurrency, txIsolation, reader.readLong(), reader.readInt()); long id = registerTx(tx); writer.writeLong(id); return; } } super.processInStreamOutStream(type, reader, writer); }
if (!writer.writeByte("concurrency", concurrency != null ? (byte)concurrency.ordinal() : -1)) return false;
/** * @param ignite Node. * @param cache Cache. * @param async Use async API. * @param oldAsync Use old async API. * @throws Exception If failed. */ private void doTransformResourceInjectionInTx(Ignite ignite, IgniteCache<String, Integer> cache, boolean async, boolean oldAsync) throws Exception { for (TransactionConcurrency concurrency : TransactionConcurrency.values()) { for (TransactionIsolation isolation : TransactionIsolation.values()) { IgniteTransactions txs = ignite.transactions(); try (Transaction tx = txs.txStart(concurrency, isolation)) { doTransformResourceInjection(ignite, cache, async, oldAsync); tx.commit(); } } } }
return false; concurrency = TransactionConcurrency.fromOrdinal(concurrencyOrd);
/** {@inheritDoc} */ @Override public void writeExternal(ObjectOutput out) throws IOException { writeExternalMeta(out); out.writeObject(xidVer); out.writeBoolean(invalidate); out.writeLong(timeout); out.writeLong(threadId); out.writeLong(startTime); U.writeUuid(out, nodeId); out.write(isolation.ordinal()); out.write(concurrency.ordinal()); out.write(state().ordinal()); }
/** * @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(); } } }
tx.setDefaultTxConcurrency(TransactionConcurrency.fromOrdinal(in.readInt())); tx.setDefaultTxIsolation(TransactionIsolation.fromOrdinal(in.readInt())); tx.setDefaultTxTimeout(in.readLong());
@Override public void write(BinaryRawWriterEx writer, Transaction tx) { writer.writeLong(registerTx(tx)); writer.writeInt(tx.concurrency().ordinal()); writer.writeInt(tx.isolation().ordinal()); writer.writeLong(tx.timeout()); } });
/** * @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(); } } }