Automatic translation

Archives

février 2012
L Ma Me J V S D
« jan    
 12345
6789101112
13141516171819
20212223242526
272829  

Contributeurs

Ippevent Bonita le remake

Notre Ippevent “Au coeur du BPM avec Bonita” du 19 mai 2012 avait connu un gros succès. Malheureusement un soucis technique nous avait empêché de diffuser la vidéo de cette conférence. Comme le sujet est important et nous sort un peu des considération purement technique de notre quotidien pour nous parler d’outils permettant de travailler . . . → Lire la suite: Ippevent Bonita le remake

Ippevent : “Petit tour sur la planète eXo” le 21/04, inscriptions ouvertes

Les Ippevents se suivent mais ne se ressemblent pas. Après un focus sur Vaadin le mois dernier, nous passons à un univers beaucoup plus vaste avec la société eXo et l’écosystème autour d’eXo platform.

C’est Tugdual Grall en charge de la stratégie produit chez eXo qui viendra nous présenter la richesse de ces outils.

Donc, . . . → Lire la suite: Ippevent : “Petit tour sur la planète eXo” le 21/04, inscriptions ouvertes

Faciliter le merge dans Subversion

A l’heure des DVCS, la création des branches et le merge paraissent quelque chose de bien facile. Surtout lorsque l’on se rappelle des problèmes que cela représentait au temps de Subversion(SVN) ou pire de CVS.

La motivation générale pour essayer de mettre en place Git ou Mercurial et la facilité de mise en place d’un . . . → Lire la suite: Faciliter le merge dans Subversion

Gestion des ressources JMS de WebLogic en JMX avec Groovy – 3ème partie accès au contenu des messages

Les deux premières parties de ce post ont introduit le MBean que WebLogic expose pour les ressources JMS et montré comment l’utiliser pour monitorer ou manipuler les qeues JMS, cette troisième et dernière partie l’utilisera pour lire le contenu des messages JMS.

Vous allez me dire à quoi cela sert-il d’utiliser JMX pour lire le contenu d’un message ? Et vous aurez raison, la plupart du temps l’utilisation des apis JMS (en particulier QueueBrowser) est préférable puisque le code est alors portable quelque soit le provider jms.
L’utilisation d’une client JMS dédié (tel que HermesJMS) est encore plus simple.
Dans les deux cas, il faudra juste faire attention dans le cas de queues distribuées (Sous Weblogic 9 et 10, pour des queues uniformément distribuées, il faut préfixer le nom jndi de la queue distribuée par le nom du serveur jms pour atteindre une queue physique en particulier : par exemple : JMSServer-0@jms/MyFirstDistributedQueue)

Il existe toutefois une très bonne raison pour utiliser les api jmx de WebLogic pour lire le contenu d’un message jms : lorsque l’on veut pouvoir lire les messages pending.

. . . → Lire la suite: Gestion des ressources JMS de WebLogic en JMX avec Groovy – 3ème partie accès au contenu des messages

Gestion des ressources JMS de WebLogic en JMX avec Groovy – 2ème partie Management

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

Gestion des ressources JMS de WebLogic en JMX avec Groovy – 1ère partie Monitoring

Les MBeans JMSDestinationRuntimeMBean

WebLogic expose en JMX toutes les apis nécessaires à la mise en oeuvre d’un monitoring et d’un management complet de ces ressources JMS.
La plupart correspondent à des fonctionnalités déjà proposées par la console WebLogic (accessibles via l’onglet Monitoring des destinations dans les modules jms)

Cela passe principalement par le MBean JMSDestinationRuntimeMBean. WebLogic expose une instance de ce MBean pour chaque Queue et Topic physique (cad que pour une queue distribuée, il y aura autant de Mbean que de serveur jms sur lequel est déployée la queue distribuée)

Cet MBean est décrit comme tous les autres ici : http://download.oracle.com/docs/cd/E13222_01/wls/docs100/wlsmbeanref/core/index.html
mais cet doc manque parfois de précision sur les paramètres des opérations les moins usuelles. Un des buts de ce post est de montrer comment les utiliser.

. . . → Lire la suite: Gestion des ressources JMS de WebLogic en JMX avec Groovy – 1ère partie Monitoring

Les MBeans WebLogic faciles avec Groovy

GroovyMBean

Groovy, langage dynamique à succès s’exécutant sur la JVM, comporte un petit composant très simple mais très puissant pour accéder aux MBeans : GroovyMBean
http://groovy.codehaus.org/Groovy+and+JMX

En résumé, une fois une référence au serveur JMX (directe ou via une remote connection) obtenue, il suffit de créer un GroovyMBean à l’aide de l’ObjectName du MBean à manipuler …

 def groovyMBean = new GroovyMBean(server, mBeanObjectName) 

… pour pouvoir accéder aux attributs JMX comme de banals attributs d’objet :

 groovyMBean.myAttribute

… ou mieux, appeler une opération JMX aussi simplement qu’une méthode :

 groovyMBean.myOperation(param1,param2)

C’est ici les capacités dynamiques du langage Groovy qui permettent à GroovyMBean de se comporter comme une sorte de proxy universel et cacher la lourdeur des apis JMX, apis qui ressemblent fortement à de la réflection.

. . . → Lire la suite: Les MBeans WebLogic faciles avec Groovy