Package jodd.db.jtx

Examples of jodd.db.jtx.DbJtxTransactionManager


  /**
   * Creates JTX transaction manager.
   */
  protected JtxTransactionManager createJtxTransactionManager(ConnectionProvider connectionProvider) {
    return new DbJtxTransactionManager(connectionProvider);
  }
View Full Code Here


    cp.setUrl("jdbc:hsqldb:mem:test");

    cp.setUser("sa");
    cp.setPassword("");
    cp.init();
    dbtxm = new DbJtxTransactionManager(cp);

    // initial data
    DbSession session = new DbSession(cp);

    executeUpdate(session, "drop table BOY if exists");
View Full Code Here

  }

  @Test
  public void testSessionProvider() {
    // prepare
    JtxTransactionManager jtxManager = new DbJtxTransactionManager(cp);
    DbJtxSessionProvider sessionProvider = new DbJtxSessionProvider(jtxManager);
    DbManager.getInstance().setSessionProvider(sessionProvider);

    for (int i = 0; i < 2; i++) {

      // start, 0 transactions, no session
      assertEquals(0, jtxManager.totalTransactions());

      // start transaction
      jtxManager.requestTransaction(new JtxTransactionMode());

      // get session from provider!
      DbSession dbSession = sessionProvider.getDbSession();
      assertNotNull(dbSession);

      // transaction started, but connection not yet fetched as it is not used yet
      assertEquals(1, jtxManager.totalTransactions());
      assertEquals(0, cp.getConnectionsCount().getBusyCount());

      // same session as it is the same transaction
      DbSession dbSession2 = sessionProvider.getDbSession();
      assertNotNull(dbSession2);
      assertSame(dbSession, dbSession2);

      // create query, session is get from provider, the very same one
      DbQuery dbQuery = new DbQuery("SELECT 173 FROM (VALUES(0))");
      long value = dbQuery.executeCount();
      assertEquals(173, value);
      assertSame(dbSession, dbQuery.getSession());

      // transaction still active, connection still in use
      assertEquals(1, jtxManager.totalTransactions());
      assertEquals(1, cp.getConnectionsCount().getBusyCount());

      // close query
      dbQuery.close();

      // transaction still active, connection still in use (!)
      // since session is still active
      assertEquals(1, jtxManager.totalTransactions());
      assertEquals(1, cp.getConnectionsCount().getBusyCount());
      assertTrue(!dbQuery.getSession().isSessionClosed());

      // commit transaction...
      jtxManager.getTransaction().commit();

      // no transaction
      assertEquals(0, jtxManager.totalTransactions());
      // session is closed
      assertTrue(dbSession.isSessionClosed());
      // connection is returned
      assertEquals(0, cp.getConnectionsCount().getBusyCount());
    }
View Full Code Here

    cp.setUrl("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1");

    cp.setUser("sa");
    cp.setPassword("");
    cp.init();
    dbtxm = new DbJtxTransactionManager(cp);
  }
View Full Code Here

    cp.setUrl("jdbc:hsqldb:mem:test");

    cp.setUser("sa");
    cp.setPassword("");
    cp.init();
    dbtxm = new DbJtxTransactionManager(cp);

    // initial data
    DbSession session = new DbSession(cp);

    executeUpdate(session, "drop table BOY if exists");
View Full Code Here

TOP

Related Classes of jodd.db.jtx.DbJtxTransactionManager

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.