@Test public void testMaxAge() throws Exception { JdbcPooledConnectionSource pooled = new JdbcPooledConnectionSource(DEFAULT_DATABASE_URL); try { long maxAge = 500; pooled.setMaxConnectionAgeMillis(maxAge); DatabaseConnection conn1 = pooled.getReadOnlyConnection(null); pooled.releaseConnection(conn1); Thread.sleep(maxAge + 1); DatabaseConnection conn2 = pooled.getReadOnlyConnection(null); assertNotSame(conn1, conn2); } finally { pooled.close(); } }
@Test public void testReleaseAfterClose() throws Exception { JdbcPooledConnectionSource pooled = new JdbcPooledConnectionSource(DEFAULT_DATABASE_URL); DatabaseConnection conn1; try { conn1 = pooled.getReadOnlyConnection(null); } finally { pooled.close(); } pooled.releaseConnection(conn1); }
@Test public void testSetAutoCommit() throws Exception { JdbcPooledConnectionSource pooled = new JdbcPooledConnectionSource(DEFAULT_DATABASE_URL); try { DatabaseConnection conn1 = pooled.getReadOnlyConnection(null); conn1.setAutoCommit(false); pooled.releaseConnection(conn1); DatabaseConnection conn2 = pooled.getReadOnlyConnection(null); assertSame(conn1, conn2); assertTrue(conn2.isAutoCommit()); } finally { pooled.close(); } }
@Test public void testMaxAgeMaxValue() throws Exception { JdbcPooledConnectionSource pooled = new JdbcPooledConnectionSource(DEFAULT_DATABASE_URL); try { pooled.setMaxConnectionAgeMillis(Long.MAX_VALUE); DatabaseConnection conn1 = pooled.getReadOnlyConnection(null); pooled.releaseConnection(conn1); } finally { pooled.close(); } }
@Test public void testReleaseAlreadyClosed() throws Exception { JdbcPooledConnectionSource pooled = new JdbcPooledConnectionSource(DEFAULT_DATABASE_URL); try { DatabaseConnection conn1 = pooled.getReadOnlyConnection(null); conn1.close(); pooled.releaseConnection(conn1); } finally { pooled.close(); } }
pooled.setCheckConnectionsEveryMillis(checkEveryMillis); try { DatabaseConnection conn1 = pooled.getReadOnlyConnection(null); assertEquals(0, pooled.getReleaseCount()); assertEquals(0, pooled.getCurrentConnectionsFree()); DatabaseConnection conn2 = pooled.getReadOnlyConnection(null); DatabaseConnection conn3 = pooled.getReadOnlyConnection(null);
@Test public void testBasic() throws Exception { JdbcPooledConnectionSource pooled = new JdbcPooledConnectionSource(DEFAULT_DATABASE_URL); try { DatabaseConnection conn1 = pooled.getReadOnlyConnection(null); DatabaseConnection conn2 = pooled.getReadWriteConnection(null); assertNotSame(conn1, conn2); pooled.releaseConnection(conn2); DatabaseConnection conn3 = pooled.getReadWriteConnection(null); assertNotSame(conn1, conn3); assertSame(conn2, conn3); DatabaseConnection conn4 = pooled.getReadWriteConnection(null); assertNotSame(conn1, conn4); assertNotSame(conn3, conn4); pooled.releaseConnection(conn1); pooled.releaseConnection(conn3); DatabaseConnection conn5 = pooled.getReadOnlyConnection(null); assertSame(conn1, conn5); DatabaseConnection conn6 = pooled.getReadOnlyConnection(null); assertSame(conn3, conn6); conn1.close(); conn2.close(); conn3.close(); conn4.close(); conn5.close(); conn6.close(); } finally { pooled.close(); } }
@Test public void testIsOpen() throws Exception { JdbcPooledConnectionSource pooled = new JdbcPooledConnectionSource(DEFAULT_DATABASE_URL); try { pooled.setUrl("jdbc:h2:mem:baz"); assertTrue(pooled.isOpen(null)); DatabaseConnection conn = pooled.getReadOnlyConnection(null); pooled.releaseConnection(conn); assertTrue(pooled.isOpen(null)); } finally { pooled.close(); assertFalse(pooled.isOpen(null)); } }
@Test public void testTransaction() throws Exception { JdbcPooledConnectionSource pooled = new JdbcPooledConnectionSource(DEFAULT_DATABASE_URL); try { DatabaseConnection conn1 = pooled.getReadOnlyConnection(null); DatabaseConnection conn2 = pooled.getReadWriteConnection(null); pooled.saveSpecialConnection(conn2); DatabaseConnection conn3 = pooled.getReadWriteConnection(null); assertSame(conn2, conn3); pooled.releaseConnection(conn3); pooled.releaseConnection(conn1); DatabaseConnection conn4 = pooled.getReadWriteConnection(null); assertSame(conn2, conn4); pooled.releaseConnection(conn4); pooled.clearSpecialConnection(conn2); DatabaseConnection conn5 = pooled.getReadWriteConnection(null); assertSame(conn1, conn5); conn1.close(); conn2.close(); conn3.close(); conn4.close(); conn5.close(); } finally { pooled.close(); } }
JdbcPooledConnectionSource pooled = new JdbcPooledConnectionSource(DEFAULT_DATABASE_URL); try { DatabaseConnection conn1 = pooled.getReadOnlyConnection(null); assertEquals(1, pooled.getOpenCount()); assertEquals(0, pooled.getCloseCount()); assertEquals(1, pooled.getMaxConnectionsEverUsed()); assertEquals(1, pooled.getCurrentConnectionsManaged()); DatabaseConnection conn2 = pooled.getReadOnlyConnection(null); assertEquals(2, pooled.getOpenCount()); assertEquals(0, pooled.getCloseCount());