Package javax.transaction.xa

Examples of javax.transaction.xa.XAResource


    * @return the delegate
    * @throws XAException for any problem
    */
   public XAResource getDelegate() throws XAException
   {
      XAResource result = null;
      Exception error = null;
      try
      {
         result = connect();
      }
View Full Code Here


      // Retrieve the delegate XAResource
      try
      {
         XASession session = connection.createXASession();
         XAResource result = session.getXAResource();
         synchronized (lock)
         {
            delegate = result;
         }
         return delegate;
View Full Code Here

        MockControl xaSessionControl = MockControl.createControl(XASession.class);
        XASession xaSession = (XASession)xaSessionControl.getMock();

        MockControl xaResCtrl = MockControl.createControl(XAResource.class);
        XAResource xaRes = (XAResource)xaResCtrl.getMock();
       
        xaSessionControl.expectAndReturn(xaSession.getXAResource(), xaRes);
        xaSessionControl.replay();
       
       
View Full Code Here

    final SessionFactory sf = (SessionFactory) sfControl.getMock();
    MockControl sessionControl = MockControl.createControl(XASession.class);
    final XASession session = (XASession) sessionControl.getMock();
    // create nice mock
    MockControl xaResControl = MockControl.createControl(XAResource.class);
    XAResource xaRes = (XAResource) xaResControl.getMock();

    sfControl.expectAndReturn(sf.getSession(), session);
    sessionControl.expectAndReturn(session.getXAResource(), xaRes);

    session.save();
    session.logout();

    /*
     * MockControl repositoryControl =
     * MockControl.createNiceControl(Repository.class); Repository
     * repository = (Repository) repositoryControl.getMock();
     * repositoryControl.replay();
     *
     * sessionControl.expectAndReturn(session.getRepository(), repository,
     * MockControl.ONE_OR_MORE); final SessionHolderProviderManager
     * providerManager = new ListSessionHolderProviderManager();
     *
     */

    Xid xidMock = new XidMock();

    xaRes.start(xidMock, XAResource.TMNOFLAGS);
    xaResControl.setMatcher(MockControl.ALWAYS_MATCHER);
    xaRes.prepare(xidMock);
    xaResControl.setMatcher(MockControl.ALWAYS_MATCHER);
    xaResControl.setReturnValue(0);
    xaRes.commit(xidMock, false);
    xaResControl.setMatcher(MockControl.ALWAYS_MATCHER);
    xaRes.end(xidMock, XAResource.TMSUCCESS);
    xaResControl.setMatcher(MockControl.ALWAYS_MATCHER);

    sfControl.replay();
    sessionControl.replay();
    xaResControl.replay();
View Full Code Here

    final SessionFactory sf = (SessionFactory) sfControl.getMock();
    MockControl sessionControl = MockControl.createControl(XASession.class);
    final XASession session = (XASession) sessionControl.getMock();
    // create nice mock
    MockControl xaResControl = MockControl.createControl(XAResource.class);
    XAResource xaRes = (XAResource) xaResControl.getMock();

    sfControl.expectAndReturn(sf.getSession(), session);

    sessionControl.expectAndReturn(session.getXAResource(), xaRes);
    session.save();
    session.logout();
    /*
     * // used for ServiceProvider MockControl repositoryControl =
     * MockControl.createNiceControl(Repository.class); Repository
     * repository = (Repository) repositoryControl.getMock();
     * repositoryControl.replay();
     *
     * sessionControl.expectAndReturn(session.getRepository(), repository,
     * MockControl.ONE_OR_MORE);
     */

    Xid xidMock = new XidMock();

    xaRes.start(xidMock, XAResource.TMNOFLAGS);
    xaResControl.setMatcher(MockControl.ALWAYS_MATCHER);
    xaRes.end(xidMock, XAResource.TMFAIL);
    xaResControl.setMatcher(MockControl.ALWAYS_MATCHER);
    xaRes.rollback(xidMock);
    xaResControl.setMatcher(MockControl.ALWAYS_MATCHER);

    sfControl.replay();
    sessionControl.replay();
    xaResControl.replay();
View Full Code Here

    final SessionFactory sf = (SessionFactory) sfControl.getMock();
    MockControl sessionControl = MockControl.createControl(XASession.class);
    final XASession session = (XASession) sessionControl.getMock();
    // create nice mock
    MockControl xaResControl = MockControl.createControl(XAResource.class);
    XAResource xaRes = (XAResource) xaResControl.getMock();

    sfControl.expectAndReturn(sf.getSession(), session);

    sessionControl.expectAndReturn(session.getXAResource(), xaRes);
    session.save();
    session.logout();

    Xid xidMock = new XidMock();

    xaRes.start(xidMock, XAResource.TMNOFLAGS);
    xaResControl.setMatcher(MockControl.ALWAYS_MATCHER);
    xaRes.end(xidMock, XAResource.TMFAIL);
    xaResControl.setMatcher(MockControl.ALWAYS_MATCHER);
    xaRes.rollback(xidMock);
    xaResControl.setMatcher(MockControl.ALWAYS_MATCHER);

    sfControl.replay();
    sessionControl.replay();
    xaResControl.replay();
View Full Code Here

    final SessionFactory sf = (SessionFactory) sfControl.getMock();
    MockControl sessionControl = MockControl.createControl(XASession.class);
    final XASession session = (XASession) sessionControl.getMock();

    MockControl xaResControl = MockControl.createControl(XAResource.class);
    XAResource xaRes = (XAResource) xaResControl.getMock();

    sessionControl.expectAndReturn(session.getXAResource(), xaRes);
    session.save();

    sfControl.replay();
View Full Code Here

    final SessionFactory sf = (SessionFactory) sfControl.getMock();
    MockControl sessionControl = MockControl.createControl(XASession.class);
    final XASession session = (XASession) sessionControl.getMock();

    MockControl xaResControl = MockControl.createControl(XAResource.class);
    XAResource xaRes = (XAResource) xaResControl.getMock();

    sessionControl.expectAndReturn(session.getXAResource(), xaRes);
    session.save();

    sfControl.replay();
View Full Code Here

    private static void singleConnectionOnePhaseCommit(XADataSource xads) {
        System.out.println("singleConnectionOnePhaseCommit");
        try {
            XAConnection xac = xads.getXAConnection();

            XAResource xar = xac.getXAResource();

            Xid xid = XATestUtil.getXid(0, 32, 46);

            xar.start(xid, XAResource.TMNOFLAGS);

            Connection conn = xac.getConnection();
           
            showHoldStatus("XA ", conn);

            Statement s = conn.createStatement();
            showHoldStatus("XA ", s);

            s.execute("create table foo (a int)");
            s.executeUpdate("insert into foo values (0)");

            ResultSet rs = s.executeQuery("select * from foo");
            JDBCDisplayUtil.DisplayResults(System.out, rs, conn);
            rs.close();

            XATestUtil.showXATransactionView(conn);

            s.close();
            xar.end(xid, XAResource.TMSUCCESS);

            // 1 phase commit
            xar.commit(xid, true);

            conn.close();
            xac.close();

        } catch (SQLException sqle) {
View Full Code Here

     */
    private static void interleavingTransactions(XADataSource xads) {
        System.out.println("interleavingTransactions");
        try {
            XAConnection xac = xads.getXAConnection("sku", "testxa");
            XAResource xar = xac.getXAResource();

            Xid xid1 = XATestUtil.getXid(1, 93, 18);
            Xid xid2 = XATestUtil.getXid(2, 45, 77);

            xar.start(xid1, XAResource.TMNOFLAGS);

            Connection conn = xac.getConnection();

            Statement s = conn.createStatement();
            s.executeUpdate("insert into APP.foo values (1)");
            xar.end(xid1, XAResource.TMSUSPEND);

            xar.start(xid2, XAResource.TMNOFLAGS);
            s.executeUpdate("insert into APP.foo values (2)");
            xar.end(xid2, XAResource.TMSUSPEND);

            xar.start(xid1, XAResource.TMRESUME);
            s.executeUpdate("insert into APP.foo values (3)");
            xar.end(xid1, XAResource.TMSUSPEND);

            xar.start(xid2, XAResource.TMRESUME);
            s.executeUpdate("insert into APP.foo values (4)");

            XATestUtil.showXATransactionView(conn);

            // this prepare won't work since
            // transaction 1 has been suspended - XA_PROTO
            try {
                xar.prepare(xid1);
                System.out.println("FAIL - prepare on suspended transaction");
            } catch (XAException e) {
                if (e.errorCode != XAException.XAER_PROTO)
                    XATestUtil.dumpXAException(
                            "FAIL - prepare on suspended transaction", e);

            }

            // check it was not prepared
            XATestUtil.showXATransactionView(conn);

            xar.end(xid2, XAResource.TMSUCCESS);

            xar.end(xid1, XAResource.TMSUCCESS);

            xar.prepare(xid1);
            xar.prepare(xid2);

            // both should be prepared.
            XATestUtil.showXATransactionView(conn);

            Xid[] recoveredStart = xar.recover(XAResource.TMSTARTRSCAN);
            System.out.println("recovered start " + recoveredStart.length);
            Xid[] recovered = xar.recover(XAResource.TMNOFLAGS);
            System.out.println("recovered " + recovered.length);
            Xid[] recoveredEnd = xar.recover(XAResource.TMENDRSCAN);
            System.out.println("recovered end " + recoveredEnd.length);

            for (int i = 0; i < recoveredStart.length; i++) {
                Xid xid = recoveredStart[i];
                if (xid.getFormatId() == 1) {
                    // commit 1 with 2pc
                    xar.commit(xid, false);
                } else if (xid.getFormatId() == 2) {
                    xar.rollback(xid);
                } else {
                    System.out.println("FAIL: unknown xact");
                }
            }

            // check the results
            Xid xid3 = XATestUtil.getXid(3, 2, 101);
            xar.start(xid3, XAResource.TMNOFLAGS);
            XATestUtil.showXATransactionView(conn);
            ResultSet rs = s.executeQuery("select * from APP.foo");
            JDBCDisplayUtil.DisplayResults(System.out, rs, conn);
            rs.close();
            xar.end(xid3, XAResource.TMSUCCESS);

            int pr = xar.prepare(xid3);
            if (pr != XAResource.XA_RDONLY)
                System.out.println("FAIL - prepare on read only xact returned "
                        + pr);

            try {
                xar.commit(xid3, true);
                System.out.println("FAIL - 2pc commit on read-only xact");
            } catch (XAException e) {
                if (e.errorCode != XAException.XAER_NOTA)
                    throw e;
            }
View Full Code Here

TOP

Related Classes of javax.transaction.xa.XAResource

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.