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



0 commentaires:

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