Я использую Oracle UCP JDBC, и следующий метод предназначен для получения соединения из пула соединений.
private static PoolDataSource poolDataSource;
....
static synchronized Connection createConnection() throws SQLException {
if (poolDataSource == null) {
poolDataSource = PoolDataSourceFactory.getPoolDataSource();
poolDataSource.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
poolDataSource.setURL(url);
poolDataSource.setUser(user);
poolDataSource.setPassword(password);
poolDataSource.setInitialPoolSize(1);
poolDataSource.setMinPoolSize(1);
poolDataSource.setMaxPoolSize(10);
}
Connection connection = poolDataSource.getConnection();
return connection;
}
Я знаю, что существует метод Connection.isValid () для проверки, получено ли соединениеиз бассейна действует.Но если isValid () возвращает false, что я могу сделать?Как заставить пул соединений восстановить соединение?
Также обратите внимание, что в нашей тестовой среде мы не используем RAC (Real Application Clusters), но в производственной среде у нас есть RAC.Я прочитал, что для RAC нам необходимо выполнить некоторую настройку в кодах, чтобы RAC работал.
Возможно ли иметь одинаковые коды для сред RAC и не RAC, чтобы недопустимые соединения вбассейн восстановлен?
Заранее спасибо.