J2EE: Configurer JBoss pour DB2400
12/05/2004
Par
Olivier Constans (autres articles)
niveau : facile
durée : 10 minutes
L'objet de ce tutoriel est de configurer un serveur d'application
Jboss afin de pouvoir écrire des applications qui soient en mesure d'interagir
avec une base de données DB2 UDB pour iSeries (AS400).
1. Introduction
2. Configuration
3. Déploiement
L' iSeries est un ordinateur IBM utilisant un système
d'exploitation propriétaire, l' OS400 (i5/OS V5R3 pour la toute
dernière mouture de cet OS) mais aussi Linux, unix (AIX) ou encore
Windows pour les tous derniers serveurs
IBM eServer i5. Ces derniers sont, en effet, capables de faire cohabiter
plusieurs systèmes d'exploitation différents dans des systèmes
virtuels hébergés dans un seul et unique serveur (voir le
lien précédent pour plus d'informations).
La base de données utilisée sur l' iSeries est une version de la base de données DB2 UDB.
Bien que l'iSeries ou AS400 ne soit pas souvent
cité ou connu, cet ordinateur est présent dans nombre d'entreprises
de taille moyenne à grosse et tout informaticien peut donc être
confronté à devoir un jour, au cours de sa carrière,
exploiter les données stockées sur un tel système.
Dans le cadre de ce tutoriel, nous allons donc supposer
que nous avons la charge de mettre en place un serveur
d'applications JBoss sur lequel une application J2EE exploitera des
données stockées dans un eServer i5 sous système
d'exploitation OS400 et avec donc DB2400 UDB comme SGBD. La version de
JBoss utilisée dans ce tutoriel est la version 3.2.3.
Le décor étant planté, entrons dans le vif du sujet :
La liaison de Jboss avec une base de données est effectuée grâce à
plusieurs fichiers XML. Ces fichiers XML sont situés dans les répertoires
..\jboss-3.2.3\server\all\conf, ..\jboss-3.2.3\server\default\conf et
..\jboss-3.2.3\server\minimal\conf.
(chacun de ces 3 répertoires correspond à une version plus ou moins complète du serveur JBoss).
Dans ces répertoires, le fichier suivant va nous intéresser :
standardjbosscmp-jdbc.xml
Tout d'abord nous allons effectuer une copie de ce fichier avant modification.
Ensuite, nous allons l'ouvrir avec un éditeur de texte. En voici le début :
standardjbosscmp-jdbc.xml <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jbosscmp-jdbc PUBLIC
"-//JBoss//DTD JBOSSCMP-JDBC 3.2//EN"
"http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_2.dtd">
<jbosscmp-jdbc>
<defaults>
<datasource>java:/DefaultDS</datasource>
<datasource-mapping>Hypersonic SQL</datasource-mapping>
<create-table>true</create-table>
etc...
Dans le code XML précédent, nous allons
modifier les lignes <datasource> et <datasource-mapping>.
En effet, par défaut, Jboss est configuré pour fonctionner
avec la base de données « Hypersonic ».
Nous allons remplacer le nom de la source de données java:/DefaultDS par java:/DB2400
De la même façon, nous allons remplacer le « type-mapping » Hypersonic SQL par DB2/400.
En effet, si nous descendons plus bas dans le source XML, nous verrons que le type de mapping DB2/400 est défini pour JBOSS 3.2.3.
standardjbosscmp-jdbc.xml ...
<type-mapping-definition>
<name>DB2/400</name>
<mapping>
<java-type>java.lang.Character</java-type>
<jdbc-type>CHAR</jdbc-type>
<sql-type>CHAR(1)</sql-type>
</mapping>
<mapping>
<java-type>java.lang.String</java-type>
<jdbc-type>VARCHAR</jdbc-type>
<sql-type>VARCHAR(256)</sql-type>
</mapping>
Au final, le début de notre fichier XML doit contenir :
standardjbosscmp-jdbc.xml <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jbosscmp-jdbc PUBLIC
"-//JBoss//DTD JBOSSCMP-JDBC 3.2//EN"
"http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_2.dtd">
<jbosscmp-jdbc>
<defaults>
<datasource>java:/DB2400DS</datasource>
<datasource-mapping>DB2/400</datasource-mapping>
<create-table>true</create-table>
<remove-table>false</remove-table>
<read-only>false</read-only>
<read-time-out>300000</read-time-out>
<row-lockinq
etc...
Enregistrons notre fichier.
Nous allons maintenant répercuter ces modifications dans tous les autres répertoires « server » de JBoss:
\jboss-3.2.3\server\all
\jboss-3.2.3\server\Default
\jboss-3.2.3\server\Minimal
En copiant nos 2 fichiers modifiés respectivement
dans les répertoires \conf de chacun des répertoires
cités ci-dessus.
Passons à présent à la définition de la source de données.
Pour utiliser DB2 400 avec JBoss, nous devons disposer de la bibliothèque des classes IBM qui permet d'établir une connexion avec l'As400 à l'aide d'un driver JDBC.
Dans notre cas, nous utiliserons la version open source d'IBM jtopen4.3 disponible à l'adresse suivante : http://www-124.ibm.com/developerworks/oss/jt400/
Une fois la toolbox d'Ibm installée, nous allons trouver dans le
sous-répertoire lib l'archive jt400.jar.
Cette archive devra être copiée dans les 3 répertoires
serveurs de JBoss suivants:
\jboss-3.2.3\server\all\lib
\jboss-3.2.3\server\Default\lib
\jboss-3.2.3\server\Minimal\lib
A présent, nous faut allons créer
le fichier XML qui va définir la source de données DB2400DS
que nous avons référencée au début de ce tutorial
dans nos fichiers XML.
Pour faire cela, nous allons copier le fichier db2-ds.xml
présent dans le répertoire \jboss-3.2.3\docs\examples\jca
vers le répertoire server\all\deploy.
Puis, nous allons renommer ce fichier en db2400-ds.xml
et enfin l'ouvrir avec un éditeur de texte
db2400-ds.xml <?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>DB2DS</jndi-name>
<connection-url>jdbc:db2:yourdatabase</connection-url>
<driver-class>COM.ibm.db2.jdbc.app.DB2Driver</driver-class>
<user-name>x</user-name>
<password>y</password>
<min-pool-size>0</min-pool-size>
</local-tx-datasource>
</datasources>
A présent on en modifie le contenu de la façon suivante :
db2400-ds.xml <?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>DB2400DS</jndi-name>
<connection-url>jdbc:as400//yourdatabase</connection-url>
<driver-class>com.ibm.as400.access.JDBCDriver</driver-class>
<user-name>x</user-name>
<password>y</password>
<min-pool-size>0</min-pool-size>
</local-tx-datasource>
</datasources>
L'url de connexion est de la forme jdbc:as400//yourdatabase,
yourdatabase étant l'adresse Ip de votre système ou son
nom d'hôte.
Attention de bien respecter la casse pour la définition de la classe du driver JDBC.
L'utilisateur et le mot de passe peuvent être
laissés à blanc. Dans ce cas nous les passerons au système
lors de l'établissement de la connexion.
Enregistrez votre fichier modifié et copiez-le dans les 2 autres
répertoires server\default\deploy et server\minimal\deploy
Voilà, Jboss est maintenant prêt pour communiquer avec un as400 et nous verrons comment, dans un prochain article, en écrivant un EJB session chargé de vérifier l'enregistrement d'un utilisateur dans une base de donnée DB2 UDB pour iSeries.
à suivre...
Un grand merci aux personnes de l'équipe de developpez
qui ont eu la gentillesse de relire cet article et de m'aider à
le corriger et le mettre en forme.
Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur.
La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de
l'autorisation de l'auteur.
|