sql >> Base de Datos >  >> RDS >> Oracle

Oracle JDBC UCP y Java

Entonces, después de tener cuidado y obtener un poco de ayuda adicional del foro de Oracle. Finalmente entiendo por qué el código mencionado anteriormente está dando el mensaje de error que estoy recibiendo. Vea aquí la respuesta Debido a que estoy configurando la fuente de datos cada vez que el ciclo gira, esencialmente estoy creando más de un grupo. La forma de hacer esto es crear un grupo y luego extraer conexiones de ese grupo. Nuevo código para reemplazar GetOracleConnection Creé una clase singleton para la fuente de datos y en el código simplemente recupero la conexión de la fuente de datos como tal

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;

  }
}