Vì vậy, sau khi cẩn thận và nhận được thêm một chút trợ giúp từ diễn đàn Oracle. Cuối cùng tôi cũng hiểu tại sao đoạn mã được tham chiếu ở trên lại đưa ra thông báo lỗi mà tôi đang nhận được. Xem tại đây để trả lời
Bởi vì tôi đang thiết lập nguồn dữ liệu mỗi khi vòng lặp lặp lại, về cơ bản tôi đang tạo nhiều hơn một nhóm. Cách để thực hiện việc này là tạo một nhóm và kéo các kết nối từ nhóm đó. Mã mới để thay thế cho GetOracleConnection
Tôi đã tạo một lớp singleton cho nguồn dữ liệu và trong mã, tôi chỉ cần truy xuất kết nối từ nguồn dữ liệu như vậy
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;
}
}