Dus na voorzichtigheid en een beetje extra hulp van het Oracle-forum. Ik begrijp eindelijk waarom de bovenstaande code de foutmelding geeft die ik ontvang. Zie hier voor reactie
Omdat ik de gegevensbron instel telkens wanneer de lus rondgaat, maak ik in wezen meer dan één pool. De manier om dit te doen, is door één pool aan te maken en vervolgens verbindingen uit die pool te halen. Nieuwe code ter vervanging van de GetOracleConnection
Ik heb een singleton-klasse voor gegevensbron gemaakt en in code haal ik eenvoudig de verbinding van de gegevensbron op zoals deze
Connection conn = Database.getInstance().GetPoolSource().getConnection();
package com.jam.DB;
import oracle.ucp.jdbc.PoolDataSource;
import oracle.ucp.jdbc.PoolDataSourceFactory;
public class Database {
private static Database dbIsntance;
private static PoolDataSource pds;
private Database() {
// private constructor //
}
public static Database getInstance() {
if (dbIsntance == null) {
dbIsntance = new Database();
}
return dbIsntance;
}
public PoolDataSource GetPoolSource() {
if (pds == null) {
pds = PoolDataSourceFactory.getPoolDataSource();
try {
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setURL("jdbc:oracle:thin:@//localhost:1521/xe");
pds.setUser("system");
pds.setPassword("xxxx");
pds.setMaxStatements(15);
return pds;
} catch (Exception e) {
}
return pds;
}
return pds;
}
}