【博客文章2021】对Oracle RAC TRANSACTION可飘移服务的工作过程的思考 Author: Bo Tang
1. 详细配置Oracle RAC TRANSACTION可飘移服务:
以Policy-Managed RAC的服务为例子,详细配置一个Oracle RAC Transaction可飘移服务,来支持APPLICATION CONTINUITY和TRANSACTION GUARD:
之所以配置成SINGLETON,是为了便于测试。测试过程中我们会使用一个jar程序进行连接,SINGLETON的方式会保证jar程序只连接一个实例。这样会使测试过程(杀死实例)很清晰。 对于Oracle RAC Transaction可飘移服务来讲,连接负载均衡选项(-j)比较推荐使用SHORT。但是使用LONG也是可以的。连接负载均衡选项代表会话负载均衡的分配机制主要考量短会话(SHORT)还是长会话(LONG),长会话比较典型的是连接池。
对于Oracle RAC Transaction可飘移服务来讲,运行时负载均衡选项-rlbgoal比较推荐使用SERVICE_TIME。但是使用THROUGHPUT也是可以的。运行时负载均衡选项是考量以响应时间最快为优化目标还是以吞吐量最大为优化目标。 -retention选项代表commit outcome信息要被保留的秒数,默认就是86400秒,最长不超过1个月(2592000秒)。
-replay_init_time代表在指定的秒数范围内,事务replay必须启动。如果在指定的秒数内它未能启动,则放弃该事务replay。
2. Oracle RAC TRANSACTION可飘移服务的飘移过程:
当可恢复的故障发生的时候(比如所连接的RAC节点出现意外故障),配置了Oracle RAC TRANSACTION可飘移服务的RAC数据库,就会尝试寻找仍然存活的节点进行会话重新连接。首先判断-retention选项所代表的commit outcome是否超时。如果没有超时,就完成会话的重新连接。重新连接尝试的次数是由-failoverretry(或者-z)来决定的。每次重新连接的间隔是由-failoverdelay(或者-w)来决定的。一旦连接成功,允许事务在 -replay_init_time规定的秒数内开始replay。在等待relay的过程中检查以下两个重要的指标: a. 数据库是否是原数据库,SCN是否正常(确保数据库没有发生过不完全恢复)?
b. 发生故障时最后的那个事务是否提交成功了? 检查完成以上信息后,整理出一个将要执行的SQL语句队列,然后这个队列将被按照顺序执行。 3. Oracle RAC TRANSACTION可飘移服务的测试过程:
对于Oracle RAC SESSION可漂移服务或者Oracle RAC SELECT可漂移服务,可以通过在sqlplus中做一个会话,接着kill会话所连接的节点上的ora_smon进程的方式来测试。在这两类测试中,Oracle RAC SELECT可漂移服务在测试中表现会尤其惊艳:查询短暂停顿(SQL>提示符还在),接着会话和cursor被漂移到新的节点,剩余的结果集一行不多一行不少地返回给用户。而Oracle RAC TRANSACTION可漂移服务不能通过在sqlplus中做一个事务,不提交,接着kill会话所连接的节点上的ora_smon进程的方式来测试。如果那样做,只会看到与Oracle RAC SESSION可漂移服务一样的结果,即:会话被飘到新的节点(用户不需要重新连接),但是事务并没有被replay。用户需要重新做这个事务。那么Oracle RAC TRANSACTION可漂移服务到底要怎么测试呢?为了要回答这个问题,首先要了解它的漂移原理。在出现数据库连接故障时,它是通过逻辑事务ID来识别数据库返回给应用的信息有没有到达,还要保证replay过程中不会发生重复提交。因此测试时需要应用端的配合,而不是简单地在sqlplus中做个事务能够测试的。 测试过程必需使用UCP连接池并import oracle.ucp.admin.UniversalConnectionPoolManagerImpl来连接数据库。 4. 使用oracle.ucp.admin.UniversalConnectionPoolManagerImpl来进行测试Oracle RAC TRANSACTION可飘移服务:
在数据库中创建一个表来做实验:
drop table EMP; create table EMP( empno number(4) not null, ename varchar2(10), job char(9), mgr number(4), hiredate date, sal number(7,2), comm number(7,2), deptno number(2), constraint EMP_PRIMARY_KEY primary key (empno));
|
接着写一个java文件:Worker.java来模拟一个连接UCP的jdbc程序,完整的 Worker.java供下载:
package acdemo;
import javax.sql.DataSource; import java.sql.*; import oracle.ucp.jdbc.ValidConnection; import oracle.ucp.jdbc.PoolDataSource; import oracle.ucp.jdbc.oracle.OracleJDBCConnectionPoolStatistics; import java.util.Random; import java.text.SimpleDateFormat; import java.text.DateFormat; import java.util.Calendar; /** * Worker线程在一个循环中运行一份工作负载。该工作负载使用jdbc接口,通过UCP(通用连接池)来连接数据库执行SQL语句。 * 在这个循环中的某一个循环的具体过程如下: * 1. 从UCP中抓取到一个连接 * 2. 执行SQL语句 * 3. 返还该连接于UCP * 4. 随机等待一段时间,来模拟商业执行 */ ...... { /** * 准备SQL语句:向emp表插入不重复的员工号、员工姓名(Bob拼凑上员工号)和工资8000 */ PreparedStatement pstmt = c.prepareStatement("insert into emp(empno,ename,sal) values(?,?,?)"); int empno = (int)System.nanoTime()%9999; pstmt.setInt(1,empno); pstmt.setString(2,"Bob"+empno); pstmt.setInt(3,8000); try{ pstmt.executeUpdate(); /** ACDemo.java中定义了下面那句中的VERBOSE: VERBOSE = Boolean.parseBoolean(prop.getProperty("verbose","false")); */ if (ACDemo.VERBOSE) { System.out.println("Adding row to emp"); }
} catch(SQLException insertsqlex) { if (insertsqlex instanceof SQLIntegrityConstraintViolationException) { if (insertsqlex.getMessage().startsWith("ORA-00001: unique constraint (HR.PK_EMP) violated")){ System.out.println("in catch block for constraint violation\n"); empno++; } } else throw insertsqlex; } pstmt.close(); } // c.rollback(); /** * 提交 */ c.commit(); } public void run() { long counter = 0; boolean retry = false; while(true) { Connection c = null; DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:MM:SS"); Calendar cal = Calendar.getInstance(); long nanoTimeStart=0,timeSpentOnDb = 0; try { /** 第1步:从UCP中获取1个连接. 这是AC请求的第1步。AC中的replay驱动现在会开始记录JDBC请求*/ c = ds.getConnection(); /** 确认auto commit关闭*/ c.setAutoCommit(false);
/* 打印retry请求*/ ResultSet rs; Statement stmt = c.createStatement(); rs =
stmt.executeQuery("select '... Connected to '||sys_context('userenv','instance_name') from dual"); while (rs.next()) { if (ACDemo.VERBOSE) { System.out.println( dateFormat.format(cal.getTime()) + " " + rs.getString(1)); } } rs.close(); stmt.close(); if (retry) { System.out.println(" Application driven connection retry succeeded"); retry = false; }
nanoTimeStart = System.nanoTime(); /** 第2步:运行工作负载 */ if (ACDemo.VERBOSE) { System.out.println("Executing databaseWorkload()"); } databaseWorkload(c); } catch (SQLException ea) { /** 有了AC,应用开发人员就不用编写代码来恢复*/ try { if (c == null ||!((ValidConnection)c).isValid()){ ea.printStackTrace(); System.out.println("Application error handling: attempting to get a new connection "+ea.getMessage()+"."); c.close(); String fcfInfo = ((OracleJDBCConnectionPoolStatistics) ds.getStatistics()).getFCFProcessingInfoProcessedOnly(); System.out.println("FCF information: " + fcfInfo); retry = true; } else { System.out.println("unknown exception: " + ea); } }catch (SQLException ea1) {} synchronized (ACDemo.statsLock) { ACDemo.nbOfExceptions++; if(ACDemo.applicationCrashOnErrors && ACDemo.nbOfExceptions > 20) { /** 尝试50次 */ System.err.println("50 fatal exceptions."); System.err.println(""); System.err.println("*** APPLICATION CRASHED ***"); System.err.println(""); System.exit(1); } } if(ACDemo.VERBOSE) { ea.printStackTrace(); System.err.println("."+ea.getMessage()+"."); } } finally { timeSpentOnDb = (System.nanoTime()-nanoTimeStart)/1000000; // in ms try { if (c != null) { /** 第3步: 归还连接到UCP。这是AC请求的最后一步。AC驱动停止记录 AC driver stops recording and // can purge the replay queue. c.close(); if (ACDemo.VERBOSE) { System.out.println("Closed connection"); } } } catch (SQLException ea) {} }
// don't update the state for the first run: if(counter > 0) { synchronized (ACDemo.statsLock) { ACDemo.operationsCompleted++; // ACDemo.timeSpentOnGetConnection += timeSpentOnGetConnection; ACDemo.timeSpentOnDb += timeSpentOnDb; } } // Step 4: sleep to simulate the business processing time if (ACDemo.threadThinkTime > 0) { // Introduce delay between requests for processing webpages long timeToSleep = ACDemo.threadThinkTime + random.nextInt((ACDemo.threadThinkTime<10)?10:ACDemo.threadThinkTime/10); try { Thread.sleep(timeToSleep); } catch (Exception ea) {} } counter++; } } }
|
package acdemo; import java.io.FileInputStream; import java.io.IOException; import java.sql.SQLException; import java.util.Properties; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet;
import javax.sql.DataSource;
import oracle.ucp.admin.UniversalConnectionPoolManagerImpl; import oracle.ucp.jdbc.PoolDataSource; import oracle.ucp.jdbc.PoolDataSourceFactory; import oracle.ucp.admin.UniversalConnectionPoolManager; import oracle.ucp.UniversalConnectionPoolAdapter; import oracle.ucp.UniversalConnectionPoolException; import oracle.ucp.UniversalConnectionPoolStatistics;
/** * This demo of Application Continuity uses the Universal Connection Pool (UCP) and * the JDBC thin driver to simulate a web workload with servlets concurrently * requesting connections from the pool to execute SQL on the database. * In order to show the effect of application continuity the database sessions need to be * killed manually. Without AC this demo will crash. With AC only a small response time * increase should be seen. * * This demo is packaged in a jar to facilitate its execution. * See runreplay and runnoreplay script files. * Beforehand, you need to change the configuration parameters in "acdemo.properties". * * Note that the demo will run forever and needs to be killed. * * @author Jean de Lavarene * @contributing author Kuassi Mensah * @contributing author Troy Anthony */ public class ACDemo extends Thread {
// Number of concurrent threads running in the application // UCP is tuned to have MAX and MIN limit set to this
// How often should the thread print statistics. Time in milliseconds static final int DELAY_BETWEEN_PRINTING_STATS = 5 * 1000; static boolean VERBOSE = true; private static String PROP_FILE="acdemo.properties"; static int connectionWaitTimeout = 3; // seconds static int nbOfThreads = 0; static int ucpPoolSize = 0; static int threadThinkTime = 0; // Do not require validateConnectionOnBorrow if patch 31112088 applied static boolean validateConnectionOnBorrow = false;
static boolean applicationCrashOnErrors = true; static boolean fastConnectionFailover = false;
static boolean cpuIntensive = false;
static final Object statsLock = new Object(); static int operationsCompleted = 0; // timeSpentOnDb should not include wait time static long timeSpentOnDb = 0; static int nbOfExceptions = 0;
static public void main(String args[]) throws SQLException { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null;
if(args.length > 0) { PROP_FILE = args[0]; } try { Properties prop = new Properties(); try { prop.load(new FileInputStream(PROP_FILE)); } catch (IOException e) {e.printStackTrace();} nbOfThreads = Integer.parseInt(prop.getProperty("number_of_threads")); ucpPoolSize = Integer.parseInt(prop.getProperty("ucp_pool_size")); threadThinkTime = Integer.parseInt(prop.getProperty("thread_think_time","20")); VERBOSE = Boolean.parseBoolean(prop.getProperty("verbose","false")); applicationCrashOnErrors = Boolean.parseBoolean(prop.getProperty("application_crash_on_errors","true")); fastConnectionFailover = Boolean.parseBoolean(prop.getProperty("fastConnectionFailover","false")); validateConnectionOnBorrow = Boolean.parseBoolean(prop.getProperty("validateConnectionOnBorrow","false")); connectionWaitTimeout = Integer.parseInt(prop.getProperty("connectionWaitTimeout","3")); PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource(); pds.setConnectionFactoryClassName(prop.getProperty("datasource")); // Set DataSource Property pds.setUser(prop.getProperty("username","HR")); pds.setPassword(prop.getProperty("password","HR")); pds.setURL(prop.getProperty("url")); pds.setConnectionPoolName(UCP_POOL_NAME); pds.setConnectionWaitTimeout(connectionWaitTimeout); pds.setFastConnectionFailoverEnabled(fastConnectionFailover); pds.setValidateConnectionOnBorrow(validateConnectionOnBorrow); pds.setInitialPoolSize(ucpPoolSize); pds.setMinPoolSize(ucpPoolSize); pds.setMaxPoolSize(ucpPoolSize); pds.setConnectionProperties(prop);
System.out.println("######################################################"); System.out.println("Connecting to " + prop.getProperty("url")); System.out.println(" # of Threads : " + nbOfThreads); System.out.println(" UCP pool size : " + ucpPoolSize); System.out.println("FCF Enabled: " + pds.getFastConnectionFailoverEnabled()); System.out.println("VCoB Enabled: " + pds.getValidateConnectionOnBorrow()); System.out.println("ONS Configuration: " + pds.getONSConfiguration()); System.out.println("Enable Intensive Wload: " + cpuIntensive); System.out.format("Thread think time : %d ms\n", threadThinkTime); System.out.println("######################################################"); System.out.println(""); // Start the connection pool with the PoolManager: UniversalConnectionPoolManager poolManager = UniversalConnectionPoolManagerImpl.getUniversalConnectionPoolManager(); poolManager.createConnectionPool((UniversalConnectionPoolAdapter)pds); System.out.println("Starting the pool now... (please wait)"); long start = System.currentTimeMillis(); poolManager.startConnectionPool(UCP_POOL_NAME); long end = System.currentTimeMillis(); System.out.println("Pool is started in "+(end-start)+"ms"); ACDemo u = new ACDemo(); u.runDemo(pds); } catch (SQLException sqlea) { do{ sqlea.printStackTrace(); sqlea = sqlea.getNextException(); } while(sqlea != null); } catch (Exception ea) { System.out.println("Error during execution: " + ea); ea.printStackTrace(); } finally { if (rs != null) rs.close(); if (pstmt != null) pstmt.close(); if (conn != null) conn.close(); }
}
/** * Start the worker threads: */ private void runDemo(PoolDataSource pds) throws Exception {
Thread[] t = new Thread[nbOfThreads];
for (int i = 0; i < nbOfThreads; ++i) { t[i] = new Thread(new Worker(pds)); t[i].start(); }
/* Stats thread - displays some UCP statistics */ Thread stat = new PrintStatThread(); stat.start(); /* AC Stats thread - displays AC client statistics Note: The acchk utility is database resident in 19.12 and provides view-based access to the Application Continuity statistics. The acchk utility is available from within Orachk prior to Oracle Database 19c */ //Thread acStat = new PrintACStatThread(pds); //acStat.start(); // Wait for all threads to be done: for (int i = 0; i < nbOfThreads; ++i) { t[i].join(); } needToPrintStats = false; stat.interrupt(); //acStat.interrupt();
}
static boolean needToPrintStats = true; static String UCP_POOL_NAME="actest"; }
|
下面是调用ACDemo.java的,能够进行Transaction Replay的shell程序:
它运行时,我们kill掉一个实例(UCP会连接serv3的两个实例),不会报错。查看hr.emp表会发现,其中的行数还在不断增加。而shell程序的输出如下:
[oracle@station3 acdemo]$ ./runreplay
######################################################
Connecting to jdbc:oracle:thin:@(DESCRIPTION=(CONNECT_TIMEOUT=90)(RETRY_COUNT=50)(RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=scan3.example.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=serv3.example.com)))
# of Threads : 10
UCP pool size : 20
FCF Enabled: true
VCoB Enabled: true
ONS Configuration: null
Enable Intensive Wload: false
Thread think time : 50 ms
######################################################
Starting the pool now... (please wait)
Pool is started in 858ms
4 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 461, avg response time from db 41ms
1 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 979, avg response time from db 39ms
4 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 1493, avg response time from db 39ms
1 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 2166, avg response time from db 19ms
2 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 2840, avg response time from db 19ms
1 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 3508, avg response time from db 19ms
2 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 4163, avg response time from db 20ms
2 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 4767, avg response time from db 26ms
5 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 5407, avg response time from db 22ms
3 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 6056, avg response time from db 21ms
5 borrowed, 1 pending, 0ms getConnection wait, TotalBorrowed 6622, avg response time from db 30ms
2 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 7307, avg response time from db 18ms
3 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 8000, avg response time from db 17ms
3 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 8632, avg response time from db 23ms
2 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 9239, avg response time from db 26ms
2 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 9910, avg response time from db 19ms
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 10588, avg response time from db 19ms
4 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11286, avg response time from db 17ms
3 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11981, avg response time from db 17ms
7 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 12657, avg response time from db 19ms
1 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 13327, avg response time from db 20ms
3 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 13976, avg response time from db 22ms
2 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 14665, avg response time from db 18ms
1 borrowed, 2 pending, 0ms getConnection wait, TotalBorrowed 15362, avg response time from db 17ms
4 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 16067, avg response time from db 16ms
6 borrowed, 2 pending, 0ms getConnection wait, TotalBorrowed 16738, avg response time from db 20ms
5 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 17269, avg response time from db 39ms
1 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 17913, avg response time from db 23ms
4 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 18610, avg response time from db 17ms
3 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 19310, avg response time from db 17ms
3 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 20011, avg response time from db 17ms
5 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 20715, avg response time from db 17ms
4 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 21400, avg response time from db 18ms
1 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 21972, avg response time from db 32ms
3 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 22649, avg response time from db 19ms
3 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 23258, avg response time from db 26ms
2 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 23806, avg response time from db 35ms
1 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 24459, avg response time from db 22ms
2 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 25078, avg response time from db 26ms
3 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 25745, avg response time from db 20ms
5 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 26230, avg response time from db 48ms
6 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 26794, avg response time from db 32ms
1 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 27412, avg response time from db 26ms
2 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 28101, avg response time from db 18ms
6 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 28787, avg response time from db 18ms
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 29421, avg response time from db 23ms
10 borrowed, 2 pending, 0ms getConnection wait, TotalBorrowed 30030, avg response time from db 27ms --所有会话被kill -9(实例的smon被kill -9)
java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: No valid connection available
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:479)
at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:154)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1127)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1060)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1006)
at acdemo.Worker.run(Worker.java:107)
at java.lang.Thread.run(Thread.java:682)
Caused by: oracle.ucp.UniversalConnectionPoolException: No valid connection available
at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:359)
at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:58)
at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:122)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:159)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:120)
at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:170)
at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:849)
at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:82)
at oracle.ucp.jdbc.oracle.OracleReplayableConnectionConnectionPool.borrowConnection(OracleReplayableConnectionConnectionPool.java:76)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1103)
... 4 more
java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: No valid connection available
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:479)
at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:154)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1127)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1060)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1006)
at acdemo.Worker.run(Worker.java:107)
at java.lang.Thread.run(Thread.java:682)
Caused by: oracle.ucp.UniversalConnectionPoolException: No valid connection available
at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:359)
at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:58)
at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:122)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:159)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:120)
at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:170)
at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:849)
at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:82)
at oracle.ucp.jdbc.oracle.OracleReplayableConnectionConnectionPool.borrowConnection(OracleReplayableConnectionConnectionPool.java:76)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1103)
... 4 more
Application error handling: attempting to get a new connection Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: No valid connection available.
Application error handling: attempting to get a new connection Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: No valid connection available.
Exception in thread "Thread-11" java.lang.NullPointerException
at acdemo.Worker.run(Worker.java:150)
at java.lang.Thread.run(Thread.java:682)
Exception in thread "Thread-14" java.lang.NullPointerException
at acdemo.Worker.run(Worker.java:150)
at java.lang.Thread.run(Thread.java:682)--恢复成功
7 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 30038
7 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 30038
7 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 30038
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 30419, avg response time from db 356ms
3 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 30996, avg response time from db 15ms
2 borrowed, 1 pending, 0ms getConnection wait, TotalBorrowed 31510, avg response time from db 21ms
2 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 32040, avg response time from db 20ms
5 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 32541, avg response time from db 25ms
2 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 33017, avg response time from db 20ms
1 borrowed, 1 pending, 0ms getConnection wait, TotalBorrowed 33578, avg response time from db 23ms ...... |
5. 使用oracle.ucp.admin.UniversalConnectionPoolManager来进行对比测试Oracle RAC TRANSACTION可飘移服务(结果失败): 下面是 调用ACDemo.java的,不能够进行Transaction Replay的shell程序::
java:82)
at oracle.ucp.common.Database.createPooledConnection(Database.java:268)
at oracle.ucp.common.Cluster.create(Cluster.java:234)
at oracle.ucp.common.Core.growBorrowed(Core.java:634)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionWithoutCountingRequests(UniversalConnectionPoolImpl.java:230)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:139)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:120)
at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:170)
at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:849)
at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:82)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1103)
... 4 more
Caused by: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:662)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:560)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:311)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:235)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:96)
... 15 more
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:275)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:264)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
... 21 more
java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:479)
at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:154)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1127)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1031)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1006)
at acdemo.Worker.run(Worker.java:107)
at java.lang.Thread.run(Thread.java:682)
Caused by: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:359)
at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:58)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:102)
at oracle.ucp.jdbc.oracle.OracleDataSourceConnectionFactoryAdapter.createConnection(OracleDataSourceConnectionFactoryAdapter.java:82)
at oracle.ucp.common.Database.createPooledConnection(Database.java:268)
at oracle.ucp.common.Cluster.create(Cluster.java:234)
at oracle.ucp.common.Core.growBorrowed(Core.java:634)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionWithoutCountingRequests(UniversalConnectionPoolImpl.java:230)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:139)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:120)
at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:170)
at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:849)
at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:82)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1103)
... 4 more
Caused by: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:662)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:560)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:311)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:235)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:96)
... 15 more
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:275)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:264)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
... 21 more
java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:479)
at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:154)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1127)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1031)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1006)
at acdemo.Worker.run(Worker.java:107)
at java.lang.Thread.run(Thread.java:682)
Caused by: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:359)
at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:58)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:102)
at oracle.ucp.jdbc.oracle.OracleDataSourceConnectionFactoryAdapter.createConnection(OracleDataSourceConnectionFactoryAdapter.java:82)
at oracle.ucp.common.Database.createPooledConnection(Database.java:268)
at oracle.ucp.common.Cluster.create(Cluster.java:234)
at oracle.ucp.common.Core.growBorrowed(Core.java:634)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionWithoutCountingRequests(UniversalConnectionPoolImpl.java:230)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:139)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:120)
at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:170)
at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:849)
at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:82)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1103)
... 4 more
Caused by: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:662)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:560)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:311)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:235)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:96)
... 15 more
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:275)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:264)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
... 21 more
java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:479)
Application error handling: attempting to get a new connection Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
.
Application error handling: attempting to get a new connection Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
.
at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:154)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1127)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1031)
Application error handling: attempting to get a new connection Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
.
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1006)
at acdemo.Worker.run(Worker.java:107)
at java.lang.Thread.run(Thread.java:682)
Caused by: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:359)
at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:58)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:102)
at oracle.ucp.jdbc.oracle.OracleDataSourceConnectionFactoryAdapter.createConnection(OracleDataSourceConnectionFactoryAdapter.java:82)
at oracle.ucp.common.Database.createPooledConnection(Database.java:268)
at oracle.ucp.common.Cluster.create(Cluster.java:234)
at oracle.ucp.common.Core.growBorrowed(Core.java:634)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionWithoutCountingRequests(UniversalConnectionPoolImpl.java:230)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:139)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:120)
at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:170)
at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:849)
at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:82)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1103)
... 4 more
Caused by: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:662)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:560)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:311)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:235)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:96)
... 15 more
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:275)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:264)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
... 21 more
java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:479)
at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:154)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1127)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1031)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1006)
at acdemo.Worker.run(Worker.java:107)
at java.lang.Thread.run(Thread.java:682)
Caused by: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:359)
at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:58)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:102)
at oracle.ucp.jdbc.oracle.OracleDataSourceConnectionFactoryAdapter.createConnection(OracleDataSourceConnectionFactoryAdapter.java:82)
at oracle.ucp.common.Database.createPooledConnection(Database.java:268)
at oracle.ucp.common.Cluster.create(Cluster.java:234)
at oracle.ucp.common.Core.growBorrowed(Core.java:634)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionWithoutCountingRequests(UniversalConnectionPoolImpl.java:230)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:139)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:120)
at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:170)
at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:849)
at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:82)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1103)
... 4 more
Caused by: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:662)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:560)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:311)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:235)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:96)
... 15 more
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:275)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:264)
Application error handling: attempting to get a new connection Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
. at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
... 21 more
java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:479)
at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:154)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1127)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1031)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1006)
at acdemo.Worker.run(Worker.java:107)
at java.lang.Thread.run(Thread.java:682)
Caused by: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:359)
at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:58)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:102)
at oracle.ucp.jdbc.oracle.OracleDataSourceConnectionFactoryAdapter.createConnection(OracleDataSourceConnectionFactoryAdapter.java:82)
at oracle.ucp.common.Database.createPooledConnection(Database.java:268)
at oracle.ucp.common.Cluster.create(Cluster.java:234)
at oracle.ucp.common.Core.growBorrowed(Core.java:634)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionWithoutCountingRequests(UniversalConnectionPoolImpl.java:230)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:139)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:120)
at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:170)
at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:849)
at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:82)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1103)
... 4 more
Caused by: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:662)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:560)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:311)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:235)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:96)
... 15 more
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:275)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:264)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
... 21 more
Application error handling: attempting to get a new connection Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
.
Exception in thread "Thread-6" java.lang.NullPointerException
at acdemo.Worker.run(Worker.java:150)
at java.lang.Thread.run(Thread.java:682)
Exception in thread "Thread-13" Exception in thread "Thread-10" java.lang.NullPointerException
at acdemo.Worker.run(Worker.java:150)
at java.lang.Thread.run(Thread.java:682)
Exception in thread "Thread-5" java.lang.NullPointerException
at acdemo.Worker.run(Worker.java:150)
at java.lang.Thread.run(Thread.java:682)
Exception in thread "Thread-4" java.lang.NullPointerException
at acdemo.Worker.run(Worker.java:150)
at java.lang.Thread.run(Thread.java:682)
Exception in thread "Thread-9" java.lang.NullPointerException
at acdemo.Worker.run(Worker.java:150)
at java.lang.Thread.run(Thread.java:682)
Application error handling: attempting to get a new connection Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
.java.lang.NullPointerException
at acdemo.Worker.run(Worker.java:150)
at java.lang.Thread.run(Thread.java:682)
Exception in thread "Thread-11" java.lang.NullPointerException
at acdemo.Worker.run(Worker.java:150)
at java.lang.Thread.run(Thread.java:682)
java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:479)
at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:154)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1127)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1031)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1006)
at acdemo.Worker.run(Worker.java:107)
at java.lang.Thread.run(Thread.java:682)
Caused by: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:359)
at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:58)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:102)
at oracle.ucp.jdbc.oracle.OracleDataSourceConnectionFactoryAdapter.createConnection(OracleDataSourceConnectionFactoryAdapter.java:82)
at oracle.ucp.common.Database.createPooledConnection(Database.java:268)
at oracle.ucp.common.Cluster.create(Cluster.java:234)
at oracle.ucp.common.Core.growBorrowed(Core.java:634)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionWithoutCountingRequests(UniversalConnectionPoolImpl.java:230)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:139)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:120)
at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:170)
at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:849)
at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:82)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1103)
... 4 more
Caused by: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:662)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:560)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:311)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:235)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:96)
... 15 more
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:275)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:264)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
... 21 more
java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:479)
at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:154)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1127)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1031)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1006)
at acdemo.Worker.run(Worker.java:107)
at java.lang.Thread.run(Thread.java:682)
Caused by: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:359)
at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:58)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:102)
at oracle.ucp.jdbc.oracle.OracleDataSourceConnectionFactoryAdapter.createConnection(OracleDataSourceConnectionFactoryAdapter.java:82)
at oracle.ucp.common.Database.createPooledConnection(Database.java:268)
at oracle.ucp.common.Cluster.create(Cluster.java:234)
at oracle.ucp.common.Core.growBorrowed(Core.java:634)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionWithoutCountingRequests(UniversalConnectionPoolImpl.java:230)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:139)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:120)
at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:170)
at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:849)
at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:82)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1103)
... 4 more
Caused by: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:662)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:560)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:311)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:235)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:96)
... 15 more
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:275)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:264)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
... 21 more
Application error handling: attempting to get a new connection Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
.
Exception in thread "Thread-7" java.lang.NullPointerException
at acdemo.Worker.run(Worker.java:150)
at java.lang.Thread.run(Thread.java:682)
java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:479)
at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:154)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1127)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1031)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1006)
at acdemo.Worker.run(Worker.java:107)
at java.lang.Thread.run(Thread.java:682)
Caused by: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:359)
at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:58)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:102)
at oracle.ucp.jdbc.oracle.OracleDataSourceConnectionFactoryAdapter.createConnection(OracleDataSourceConnectionFactoryAdapter.java:82)
at oracle.ucp.common.Database.createPooledConnection(Database.java:268)
at oracle.ucp.common.Cluster.create(Cluster.java:234)
at oracle.ucp.common.Core.growBorrowed(Core.java:634)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionWithoutCountingRequests(UniversalConnectionPoolImpl.java:230)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:139)
at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:120)
at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:170)
at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:849)
at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:82)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1103)
... 4 more
Caused by: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:662)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:560)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:311)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:235)
at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:96)
... 15 more
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:275)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:264)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
... 21 more
Application error handling: attempting to get a new connection Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
.
Exception in thread "Thread-12" java.lang.NullPointerException
at acdemo.Worker.run(Worker.java:150)
at java.lang.Thread.run(Thread.java:682)
Application error handling: attempting to get a new connection Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
.
Exception in thread "Thread-8" java.lang.NullPointerException
at acdemo.Worker.run(Worker.java:150)
at java.lang.Thread.run(Thread.java:682)
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001, avg response time from db 12ms
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001
0 borrowed, 0 pending, 0ms getConnection wait, TotalBorrowed 11001...... |
|