PoolConexionesGlassfishNetBeans
Pool de conexiones en Glassfish (desde Glassfish y desde NetBeans)
(Elaborado por Diego E. Silva L.)
[[{TableOfContentsTitle=TablaDeContenidos} | {TableOfContents title='Tabla de contenidos'}]]
Glassfish tiene una manera peculiar de tratar los recursos JDBC: Tiene un pool de conexiones, y después un JDBC Resources. Supongo que es porque un pool de conexiones puede tener varios JDBC Resource. Los demás Servidores de Aplicaciones que he visto usan unicamente un JDBC Resource, y en ese mismo se configura la configuración del pool.
Lo que veremos ahora es como se crea un pool de conexion + jdbc resource en Glassfish. Directamente desde Glassfish, y lo mismo desde NetBeans.
Desde el mismo Glassfish
Creando el Pool de conexiones
- Entramos a la consola de glassfish. Si está en nuestro equipo local, ingresar a http://localhost:4848 Por defecto, el usuario es admin y la contraseña es adminadmin
- En el panel izquierdo de la consola de glassfish, seleccionamos Resources > JDBC > Pool Connections:
. Hacemos clic en el botón "New"
- En el asistente para crear un nuevo pool de conexiones, escribimos el nombre del pool. Cualquier nombre es válido, pero recomendable que solo esté compuesto por letras y números y sin espacios. También seleccionamos el tipo de recurso, que generalmente es java.sql.DataSource, y por último seleccionamos cuál es el proveedor de nuestra base de datos. En mi caso usaré MySQL.
Clic en "Siguiente"
- Luego, nos mostrará todas las propiedades de nuestra conexión a la base de datos. Generalmente muestra realmente todas las propiedades. Pero para este ejemplo solo usaré los que me interesa: username, password, databasename y Servername. Además activamos los checks "Permitir llamadores que no sean de componentes: " y "Conexiones no transaccionales: "
Clic en Finish
Podemos hacer clic en el botón "ping" ("sondeo" en español) para probar si la conexión ha sido exitosa.
Si nos manda error, ya que la clase controladora de JDBC no existe dentro de Glassfish, entonces necesitamos agregar el .jar correspondiente en $GLASSFISH_HOME/domains/domain/lib
Ya tenemos nuestro pool de conexiones. Ahora nos falta, el recurso JDBC. Esto es más fácil
Creando el recurso JDBC
- Seleccionamos del panel lateral izquierdo: Resources > JDBC > JDBC Resources:
Hacemos clic en el botón "New"
- Escribimos el nombre de nuestro recurso JDBC en formato JNDI. En mi ejemplo será jdbc/almacenes. Luego seleccionamos con cual pool de conexiones se asociará nuestro recurso JDBC.
Clic en "Aceptar" y Listo.
Ya tenemos nuestra conexión a la base de datos.
De ahora en adelante, cada vez que querramos usar la base de datos (en mi caso) almacenes, llamaré a jdbc/almacenes.
Desde NetBeans
Creando el Pool de Conexiones
Para realizarlo desde NetBeans, necesitamos tener el proyecto que usará la base de datos abierto. Luego, presionamos Ctrl+N (File > New File)
- Seleccionamos la categoría Glassfish y el tipo de archivo JDBC Connection Pool
Clic en Next
- Escribimos el nombre de nuestro pool de conexiones. De igual manera, cualquier no es válido, pero se recomienda que sea en base a letras y números. Además seleccionamos cual es la base de datos que usaremos. Como es una conexión nueva, entonces seleccionamos "New configuration using database", y - en mi caso - selecciono MySQL:
Clic en Next
- Seleccionamos el tipo de recurso (por omisión es java.sql.DataSource, escribimos el URL de nuestra conexión JDBC, el usuario y la contraseña.
Clic en Finish
Listo, ya tenemos nuestro pool de conexiones creado para nuestro proyecto desde NetBeans
Creando el recurso JDBC
Esto también es tan fácil como cuando se hizo desde Glassfish.
- Presionamos Ctrl+N (File > New File), seleccionamos la categoría Glassfish y el tipo de archivo JDBC Resource
Clic en Next
- Seleccionamos el pool de conexiones que estará asociado a nuestro recurso JDBC. En mi caso es AlmacenesPool, y escribo el nombre en formato JNDI de nuestro recurso jdbc.
Clic en Finish
Listo, nada más. Ya tenemos nuestro recurso JDBC.
El recurso JDBC y el pool de conexiones creados desde NetBeans se crearán en el glassfish unicamente cuando se despliegue el proyecto._
¿Cuál es la diferencia en hacer desde Glassfish o desde NetBeans?
Cuando se hace desde NetBeans, es solo para fines de desarrollo. Notemos que se ha creado el archivo sun-resources.xml en nuestro proyecto. Dentro tiene toda la configuración que NetBeans usará para crear los recursos JDBC para que nuestra aplicación funcione en nuestro glassfish de desarrollo. Para nada más.
Cuando se crea el archivo .war para desplegar nuestra aplicación en un glassfish de producción, el archivo sun-resources.xml no existe dentro del paquete de instalación. Simplemente no hay.
Entonces ¿cómo nuestra aplicación puede conectarse a la base de datos estando en el glassfish de producción? Pues bien, en este glassfish de producción, creamos el JDBC resource directamente en el mismo glassfish.
Esto es bueno, porque cuando desarrollamos usamos una base de datos que es solo para desarrollo. Mientras que para poner en producción, usaremos otra conexión, otra base de datos que será para producción.