当前位置: 首页>>代码示例>>Java>>正文


Java MysqlXADataSource.getXAConnection方法代码示例

本文整理汇总了Java中com.mysql.jdbc.jdbc2.optional.MysqlXADataSource.getXAConnection方法的典型用法代码示例。如果您正苦于以下问题:Java MysqlXADataSource.getXAConnection方法的具体用法?Java MysqlXADataSource.getXAConnection怎么用?Java MysqlXADataSource.getXAConnection使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.mysql.jdbc.jdbc2.optional.MysqlXADataSource的用法示例。


在下文中一共展示了MysqlXADataSource.getXAConnection方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testBug46925

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
public void testBug46925() throws Exception {
    MysqlXADataSource xads1 = new MysqlXADataSource();
    MysqlXADataSource xads2 = new MysqlXADataSource();

    Xid txid = new MysqlXid(new byte[] { 0x1 }, new byte[] { 0xf }, 3306);

    xads1.setPinGlobalTxToPhysicalConnection(true);
    xads1.setUrl(dbUrl);

    xads2.setPinGlobalTxToPhysicalConnection(true);
    xads2.setUrl(dbUrl);

    XAConnection c1 = xads1.getXAConnection();
    assertTrue(c1 instanceof SuspendableXAConnection);
    // start a transaction on one connection
    c1.getXAResource().start(txid, XAResource.TMNOFLAGS);
    c1.getXAResource().end(txid, XAResource.TMSUCCESS);

    XAConnection c2 = xads2.getXAConnection();
    assertTrue(c2 instanceof SuspendableXAConnection);
    // prepare on another one. Since we are using a "pinned" connection we should have the same "currentXAConnection" for both SuspendableXAConnection
    c2.getXAResource().prepare(txid); // this will fail without the fix.
    c2.getXAResource().commit(txid, false);
}
 
开发者ID:bragex,项目名称:the-vigilantes,代码行数:25,代码来源:ConnectionRegressionTest.java

示例2: testBug62452

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
/**
 * Tests fix for BUG#62452 - NPE thrown in JDBC4MySQLPooledException when statement is closed.
 * 
 * @throws Exception
 */
public void testBug62452() throws Exception {
    PooledConnection con = null;

    MysqlConnectionPoolDataSource pds = new MysqlConnectionPoolDataSource();
    pds.setUrl(dbUrl);
    con = pds.getPooledConnection();
    assertTrue(con instanceof JDBC4MysqlPooledConnection);
    testBug62452WithConnection(con);

    MysqlXADataSource xads = new MysqlXADataSource();
    xads.setUrl(dbUrl);

    xads.setPinGlobalTxToPhysicalConnection(false);
    con = xads.getXAConnection();
    assertTrue(con instanceof JDBC4MysqlXAConnection);
    testBug62452WithConnection(con);

    xads.setPinGlobalTxToPhysicalConnection(true);
    con = xads.getXAConnection();
    assertTrue(con instanceof JDBC4SuspendableXAConnection);
    testBug62452WithConnection(con);

}
 
开发者ID:rafallis,项目名称:BibliotecaPS,代码行数:29,代码来源:ConnectionRegressionTest.java

示例3: testBug69506

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
/**
 * Tests fix for BUG#69506 - XAER_DUPID error code is not returned when a duplicate XID is offered in Java.
 * 
 * @throws Exception
 *             if the test fails.
 */
public void testBug69506() throws Exception {
    MysqlXADataSource dataSource = new MysqlXADataSource();

    dataSource.setUrl(dbUrl);

    XAConnection testXAConn1 = dataSource.getXAConnection();
    XAConnection testXAConn2 = dataSource.getXAConnection();

    Xid duplicateXID = new MysqlXid("1".getBytes(), "1".getBytes(), 1);

    testXAConn1.getXAResource().start(duplicateXID, 0);

    try {
        testXAConn2.getXAResource().start(duplicateXID, 0);
        fail("XAException was expected.");
    } catch (XAException e) {
        assertEquals("Wrong error code retured for duplicated XID.", XAException.XAER_DUPID, e.errorCode);
    }
}
 
开发者ID:rafallis,项目名称:BibliotecaPS,代码行数:26,代码来源:ConnectionRegressionTest.java

示例4: testBug62452

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
/**
 * Tests fix for BUG#62452 - NPE thrown in JDBC4MySQLPooledException when statement is closed.
 * 
 * @throws Exception
 */
public void testBug62452() throws Exception {
    PooledConnection con = null;

    MysqlConnectionPoolDataSource pds = new MysqlConnectionPoolDataSource();
    pds.setUrl(dbUrl);
    con = pds.getPooledConnection();
    assertTrue(con instanceof JDBC4MysqlPooledConnection);
    testBug62452WithConnection(con);
    
    MysqlXADataSource xads = new MysqlXADataSource();
    xads.setUrl(dbUrl);

    xads.setPinGlobalTxToPhysicalConnection(false);
    con = xads.getXAConnection();
    assertTrue(con instanceof JDBC4MysqlXAConnection);
    testBug62452WithConnection(con);

    xads.setPinGlobalTxToPhysicalConnection(true);
    con = xads.getXAConnection();
    assertTrue(con instanceof JDBC4SuspendableXAConnection);
    testBug62452WithConnection(con);

}
 
开发者ID:zerobane,项目名称:cloudera-cli-scripts,代码行数:29,代码来源:ConnectionRegressionTest.java

示例5: testBug46925

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
public void testBug46925() throws Exception {
	MysqlXADataSource xads1 = new MysqlXADataSource();
	MysqlXADataSource xads2 = new MysqlXADataSource();

	Xid txid = new MysqlXid(new byte[] { 0x1 }, new byte[] { 0xf }, 3306);

	xads1.setPinGlobalTxToPhysicalConnection(true);
	xads1.setUrl(dbUrl);

	xads2.setPinGlobalTxToPhysicalConnection(true);
	xads2.setUrl(dbUrl);

	XAConnection c1 = xads1.getXAConnection();
	assertTrue(c1 instanceof SuspendableXAConnection);
	// start a transaction on one connection
	c1.getXAResource().start(txid, XAResource.TMNOFLAGS);
	c1.getXAResource().end(txid, XAResource.TMSUCCESS);

	XAConnection c2 = xads2.getXAConnection();
	assertTrue(c2 instanceof SuspendableXAConnection);
	// prepare on another one. Since we are using a "pinned" connection
	// we should have the same "currentXAConnection" for both
	// SuspendableXAConnection
	c2.getXAResource().prepare(txid); // this will fail without the fix.
	c2.getXAResource().commit(txid, false);
}
 
开发者ID:hinsenchan,项目名称:fil_project_mgmt_app_v2,代码行数:27,代码来源:ConnectionRegressionTest.java

示例6: testBug69506

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
/**
 * Tests fix for BUG#69506 - XAER_DUPID error code is not returned when a duplicate XID is offered in Java.
 *
 * @throws Exception
 *             if the test fails.
 */
public void testBug69506() throws Exception {
	MysqlXADataSource dataSource = new MysqlXADataSource();

	dataSource.setUrl(dbUrl);

	XAConnection testXAConn1 = dataSource.getXAConnection();
	XAConnection testXAConn2 = dataSource.getXAConnection();

	Xid duplicateXID = new MysqlXid("1".getBytes(), "1".getBytes(), 1);

	testXAConn1.getXAResource().start(duplicateXID, 0);

	try {
		testXAConn2.getXAResource().start(duplicateXID, 0);
		fail("XAException was expected.");
	} catch (XAException e) {
		assertEquals("Wrong error code retured for duplicated XID.", XAException.XAER_DUPID, e.errorCode);
	}
}
 
开发者ID:hinsenchan,项目名称:fil_project_mgmt_app_v2,代码行数:26,代码来源:ConnectionRegressionTest.java

示例7: testBug69506

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
/**
 * Tests fix for BUG#69506 - XAER_DUPID error code is not returned when a duplicate XID is offered in Java.
 * 
 * @throws Exception
 *             if the test fails.
 */
public void testBug69506() throws Exception {
	MysqlXADataSource dataSource = new MysqlXADataSource();

	dataSource.setUrl(dbUrl);
	
	XAConnection testXAConn1 = dataSource.getXAConnection();
	XAConnection testXAConn2 = dataSource.getXAConnection();

	Xid duplicateXID = new MysqlXid("1".getBytes(), "1".getBytes(), 1);

	testXAConn1.getXAResource().start(duplicateXID, 0);

	try {
		testXAConn2.getXAResource().start(duplicateXID, 0);
		fail("XAException was expected.");
	} catch (XAException e) {
		assertEquals("Wrong error code retured for duplicated XID.", XAException.XAER_DUPID, e.errorCode);
	}
}
 
开发者ID:JosuaKrause,项目名称:Trails,代码行数:26,代码来源:ConnectionRegressionTest.java

示例8: testBug67803

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
/**
 * Tests fix for BUG#67803 - XA commands sent twice to MySQL server
 * 
 * @throws Exception
 *             if the test fails.
 */
public void testBug67803() throws Exception {
    MysqlXADataSource dataSource = new MysqlXADataSource();
    dataSource.setUrl(dbUrl);
    dataSource.setUseCursorFetch(true);
    dataSource.setDefaultFetchSize(50);
    dataSource.setUseServerPrepStmts(true);
    dataSource.setExceptionInterceptors("testsuite.regression.ConnectionRegressionTest$TestBug67803ExceptionInterceptor");

    XAConnection testXAConn1 = dataSource.getXAConnection();
    testXAConn1.getXAResource().start(new MysqlXid("2".getBytes(), "2".getBytes(), 1), 0);
}
 
开发者ID:bragex,项目名称:the-vigilantes,代码行数:18,代码来源:ConnectionRegressionTest.java

示例9: testBug62577TestUrl

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
private void testBug62577TestUrl(String url) throws Exception {
    MysqlXADataSource dataSource = new MysqlXADataSource();
    dataSource.setUrl(url);
    XAConnection xaConn = dataSource.getXAConnection();
    Statement st = xaConn.getConnection().createStatement();
    this.rs = st.executeQuery("SELECT 1;");
    xaConn.close();
}
 
开发者ID:rafallis,项目名称:BibliotecaPS,代码行数:9,代码来源:ConnectionRegressionTest.java

示例10: testBug62577TestUrl

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
private void testBug62577TestUrl(String url) throws Exception {
    MysqlXADataSource dataSource = new MysqlXADataSource();
    dataSource.setUrl(url);
    XAConnection xaConn = dataSource.getXAConnection();
    Statement st = xaConn.getConnection().createStatement();
    st.executeQuery("SELECT 1;");
    xaConn.close();
}
 
开发者ID:mniepert,项目名称:TPKB,代码行数:9,代码来源:ConnectionRegressionTest.java

示例11: testBug72890

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
/**
 * Tests fix for BUG#72890 - Java jdbc driver returns incorrect return code when it's part of XA transaction
 * 
 * @throws Exception
 *             if the test fails.
 */
public void testBug72890() throws Exception {
    MysqlXADataSource myDs = new MysqlXADataSource();
    myDs.setUrl(BaseTestCase.dbUrl);

    final Xid xid = new MysqlXid("72890".getBytes(), "72890".getBytes(), 1);

    final XAConnection xaConn = myDs.getXAConnection();
    final XAResource xaRes = xaConn.getXAResource();
    final Connection dbConn = xaConn.getConnection();
    final long connId = ((MySQLConnection) ((com.mysql.jdbc.Connection) dbConn).getConnectionMutex()).getId();

    xaRes.start(xid, XAResource.TMNOFLAGS);
    xaRes.end(xid, XAResource.TMSUCCESS);
    assertEquals(XAResource.XA_OK, xaRes.prepare(xid));

    // Simulate a connection hang
    this.stmt.execute("KILL CONNECTION " + connId);

    XAException xaEx = assertThrows(XAException.class, "Undetermined error occurred in the underlying Connection - check your data for consistency",
            new Callable<Void>() {
                public Void call() throws Exception {
                    xaRes.commit(xid, false);
                    return null;
                }
            });
    assertEquals("XAException error code", XAException.XAER_RMFAIL, xaEx.errorCode);

    dbConn.close();
    xaConn.close();
}
 
开发者ID:mniepert,项目名称:TPKB,代码行数:37,代码来源:DataSourceRegressionTest.java

示例12: testBug67803

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
/**
 * Tests fix for BUG#67803 - XA commands sent twice to MySQL server
 *
 * @throws Exception
 *             if the test fails.
 */
public void testBug67803() throws Exception {
	MysqlXADataSource dataSource = new MysqlXADataSource();
	dataSource.setUrl(dbUrl);
	dataSource.setUseCursorFetch(true);
	dataSource.setDefaultFetchSize(50);
	dataSource.setUseServerPrepStmts(true);
	dataSource.setExceptionInterceptors("testsuite.regression.ConnectionRegressionTest$TestBug67803ExceptionInterceptor");

	XAConnection testXAConn1 = dataSource.getXAConnection();
	testXAConn1.getXAResource().start(new MysqlXid("1".getBytes(), "1".getBytes(), 1), 0);
}
 
开发者ID:hinsenchan,项目名称:fil_project_mgmt_app_v2,代码行数:18,代码来源:ConnectionRegressionTest.java

示例13: testSuspendableTx

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
public void testSuspendableTx() throws Exception {
    if (!versionMeetsMinimum(5, 0)) {
        return;
    }

    Connection conn1 = null;

    MysqlXADataSource suspXaDs = new MysqlXADataSource();
    suspXaDs.setUrl(BaseTestCase.dbUrl);
    suspXaDs.setPinGlobalTxToPhysicalConnection(true);
    suspXaDs.setRollbackOnPooledClose(true);

    XAConnection xaConn1 = null;

    Xid xid = createXid();

    try {
        /*
         * -- works using RESUME
         * xa start 0x123,0x456;
         * select * from foo;
         * xa end 0x123,0x456;
         * xa start 0x123,0x456 resume;
         * select * from foo;
         * xa end 0x123,0x456;
         * xa commit 0x123,0x456 one phase;
         */

        xaConn1 = suspXaDs.getXAConnection();
        XAResource xaRes1 = xaConn1.getXAResource();
        conn1 = xaConn1.getConnection();
        xaRes1.start(xid, XAResource.TMNOFLAGS);
        conn1.createStatement().execute("SELECT 1");
        xaRes1.end(xid, XAResource.TMSUCCESS);
        xaRes1.start(xid, XAResource.TMRESUME);
        conn1.createStatement().execute("SELECT 1");
        xaRes1.end(xid, XAResource.TMSUCCESS);
        xaRes1.commit(xid, true);

        xaConn1.close();

        /*
         * 
         * -- fails using JOIN
         * xa start 0x123,0x456;
         * select * from foo;
         * xa end 0x123,0x456;
         * xa start 0x123,0x456 join;
         * select * from foo;
         * xa end 0x123,0x456;
         * xa commit 0x123,0x456 one phase;
         */

        xaConn1 = suspXaDs.getXAConnection();
        xaRes1 = xaConn1.getXAResource();
        conn1 = xaConn1.getConnection();
        xaRes1.start(xid, XAResource.TMNOFLAGS);
        conn1.createStatement().execute("SELECT 1");
        xaRes1.end(xid, XAResource.TMSUCCESS);
        xaRes1.start(xid, XAResource.TMJOIN);
        conn1.createStatement().execute("SELECT 1");
        xaRes1.end(xid, XAResource.TMSUCCESS);
        xaRes1.commit(xid, true);
    } finally {
        if (xaConn1 != null) {
            xaConn1.close();
        }
    }
}
 
开发者ID:bragex,项目名称:the-vigilantes,代码行数:70,代码来源:XATest.java

示例14: testBug72890

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
/**
 * Tests fix for BUG#72890 - Java jdbc driver returns incorrect return code when it's part of XA transaction
 * 
 * @throws Exception
 *             if the test fails.
 */
public void testBug72890() throws Exception {
    MysqlXADataSource myDs = new MysqlXADataSource();
    myDs.setUrl(BaseTestCase.dbUrl);

    try {
        final Xid xid = new MysqlXid("72890".getBytes(), "72890".getBytes(), 1);

        final XAConnection xaConn = myDs.getXAConnection();
        final XAResource xaRes = xaConn.getXAResource();
        final Connection dbConn = xaConn.getConnection();
        final long connId = ((MySQLConnection) ((com.mysql.jdbc.Connection) dbConn).getConnectionMutex()).getId();

        xaRes.start(xid, XAResource.TMNOFLAGS);
        xaRes.end(xid, XAResource.TMSUCCESS);
        assertEquals(XAResource.XA_OK, xaRes.prepare(xid));

        // Simulate a connection hang and make sure the connection really dies.
        this.stmt.execute("KILL CONNECTION " + connId);
        int connAliveChecks = 4;
        while (connAliveChecks > 0) {
            this.rs = this.stmt.executeQuery("SHOW PROCESSLIST");
            boolean connIsAlive = false;
            while (!connIsAlive && this.rs.next()) {
                connIsAlive = this.rs.getInt(1) == connId;
            }
            this.rs.close();
            if (connIsAlive) {
                connAliveChecks--;
                System.out.println("Connection id " + connId + " is still alive. Checking " + connAliveChecks + " more times.");
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                }
            } else {
                connAliveChecks = -1;
            }
        }
        if (connAliveChecks == 0) {
            fail("Failed to kill the Connection id " + connId + " in a timely manner.");
        }

        XAException xaEx = assertThrows(XAException.class, "Undetermined error occurred in the underlying Connection - check your data for consistency",
                new Callable<Void>() {
                    public Void call() throws Exception {
                        xaRes.commit(xid, false);
                        return null;
                    }
                });
        assertEquals("XAException error code", XAException.XAER_RMFAIL, xaEx.errorCode);

        dbConn.close();
        xaConn.close();

    } finally {
        /*
         * After MySQL 5.7.7 a prepared XA transaction is no longer rolled back at disconnect. It needs to be rolled back manually to prevent test failures
         * in subsequent runs.
         * Other MySQL versions won't have any transactions to recover.
         */
        final XAConnection xaConnRecovery = myDs.getXAConnection();
        final XAResource xaResRecovery = xaConnRecovery.getXAResource();

        final Xid[] xidsToRecover = xaResRecovery.recover(XAResource.TMSTARTRSCAN);
        for (Xid xidToRecover : xidsToRecover) {
            xaResRecovery.rollback(xidToRecover);
        }

        xaConnRecovery.close();
    }
}
 
开发者ID:rafallis,项目名称:BibliotecaPS,代码行数:77,代码来源:DataSourceRegressionTest.java

示例15: testSuspendableTx

import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; //导入方法依赖的package包/类
public void testSuspendableTx() throws Exception {
    if (!versionMeetsMinimum(5, 0) || isRunningOnJdk131()) {
        return;
    }

    Connection conn1 = null;

    MysqlXADataSource suspXaDs = new MysqlXADataSource();
    suspXaDs.setUrl(BaseTestCase.dbUrl);
    suspXaDs.setPinGlobalTxToPhysicalConnection(true);
    suspXaDs.setRollbackOnPooledClose(true);

    XAConnection xaConn1 = null;

    Xid xid = createXid();

    try {
        /*
         * -- works using RESUME
         * xa start 0x123,0x456;
         * select * from foo;
         * xa end 0x123,0x456;
         * xa start 0x123,0x456 resume;
         * select * from foo;
         * xa end 0x123,0x456;
         * xa commit 0x123,0x456 one phase;
         */

        xaConn1 = suspXaDs.getXAConnection();
        XAResource xaRes1 = xaConn1.getXAResource();
        conn1 = xaConn1.getConnection();
        xaRes1.start(xid, XAResource.TMNOFLAGS);
        conn1.createStatement().executeQuery("SELECT 1");
        xaRes1.end(xid, XAResource.TMSUCCESS);
        xaRes1.start(xid, XAResource.TMRESUME);
        conn1.createStatement().executeQuery("SELECT 1");
        xaRes1.end(xid, XAResource.TMSUCCESS);
        xaRes1.commit(xid, true);

        xaConn1.close();

        /*
         * 
         * -- fails using JOIN
         * xa start 0x123,0x456;
         * select * from foo;
         * xa end 0x123,0x456;
         * xa start 0x123,0x456 join;
         * select * from foo;
         * xa end 0x123,0x456;
         * xa commit 0x123,0x456 one phase;
         */

        xaConn1 = suspXaDs.getXAConnection();
        xaRes1 = xaConn1.getXAResource();
        conn1 = xaConn1.getConnection();
        xaRes1.start(xid, XAResource.TMNOFLAGS);
        conn1.createStatement().executeQuery("SELECT 1");
        xaRes1.end(xid, XAResource.TMSUCCESS);
        xaRes1.start(xid, XAResource.TMJOIN);
        conn1.createStatement().executeQuery("SELECT 1");
        xaRes1.end(xid, XAResource.TMSUCCESS);
        xaRes1.commit(xid, true);
    } finally {
        if (xaConn1 != null) {
            xaConn1.close();
        }
    }
}
 
开发者ID:mniepert,项目名称:TPKB,代码行数:70,代码来源:XATest.java


注:本文中的com.mysql.jdbc.jdbc2.optional.MysqlXADataSource.getXAConnection方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。