vendredi 2 septembre 2011
C’est un mécanisme de pont pour pousser un message entre deux destinations avec différents niveaux de qualité de services (QoS) contrôlant la délivrance du message.
Le mode de paramétrage nécessite d’avoir une destination (queue ou topic) en source et en destination déclarée dans une Target Destination. Chaque destination étant défini avec un bridge adapater spécifique à sa nature. L’instance du bridge étant targeté sur une instance Weblogic spécifique.
Les déploiements possibles sont :
ü Deux instances Weblogic en version identique ou différente.
ü Deux instances de domaines différents.
ü Une instance Weblogic et un provideur de message externe (avec un ressource adapteur écrit spécifiquement pour le provider).
Le bridge établit un dialogue entre une paire source et destination via le Ressource Adapteur (connecteur JCA). Le Ressource Adapter implémente la partie client (compatible JMS 1.0.2)
PARAMETRAGE
Afin d’établir le bridge, vous devez avoir créé une file source (Q Sender) et destination distante (Q Receiver). L’objectif étant de pousser tous les messages de la file Sender vers la file Receiver via le Bridge.
Pour cela, il faut pour créer sur l’instance du domaine 1 une destination pour renseigner comment atteindre la Q Receiver. Prendre l’adapter XA ou non pour définir un Bridge en transaction ou non.
consoleàServicesàMessagingàBridgesàJMS Bridge DestinationsàNew
Faire de même pour la destination de la Q Sender.
consoleàServicesàMessagingàBridgesàJMS Bridge DestinationsàNew
Et enfin lier les deux en créant le Bridge.
consoleàServicesàMessagingàBridgesàNew
CLUSTER
Dans le cas d’un cluster, il faudra déclarer les files en mode Distributed Destination afin de prendre en compte le LoadBalancing et déclarer la liste des instances dans chaque JM Bridge Destination.
Penser à désactiver l’option Server Affinity afin de répartir l’envoi des messages équitablement à l’ensemble des destinations.
consoleàServicesàMessagingàJMS Modulesà${JmsModule}à${ConnectionFactory}àConfigurationàLoad BalacingàServer Affinity Enabled : check
CINEMATIQUE (Sync/Async)
Le Bridge et JCA Adapteur font partie intégrante de la distribution Weblogic. Le diagramme ci-dessous montre le dialogue entre la source du système 1 vers la destination du système 2. L’adapteur se situe entre le Weblogic et le système de message. L’adapteur peut être partagé, mais l’exemple en présente deux distincts.
Le bridge tente de se connecter au système 1 puis au système 2. Après le succès des connexions, il va commencer à transmettre les messages via une communication synchrone one-way. Il attend de recevoir l’information avant de la lire et de la renvoyer à la destination (le tout en transaction).
Dans le cas d’une connexion asynchrone, un listener est déclaré sur la source pour prendre en charge le message à transiter. En mode synchrone, le message est envoyé directement vers la destination en bloquant la source tant que le message n’a pas été transmis.
Pour une instance de bridge en QoS à Exctly-once en mode asynchrone, la destination doit supporter l’interface MDBTransaction. Dans le cas contraire, le bridge passe automatiquement le mode en transaction non supporté.
ADMINISTRATION
Pour suspendre ou activer un Bridge, vous pouvez passer par la console Weblogic (check = activé) :
consoleàLock & EditàServicesàMessagingàBridgesà${bridge}àConfigurationàGeneralàstarted : checkàActivate Changes
Vous pouvez voir sur le bridge est actif via le monitoring :
consoleàLock & EditàServicesàMessagingàBridgesà${bridge}àMonitoringàState
MONITORING
TUNING
Pour éviter les concurrences d’exécution avec le pool de thread par défaut, les bridges déclarent un pool distinct. Ce pool est utilisé exclusivement sur les bridges en mode synchrone. Dans le cas ou les bridges sont en mode asynchrone, ils fonctionnent avec les threads créer par le provider JMS destination.
On peut configurer le nombre de thread utilisé par le bridge via la console qui par défaut est à 5. On peut désactiver ce pool de thread en mettant la valeur a -1, ce qui force le bridge à utiliser le pool par défaut de Weblogic.
consoleàEnvironementàServersà${instance name}àConfigurationàServicesàMessaging Bridge ConfigurationàBridge Thread Pool Size : 5
TROUBLESHOOTING
TRANSACTION - QoS
Les niveaux de Qualité de service (QoS) sont :
ü Exaclty-once Mode en transaction garantissant l’envoi du message et d’une façon unique (Utilisation de la transaction XA) (pas de duplication de message lors des rejeux, mais couteux en temps). Ce mode requiert le JAR jms-xa-adp.rar et une XAConnectionFactory.
ü Mode non transactionnel autorisant la duplication de message. Acquittement du message après écriture sur la destination (pose problème car mécanisme en dehors de transaction, donc potentiel rejeux du message si des réémissions en cas d’erreurs). Utilise le mode CLIENT_ACKNOWLDGE .
ü Atmost-once Mode non transactionnel autorisant la perte de message. Acquittement du message à l’initialisation de la réception. Il se peut donc que la destination ne les ait pas reçues. Pas de garantie, mais rapide). Utilise le mode AUTO_ACKNOWLEDGE.
Ce mécanisme de bridge est basé sur des connecteurs JCA afin de se connecter à différent type de provider différent en transaction ou non limité aux 2 adapter suivants :
ü eis.jms.WLSConnectionFactoryJNDIXA Communication XA avec le provider distant pour définir un envoi en Excatly-once.
ü eis.jms.WLSConnectionFactoryJNDINoTx Communication avec le provider distant en Atmost-once ou Duplicate-okay.
Adapter | Exaclty-once | Duplicate-okay | Atmost-once | JAR |
WLSConnectionFactoryJNDIXA | X | jms-xa-adp.rar | ||
WLSConnectionFactoryJNDINoTx | X | X | jms-notran-adp.rar |
ROBUSTESSE
MESSAGE DELIVERY
SECURITY
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