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.
Ce tutoriel est un extrait de séances pratiques de la formation Administration JBOSS5 dispensée par Objis.
Les + objis
70% de travaux pratiques
Clé USB avec tous les outils utilisés + Corrigés TPs
Bilan pédagogique individuel + conseils
Nos tutoriaux pour vous initier
+ de 100 tutoriaux java/jee Objis
10 tutoriaux JBOSS 5
Objis, spécialiste formation java depuis 2005
Site de téléchargement serveur Jboss 5
Site de la communauté Jboss
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)
Installation Kit de développement JDK 6
Tutoriel administration jboss N°1 : installation Jboss 5
Tutoriel administration jboss N°3 : intégration MySQL
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
1h
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
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
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_HOME\docs\examples\jms

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_HOME\server_default\deploy\messaging
Dans ce même répertoire (JBOSS_HOME\server_default\deploy\messaging ) 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’.

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 deploy\messaging ,

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

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 :
Déposez le fichier dans le répertoire deploy\messaging.

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.
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.
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

Dans ce tutoriel vous avez analysé et mis en œuvre une configuration de Jboss Messaging.
Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur JBOSS :
Si vous appréciez notre sens du partage, devenez gratuitement membre ’classic’ du Club Objis :
Votez pour les prochains tutoriaux à publier
Préparez vos entretiens techniques
Valorisez votre profil / expertise
Identifiez des opportunités d’emploi
Recevez la newsletter objis.com