/** {@inheritDoc} */ @Override public Transaction txStart(TransactionConcurrency concurrency, TransactionIsolation isolation) { A.notNull(concurrency, "concurrency"); A.notNull(isolation, "isolation"); TransactionConfiguration cfg = CU.transactionConfiguration(ctx, ctx.kernalContext().config()); return txStart( concurrency, isolation, cfg.getDefaultTxTimeout(), 0 ); }
/** {@inheritDoc} */ @Override public Transaction txStart() throws IllegalStateException { TransactionConfiguration cfg = CU.transactionConfiguration(null, cctx.kernalContext().config()); return txStart0( cfg.getDefaultTxConcurrency(), cfg.getDefaultTxIsolation(), cfg.getDefaultTxTimeout(), 0, null ).proxy(); }
/** {@inheritDoc} */ @Override public Transaction txStart(TransactionConcurrency concurrency, TransactionIsolation isolation) { A.notNull(concurrency, "concurrency"); A.notNull(isolation, "isolation"); TransactionConfiguration cfg = CU.transactionConfiguration(null, cctx.kernalContext().config()); return txStart0( concurrency, isolation, cfg.getDefaultTxTimeout(), 0, null ).proxy(); }
/** * Create data transfer object for transaction configuration. * * @param cfg Transaction configuration. */ public VisorTransactionConfiguration(TransactionConfiguration cfg) { dfltConcurrency = cfg.getDefaultTxConcurrency(); dfltIsolation = cfg.getDefaultTxIsolation(); dfltTimeout = cfg.getDefaultTxTimeout(); pessimisticTxLogLinger = cfg.getPessimisticTxLogLinger(); pessimisticTxLogSize = cfg.getPessimisticTxLogSize(); txMgrFactory = compactClass(cfg.getTxManagerFactory()); useJtaSync = cfg.isUseJtaSynchronization(); }
/** * @param ctx Grid kernal context. * @param cctx Cache context. * @param timeout Transaction timeout. * @return Newly started SQL transaction. */ private static GridNearTxLocal txStart(GridKernalContext ctx, @Nullable GridCacheContext cctx, long timeout) { if (timeout == 0) { TransactionConfiguration tcfg = CU.transactionConfiguration(cctx, ctx.config()); if (tcfg != null) timeout = tcfg.getDefaultTxTimeout(); } GridNearTxLocal tx = ctx.cache().context().tm().newTx( false, false, cctx != null && cctx.systemTx() ? cctx : null, PESSIMISTIC, REPEATABLE_READ, timeout, cctx == null || !cctx.skipStore(), true, 0, null ); tx.syncMode(FULL_SYNC); return tx; }
/** {@inheritDoc} */ @Override public GridNearTxLocal txStartEx( GridCacheContext ctx, TransactionConcurrency concurrency, TransactionIsolation isolation) { A.notNull(concurrency, "concurrency"); A.notNull(isolation, "isolation"); checkTransactional(ctx); TransactionConfiguration cfg = CU.transactionConfiguration(ctx, cctx.kernalContext().config()); return txStart0(concurrency, isolation, cfg.getDefaultTxTimeout(), 0, ctx.systemTx() ? ctx : null); }
/** * @param cfg Configuration to copy. */ public TransactionConfiguration(TransactionConfiguration cfg) { dfltConcurrency = cfg.getDefaultTxConcurrency(); dfltIsolation = cfg.getDefaultTxIsolation(); dfltTxTimeout = cfg.getDefaultTxTimeout(); txTimeoutOnPartitionMapExchange = cfg.getTxTimeoutOnPartitionMapExchange(); pessimisticTxLogLinger = cfg.getPessimisticTxLogLinger(); pessimisticTxLogSize = cfg.getPessimisticTxLogSize(); txSerEnabled = cfg.isTxSerializableEnabled(); tmLookupClsName = cfg.getTxManagerLookupClassName(); txManagerFactory = cfg.getTxManagerFactory(); useJtaSync = cfg.isUseJtaSynchronization(); }
tCfg.getDefaultTxConcurrency(), tCfg.getDefaultTxIsolation(), tCfg.getDefaultTxTimeout(), /*store enabled*/true, /*sql*/false,
writer.writeLong(txCfg.getDefaultTxTimeout()); writer.writeLong(txCfg.getTxTimeoutOnPartitionMapExchange());
/** {@inheritDoc} */ @Override protected void doBegin(Object transaction, TransactionDefinition definition) throws TransactionException { if (definition.getIsolationLevel() == TransactionDefinition.ISOLATION_READ_UNCOMMITTED) throw new InvalidIsolationLevelException("Ignite does not support READ_UNCOMMITTED isolation level."); IgniteTransactionObject txObj = (IgniteTransactionObject)transaction; Transaction tx = null; try { if (txObj.getTransactionHolder() == null || txObj.getTransactionHolder().isSynchronizedWithTransaction()) { long timeout = ignite.configuration().getTransactionConfiguration().getDefaultTxTimeout(); if (definition.getTimeout() > 0) timeout = TimeUnit.SECONDS.toMillis(definition.getTimeout()); Transaction newTx = ignite.transactions().txStart(transactionConcurrency, convertToIgniteIsolationLevel(definition.getIsolationLevel()), timeout, 0); if (log.isDebugEnabled()) log.debug("Started Ignite transaction: " + newTx); txObj.setTransactionHolder(new IgniteTransactionHolder(newTx), true); } txObj.getTransactionHolder().setSynchronizedWithTransaction(true); txObj.getTransactionHolder().setTransactionActive(true); tx = txObj.getTransactionHolder().getTransaction(); // Bind the session holder to the thread. if (txObj.isNewTransactionHolder()) TransactionSynchronizationManager.bindResource(this.ignite, txObj.getTransactionHolder()); } catch (Exception ex) { if (tx != null) tx.close(); throw new CannotCreateTransactionException("Could not create Ignite transaction", ex); } }
ctx.mvccEnabled() ? PESSIMISTIC : OPTIMISTIC, ctx.mvccEnabled() ? REPEATABLE_READ : READ_COMMITTED, txCfg.getDefaultTxTimeout(), !skipStore, ctx.mvccEnabled(),
ctx.mvccEnabled() ? PESSIMISTIC : OPTIMISTIC, ctx.mvccEnabled() ? REPEATABLE_READ : READ_COMMITTED, tCfg.getDefaultTxTimeout(), !ctx.skipStore(), ctx.mvccEnabled(),
writeEnumInt(w, tx.getDefaultTxConcurrency(), TransactionConfiguration.DFLT_TX_CONCURRENCY); writeEnumInt(w, tx.getDefaultTxIsolation(), TransactionConfiguration.DFLT_TX_ISOLATION); w.writeLong(tx.getDefaultTxTimeout()); w.writeInt(tx.getPessimisticTxLogLinger()); w.writeLong(tx.getTxTimeoutOnPartitionMapExchange());
/** {@inheritDoc} */ @Override public Transaction txStart(TransactionConcurrency concurrency, TransactionIsolation isolation) { A.notNull(concurrency, "concurrency"); A.notNull(isolation, "isolation"); TransactionConfiguration cfg = CU.transactionConfiguration(ctx, ctx.kernalContext().config()); return txStart( concurrency, isolation, cfg.getDefaultTxTimeout(), 0 ); }
/** {@inheritDoc} */ @Override public Transaction txStart() throws IllegalStateException { TransactionConfiguration cfg = CU.transactionConfiguration(null, cctx.kernalContext().config()); return txStart0( cfg.getDefaultTxConcurrency(), cfg.getDefaultTxIsolation(), cfg.getDefaultTxTimeout(), 0, null ).proxy(); }
/** {@inheritDoc} */ @Override public Transaction txStart(TransactionConcurrency concurrency, TransactionIsolation isolation) { A.notNull(concurrency, "concurrency"); A.notNull(isolation, "isolation"); TransactionConfiguration cfg = CU.transactionConfiguration(null, cctx.kernalContext().config()); return txStart0( concurrency, isolation, cfg.getDefaultTxTimeout(), 0, null ).proxy(); }
/** * Create data transfer object for transaction configuration. * * @param cfg Transaction configuration. */ public VisorTransactionConfiguration(TransactionConfiguration cfg) { dfltConcurrency = cfg.getDefaultTxConcurrency(); dfltIsolation = cfg.getDefaultTxIsolation(); dfltTimeout = cfg.getDefaultTxTimeout(); pessimisticTxLogLinger = cfg.getPessimisticTxLogLinger(); pessimisticTxLogSize = cfg.getPessimisticTxLogSize(); txMgrFactory = compactClass(cfg.getTxManagerFactory()); useJtaSync = cfg.isUseJtaSynchronization(); }
/** * @param ctx Grid kernal context. * @param cctx Cache context. * @param timeout Transaction timeout. * @return Newly started SQL transaction. */ private static GridNearTxLocal txStart(GridKernalContext ctx, @Nullable GridCacheContext cctx, long timeout) { if (timeout == 0) { TransactionConfiguration tcfg = CU.transactionConfiguration(cctx, ctx.config()); if (tcfg != null) timeout = tcfg.getDefaultTxTimeout(); } GridNearTxLocal tx = ctx.cache().context().tm().newTx( false, false, cctx != null && cctx.systemTx() ? cctx : null, PESSIMISTIC, REPEATABLE_READ, timeout, cctx == null || !cctx.skipStore(), true, 0, null ); tx.syncMode(FULL_SYNC); return tx; }
/** {@inheritDoc} */ @Override public GridNearTxLocal txStartEx( GridCacheContext ctx, TransactionConcurrency concurrency, TransactionIsolation isolation) { A.notNull(concurrency, "concurrency"); A.notNull(isolation, "isolation"); checkTransactional(ctx); TransactionConfiguration cfg = CU.transactionConfiguration(ctx, cctx.kernalContext().config()); return txStart0(concurrency, isolation, cfg.getDefaultTxTimeout(), 0, ctx.systemTx() ? ctx : null); }
/** * @param cfg Configuration to copy. */ public TransactionConfiguration(TransactionConfiguration cfg) { dfltConcurrency = cfg.getDefaultTxConcurrency(); dfltIsolation = cfg.getDefaultTxIsolation(); dfltTxTimeout = cfg.getDefaultTxTimeout(); txTimeoutOnPartitionMapExchange = cfg.getTxTimeoutOnPartitionMapExchange(); pessimisticTxLogLinger = cfg.getPessimisticTxLogLinger(); pessimisticTxLogSize = cfg.getPessimisticTxLogSize(); txSerEnabled = cfg.isTxSerializableEnabled(); tmLookupClsName = cfg.getTxManagerLookupClassName(); txManagerFactory = cfg.getTxManagerFactory(); useJtaSync = cfg.isUseJtaSynchronization(); }