Så efter att ha varit försiktig och fått lite extra hjälp från Oracle-forumet. Jag förstår äntligen varför den ovan refererade koden ger felmeddelandet som jag får. Se här för svar
Eftersom jag ställer in datakällan varje gång loopen går runt, skapar jag i princip mer än en pool. Sättet att göra detta är att skapa en pool och sedan dra anslutningar från den poolen. Ny kod för att ersätta GetOracleConnection
Jag skapade en singleton-klass för datakälla och i kod hämtar jag helt enkelt anslutningen från datakällan som sådan
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;
}
}