Непрерывность приложений Oracle - не удается получить воспроизведение данных Souce
Я не могу получить воспроизводимый источник данных (код прилагается ниже).
PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
pds.setConnectionFactoryClassName("oracle.jdbc.replay.OracleDataSourceImpl");
System.out.println("connection factory set");
String URL = "jdbc:oracle:thin:@(DESCRIPTION = (TRANSPORT_CONNECT_TIMEOUT=3) (RETRY_COUNT=20)(FAILOVER=ON) " +
" (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = " +
" (SERVER = DEDICATED) (SERVICE_NAME=orcl)))";
System.out.println("Using URL\n" + URL);
pds.setURL(URL);
pds.setUser("system");
pds.setPassword("oracle");
pds.setInitialPoolSize(10);
pds.setMinPoolSize(10);
pds.setMaxPoolSize(20);
pds.setConnectionWaitTimeout(10);
// RAC Features
pds.setConnectionPoolName("Application Continuity Pool");
pds.setFastConnectionFailoverEnabled(true);
System.out.println("pool configured, trying to get a connection");
Connection conn = null;
try{
conn = pds.getConnection();
}catch(Exception e){
e.printStackTrace();
}
if (conn == null || !((ValidConnection) conn).isValid()) {
System.out.println("connection is not valid");
throw new Exception ("invalid connection obtained from the pool");
}
if ( conn instanceof oracle.jdbc.replay.ReplayableConnection ) {
System.out.println("got a replay data source");
} else {
System.out.println("this is not a replay data source. Why not?");
}
Ниже приведены системные распечатки, которые я получаю из приведенного выше кода, которые показывают, что экземпляр соединения не имеет воспроизводимого типа.
установка фабрики соединений с использованием URL-адреса jdbc:oracle:thin:@(DESCRIPTION = (TRANSPORT_CONNECT_TIMEOUT=3) (RETRY_COUNT=20)(FAILOVER=ON) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl))) настроен пул, при попытке установить соединение это не источник данных воспроизведения. Почему бы и нет?
Я получил код с сайта ниже и немного изменил, чтобы добавить темы и имитировать AC. Но я не могу получить воспроизводимый источник данных.
https://martincarstenbach.wordpress.com/2013/12/13/playing-with-application-continuity-in-rac-12c/
1 ответ
Пожалуйста, убедитесь, что у вас есть oracle.jdbc.replay.OracleDataSourceImpl в вашем classpath, другими словами, пожалуйста, убедитесь, что у вас есть драйвер 12.1.0.2 JDBC в вашем classpath.