Configurar tu aplicación OpenXava
6.0 (o anterior) para ir contra Db2 es muy simple, básicamente has de
instalar tu controlador JDBC para Db2 y definir correctamente la fuente de
datos. No necesitas tocar nada de código de tu aplicación.
Asumimos que ya tienes Db2
instalado y funcionando.
Descargar el controlador JDBC para Db2
Descarga el controlador para Db2 desde aquí: https://www.ibm.com/support/pages/db2-jdbc-driver-versions-and-downloads
En la página de descarga escoge el controlador adecuado para tu versión de
Db2. Esto te llevará a otra página donde has de elegir
IBM Data Server
Driver for JDBC and SQLJ (JCC Driver). Te pedirá que te registres,
después de lo cual podrás descargar el controlador. Descargarás un archivo
como este:
db2_db2driver_for_jdbc_sqlj_v11.5.tar.gz (los números
de versión pueden variar). Descomprímelo, dentro de la carpeta
jdbc_sqlj
encontrarás
db2_db2driver_for_jdbc_sqlj.zip. Descomprime este zip
también para encontrar dentro
db2jcc4.jar. Este último archivo, el
.jar, es el controlador JDBC que vamos a usar.
Crear una variable de classpath en Eclipse
Para poder conectar a Db2 desde Eclipse vamos a declarar una variable de
classpath que apunte al controlador JDBC de Db2, así lo podrás usar en
cualquier proyecto que lo necesites con facilidad. Para ello, en Eclipse
ve a Window > Preferences > Java > Build Path > Classpath
Variables donde puedes añadir la nueva variable:
Puedes llamar a la variable
DB2_DRIVER o CONTROLADOR_DB2 en lugar de DB_DRIVER si lo prefieres. Path
sería la ruta del controlador JDBC, en nuestro caso la ruta del db2jcc4.jar
que acabamos de descargar.
Añadir la variable DB_DRIVER al proyecto Eclipse
En el proyecto en que vayas a usar Db2 has de añadir la variable que
acabas de declarar. Pulsa con el botón derecho del ratón en tu proyecto y
selecciona
Build Path > Configure Build Path:
Después selecciona la pestaña Libraries:
Con esto tenemos el controlador
disponible en el entorno de desarrollo.
Añadir el controlador JDBC al Tomcat de producción
Añadir
el controlador en producción es mucho más fácil. Copia db2jcc4.jar
a la carpeta lib de tu Tomcat. Nada más.
Ajustar la definición de la base de datos
Para desarrollo edita web/META-INF/context.xml de tu proyecto
Eclipse y para producción edita conf/context.xml de tu Tomcat,
para ajustar la fuente de datos para que apunte a Db2, algo como esto:
<Resource name="jdbc/MiAplicacionDS" auth="Container"
type="javax.sql.DataSource"
maxTotal="100" maxIdle="20" maxWaitMillis="10000"
username="root" password="ao49fmsk"
driverClassName="com.ibm.db2.jcc.DB2Driver"
url="jdbc:db2://localhost:50000/miaplicaciondb"/>
Las diferencias están en el driverClassName
y la url. La parte final de la url, miaplicaciondb
en este ejemplo, es el nombre de tu base de datos Db2. Obviamente, en
lugar de localhost deberías poner la dirección del servidor donde
está el Db2, y también poner los valores correctos para username y
password.
Actualizar persistence.xml
No necesitas tocar la unidad de persistencia
default de
persistence.xml
(en
persistence/META-INF), a no ser que uses la propiedad
hibernate.dialect
en cuyo caso lo más fácil es quitar la propiedad
hibernate.dialect.
Sin embargo, sí que has de modificar la unidad de persistencia
junit
para que apunte a Db2:
<!-- JUnit Db2 -->
<persistence-unit name="junit">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>org.openxava.web.editors.DiscussionComment</class>
<properties>
<property name="hibernate.connection.driver_class" value="com.ibm.db2.jcc.DB2Driver"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="ao49fmsk"/>
<property name="hibernate.connection.url" value="jdbc:db2://localhost:50000/miaplicaciondb"/>
</properties>
</persistence-unit>
Adapta username, password
y url a la configuración de tu Db2.