mardi 14 décembre 2010

Quand vous démarrez une instance Weblogic en mode production et que vous ne spécifiez pas le login et password, la phase de démarrage passe en mode saisie manuelle pour vous demander ces informations. Cela peut poser problème si l’on souhaite lancer les instances automatiquement (lors du démarrage de la machine ou autre).

Un fichier permet de spécifier ces informations et à pour nom boot.properties avec pour contenu :

username=
password=

Lors du 1er démarrage l’instance encrypte son contenu pour masquer le mot de passe.

#Wed Dec 08 07:01:04 CET 2010
password={AES}VWEJOh90VsB1IZJXzNILQk6IW8G3y53dd1+TjTtceQ8\=
username={AES}NhXEE6ZdqYsNVMkZcA9o9AE3RS291sRYarPJJRZ0kUI\=
                                                                                  
En version antérieure à la 10 il suffisait de placer ce fichier à la racine du domaine pour que celui-ci soit pris en compte pour l’ensemble des instances déclarées dans le domaine. Il semble que cela ne soit plus vrai en 10.3.3.

Il faut avant chaque 1er démarrage d’une instance créer le répertoire et fichier ${domaine_home}/servers/${instance_name}/security/boot.properties, ce qui est fortement astreignant.

Pour revenir à l’ancien mode, il suffit d’ajouter dans les paramétrages de JVM des instances le properties JAVA suivant avec comme valeur, le PATH ou se trouve le fichier boot.propertis (par exemple, la racine du domaine).

-Dweblogic.system.BootIdentityFile=${domaine_home}/boot.properties

Vous pouvez l’injecter dans les scriptes standards via la variable USER_MEM_ARGS ou le place en dure dans les scriptes génériques.

Lors d’un déploiement d’une application dans un domaine SOA 11G, il faut faire attention au paramétrage du domaine sur lequel on cible le déploiement. En effet SOA Suite utilise le produit Coherence pour propager l’application sur le domaine. Ce produit introduit une notion de cluster différente du cluster Weblogic et utilise une IP et un PORT de dialogue non exposé lors de l’installation du domaine.

Si le domaine ne re spécifie pas ces informations et qu’il partage le réseau avec d’autres domaines SOA, l’application risque de se déployer sur les autres domaines si il n’y a pas d’étanchéifiassions du réseau ou si le paramétrage n’est pas customisé.

Prenons l’exemple de deux domaines déployés sur deux machines différentes avec le même nom de domaine est d’instance sur le même réseau. Le paramétrage par défaut du cluster Coherence est 227.7.7.9 sur le port 9778 (vous pouvez le vérifier dans le log de l’instance en cherchant l’occurrence tangosol.coherence.clusteraddress sur les Java system properties)


Donc s’il on déploie une application sur l’instance Managed 1 du cluster du domaine de la machine A, elle sera également propagé aux instances de la deuxième machine car l’adresse cluster Coherence est la Même (problème si se sont deux environnement différents).

Pour éviter ce problème, il faut soit étanchéifier le réseau entre les deux machines pour que la connexion ne s’effectue pas.
 

 Soit changer le paramétrage de l’adresse et/ou du port du cluster Coherence. Pour cela vous pouvez utiliser le paramétrage de JVM suivant à placer dans le scripte de démarrage de chaque membre du cluster.


-Dtangosol.coherence.clusteraddress=227.7.7.8
-Dtangosol.coherence.clusterport=9978

Ou éviter les rebonds sur les autres machines avec un Time To Live à 0

 -Dtangosol.coherence.ttl=0


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.

  • 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é).



 Lancer le Wizard de création de domaine à partir de la SOA Suite

${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 saisit le login et mot de passé du domaine : weblogic/weblogic1

  
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é


 Vous pouvez tout laisser par défaut pour l’exemple.


 Vous créer le répertoire du domaine pour finaliser cette phase.


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.




Via la console Weblogic : http://localhost:7001/console

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


 Placer maintenant des données dans la file JMS pour alimenter le BAM. Pour cela vous aller utiliser la console Weblogic


${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.



 Le message est présent un certain temps dans la file puis disparait.


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).



AUTEUR

Ma photo
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

MAP

Locations of visitors to this page

AUTRES BLOG

LIVRES

MEMBRES