Automatic translation

Archives

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

Contributeurs

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

Présentation de WLP10 et de sa CMS

J’ai récemment eu l’occasion de travailler avec Weblogic Portal 10  (WLP10) dans le cadre d’un projet faisant une utilisation intensive de sa gestion de contenu (CMS). Je vous propose de vous faire partager mon expérience avec ce produit.

Autant l’annoncer tout de suite, WLP est très facile à prendre en main. L’IDE spécifique Workshop a disparu, remplacé par un Workspace Studio constitué d’Eclipse et d’un plug-in BEA offrant des vues intéressantes (PageFlow, Server) et des outils plus qu’utiles pour le développement (création assistée de PageFlow, Control, Portlet, liens avec la CMS et domaines Weblo, édition de propriétés…), le tout sans dérouter le développeur java lambda heureux de retrouver son environnement de travail habituel.

De manière générale, Workspace Studio doit être vu comme une sorte de boîte à outils pour le développement d’applications portail, qu’elles soient orientées CMS, Collaboration ou autre, WLP proposant des portlets génériques, taglibs, API ou autres outils pour n’importe quel type de portail.

Je passerai rapidement sur le développement de portlets avec WLP tant celui-ci est facile et la documentation netui-beehive, le framework utilisé par WLP, riche et complète (cf http://beehive.apache.org).

Je tiens plus à m’attarder ici sur la CMS BEA et les outils offerts par WLP pour l’exploiter au mieux.

Commençons par la CMS proprement dite et sur les possibilités qu’elle offre :

. . . → Lire la suite: Présentation de WLP10 et de sa CMS

Oracle dévoile la roadmap post-BEA

Ca y est la roadmap post acquisition est dévoilée :

Et force est de constater qu’elle n’a pas beaucoup d’écho dans la communauté (RAS sur TSS, JavaLobby et QCon). Et pourtant cette roadmap va faire grands bruits chez nos grands comptes préférés. Sans parti pris :

  • L’abandon d’Oracle 10g AS se fera sans regrets,
  • Le stack AS avec JRockit + Weblogic + Toplink + Coherence a vraiment de la gueule,
  • Le nouvel ESB Oracle Service Bus est vraiment prometteur surtout avec l’apport du BPEL Engine d’Oracle,
  • Coté Portails la mise en "sommeil" de WLP et ALUI va laisser de la place à la concurrence,
  • Idem sur WLI, solution mature, transactionnelle et robuste qui ne va pas être remplaçable par le stack SOA immédiatement,

Au final les "modernes" l’emportent sur les "anciens" et Oracle n’a surtout pas oublié de publier la liste de prix 2 semaines avant la roadmap. Dans tous les cas j’espère avoir un peu de feedback clients et partenaires sur cette nouvelle offre. La présentation complète Oracle : cliquez ici

. . . → Lire la suite: Oracle dévoile la roadmap post-BEA