La première partie de ce post a introduit les MBeans que WebLogic expose concernant les ressources JMS.
Nous avions commencé à les utiliser pour monitorer les queues JMS.
Dans cette deuxième partie, nous allons utiliser ces même Mbeans pour agir sur ces queues.
(Là aussi, ce sont des fonctionnalités proposées par la console WebLogic, pour des besoins ponctuels elle suffira amplement)
Supprimer des messages
Il est parfois nécessaire de supprimer des messages JMS d’une queue car ils ne sont pas/plus aptes à être consommés par l’application.
Une première approche serait tout simplement d’écrire un client qui consomme les messages en question avec les apis JMS. Cette approche fonctionnerait alors quelque soit le middleware JMS.
L’approche décrite ici effectue cette suppression via les apis JMX spécifiques de WebLogic.
Le premier avantage est que cela se révèle très simple (Groovy étant là pour simplifier l’usage de JMX)
Ensuite, on peut supposer que cette approche est plus performante (en particulier, il n’est pas nécessaire de récupérer le message pour le supprimer) et cela fonctionne même avec des messages Delayed : un message avec un Time-To-Deliver n’est pas visible immédiatement par un simple client JMS.
JMSDestinationRuntimeMBean propose donc l’opération deleteMessages pour supprimer les messages. Elle prend un unique argument qui doit être un selector JMS (On trouvera une description des selector jms dans l’api de l’interface Message : http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/jms/Message.html).
. . . → Lire la suite: Gestion des ressources JMS de WebLogic en JMX avec Groovy – 2ème partie Management


