/** * Specify the transaction name to use for transactional wrapping. * Default is the bean name of this listener container, if any. * @see org.springframework.transaction.TransactionDefinition#getName() */ public void setTransactionName(String transactionName) { this.transactionDefinition.setName(transactionName); }
@Override public void initialize() { // Set sessionTransacted=true in case of a non-JTA transaction manager. if (!this.sessionTransactedCalled && this.transactionManager instanceof ResourceTransactionManager && !TransactionSynchronizationUtils.sameResourceFactory( (ResourceTransactionManager) this.transactionManager, obtainConnectionFactory())) { super.setSessionTransacted(true); } // Use bean name as default transaction name. if (this.transactionDefinition.getName() == null) { String beanName = getBeanName(); if (beanName != null) { this.transactionDefinition.setName(beanName); } } // Proceed with superclass initialization. super.initialize(); }
public static TransactionStatus createTransaction(String name, int propagationBehavior, int isolationLevel, PlatformTransactionManager transactionManager, boolean isReadOnly) { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName(name); def.setReadOnly(isReadOnly); def.setPropagationBehavior(propagationBehavior); def.setIsolationLevel(isolationLevel); return transactionManager.getTransaction(def); }
/** * Gets DB transaction isolation level based on ongoing cache transaction isolation. * * @return DB transaction isolation. */ private TransactionDefinition definition(Transaction tx, String cacheName) { assert tx != null; DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("Ignite Tx [cache=" + (cacheName != null ? cacheName : "<default>") + ", id=" + tx.xid() + ']'); def.setIsolationLevel(isolationLevel(tx.isolation())); long timeoutSec = (tx.timeout() + 500) / 1000; if (timeoutSec > 0 && timeoutSec < Integer.MAX_VALUE) def.setTimeout((int)timeoutSec); return def; }
/** * Specify the transaction name to use for transactional wrapping. * Default is the bean name of this listener container, if any. * @see org.springframework.transaction.TransactionDefinition#getName() */ public void setTransactionName(String transactionName) { this.transactionDefinition.setName(transactionName); }
/** * Specify the transaction name to use for transactional wrapping. * Default is the bean name of this listener container, if any. * @see org.springframework.transaction.TransactionDefinition#getName() */ public void setTransactionName(String transactionName) { this.transactionDefinition.setName(transactionName); }
/** * Specify the transaction name to use for transactional wrapping. * Default is the bean name of this listener container, if any. * @see org.springframework.transaction.TransactionDefinition#getName() */ public void setTransactionName(String transactionName) { this.transactionDefinition.setName(transactionName); }
public void testDeleteInBatchWithEmptyCollection() { final JpaOperations jpaOperations = getJpaOperations(entityManager); final List<?> students = jpaOperations.getResultListForClass(StudentDomain.class, 0, 0); Assert.assertNotNull(students); Assert.assertTrue(students.size() == 3); DefaultTransactionDefinition def = new DefaultTransactionDefinition(); // explicitly setting the transaction name is something that can only be done programmatically def.setName("SomeOtherTxName"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus status = transactionManager.getTransaction(def); jpaOperations.deleteInBatch(new ArrayList<StudentDomain>(0)); entityManager.flush(); transactionManager.commit(status); final List<?> studentsFromDb = jpaOperations.getResultListForClass(StudentDomain.class, 0, 0); Assert.assertNotNull(studentsFromDb); Assert.assertTrue(studentsFromDb.size() == 3); //Nothing should have happened }
public void testDeleteInBatch() { final JpaOperations jpaOperations = getJpaOperations(entityManager); final List<?> students = jpaOperations.getResultListForClass(StudentDomain.class, 0, 0); Assert.assertNotNull(students); DefaultTransactionDefinition def = new DefaultTransactionDefinition(); // explicitly setting the transaction name is something that can only be done programmatically def.setName("SomeOtherTxName"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus status = transactionManager.getTransaction(def); jpaOperations.deleteInBatch(students); entityManager.flush(); transactionManager.commit(status); final List<?> studentsFromDb = jpaOperations.getResultListForClass(StudentDomain.class, 0, 0); Assert.assertNotNull(studentsFromDb); Assert.assertTrue(studentsFromDb.size() == 0); }
public void testDelete() { final JpaOperations jpaOperations = getJpaOperations(entityManager); final List<?> studentsFromDb = jpaOperations.getResultListForClass(StudentDomain.class, 0, 0); Assert.assertNotNull(studentsFromDb); Assert.assertTrue(studentsFromDb.size() == 3); final StudentDomain student = jpaOperations.find(StudentDomain.class, 1001L); Assert.assertNotNull(student); DefaultTransactionDefinition def = new DefaultTransactionDefinition(); // explicitly setting the transaction name is something that can only be done programmatically def.setName("SomeOtherTxName"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus status = transactionManager.getTransaction(def); jpaOperations.delete(student); entityManager.flush(); transactionManager.commit(status); final List<?> studentsFromDbAfterDelete = jpaOperations.getResultListForClass(StudentDomain.class, 0, 0); Assert.assertNotNull(studentsFromDbAfterDelete); Assert.assertTrue(studentsFromDbAfterDelete.size() == 2); }
private <T> T runInNewTransaction(final String transactionName, final TransactionCallback<T> action) { final DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName(transactionName); def.setReadOnly(false); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); return new TransactionTemplate(txManager, def).execute(action); }
DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("transactionName"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); TransactionStatus ts = txManager.getTransaction(def); //Body Code txManager.commit(ts);
DefaultTransactionDefinition def = new DefaultTransactionDefinition(); // explicitly setting the transaction name is something that can only be done programmatically def.setName("SomeTxName"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus status = txManager.getTransaction(def); try { // execute your business logic here } catch (MyException ex) { txManager.rollback(status); throw ex; } txManager.commit(status);
DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("TxName"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus ts = jtm.getTransaction(def);
public TransactionStatus beginTransaction( int propagation, String transactionName ) { PlatformTransactionManager transactionManager = getTransactionManager(); DefaultTransactionDefinition transactionDefinition = new DefaultTransactionDefinition(propagation); transactionDefinition.setName(transactionName); if (log.isDebugEnabled()) log.debug("Beginning transaction: "+transactionDefinition.getName()+" Propagation="+propagation); return transactionManager.getTransaction(transactionDefinition); }
public TransactionStatus beginTransaction( int propagation, String transactionName ) { PlatformTransactionManager transactionManager = getTransactionManager(); DefaultTransactionDefinition transactionDefinition = new DefaultTransactionDefinition(propagation); transactionDefinition.setName(transactionName); if (log.isDebugEnabled()) log.debug("Beginning transaction: "+transactionDefinition.getName()+" Propagation="+propagation); return transactionManager.getTransaction(transactionDefinition); }
public TransactionStatus beginTransaction( int propagation, String transactionName ) { PlatformTransactionManager transactionManager = getTransactionManager(); DefaultTransactionDefinition transactionDefinition = new DefaultTransactionDefinition(propagation); transactionDefinition.setName(transactionName); if (log.isDebugEnabled()) log.debug("Beginning transaction: "+transactionDefinition.getName()+" Propagation="+propagation); return transactionManager.getTransaction(transactionDefinition); }
IPaymentSessionBean psb = Context.getBean(Context.Name.PAYMENT_SESSION); //transaction manager is available in jBilling like that: PlatformTransactionManager txManager = Context.getBean(Context.Name.TRANSACTION_MANAGER); DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("CreatePaymentTransaction"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); //not sure which strategy is best in this case TransactionStatus status = txManager.getTransaction(def); String ret; try { ret =Integer.toString(psb.applyPayment(new PaymentDTOEx(paymentWS), null, userID)); } catch (Exception ex) { txManager.rollback(status); throw ex; } txManager.commit(status);
@Override public TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException { MultiDataSourcesTransactionStatus transactionStatus = new MultiDataSourcesTransactionStatus(); log.debug("Operation '" + definition.getName() + "' starting transaction."); for (DataSource dataSource : dataSources) { DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition(definition); defaultTransactionDefinition.setName(definition.getName()); PlatformTransactionManager txManager = this.transactionManagers.get(dataSource); TransactionStatus status = txManager.getTransaction(defaultTransactionDefinition); TransactionSynchronizationManager.setCurrentTransactionName(defaultTransactionDefinition.getName()); transactionStatus.put(dataSource, status); } return transactionStatus; }
/** * Gets DB transaction isolation level based on ongoing cache transaction isolation. * * @return DB transaction isolation. */ private TransactionDefinition definition(Transaction tx, String cacheName) { assert tx != null; DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("Ignite Tx [cache=" + (cacheName != null ? cacheName : "<default>") + ", id=" + tx.xid() + ']'); def.setIsolationLevel(isolationLevel(tx.isolation())); long timeoutSec = (tx.timeout() + 500) / 1000; if (timeoutSec > 0 && timeoutSec < Integer.MAX_VALUE) def.setTimeout((int)timeoutSec); return def; }