Sunday, November 20, 2011

Démarrage de vos serveurs Weblogic avec Node Manager

Comment démarrer vos serveurs Weblogic 11g ? Vaste sujet tant il existe de possibilités pour réaliser cette opération. Chacune ayant son intérêt et ses limites :
  • A l'aide des scripts startWeblogic.sh et startManagedWeblogic.sh fournis avec le produit
  • à l'aide de la commande java weblogic.Server
  • Depuis la console d'administration
  • A l'aide d'un Service Windows
  • A l'aide de WLST en vous connectant au Node Manager ou au Server d'Administration
La meilleure façon de faire vous appartient. Elle dépend très certainement de la fonction du serveur : un serveur de développement se contentera probablement d'un script alors qu'un serveur de production devra être géré à distance et redémarré automatiquement...

Dans cet article, vous trouverez le détail d'une configuration avec réalisée avec un Node Manager. C'est la configuration la plus adéquate pour vos serveurs de production puisqu'elle permet la gestion via des scripts ; les redémarrages automatiques ; et les opérations à distance puis les consoles Weblogic et Enterprise Manager.

Monday, October 31, 2011

**VIDEO** Oracle BTM

Oracle Business Transaction Management (aka Oracle BTM, ex-Amberpoint) est un outils fantastique pour superviser les systèmes d'informations modernes. Ses "observers" sont disponibles pour Weblogic, IBM Websphere; JBoss EAP et Microsoft IIS ; ils permettent, de suivre en détail le fonctionnement de la multitude des services déployés. Cela inclut les applications et les services web, les files d'attente JMS, les appels JDBC, les appels WCF, les services SOA ou encore les appels à des EJB à des composants Java via RMI.

Vous trouverez ci-dessous 2 courtes démonstrations de 6 minutes de mise en oeuvre du produit, enregistrées en temps réel sur mon ordinateur portable et sans souris (ça bouge un peu !) :
  • La 1ère illustre les concepts de base : la notion de services, la détection des dépendances inter-services, y compris inter-serveurs d'applications, la possibilité de journaliser et de visualiser les messages associés aux appels des services et la définition d'objectifs de SLA
  • La 2nde illustre la découverte automatique des topologies, la construction et le suivi de transactions, la collecte automatique et la mise en corrélation de tous les messages associés à une transaction, la définition d'objectifs de SLA sur ces transactions

Thursday, September 8, 2011

Builds Glassfish : mes 2 erreurs

Faire un build de Glassfish 3.x est d'une simplicité enfantine. Il suffit d'installer un client subversion, Maven 2 et un JDK 6. Les quelques lignes qui suivent reprennent les opérations nécessaires ainsi que les erreurs que j'ai pu rencontrer...

Sunday, August 28, 2011

**VIDEO** Diagnostics des applications Weblogic en production

JRockit Mission Control permet de diagnostiquer les problèmes de performance des applications qui s'appuient sur Weblogic. C'est le cas, y compris en production à l'aide du niveau le plus bas de Weblogic Diagnostic Framework (WLDF). Vous trouverez illustré dans cette video :
  • Comment utiliser Weblogic Diagnostic Framework pour visualiser les activités des différents composants Java EE ; quels sont les composants les plus utilisés ? Quels sont les temps associés ? Comment ces activités sont corrélées dans leurs threads d'exécution
  • Comment "Profiler" en temps réel une classe ou une méthode ?
  • Comment retrouver l'ensemble des composants Java EE associés à un contexte d'exécution via son identifiant (ECID) ? Vous pourrez ainsi corréler les logique de présentation, métier, les composants qui servent à faire le mapping Objet relationnel et même les requêtes SQL
Visualiser la video ci-dessous :

Friday, August 26, 2011

Servlet Asynchrones et Programmation Comet

HTTP est un protocole sans état dont l'initiative de la connexion revient au client. Ses défauts font également ses forces puisqu'ils lui confèrent une capacité de montée en charge sans limite et sa tolérance aux pannes. Evidemment, il a fallu le faire évoluer le protocole (version 1.1) et développer des pis-aller pour répondre aux besoins des applications Internet. C'est ainsi que se sont développés des protocoles de streaming, la gestion des informations d'états dans les serveurs d'applications ou à AJAX. Voilà sans doute pourquoi WebSocket...

Mais avant que HTML5, Websocket et Java EE 7 ne deviennent le standard, les applications web auront déjà replacées la plupart des applications de bureau, jusqu'aux suites bureautiques. L'emploi de bibliothèques clientes comme JQuery répond avec succès et de manière quasi transparente pour le développeur à un nombre très important de cas d'utilisation des applications riches sur le client. Ces biblothèques servent de briques et de ciment aux composants graphiques compatibles Java EE, au premier rand desquels les bibliothèques JSF comme PrimeFaces.

Pourtant, il faut pouvoir utiliser, sur le serveur, des techniques de programmation adaptées à des batteries de composants clients. Par exemple, il faut savoir gérer le cas où le serveur est à l'initiative d'envoie de messages aux clients. Ce type d'utilisation est nécessaire pour une messagerie instantanée, des enchères, des alarmes ou des notifications. Les servlets asynchrones offrent donc une solution standard pour adresser ce besoin jusqu'alors traité de manière spécifique en Java. Cet article présente cette nouvelle fonctionnalité ainsi qu'un exemple de mise en oeuvre simple...

Monday, August 22, 2011

Ajouter un filtre de Servlet lors du déploiement d'un WAR

Les annotations et le support de Comet font partie des apports les plus intéressants de la version 3.0 des servlets et par conséquent de Java EE 6. Une des conséquences directes de l'utilisation d'annotations, est qu'ajouter un filtre de servlets à l'archive d'un projet web .war, ne nécessite plus de mettre à jour le fichier web.xml. Ca devient donc d'une facilité déconcertante de développer vos filtres dans un autre projet, de les regrouper dans un fichier d'archive et de les intégrer juste avant le déploiement.

Friday, August 19, 2011

JMX et MBeans 101

Java Management eXtension ou JMX est idéal pour superviser et configurer des application Java. Outre sa simplicité de développement, JMX permet notamment :
  • de publier méthodes de configurations, sondes et notifications automatiquement dans un serveur facile d'accès
  • d'y accéder à partir de tous les outils pour les développeurs comme JConsole, JRockit Mission Control ou pour les administrateurs comme Oracle Enterprise Manager
  • d'apparaître au même niveau que les composants de supervision et de configuration des plateformes Java SE ou EE 
  • d'intégrer les autres paradigmes des plateformes Java à commencer par l'infrastructure de sécurité
Bref, JMX est inestimable pour la mise en oeuvre de vos projets. C'est aussi d'une extrême simplicité comme vous pourrez vous en rendre compte dans l'exemple de mise en oeuvre qui suit qui s'appuie sur Glassfish et qui permet de mettre à jour une propriété de configuration de votre application

Wednesday, August 3, 2011

Enregistrer les archives WLDF dans une base Oracle

Franchement, je suis mitigé quant à l'utilité réelle de la fonctionnalité qui suit : pour bien utiliser données collectées et instrumentations des serveurs et applications Weblogic, vous passerez sans doute par la mise en place d'un référentiel de performances qui consolide toutes vos données de diagnostic tels que, dans un monde idéal ;-) Automatic Workload Repository, Weblogic Diagnostic Framework, vos trames réseaux analysées par RUEI et vos autres sources spécialisées (Logs, JMX, SNMP...).

L'utilisation des accessors pour extraire les données de WLDF semble donc plus naturelle dans ce contexte. Toutefois pour des cas simples comme un nombre limité de serveurs et d'application Weblogic ou si vous préférez vraiment SQL à Java, pourquoi pas ? Voici comment enregistrer vos archives WLDF dans une base de données Oracle !

Tuesday, August 2, 2011

Injecter le contexte d'execution (ECID) de Weblogic dans V$SESSION

Si vous lisez cet article dans la perspective de la video de l'article précédent, vous comprendrez facilement comment : 
  • capturer une requête dans une base de données Oracle
  • savoir quels sont les écrans et les utilisateurs impactés par cette requête
  • connaître toutes les requêtes associées à cet écran
Je n'entrerai pas dans les détails des briques à mettre en oeuvre. Je n'entrerai pas non plus d'ailleurs dans les détails d'une solution activable en production. Je vous laisse boucler la boucle à l'aide de JMX, Mission Control, de WLDF Archivers et Accessors. Mais pour vous permettre tout ça, la question simple à laquelle répond cet article est "Comment Injecter le contexte d'execution (ECID) de Weblogic dans V$SESSION ?"