List of usage examples for javax.transaction.xa XAResource TMNOFLAGS
int TMNOFLAGS
To view the source code for javax.transaction.xa XAResource TMNOFLAGS.
Click Source Link
From source file:org.nuxeo.ecm.core.storage.sql.TestSQLBackend.java
@Test public void testSaveOnCommit() throws Exception { if (!DatabaseHelper.DATABASE.supportsXA()) { return;// w ww.ja v a 2s .c om } Session session = repository.getConnection(); // init session.save(); XAResource xaresource = ((SessionImpl) session).getXAResource(); // first transaction Xid xid = new XidImpl("11111111111111111111111111111111"); xaresource.start(xid, XAResource.TMNOFLAGS); Node root = session.getRootNode(); assertNotNull(root); session.addChildNode(root, "foo", null, "TestDoc", false); // let end do an implicit save xaresource.end(xid, XAResource.TMSUCCESS); xaresource.prepare(xid); xaresource.commit(xid, false); // should have saved, clearing caches should be harmless ((SessionImpl) session).clearCaches(); // second transaction xid = new XidImpl("22222222222222222222222222222222"); xaresource.start(xid, XAResource.TMNOFLAGS); Node foo = session.getNodeByPath("/foo", null); assertNotNull(foo); xaresource.end(xid, XAResource.TMSUCCESS); int outcome = xaresource.prepare(xid); if (outcome == XAResource.XA_OK) { // Derby doesn't allow rollback if prepare returned XA_RDONLY xaresource.rollback(xid); } }
From source file:org.seasar.karrta.jcr.intercepter.JcrTransactionInterceptor.java
public Object invoke(MethodInvocation invocation) throws Throwable { Thread currentThread = Thread.currentThread(); if (this.sessionManager_.isExist(currentThread)) { return invocation.proceed(); }/*from ww w . j a v a 2 s . c o m*/ logger_.debug("::: [Begin Transaction] ::: [" + currentThread + "] :::"); // check in jcr-session. XASession session = (XASession) sessionManager_.borrowObject(currentThread); Xid xid = new Xid() { public byte[] getBranchQualifier() { return new byte[0]; } public int getFormatId() { return 0; } public byte[] getGlobalTransactionId() { return new byte[0]; } }; XAResource xares = session.getXAResource(); xares.start(xid, XAResource.TMNOFLAGS); Object result = null; try { for (Method m : invocation.getThis().getClass().getMethods()) { if ("setOcmQueryManager".equals(m.getName())) { m.invoke(invocation.getThis(), this.ocmFactory.getQueryManager()); } if ("setQueryManager".equals(m.getName())) { m.invoke(invocation.getThis(), session.getWorkspace().getQueryManager()); } } result = invocation.proceed(); xares.end(xid, XAResource.TMSUCCESS); xares.prepare(xid); xares.commit(xid, false); } catch (Exception e) { e.printStackTrace(); xares.rollback(xid); } finally { // check out jcr-session. this.sessionManager_.returnSession(currentThread, session); logger_.debug("::: [End Transaction] ::: [" + currentThread + "] :::"); } return result; }