Så efter omhyggelig dog og få lidt ekstra hjælp fra Oracle-forummet. Jeg forstår endelig, hvorfor ovennævnte kode giver den fejlmeddelelse, som jeg modtager. Se her for svar
Fordi jeg indstiller datakilden hver gang løkken går rundt, opretter jeg i det væsentlige mere end én pool. Måden at gøre dette på er at oprette en pulje og derefter trække forbindelser fra den pulje. Ny kode til at erstatte GetOracleConnection
Jeg oprettede en singleton-klasse til datakilde og i kode henter jeg simpelthen forbindelsen fra datakilden 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;
}
}