當前位置: 首頁>>代碼示例>>Java>>正文


Java UserTransaction.begin方法代碼示例

本文整理匯總了Java中javax.transaction.UserTransaction.begin方法的典型用法代碼示例。如果您正苦於以下問題:Java UserTransaction.begin方法的具體用法?Java UserTransaction.begin怎麽用?Java UserTransaction.begin使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javax.transaction.UserTransaction的用法示例。


在下文中一共展示了UserTransaction.begin方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: testRemoteXML

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
@Test
@RunAsClient
public void testRemoteXML() throws Exception {
	logger.info("starting remoting ejb client test");

	try {
		createInitialContext();
		String hostname = getLocalHost().getHostName().toLowerCase();
		final UserTransaction userTransaction = getUserTransaction(hostname);
		XMLRemote bean = lookup(XMLRemote.class, "bank");
		assertEquals(STATUS_NO_TRANSACTION, bean.transactionStatus());

		try {
			userTransaction.begin();
			bean.transactionStatus();
			fail("the transaction is not supported");
		} catch (EJBException | IllegalStateException e) {
			logger.info("the transaction is not supported");
		}
	} finally {
		closeContext();
	}
}
 
開發者ID:PacktPublishing,項目名稱:Mastering-Java-EE-Development-with-WildFly,代碼行數:24,代碼來源:XMLTestCase.java

示例2: test8CommitAfterTimeOut

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
@Test
public void test8CommitAfterTimeOut() throws Exception {
  Context ctx = cache.getJNDIContext();
  DataSource ds2 = (DataSource) ctx.lookup("java:/SimpleDataSource");
  ds2.getConnection();
  GemFireTransactionDataSource ds =
      (GemFireTransactionDataSource) ctx.lookup("java:/XAPooledDataSource");
  UserTransaction utx = (UserTransaction) ctx.lookup("java:/UserTransaction");
  utx.begin();
  Connection conn = ds.getConnection();
  String sql = "create table newTable2 (id integer)";
  Statement sm = conn.createStatement();
  sm.execute(sql);
  utx.setTransactionTimeout(30);
  sql = "insert into newTable2  values (1)";
  sm.execute(sql);
  sql = "select * from newTable2 where id = 1";
  ResultSet rs = sm.executeQuery(sql);
  if (!rs.next()) {
    fail("Transaction not committed");
  }
  sql = "drop table newTable2";
  sm.execute(sql);
  sm.close();
  conn.close();
  utx.setTransactionTimeout(1);
  Thread.sleep(3000);
  try {
    utx.commit();
    fail("exception did not occur on commit although transaction timed out");
  } catch (Exception expected) {
  }
}
 
開發者ID:ampool,項目名稱:monarch,代碼行數:34,代碼來源:TransactionTimeOutJUnitTest.java

示例3: testRollback

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
public void testRollback() throws Throwable
{
    UserTransaction txn = transactionService.getUserTransaction();
    try
    {
        txn.begin();
        
        singleton.put(INTEGER_TWO);
        check(INTEGER_TWO, true);
        check(null, false);
        
        // rollback
        txn.rollback();
    }
    catch (Throwable e)
    {
        try { txn.rollback(); } catch (Throwable ee) {}
        throw e;
    }
    check(null, true);
    check(null, false);
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:23,代碼來源:TransactionAwareSingletonTest.java

示例4: startUserTransaction

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
/**
 * If <em>wrapInUserTransaction</em> is true, starts a new UserTransaction 
 * and returns it. Otherwise, or if establishing the transaction fail, it 
 * will return null.
 */
private UserTransaction startUserTransaction() {
    if (wrapInUserTransaction == false) {
        return null;
    }
    
    UserTransaction userTransaction = null;
    try {
        userTransaction = UserTransactionHelper.lookupUserTransaction();
        userTransaction.begin();
    } catch (Throwable t) {
        UserTransactionHelper.returnUserTransaction(userTransaction);
        userTransaction = null;
        getLog().error("Failed to start UserTransaction for plugin: " + getName(), t);
    }
    
    return userTransaction;
}
 
開發者ID:AsuraTeam,項目名稱:asura,代碼行數:23,代碼來源:SchedulerPluginWithUserTransactionSupport.java

示例5: testLazyLoadIssue

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
/**
 * Deletes a child node and then iterates over the children of the parent node,
 * getting the QName.  This caused some issues after we did some optimization
 * using lazy loading of the associations.
 */
public void testLazyLoadIssue() throws Exception
{
    Map<QName, ChildAssociationRef> assocRefs = buildNodeGraph();
    // commit results
    setComplete();
    endTransaction();

    UserTransaction userTransaction = txnService.getUserTransaction();
    
    try
    {
        userTransaction.begin();
        
        ChildAssociationRef n6pn8Ref = assocRefs.get(QName.createQName(BaseNodeServiceTest.NAMESPACE, "n6_p_n8"));
        NodeRef n6Ref = n6pn8Ref.getParentRef();
        NodeRef n8Ref = n6pn8Ref.getChildRef();
        
        // delete n8
        nodeService.deleteNode(n8Ref);
        
        // get the parent children
        List<ChildAssociationRef> assocs = nodeService.getChildAssocs(n6Ref);
        for (ChildAssociationRef assoc : assocs)
        {
            // just checking
        }
        
        userTransaction.commit();
    }
    catch(Exception e)
    {
        try { userTransaction.rollback(); } catch (IllegalStateException ee) {}
        throw e;
    }
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:41,代碼來源:DbNodeServiceImplTest.java

示例6: testReplicationExecutionLocking

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
/**
 * Check that the locking works.
 * Take a 10 second lock on the job, then execute.
 * Ensure that we really wait a little over 10 seconds.
 */
public void testReplicationExecutionLocking() throws Exception
{
   // We need the test transfer target for this test
   makeTransferTarget();

   // Create a task
   ReplicationDefinition rd = replicationService.createReplicationDefinition(ACTION_NAME, "Test");
   rd.setTargetName(TRANSFER_TARGET);
   rd.getPayload().add(folder1);
   rd.getPayload().add(folder2);
   
   // Get the lock, and run
   long start = System.currentTimeMillis();
   String token = jobLockService.getLock(
         rd.getReplicationQName(),
         10 * 1000,
         1,
         1
   );
   
   UserTransaction txn = transactionService.getUserTransaction();
   txn.begin();
   try {
       actionService.executeAction(rd, replicationRoot);
   } catch(ReplicationServiceException e) {
       // This shouldn't happen normally! Something is wrong!
       // Tidy up before we throw the exception
       txn.rollback();
       throw e;
   }
   txn.commit();
   long end = System.currentTimeMillis();
   
   assertTrue(
        "Should wait for the lock, but didn't (waited " + 
           ((end-start)/1000.0) + " seconds, not 10)",
        end-start > 10000
   );
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:45,代碼來源:ReplicationServiceIntegrationTest.java

示例7: test6CommitBeforeTimeOut

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
@Test
public void test6CommitBeforeTimeOut() throws Exception {
  UserTransaction utx = new UserTransactionImpl();
  utx.begin();
  utx.setTransactionTimeout(6);
  Thread.sleep(2000);
  utx.commit();
}
 
開發者ID:ampool,項目名稱:monarch,代碼行數:9,代碼來源:TransactionTimeOutJUnitTest.java

示例8: tearDown

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
@Override
protected void tearDown() throws Exception
{
    super.tearDown();
    
    UserTransaction txn = transactionService.getUserTransaction();
    txn.begin();
    
    personManager.clearPeople();
    
    // Zap any replication definitions we created
    AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
    for(ReplicationDefinition rd : replicationService.loadReplicationDefinitions()) {
       replicationService.deleteReplicationDefinition(rd);
    }
    AuthenticationUtil.clearCurrentSecurityContext();
    
    // Clear out the running actions
    for(ExecutionSummary es : actionTrackingService.getAllExecutingActions())
    {
       executingActionsCache.remove(
             AbstractActionWebscript.getRunningId(es)
       );
    }
    
    txn.commit();
}
 
開發者ID:Alfresco,項目名稱:alfresco-remote-api,代碼行數:28,代碼來源:RunningActionRestApiTest.java

示例9: setup

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
@Before
public void setup() throws SystemException, NotSupportedException
{
   	transactionService = (TransactionService)ctx.getBean("transactionService");
   	keyStoreChecker = (KeyStoreChecker)ctx.getBean("keyStoreChecker");
   	encryptionKeysRegistry = (EncryptionKeysRegistry)ctx.getBean("encryptionKeysRegistry");
   	keyResourceLoader = (KeyResourceLoader)ctx.getBean("springKeyResourceLoader");
       backupEncryptor = (DefaultEncryptor)ctx.getBean("backupEncryptor");

   	toDelete = new ArrayList<String>(10);

       AuthenticationUtil.setRunAsUserSystem();
	UserTransaction txn = transactionService.getUserTransaction();
	txn.begin();
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:16,代碼來源:KeyStoreTests.java

示例10: testGetReaderWriter

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
public void testGetReaderWriter() throws Exception
{
    // testing a failure
    txn.commit();
    txn = transactionService.getUserTransaction();
    txn.begin();

    FileInfo dirInfo = getByName(NAME_L0_FOLDER_A, true);

    UserTransaction rollbackTxn = null;
    try
    {
        rollbackTxn = transactionService.getNonPropagatingUserTransaction();
        rollbackTxn.begin();
        fileFolderService.getWriter(dirInfo.getNodeRef());
        fail("Failed to detect content write to folder");
    }
    catch (RuntimeException e)
    {
        // expected
    }
    finally
    {
        rollbackTxn.rollback();
    }

    FileInfo fileInfo = getByName(NAME_L1_FILE_A, false);

    ContentWriter writer = fileFolderService.getWriter(fileInfo.getNodeRef());
    assertNotNull("Writer is null", writer);
    // write some content
    String content = "ABC";
    writer.putContent(content);
    // read the content
    ContentReader reader = fileFolderService.getReader(fileInfo.getNodeRef());
    assertNotNull("Reader is null", reader);
    String checkContent = reader.getContentString();
    assertEquals("Content mismatch", content, checkContent);
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:40,代碼來源:FileFolderServiceImplTest.java

示例11: getTrx

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
public void getTrx() throws Exception
{
    UserTransaction txn = getTxn();
    txn.begin();
    txn = null;
}
 
開發者ID:Alfresco,項目名稱:alfresco-core,代碼行數:7,代碼來源:SpringAwareUserTransactionTest.java

示例12: testJavascriptAPI

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
public void testJavascriptAPI() throws Exception
{
    // We need a background action to sleep for long enough for
    // it still to be running when the JS fires off
    final SleepActionExecuter sleepActionExec = (SleepActionExecuter) ctx.getBean(SleepActionExecuter.NAME);
    sleepActionExec.setSleepMs(2000);

    ActionImpl sleepAction;
    ActionImpl action;

    // Create three test actions:
    ((ActionTrackingServiceImpl) actionTrackingService).resetNextExecutionId();

    // Sleep one that will still be running
    UserTransaction txn = transactionService.getUserTransaction();
    txn.begin();
    sleepAction = (ActionImpl) createWorkingSleepAction(null);
    sleepAction.setNodeRef(nodeRef); // This isn't true!
    this.actionService.executeAction(sleepAction, null, false, true);
    txn.commit();

    // Move one that will appear to be "running"
    action = (ActionImpl) createFailingMoveAction();
    actionTrackingService.recordActionExecuting(action);

    // Finally one that has "failed"
    // (Shouldn't show up in any lists)
    txn = transactionService.getUserTransaction();
    txn.begin();
    action = (ActionImpl) createWorkingSleepAction(null);
    action.setExecutionStartDate(new Date(1234));
    action.setExecutionEndDate(new Date(54321));
    action.setExecutionStatus(ActionStatus.Failed);
    this.actionService.saveAction(this.nodeRef, action);
    txn.commit();

    // Call the test
    Map<String, Object> model = new HashMap<String, Object>();
    model.put("NodeRef", nodeRef.toString());
    model.put("SleepAction", sleepAction);

    ScriptLocation location = new ClasspathScriptLocation(
            "org/alfresco/repo/action/script/test_actionTrackingService.js");
    this.scriptService.executeScript(location, model);
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:46,代碼來源:ActionTrackingServiceImplTest.java

示例13: testWorkingActions

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
/** Working actions go into the cache, then out */
public void testWorkingActions() throws Exception 
{
   final SleepActionExecuter sleepActionExec = 
      (SleepActionExecuter)ctx.getBean(SleepActionExecuter.NAME);
   sleepActionExec.resetTimesExecuted();
   sleepActionExec.setSleepMs(10000);

   // Have it run asynchronously
   UserTransaction txn = transactionService.getUserTransaction();
   txn.begin();
   Action action = createWorkingSleepAction("54321");
   assertNull(action.getExecutionStartDate());
   assertNull(action.getExecutionEndDate());
   assertNull(action.getExecutionFailureMessage());
   assertEquals(ActionStatus.New, action.getExecutionStatus());
   
   String key = ActionTrackingServiceImpl.generateCacheKey(action);
   assertEquals(null, executingActionsCache.get(key));
   
   this.actionService.executeAction(action, this.nodeRef, false, true);
   
   
   // End the transaction. Should allow the async action
   //  to start up, and begin sleeping
   txn.commit();
   Thread.sleep(150);
   
   // The action should now be running 
   // It will have got an execution instance id, so a new key
   key = ActionTrackingServiceImpl.generateCacheKey(action);
   
   
   // Check it's in the cache
   System.out.println("Checking the cache for " + key);
   assertNotNull(executingActionsCache.get(key));
   
   ExecutionSummary s = ActionTrackingServiceImpl.buildExecutionSummary(action);
   ExecutionDetails d = actionTrackingService.getExecutionDetails(s);
   assertNotNull(d.getExecutionSummary());
   assertEquals("sleep-action", d.getActionType());
   assertEquals("54321", d.getActionId());
   assertEquals(1, d.getExecutionInstance());
   assertEquals(null, d.getPersistedActionRef());
   assertNotNull(null, d.getStartedAt());

   
   // Tell it to stop sleeping
   // Then wait for it to finish
   asyncOccurs.awaitExecution(null, sleepActionExec.getExecutingThread(), action.getActionDefinitionName()); 
   
   
   // Ensure it went away again
   assertEquals(ActionStatus.Completed, action.getExecutionStatus());
   assertEquals(null, executingActionsCache.get(key));
   
   d = actionTrackingService.getExecutionDetails(s);
   assertEquals(null, d);
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:60,代碼來源:ActionTrackingServiceImplTest.java

示例14: testTransactionId

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
public void testTransactionId() throws Exception
{
    // get a user transaction
    TransactionService transactionService = serviceRegistry.getTransactionService();
    UserTransaction txn = transactionService.getUserTransaction();
    assertNull("Thread shouldn't have a txn ID", AlfrescoTransactionSupport.getTransactionId());
    assertEquals("No transaction start time expected", -1, AlfrescoTransactionSupport.getTransactionStartTime());
    
    // begin the txn
    txn.begin();
    String txnId = AlfrescoTransactionSupport.getTransactionId();
    assertNotNull("Expected thread to have a txn id", txnId);
    long txnStartTime = AlfrescoTransactionSupport.getTransactionStartTime();
    assertTrue("Expected a transaction start time", txnStartTime > 0);
    
    // check that the txn id and time doesn't change
    String txnIdCheck = AlfrescoTransactionSupport.getTransactionId();
    assertEquals("Transaction ID changed on same thread", txnId, txnIdCheck);
    long txnStartTimeCheck = AlfrescoTransactionSupport.getTransactionStartTime();
    assertEquals("Transaction start time changed on same thread", txnStartTime, txnStartTimeCheck);
    
    // begin a new, inner transaction
    {
        UserTransaction txnInner = transactionService.getNonPropagatingUserTransaction();
        
        String txnIdInner = AlfrescoTransactionSupport.getTransactionId();
        assertEquals("Inner transaction not started, so txn ID should not change", txnId, txnIdInner);
        long txnStartTimeInner = AlfrescoTransactionSupport.getTransactionStartTime();
        assertEquals("Inner transaction not started, so txn start time should not change", txnStartTime, txnStartTimeInner);
        
        // begin the nested txn
        txnInner.begin();
        // check the ID for the outer transaction
        txnIdInner = AlfrescoTransactionSupport.getTransactionId();
        assertNotSame("Inner txn ID must be different from outer txn ID", txnIdInner, txnId);
        // Check the time against the outer transaction
        txnStartTimeInner = AlfrescoTransactionSupport.getTransactionStartTime();
        assertTrue(
                "Inner transaction start time should be greater or equal (accuracy) to the outer's",
                txnStartTime <= txnStartTimeInner);
        
        // rollback the nested txn
        txnInner.rollback();
        txnIdCheck = AlfrescoTransactionSupport.getTransactionId();
        assertEquals("Txn ID not popped inner txn completion", txnId, txnIdCheck);
    }
    
    // rollback
    txn.rollback();
    assertNull("Thread shouldn't have a txn ID after rollback", AlfrescoTransactionSupport.getTransactionId());
    
    // start a new transaction
    txn = transactionService.getUserTransaction();
    txn.begin();
    txnIdCheck = AlfrescoTransactionSupport.getTransactionId();
    assertNotSame("New transaction has same ID", txnId, txnIdCheck);
    
    // rollback
    txn.rollback();
    assertNull("Thread shouldn't have a txn ID after rollback", AlfrescoTransactionSupport.getTransactionId());
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:62,代碼來源:AlfrescoTransactionSupportTest.java

示例15: testListenerNew

import javax.transaction.UserTransaction; //導入方法依賴的package包/類
public void testListenerNew() throws Exception
{
    final List<String> strings = new ArrayList<String>(1);

    // anonymous inner class to test it
    org.alfresco.util.transaction.TransactionListener listener = new org.alfresco.util.transaction.TransactionListener()
    {
        @Override
        public void beforeCommit(boolean readOnly)
        {
            strings.add("beforeCommit");
        }
        @Override
        public void beforeCompletion()
        {
            strings.add("beforeCompletion");
        }
        @Override
        public void afterCommit()
        {
            strings.add("afterCommit");
        }
        @Override
        public void afterRollback()
        {
            strings.add("afterRollback");
        }
    };
    
    // begin a transaction
    UserTransaction txn = transactionService.getUserTransaction();
    txn.begin();
    
    // register it
    AlfrescoTransactionSupport.bindListener(listener);

    // test commit
    txn.commit();
    assertTrue("beforeCommit not called on listener", strings.contains("beforeCommit"));
    assertTrue("beforeCompletion not called on listener", strings.contains("beforeCompletion"));
    assertTrue("afterCommit not called on listener", strings.contains("afterCommit"));
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:43,代碼來源:AlfrescoTransactionSupportTest.java


注:本文中的javax.transaction.UserTransaction.begin方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。