Problemas de Desconexion de BD Oracle

wario
28 de Enero del 2005
Hola que tal..

Tengo una aplicacion web (JSP/Servlet) Desarrollada con Websphere Developer que corre en Oracle IAS 9
Se conecta a una Base de Datos Oracle utilizando JNDI

Mi problema es el siguiente
La base de datos se respelada en frio (yo no lo hago y no se porque lo hacen asi) es decir se detiene el server se respaldan los archivos y se levanta el servidor oracle otra vez, esto se hace cada noche
Como se imaginaran se pierde la conexion y al dia siguiente devuelve un Nullpointer exception , esto lo soluciono reiniciando la aplicacion web

Yo lo quiero hacer por medio de codigo ya intente verificando si
if(con==null){
init();
}

el metodo init
public void init() throws ServletException {
String username = getServletConfig().getInitParameter("username");
String password = getServletConfig().getInitParameter("password");

// Verificar parametros de inicializacion
if (username == null && password == null) {
throw new UnavailableException("Initalization parameters not Specified.");
}

try {
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc/OracleDB");

con = ds.getConnection(username, password);

} catch (Exception e) {
e.printStackTrace();
}
}


Como puedo cerrar totalmente la conexion y reabrirla
ya lo intente con con.close(); y no funciona al parecer lo que debo cerrar es el datasource pero no tiene metodo close


Espero que alguien me pueda ayudar, porque ya eh intentado muchas cosas, Ya probe corriendo la aplicacion en TomCat, WebSphere AS, Oracle IAS

GRACIAS DE ANTEMANO

Chema
28 de Enero del 2005
Hola, creo que estás trabajando mal con las conexiones. Según lo que cuentas, mentienes las conexiones abiertas indefinidamente, no deberías de hacer eso, por algo, has creado un datasource en el servidor (que gestiona un pool de conexiones), déjaselo al servidor su gestión.

Es decir, cada vez que necesites una conexión pídeselo al datasource, y una finalizado tu operación, cierralo.

De esta forma, si se apaga el Oracle (durante ese tiempo si intentas acceder a las conexiones fallará), y se vuelve a arrancar; al petir otra vez una conexión al datasource, te lo devolverá sin ningún problema.