Foros del Web » Programación para mayores de 30 ;) » Java »

Pool de Conexiones Postgre

Estas en el tema de Pool de Conexiones Postgre en el foro de Java en Foros del Web. Holas saben toy modificando un codigo s d un pool d conexiones en Oracle y quiero hacerlo pero para el Postgre, mi servidor s el ...
  #1 (permalink)  
Antiguo 01/08/2005, 16:45
 
Fecha de Ingreso: febrero-2005
Mensajes: 15
Antigüedad: 19 años, 2 meses
Puntos: 0
Pool de Conexiones Postgre

Holas saben toy modificando un codigo s d un pool d conexiones en Oracle y quiero hacerlo pero para el Postgre, mi servidor s el Tomcat y sta n un server2000



Quisiera saber si sta bien mi codigo o hay error s q s una aplicacion grand y bueno lo q hice es solo poner esta pag d java y uno q accede a los datos y me da el sigut error en la salida del TOmcat:

java.lang.NullPointerException

el codigo para ello s l sgt:
Postgre:
**************

import java.sql.*;
import javax.sql.*;
import org.postgresql.jdbc3.*;
import org.postgresql.Driver;

/** Maneja un pool de conexiones internas hacia un esquema de base de datos Postgre.
*/

public class PoolConexiones {

private Jdbc3PoolingDataSource pool = null;
private String sistema = null;

/** Crea un nuevo objeto de la clase PoolConexiones.
*/
public PoolConexiones() {
}

/** Crea un nuevo objeto de la clase PoolConexiones.
*/
public PoolConexiones(String sistema) {
this.sistema = sistema;
}

/** Devuelve el valor actual de la propiedad 'sistema'.
*/
public String getSistema() {
return sistema;
}

/** Establece externamente el valor de la propiedad 'sistema'.
*/
public void setSistema(String sistema) {
this.sistema = sistema;
}

/** Devuelve una conexión desde el pool de conexiones. Antes de ejecutar este método
* se debe haber establecido el valor de la propiedad 'sistema' para conectarse a él.
* @throws SQLException
* @return Una conexión JDBC
*/
public Connection traerConexion() throws SQLException {
if(pool==null) {
prepararPool();
}
return pool.getConnection();
}

/** Crea el pool de conexiones a la base de datos en "Esquema Dinámico".
* Los parámetros de la base de datos se extraen del archivo "db.properties"
* @throws SQLException
*/
private void prepararPool() throws SQLException {
java.util.ResourceBundle prop = java.util.ResourceBundle.getBundle("com.tecsup.int ranet.config.db");
pool = new Jdbc3PoolingDataSource();

pool.setPortNumber(Integer.parseInt(prop.getString ("port")));
pool.setUser(prop.getString("user"));
pool.setPassword(prop.getString("passw"));
pool.setMaxConnections(Integer.parseInt(prop.getSt ring("maxlim")));
pool.setServerName(prop.getString("server"));
pool.setDatabaseName(prop.getString("bd"));
}

/** Destructor sobreescrito para cerrar el pool de conexiones cuando se destruya
* una instancia de esta clase.
*/
protected void finalize() {
if(pool!=null) {
try {
pool.close();
}
catch(Exception e) {
}
}
}
}


Oracle
********

import java.sql.*;
import javax.sql.*;
import oracle.sql.*;
import oracle.jdbc.driver.*;
import oracle.jdbc.pool.*;

/** Maneja un pool de conexiones internas hacia un esquema de base de datos Oracle.
*/

public class PoolConexiones {

private OracleConnectionCacheImpl pool = null;
private String sistema = null;

/** Crea un nuevo objeto de la clase PoolConexiones.
*/
public PoolConexiones() {
}

/** Crea un nuevo objeto de la clase PoolConexiones.
*/
public PoolConexiones(String sistema) {
this.sistema = sistema;
}

/** Devuelve el valor actual de la propiedad 'sistema'.
*/
public String getSistema() {
return sistema;
}

/** Establece externamente el valor de la propiedad 'sistema'.
*/
public void setSistema(String sistema) {
this.sistema = sistema;
}

/** Devuelve una conexión desde el pool de conexiones. Antes de ejecutar este método
* se debe haber establecido el valor de la propiedad 'sistema' para conectarse a él.
* @throws SQLException
* @return Una conexión JDBC
*/
public Connection traerConexion() throws SQLException {
if(pool==null) {
prepararPool();
}
return pool.getConnection();
}

/** Crea el pool de conexiones a la base de datos en "Esquema Dinámico".
* Los parámetros de la base de datos se extraen del archivo "db.properties"
* @throws SQLException
*/
private void prepararPool() throws SQLException {
java.util.ResourceBundle prop = java.util.ResourceBundle.getBundle("com.tecsup.int ranet.config.db");
pool = new OracleConnectionCacheImpl();
pool.setCacheScheme(OracleConnectionCacheImpl.DYNA MIC_SCHEME);
pool.setURL(prop.getString("url"));
pool.setUser(prop.getString("user"));
pool.setPassword(prop.getString("passw"));
pool.setMaxLimit(Integer.parseInt(prop.getString(" maxlim")));
}

/** Destructor sobreescrito para cerrar el pool de conexiones cuando se destruya
* una instancia de esta clase.
*/
protected void finalize() {
if(pool!=null) {
try {
pool.close();
}
catch(Exception e) {
}
}
}
}

la pagina q acced a los datos como prueba s el sigt:

import java.io.*;

import javax.servlet.http.*;
import javax.servlet.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import org.postgresql.jdbc3.*;

public class ServletDataSource extends HttpServlet{
Connection con;

public void init(ServletConfig config) throws ServletException {
super.init(config);
PoolConexiones pc = new PoolConexiones();
pc.setSistema("intranet");
this.getServletContext().setAttribute("poolWeb",pc );
}

public void doGet (HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
{
PrintWriter out;
try{
String id, nombre, sql, html= "";
Statement stm;
ResultSet res;
sql="select nomuno,apepterno from per_area";
stm=con.createStatement();
System.out.println("consulta sql");

res=stm.executeQuery(sql);


html += "<h1>listado de datos</h1><hr>";

while(res.next()) {
id=res.getString("nomuno");
nombre=res.getString("apepaterno");
html += id + " - ";
html += nombre + "<br>";
}
response.setContentType("text/html");
out = response.getWriter();
out.println(html);
res.close();
stm.close();
}
catch(Exception ex) {
System.out.println(ex.toString());
}

}
public void destroy(){
try{
con.close();
}catch(Exception ex){
System.out.println(ex.toString());
}
}
}
  #2 (permalink)  
Antiguo 02/08/2005, 08:52
Avatar de Ani Alamo  
Fecha de Ingreso: julio-2005
Mensajes: 35
Antigüedad: 18 años, 9 meses
Puntos: 1
Ya que tu código de apertura del Pool de Postgress está aparentemente bien.
Te puede ser de más ayuda que veas en qué línea de código te está dando el NullPointer, o que pongas trazas.
Un saludo.
__________________

Ani Alamo Gómez de González


"Sin Dios no soy nada en este mundo, sin El nada puedo ser... ni las hojas de los árboles se mueven, sino es por su gran poder. Bendito seas Señor."

Última edición por Ani Alamo; 02/08/2005 a las 08:57
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:06.