Maîtrisez la configuration de JBoss Messaging, le module de configuration d’une source de données JMS dans JBoss. Basée sur une infrastructure impliquant Jboss remoting et Jboss Cache, JBoss messaging est un puissant levier pour vos applications asynchrones, avec par exemple un fournisseur de message Active MQ ou WebSphere MQ.
Liens utiles
Niveaux d’isolation base de données MySQL
Utilisation outil Hermes Jms pour Jboss
Tutoriel Struts N°8 : accès base de données JDBC (déploiement Tomcat)
Prérequis
Installation Kit de développement JDK 6
Tutoriel administration jboss N°1 : installation Jboss 5
Tutoriel administration jboss N°3 : intégration MySQL
Objectifs
Comprendre l’architecture de Jboss Messaging
Configurer JBoss messaging
Créer une Queue ou un Topic dans Jboss
Déployer un EJB3 Message (EJB3 MDB) dans Jboss
Durée
1h
Programme
Introduction et méthodologie
Partie 1 : configuration Datasource dans Jboss
Partie 2 : configuration du controle d’accès
Partie 3 : configuration des destinations (queues et topics)
Partie 4 : développement d’un EJB3 message (MDB)
Partie 5 : déploiement de l’EJB3 message
Introduction & Méthodologie
Configuration Jboss Messaging en 5 étapes
— 1) Configuration DataSource
— 2) Configuration du controle d’accès
— 3) Configuration des destinations (queues et topics)
— 4) Développement d’un EJB3 MDB
— 5) Déploiement de l’EJB3 MDB
Partie 1 : Configuration DataSource
Datasource JNDI
Cette DataSource a été configurée dans notre tutoriel Administration Jboss N°3 : intégration MySQL
Le contenu du fichier DataSource est le suivant :
Persistence JMS
Avec JBoss Messaging, les messages JMS sont par défaut stockés physiquement dans une base de données. Plusieurs configurations sont disponibles pour différents ditypes de bases de données (Oracle, postgresql…)
Nous allons spécifier à Jboss la base de données à utiliser (ici MySQL5) pour la persistence (le stockage) des messages.
Identifiez le fichier mysql-persistence-service.xml dans JBOSS_HOMEdocsexamplesjms
Faites une copie de ce fichier dans le même répertoire en le nommant objisformation-mysql-persistence-service.xml
Dans le fichier objisformation-mysql-persistence-service.xml, modifier les 6 références à DefaultDS en formationDS, la datasource que nous avons configurée.
Remarquez l’option cluster à false.
Commentez la dépendance au Channel JGroups .
Déployez dans JBoss : copiez le fichier objisformation-mysql-persistence-service.xml dans JBOSS_HOMEserver_defaultdeploymessaging
Dans ce même répertoire (JBOSS_HOMEserver_defaultdeploymessaging ) supprimez le fichier hsqldb-persistence-service.xml qui indiquait à Jboss la base de données à utiliser pour la persistence (hsqldb) :
Le contenu du répertoire messaging est désormais le suivant.
Relancez le serveur JBoss.
Sur la console de log, jboss vous informe d’un déploiement réussi pour la configuration par défaut (hsql) ainsi que pour notre configuration :
ça y est : Jboss Messaging est bien démarré ! BRAVO.
INFO : le message de Warning est ‘normal’ : il est lié à la configuration du niveau d’isolation par défaut de la base de données MySQL (REAPETABLE_READ) qui est différent de celui préconisé par JBoss pour Jboss Messaging (READ_COMMITED).
INFO 2 : vous pouvez modifier le niveau d’isolation de votre base de données en ajoutant la ligne suivante dans la section serveur [mysqld] de votre my.ini (windows) ou my.cnf (linux). Par exemple juste après la déclaration du port d’écoute :
Après arrêt et redémarrage de Jboss, voici alors la trace complète :
création automatique de tables pour Jboss Messaging
INFO 3 : Lors du redémarrage de Jboss, ce dernier créée dans votre source de données les 9 tables nécessaire au bon fonctionnement du service Jboss Messaging. Ci dessous, ce sont toutes les tables sauf la table ‘demandeformation’.
Partie 2 : Configuration du contrôle d’accès
Dans cette partie vous allez analyser la stratégie d’accès par défaut pour l’accès en lecture/écriture aux différentes ‘destinations’ des messages JMS (Queues et Topicsaux Queues et Topics) de Jboss, puis mettre en œuvre une stratégie d’authentification et d’autorisation personalisée.
Utilisation de la stratégie par défaut : ‘messaging’
Dans le fichier messaging-jboss-beans.xml également dans le répertoire deploymessaging ,
Ouvrez ce fichier et localisez la stratégie de sécurité ‘messaging’ associée au service de message, et initialement paramétrée pour DefaultDS.
Modifiez la source de de données vers la dataSource formationDS :
ça y est : vous bénéficiez de la stratégie de sécurité par défaut de Jboss Messaging :
— les utilisateurs et rôles sont déclarés sur les tables JBM_USER et JBM_ROLE
Notez l’existence user guest/guest de role guest.
table role
table user
Partie 3 : Configuration des destinations
Les ‘destinations’ livrées avec Jboss par défaut sont dans le fichier destinations.xml
Créez un fichier spécifique formation-destination.xml , déclarant un Topic, auquel les personnes profil ‘fclient’ auront possibilité d’écrire, et les profils ‘fcentreformation’ ne pourront que lire.
Téléchargez le fichier suivant :
configuration destination Topic DemandeFormation
Déposez le fichier dans le répertoire deploymessaging.
INFO : JBoss vous informe sur sa console que le Topic est bien déployé.
ça y est. Votre ‘destination’ JMS est prête.
Reste à créer l’EJB Message qui sera à l’écoute du moindre message de demande de formation afin de remplir une base de données à partir des informations présentes dans le message de demande de formation.
Partie 4 : Création EJB3 Message
Crééz un EJB3 message pas à pas avec notre tutoriel ejb3 : création EJB3 Message
Il s’agit d’un ejb de gestion des demandes de formations Objis, qui sont stockés sous forme de message JMS dans une file de messages.
Partie 5 : Déploiement EJB3 Message
Copiez le jar de EJB3 ci dessus dans le répertoire deploy de Jboss.
JBoss vous informe dans la console du bon déploiement de l’EJB
Conclusion
Dans ce tutoriel vous avez analysé et mis en œuvre une configuration de Jboss Messaging.