viernes, 6 de mayo de 2011

Cómo configurar un objeto DataSource con GlassFish

Si estáis trabajando con aplicaciones web con servlets y bases de datos os puede resultar muy útil usar con contenedor de datos. En posts anteriores os expliqué como utilizar el Apache Tomcat. Existen otros contenedores como Weblogic de Oracle o GlassFish, entre otros.

En esta ocasión explicaré como configurar un Objeto DataSource con GlassFish server 3, que será muy útil a la hora de utilizar bases de datos en nuestra aplicación web.

Para acceder a la consola de administración* de GlassFish basta con escribir en el explorador: http://localhost:4848 (El puerto 4848 es el que se asigna por defecto cuando se instala, si lo habéis cambiado tendréis que poner el que definieseis).

Os aparecerá algo como esto:

En la parte izquierda aparece un menú con todas las opciones de administrador que ofrece GlassFish. En nuestro caso nos interesa configurar un recurso nuevo (un objeto DataSource) que usaremos con el API JDBC de Java por lo que seleccionaremos Recursos y dentro JDBC. Nos aparecerán dos directorios: Recursos JDBC y Conjunto de conexiones:


Conjunto de conexiones
El primer paso es crear un Conjunto de conexiones nuevo, por lo tanto seleccionaremos el segundo directorio. Nos aparecerán en el lado derecho todos los conjuntos de conexiones configurados en el servidor:


Para crear una nueva pulsamos en Nuevo... Nos aparecerá el primer paso de la configuracion:


En el campo nombre escribiremos el nombre que queramos darle al conjunto de conexiones y que más tarde usaremos para inicializar el DataSource.
En el Tipo de recurso seleccionaremos javax.sql.DataSource
Y por ultimo el Proveedor de la base de datos será el que vayamos a usar para nuestra aplicación web (Ej: Oracle, MySql, Postgresql, etc.)
Una vez fijados los campos, en la esquina superior derecha pincharemos en Siguiente y nos aparecerá el paso 2 para continuar con la configuración del conjunto de conexiones:

Configuración general:


Activaremos el Ping y lo demás quedará como está.

Configuración del conjunto:

Dejaremos los valores por defecto.

Transacción:
También dejaremos la configuración por defecto.

Propiedades adicionales:
El ultimo apartado nos servirá para indicar los datos de conexión con nuestra base de datos. Este paso se puede hacer de diferentes formas y funcionaría a la perfección. Os voy a contar dos alternativas:
  • Rellenar campos de la url por separado:
Para establecer una conexión con nuestra base de datos nos hacen falta tres cosas: url de la base de datos, el usuario y la contraseña. La url está compuesta por una serie de elementos (puerto, servidor, base de datos, etc.) que variarán en función de la base de datos que usemos (oracle, mysql, etc.). Si no conocemos o no sabemos como escribir la url pero si conocemos la información de la que está compuesta bastará con indicarle a GlassFish ésta información por separado.


  • Rellenar la url completa:
Si conocemos la url o sabemos como definirla, en lugar de incluir los elementos por separado podemos pulsar en agregar propiedad (en el caso de que no exista la propiedad url) y añadirla junto con los campos user y password.


Puede que GlassFish os añada propiedades adicionales a las anteriormente citadas. En principio no serían necesarias por lo que las podéis eliminar.

Una vez hecho todo esto le damos a finalizar y nos creará el conjunto de conexiones que aparecerá en la lista con todos los demás. Para comprobar si lo hemos configurado bien basta con abrirlo pinchando en el y el la pestaña General pinchamos en Sondeo. Si todo ha ido bien deberá aparecer el pensaje "Ping realizado con exito".


Recurso JDBC
Llegados a éste punto ya tenemos el DataSource creado. Ahora nos tendremos que crear un recurso JDBC para poder usarlo desde nuestra aplicación. Para ello entraremos en el menú de la parte izquierda mencionado anteriormente entraremos en Recursos JDBC.

Seleccionaremos Nuevo..


Para crear el nuevo recurso son necesarios dos simples pasos:

Primero le pondremos nombre al recurso (Nombre JNDI) con la siguiente sintaxis: jdbc/nombreDataSource
nombreDataSource tendrá que ser el del DataSource creado en el apartado anterior.

El segundo paso es indicar el nombre del conjunto de conexiones, que será el de nuestro DataSource.

El resto de campos que aparecen los dejaremos por defecto como están.


Y ya está. Ya tenemos un DataSource configurado y listo para usar en nuestras aplicaciones web con java y servlets.

*NOTA: Para poder acceder a la consola de administración previamente tendréis que haber arrancado GlassFish