jueves, 24 de mayo de 2012

Configuración de un Pool de conexiones desde Glashfish a Oracle

Integrantes: Canales Diego
Painen Hugo
Dossow Cristian

Pre-requisitos.
GlassFish Server y netbeans descargar
ojdbc6 descargar
oracle-xe descargar

Connection pool "es una colección de conexiones abiertas a una base de datos de manera que puedan ser reutilizadas al realizar múltiples consultas o actualizaciones."

Pasos: 

1. Copiamos el "ojdbc6.jar" a la carpeta de glassfish

cp ojdbc6.jar /home/usuario /.GlassFish_Server/glassfish/domains/domain1/lib/ext

2. Ejecutamos el servicio de glassfish y nos dirigimos a su pagina para configurar el connection pool.

> http://localhost:4848/common/index.jsf


Luego nos dirigimos a JDBC> Pool de Conexiones JDBC



Nuevo>


>Siguiente

Aquí es recomendable activar el ping, ya que como  indica "Si se activa, se hace ping en el pool durante la creación o la nueva configuración a fin de identificar y advertir si hay valores erróneos para sus atributos  ", osea nos puede ayudar a encontrar errores en el caso de que se encuentren.

Agregamos las propiedades, como usuario, password y url


Finalmente creamos el JDBC Resource.


Con estos pasos estaría finalizada la configuración.

3. Pruebas


Codigo jsp:


<%@page import="java.sql.Connection"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="javax.naming.NamingException"%>
<%@page import="java.sql.SQLException"%>
<%@page import="javax.sql.DataSource"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.naming.Context"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>No molestar, estoy el pool !!!</title>
    </head>
    <body>
        <h1>Estoy en Pool!</h1>
        <%
            Connection connection = null;   // objeto conexion

            try {
                System.out.println("\n\n\n\n ------------");
                Context ctx = new InitialContext();     // interfaz representa un contexto de nomenclatura,
                DataSource ds = (DataSource) ctx.lookup("jdbc/dbOraclepool");   // definimos el pool de conexiones a utilizar

                System.out.println("------------ \n\n\n\n ");
                connection = ds.getConnection();    // obtenemos la conexion a traves de un pool de conexiones

                if (connection == null) {
                    out.print("<p>Conexion es null</p>");                   
                }

                // A continuacion se muestra una consulta normal a la base de datos
                String query = "SELECT * FROM palabra";
                PreparedStatement statement = connection.prepareStatement(query);
                ResultSet rs = statement.executeQuery();
                while (rs.next()) {
                    out.print(rs.getString(2) + "<br>");    // visualizar la columna 2 del ResultSet.
                }               
            } catch (NamingException ex) {
                System.out.println("Error NamingException: " + ex.getMessage());
            } catch (SQLException ex) {
                System.out.println("Error SQLException: " + ex.getMessage());
            }
        %>
    </body>
</html>


Del codigo la linea mas importante es la linea donde se indica el JDBC.

  DataSource ds = (DataSource) ctx.lookup("jdbc/dbOraclepool"); 

Donde deben indicar el nombre de su JDBC.

Resultado: