Last active
March 7, 2018 10:41
-
-
Save lavarene/898b056ce83cfa31f4e05582dc575930 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import oracle.ucp.UniversalConnectionPoolAdapter; | |
import oracle.ucp.admin.UniversalConnectionPoolManager; | |
import oracle.ucp.admin.UniversalConnectionPoolManagerImpl; | |
import oracle.ucp.jdbc.PoolDataSource; | |
import oracle.ucp.jdbc.PoolDataSourceFactory; | |
import java.sql.Connection; | |
import java.sql.PreparedStatement; | |
import java.sql.ResultSet; | |
public class UCPTest { | |
public static PoolDataSource pds = null; | |
public static void main(String[] args) throws Exception { | |
String username; | |
String password; | |
String connString; | |
username = "scott"; | |
password = "tiger"; | |
connString = "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=service)))"; | |
System.out.println("username: " + username); | |
System.out.println("password: " + password); | |
System.out.println("conn string: " + connString); | |
String jdbcUrl = "jdbc:oracle:thin:@" + connString; | |
System.out.println("UCPTest starting..."); | |
UniversalConnectionPoolManager mgr = UniversalConnectionPoolManagerImpl | |
.getUniversalConnectionPoolManager(); | |
mgr.setJmxEnabled(false); | |
pds = PoolDataSourceFactory.getPoolDataSource(); | |
pds.setMinPoolSize(1); | |
pds.setInitialPoolSize(1); | |
pds.setMaxPoolSize(3); | |
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource"); | |
pds.setInactiveConnectionTimeout(60); | |
pds.setUser(username); | |
pds.setPassword(password); | |
pds.setURL(jdbcUrl); | |
mgr.createConnectionPool((UniversalConnectionPoolAdapter) pds); | |
mgr.startConnectionPool(pds.getConnectionPoolName()); | |
try (Connection con = pds.getConnection()) { | |
// con.setAutoCommit(false); | |
try (PreparedStatement statement = con | |
.prepareStatement("select 1 from dual a"); | |
ResultSet rs = statement.executeQuery()) { | |
System.out.println("Sleeping BEFORE closing the statement"); | |
Thread.sleep(20000); | |
} | |
// con.commit(); | |
} | |
System.out.println("Sleeping AFTER closing the statement"); | |
Thread.sleep(20000); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment