javax.transaction.TransactionManager类的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(8.8k)|赞(0)|评价(0)|浏览(402)

本文整理了Java中javax.transaction.TransactionManager类的一些代码示例,展示了TransactionManager类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。TransactionManager类的具体详情如下:
包路径:javax.transaction.TransactionManager
类名称:TransactionManager

TransactionManager介绍

[英]The TransactionManager interface defines the methods that allow an application server to manage transactions on behalf of the applications.

User applications should not use this interface directly, but use UserTransaction insted if they need to do their own transaction management.

Internally, the transaction manager associates transactions with threads, and the methods here operate on the transaction associated with the calling thread.
[中]TransactionManager接口定义了允许应用程序服务器代表应用程序管理事务的方法。
用户应用程序不应直接使用此界面,但如果需要自己进行事务管理,则应使用UserTransaction insted。
在内部,事务管理器将事务与线程关联,这里的方法对与调用线程关联的事务进行操作。

代码示例

代码示例来源:origin: spring-projects/spring-framework

  1. @Override
  2. public void registerSynchronization(Synchronization sync) throws RollbackException, SystemException {
  3. this.transactionManager.getTransaction().registerSynchronization(sync);
  4. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Override
  2. public Transaction createTransaction(@Nullable String name, int timeout) throws NotSupportedException, SystemException {
  3. if (timeout >= 0) {
  4. this.transactionManager.setTransactionTimeout(timeout);
  5. }
  6. this.transactionManager.begin();
  7. return new ManagedTransactionAdapter(this.transactionManager);
  8. }

代码示例来源:origin: hibernate/hibernate-orm

  1. public static void tryCommit(TransactionManager tm) throws Exception {
  2. if ( tm.getStatus() == Status.STATUS_MARKED_ROLLBACK ) {
  3. tm.rollback();
  4. }
  5. else {
  6. tm.commit();
  7. }
  8. }
  9. }

代码示例来源:origin: stackoverflow.com

  1. @RunWith(SpringJUnit4ClassRunner.class)
  2. @ContextConfiguration(locations="classpath:/fooService.xml")
  3. public class FooServiceTests {
  4. private @Autowired TransactionManager transactionManager;
  5. private @Autowired FooService fooService;
  6. @Test
  7. public void testProvideService() {
  8. TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());
  9. fooService.provideService();
  10. transactionManager.rollback(status);
  11. // assert repository values are unchanged ...
  12. }

代码示例来源:origin: Activiti/Activiti

  1. private void doRollback(boolean isNew, Throwable originalException) {
  2. Throwable rollbackEx = null;
  3. try {
  4. if (isNew) {
  5. transactionManager.rollback();
  6. } else {
  7. transactionManager.setRollbackOnly();
  8. }
  9. } catch (SystemException e) {
  10. LOGGER.debug("Error when rolling back transaction", e);
  11. } catch (RuntimeException e) {
  12. rollbackEx = e;
  13. throw e;
  14. } catch (Error e) {
  15. rollbackEx = e;
  16. throw e;
  17. } finally {
  18. if (rollbackEx != null && originalException != null) {
  19. LOGGER.error("Error when rolling back transaction, original exception was:", originalException);
  20. }
  21. }
  22. }

代码示例来源:origin: org.infinispan/infinispan-core

  1. public void testInvalidation() throws Exception {
  2. assertEquals(Collections.singletonList(address(0)), advancedCache(0).getDistributionManager().locate(k0));
  3. assertEquals(Collections.singletonList(address(0)), advancedCache(1).getDistributionManager().locate(k0));
  4. advancedCache(1).put(k0, "k1");
  5. assertTrue(advancedCache(1).getDataContainer().containsKey(k0));
  6. assertTrue(advancedCache(0).getDataContainer().containsKey(k0));
  7. tm(0).begin();
  8. cache(0).put(k0, "v2");
  9. tm(0).commit();
  10. assertFalse(advancedCache(1).getDataContainer().containsKey(k0));
  11. }

代码示例来源:origin: org.infinispan/infinispan-core

  1. public void testPutIfAbsent() throws Throwable {
  2. Object k1 = getKeyForCache(0);
  3. tm(0).begin();
  4. assertNull(cache(0).putIfAbsent(k1, "v1"));
  5. Transaction suspendedTx = tm(0).suspend();
  6. cache(0).put(k1, "v2");
  7. assertEquals(cache(0).get(k1), "v2");
  8. assertEquals(cache(1).get(k1), "v2");
  9. suspendedTx.commit();
  10. assertEquals("v1", cache(0).get(k1));
  11. assertEquals("v1", cache(1).get(k1));
  12. }

代码示例来源:origin: org.infinispan/infinispan-core

  1. public void testFailure() throws Exception {
  2. TransactionManager transactionManager = cache.getAdvancedCache().getTransactionManager();
  3. transactionManager.begin();
  4. try {
  5. cache.put("k", "v");
  6. assert false;
  7. } catch (Exception e) {
  8. log.debug("Ignoring expected exception during put", e);
  9. assertEquals(transactionManager.getTransaction().getStatus(), Status.STATUS_MARKED_ROLLBACK);
  10. }
  11. }
  12. }

代码示例来源:origin: org.infinispan/infinispan-core

  1. public void testLockWithTmCommit() throws Throwable {
  2. tm().begin();
  3. cache.getAdvancedCache().lock("k");
  4. assertTrue(lockManager().isLocked("k"));
  5. tm().commit();
  6. assertFalse(lockManager().isLocked("k"));
  7. }
  8. }

代码示例来源:origin: org.infinispan/infinispan-core

  1. public void testLockWithTmRollback() throws Throwable {
  2. tm().begin();
  3. cache.getAdvancedCache().lock("k");
  4. assertTrue(lockManager().isLocked("k"));
  5. tm().rollback();
  6. assertFalse(lockManager().isLocked("k"));
  7. }

代码示例来源:origin: org.infinispan/infinispan-query

  1. @Override
  2. public void call() throws Exception {
  3. Cache<Object, Object> c = cm.getCache();
  4. if (inTran) c.getAdvancedCache().getTransactionManager().begin();
  5. c.put("key1", new SEntity(1, "name1", "surname1"));
  6. if (inTran) c.getAdvancedCache().getTransactionManager().commit();
  7. assertEquals(searchByName("name1", c).size(), 1, "should be 1, even repeating this");
  8. }
  9. });

代码示例来源:origin: org.infinispan/infinispan-core

  1. public void testKeySetIsEmptyAfterLocalClear() throws Exception {
  2. cache.put(1, "v1");
  3. tm().begin();
  4. try {
  5. cache.getAdvancedCache().withFlags(Flag.CACHE_MODE_LOCAL).clear();
  6. assertTrue(cache.keySet().isEmpty());
  7. } finally {
  8. tm().commit();
  9. }
  10. }

代码示例来源:origin: org.infinispan/infinispan-core

  1. public void testEntrySetIsEmptyAfterLocalClear() throws Exception {
  2. cache.put(1, "v1");
  3. tm().begin();
  4. try {
  5. cache.getAdvancedCache().withFlags(Flag.CACHE_MODE_LOCAL).clear();
  6. assertTrue(cache.entrySet().isEmpty());
  7. } finally {
  8. tm().commit();
  9. }
  10. }

代码示例来源:origin: org.infinispan/infinispan-core

  1. public void testValuesIsEmptyAfterLocalClear() throws Exception {
  2. cache.put(1, "v1");
  3. tm().begin();
  4. try {
  5. cache.getAdvancedCache().withFlags(Flag.CACHE_MODE_LOCAL).clear();
  6. assertTrue(cache.values().isEmpty());
  7. } finally {
  8. tm().commit();
  9. }
  10. }

代码示例来源:origin: org.infinispan/infinispan-core

  1. private void testLocalOperation(CheckRemoteLockAcquiredOnlyOnceTest.CacheOperation o) throws Exception {
  2. assert !advancedCache(1).getRpcManager().getTransport().isCoordinator();
  3. assert advancedCache(0).getRpcManager().getTransport().isCoordinator();
  4. tm(0).begin();
  5. o.execute();
  6. assert lockManager(0).isLocked(key);
  7. assert !lockManager(1).isLocked(key);
  8. assertEquals(controlInterceptor.remoteInvocations, 0);
  9. tm(0).rollback();
  10. }
  11. }

代码示例来源:origin: org.infinispan/infinispan-core

  1. public void testTxCommit1() throws Exception {
  2. TransactionManager tm = TestingUtil.getTransactionManager(cache);
  3. tm.begin();
  4. cache.put("key", "value");
  5. Transaction t = tm.suspend();
  6. assertTrue(cache.isEmpty());
  7. tm.resume(t);
  8. tm.commit();
  9. assertFalse(cache.isEmpty());
  10. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void jtaTransactionManagerWithPropagationRequiresNewAndAdapter() throws Exception {
  3. TransactionManager tm = mock(TransactionManager.class);
  4. Transaction tx = mock(Transaction.class);
  5. given(tm.getStatus()).willReturn(Status.STATUS_ACTIVE);
  6. given(tm.suspend()).willReturn(tx);
  7. JtaTransactionManager ptm = newJtaTransactionManager(tm);
  8. TransactionTemplate tt = new TransactionTemplate(ptm);
  9. tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
  10. assertFalse(TransactionSynchronizationManager.isSynchronizationActive());
  11. tt.execute(new TransactionCallbackWithoutResult() {
  12. @Override
  13. protected void doInTransactionWithoutResult(TransactionStatus status) {
  14. assertTrue(TransactionSynchronizationManager.isSynchronizationActive());
  15. }
  16. });
  17. assertFalse(TransactionSynchronizationManager.isSynchronizationActive());
  18. verify(tm).begin();
  19. verify(tm).commit();
  20. verify(tm).resume(tx);
  21. }

代码示例来源:origin: org.infinispan/infinispan-core

  1. public void testPreviousValueIgnored() throws Exception {
  2. cache.put("k", "init");
  3. tm.begin();
  4. cache.getAdvancedCache().withFlags(Flag.IGNORE_RETURN_VALUES).put("k", "v1");
  5. assertEquals("v1", cache.put("k", "v2"));
  6. Transaction tx = tm.suspend();
  7. assertEquals("init", cache.put("k", "other"));
  8. tm.resume(tx);
  9. commit();
  10. }

代码示例来源:origin: jbosstm/narayana

  1. @Test
  2. public void test() throws Exception
  3. {
  4. javax.transaction.TransactionManager transactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager();
  5. transactionManager.begin();
  6. Transaction currentTrans = transactionManager.getTransaction();
  7. TestResource res1, res2;
  8. currentTrans.enlistResource( res1 = new TestResource() );
  9. currentTrans.enlistResource( res2 = new TestResource() );
  10. currentTrans.delistResource( res2, XAResource.TMSUCCESS );
  11. currentTrans.delistResource( res1, XAResource.TMSUCCESS );
  12. transactionManager.commit();
  13. }
  14. }

代码示例来源:origin: jbosstm/narayana

  1. @Test
  2. public void test() throws Exception
  3. {
  4. javax.transaction.TransactionManager tm = com.arjuna.ats.jta.TransactionManager.transactionManager();
  5. tm.begin();
  6. javax.transaction.Transaction theTransaction = tm.getTransaction();
  7. tm.commit();
  8. tm.resume(theTransaction);
  9. }
  10. }

相关文章