mardi 14 décembre 2010
BAM est un module de la SOA Suite d’oracle qui permet de réaliser un monitoring applicatif (nombre de vente d’un magasin, nombre d’action vendu, etc … ). Les autres modules étant Enterprise Manager pour les éléments techniques (nombre de d’instance Weblogic active, nombre de Threads bloqués) et Amberpoint pour le monitoring d’architecture (type de flux en échec, nombre de requête passé au backend, etc …).
L’intégration de BAM sur les autres composants de la SOA suite 11G sont maintenant natif (connecteur, artefact d’injection) mais ce n’est pas le cas des autres logiciels d’avant l’acquisition de BEA (ALSB, OSB 10) ou des logiciels non Oracle.
Une solution est d’utiliser une file JMS pour remonter les informations vers le serveur BAM pour afficher les données dans un report de provenance diverse (les autres canaux d’approvisionnement pouvant être par Webservice et Database).
Les avantages de cette solution sont :
Universalité du support si on dispose d’un MOM.
Universalité du support si on dispose d’un MOM.
- Asynchronisme du dépôt de l’information sans blocage de la source d’information.
- Déport de l’extraction de l’information sur le BAM et non pas sur la source.
- Gestion des incidents automatisés sur des files persistantes.
- Gestion de l’information en cluster si le MOM le supporte.
Les inconvénients :
- Obligé de préciser le mode d’insertion dans le BAM au paramétrage de la connexion (figé dans la configuration, ce qui n’est pas le cas en mode WebService.)
- Injection non intégrée de la collecte dans la source.
Cet article présente le paramétrage d’un serveur BAM et d’une file JMS sur une instance Weblogic avec remonté d’information. Il faut pour cela installer la SOA Suite 11G et créer un domaine avec les options par défaut (une instance d’administration, une instance SOA, une instance BAM)
Installation de la SOA SUITE 11 G
Voir l’article suivant : http://j-francois.blogspot.com/2010/03/oracle-soa-11g-installation.html
Création du domaine SOA
Nous allons créer un domaine avec une instance d’administration (qui va héberger la file JMS), une instance BAM et une instance SOA (BPEL mais non utilisé).
${SOA_SUITE_HOME}\bea_10.3.3.0\oracle_common\common\bin\config.cmd
On coche tous les composants nécessaires, dont le BAM (Oracle Business Activity Monitoring)
On précise l’endroit ou l’on veut créer le répertoire du domaine ainsi que son nom.
On peut préciser un environnement de développement (sous JRockit pour les plateformes intel)
On précise les différents schémas des tables nécessaires au domaine SOA (créer lors de l’installation via l’outil RCU)
Un test de connexion est réalisé
Et lancer les instances avec les scriptes du domaine (une ligne de commande par instance).
cd ${DOMAINE_HOME}
startWebLogic.cmd
attendre l’affichage du message STARTED avant de lancer l’instance BAM
cd ${DOMAINE_HOME}/bin
startManagedWebLogic.cmd bam_server1 t3://localhost:7001
Création de la file JMS
Pour l’exemple, nous allons créer une file JMS sur le serveur d’administration qui va jouer le rôle de canal d’information de la source.
Création du serveur JMS déployé sur l’instance d’administration.
${domain_name}àServicesàMessagerieàServer JMSàNouveau
Nom | JMSServer-BAM |
Cible | AdminServer |
Création du module JMS pour déclarer la Queue et Factory
${domain_name}àServicesàMessagerieàModules JMSàNouveau
Nom | SystemModule-BAM |
Cibles | AdminServer |
Création du Sous Déploiement comme la cible pour la Queue et Factory
${domain_name}àServicesàMessagerieàModules JMSàSystemModule-BAM àSous-déploiementsàNouveau
Nom | Sub-BAM |
Cibles | JMSServer-BAM |
Création de la Queue
${domain_name}àServicesàMessagerieàModules JMSàSystemModule-BAM àNouveauà File d’attente
Nom | QueueBAM |
Nom JNDI | jms/bam/QueueBAM |
Sous-déploiement | Sub-BAM |
Création de la Factory
${domain_name}àServicesàMessagerieàModules JMSàSystemModule-BAM àNouveauà Fabrique de connexions
Nom | ConnectionFactory-BAM |
Nom JNDI | jms/bam/ConnectionFactoryBAM |
Ciblage Avancé | Sub-BAM |
Vérifier que ces composants sont correctement déployés dans l’arbre JNDI avant de poursuivre.
${domain_name}àEnvironnementàServersàAdminServeràConfigurationàGénéralitésàvisualiser l’arborescence JNDI
Déployer l’arbre sous AdminServer/jms/bam. Vous devriez voir QueueBAM et ConnectionFactoryBAM.
Création de la META donnée dans BAM
Nous allons créer une META donnée dans le paramétrage du serveur BAM pour qu’il puisse prendre en compte le contenu de l’information remontée de la source, soit pour l’exemple les informations d’une personne représentée par le contenu XML suivant :
Nous allons donc créer dans BAM une entrée Personne avec les champs Nom, Prénom, Age. Pour cela, il faut se rendre sur la console d’administration de BAM (login/password de la console weblogic) et prendre le menu Architect.
ArchitectàObjets de donnéesàCréer un objet de données
Nom du nouvel objet de données | Personnes |
Emplacement du nouvel objet de données | / |
Texte de conseil | Une Personne |
Description | Une Personne |
àAjouter un champ
Champ | type | Taille maximal | Nullable | Public | Text de conseil |
Nom | String | 100 | non | oui | Le nom |
Prenom | String | 100 | non | oui | Le Prénom |
Age | Integer | non | oui | L’âge |
àCréer un objet de donnéesàContinuer
Création de la connexion JMS BAM
Nous allons créer la connexion de BAM à la file JMS déclaré précédemment. Pour cela il faut accéder à la console BAM
ArchitectàSources Entrepris MessageàCréer
Fabrique de contextes initiale | logic.jndi.WLInitialContextFactory |
URL du fournisseur de services JNDI | t3://localhost:7001 |
Nom de la fabrique de connexions de rubrique/file d'attente | jms/bam/ConnectionFactoryBAM |
Nom de rubrique/de file d'attente | jms/bam/QueueBAM |
Nom utilisateur JNDI | weblogic |
Mot de passe JNDI | |
Nom de l'objet de données | /Personnes |
Valeur de colonne | Balise d’élément |
Spécification de message :Nom d’élément de message | Personne |
Source pour la correspondance de champ d'objet de donnéesàAjouter
Nom de balise/attribute | Champ d'objet de données |
Nom | Nom |
Prenom | Prenom |
Age | Age |
Enregistrer
Le champ Nom d’élément de message représente le tag et la source pour la correspondance de champ d’objet de données représente les sous tag de personne (, , ).
Pour valider le paramétrage, lancer le pooling avec l’option démarrer.
Tester
Nous allons maintenant injecter des données dans la file et visualiser la réception dans le BAM. Pour cela nous allons constater dans un premier temps l’absence de donnée dans le BAM via sa console.
ArchitectàObjets de donnéesàPersonnesàContenu
${domain_name}àServicesàMessagerieàModules JMSàSystemModule-BAM àQueue-BAMàSurveillanceà àAfficher les messagesàNouveau
Coller dans la zone de saisie corp l’entrée suivante pour insérer un message.
Pour rafraichir cette vue, il faut repasser par le menu
${domain_name}àServicesàMessagerieàModules JMSàSystemModule-BAM àQueue-BAMàSurveillanceà àafficher les messages.
Repositionnez-vous sur la console BAM pour visualiser la donnée collectée par le BAM via la file JMS. Vous devriez avoir la vue suivante.
ArchitectàObjets de donnéesàPersonnesàContenu
Vous pouvez itérer sur plusieurs occurrences en ajoutant un TAG d’encapsulation ( par exemple)
Une fois les données insérer, vous pouvez créer des vues graphiques du contenu collecté en interaction temps réel de votre environnement (voir le menu Active Sudio).
Inscription à :
Publier les commentaires (Atom)
AUTEUR
- Jean FRANCOIS
- Carrières Sur Sein, Yvelines, France
- Consultant Oracle (Ancien consultant BEA depuis 2001), je m’occupe des expertises sur les produits Oracle : SOCLE (Weblogic, Coherence, JRockit) SOA (Service Bus, SOA Suite, BPM)
MON CV
LABEL 3D
Blogumulus by Roy Tanck and Amanda Fazani
LABEL CLOUD
AUTRES BLOG
-
Alexandre Vasseur ex (BEA | Oracle FR / Esper)
James Bayer (BEA | Oracle US)
Maxence Button ex (BEA | Oracle FR)
Marc Kelderman
Edwin Biemond (Oracle ACE)
Mark Smith (Oracle)
Chris Tomkins (Oracle)
0 commentaires:
Enregistrer un commentaire