11 abr. 2013

Configurar el Driver JDBC de Oracle como módulo de JBoss AS 7

Hoy intentaré contar como configurar el Driver JDBC de Oracle como módulo de JBoss AS 7, aunque también es válido para versión EAP 6, tanto para arranque en modo standalone como domain.
Para conseguir esto seguiremos los siguientes pasos:


1. Nos debemos descargar la versión que corresponda del Driver del sitio Web de Oracle. Lo pondremos por ejemplo en $USER_HOME/drivers

2. Abrimos una consola/terminal y ejecutaremos lo siguiente:
mkdir -p $JBOSS_HOME/modules/com/oracle/driver/main
Con esto creamos la estructura de directorios necesaria para configurar el módulo nuevo.

3. Copiamos el Driver descargado del sitio web de Oracle, ejecutando el siguiente comando de consola:
cp $USER_HOME/drivers/ojdbc6.jar $JBOSS_HOME/modules/com/oracle/driver/main
4. Creamos un archivo con nombre module.xml en el directorio creado en el punto 2 con el siguiente contenido:
<module xmlns="urn:jboss:module:1.1" name="com.oracle.driver">
    <resources>
        <resource-root path="ojdbc6.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>
Hasta este punto la configuración tanto para el modo standalone como para el modo domain, es exactamente la misma, es apartir de ahora cuando se debe realizar la configuración específica para cada uno de los modos, según se indica a continuación.

Para el modo standalone seguiremos los siguientes pasos:

1. Editamos el archivo $JBOSS_HOME/standalone/configuration/standalone.xml en el subsistema datasources, que se puede localizar dentro de la definición del profile buscando urn:jboss:domain:datasources en el archivo indicado anteriormente, en la sección correspondiente a los drivers hay que añadir lo siguiente:
<driver name="ojdbc6.jar" module="com.oracle.driver">
    <xa-datasource-class>
        oracle.jdbc.xa.client.OracleXADataSource
    </xa-datasource-class>
</driver>
También se puede hacer de esta manera:
<driver name="ojdbc6.jar" module="com.oracle.driver" />
2. Arrancamos JBoss normalmente y ya tendremos disponible el driver como módulo de JBoss. En caso de hacer esta configuración con el servidor arrancado deberemos reiniciarlo para que estos cambios tengan efecto.


Para el modo domain seguiremos los siguientes pasos:

1. Editamos el archivo $JBOSS_HOME/domain/configuration/domain.xml y en el subsistema datasources del profile que deseemos (o en todos), en la sección correspondiente a los drivers hay que añadir lo siguiente:
<driver name="ojdbc6.jar" module="com.oracle.driver">
    <xa-datasource-class>
        oracle.jdbc.xa.client.OracleXADataSource
    </xa-datasource-class>
</driver>
Al igual que en la configuración standalone, también se puede hacer de esta manera:
<driver name="ojdbc6.jar" module="com.oracle.driver" />
2. Arrancamos JBoss normalmente y ya tendremos disponible el driver como módulo de JBoss. En caso de hacer esta configuración con el servidor arrancado deberemos reiniciarlo para que estos cambios tengan efecto.

Esto que hemos aplicado para el Driver JDBC de Oracle, es aplicable a cualquier Driver JDBC que deseemos usar como módulo de JBoss AS 7, simplemente hay que seguir los pasos indicados cambiando el nombre de la carpeta en modules y eligiendo correctamente el xa-datasource-class en la especificación del driver de las configuraciones de standalone.xml y domain.xml.

Un saludo y a disfrutar!

3 comentarios:

Veronika dijo...

como entro a esto $USER_HOME/drivers??
y como hago para entrar a la consola para que ingrese los comando de mkdir....
Gracias

Veronika dijo...

como entro a esto $USER_HOME/drivers??
y como hago para entrar a la consola para que ingrese los comando de mkdir....
Gracias

AwAkE dijo...

Hola Veronika, $USER_HOME es la carpeta de usuario del sistema operativo y es un ejemplo, puedes poner el archivo que te descargues donde quieras.

Para abrir una consola o terminal, depende del sistema operativo con el que estés intentando hacer esto, en la entrada se plantea para sistemas operativos Linux, que se hace así Click en Aplicaciones > Accesorios > Terminal

Para MacOS se hace de esta otra manera, Click en el icono "Finder" situado en el Dock, luego seleccionas "Aplicaciones > Utilidades" y finalmente doble click al icono "Terminal"

Para windows se hacía así: Click en Inicio > Y donde pone Ejecutar teclea cmd das a Intro y te habre la consola

Espero que te sirva de ayuda.

Un saludo