Title: Transactionnel, Recovery, Backup 11
1La plate-forme EAI Initiation à WBI
- Transactionnel, Recovery, Backup 11
2Sommaire
- Objectif
- Transactionnel
- Recovery
- Backup
- Ce document est un support de cours il n est
donc pas utilisable seul
3L objectif
- Présenter les caractéristiques et les
conséquences de ces fonctions
4Transactionnel
- Une transaction est faite dun ensemble de
traitements qui sont exécutés en une seule unité
duvre avec ces caractéristiques - Tous les traitements sont exécutés ou bien aucun
ne lest latomicité - Toutes les données sont mises à jour ou bien
aucune ne lest la cohérence - Les données sont protégées durant les mises à
jour de toute mise à jour concurrente
lisolation - Les données sont écrites toutes ensemble en fin
de transaction le commit
5Transactionnel ...
- Une Collaboration fait appel à plusieurs étapes
de traitement (Service call) - Certaines de ces étapes peuvent provoquer des
mises à jour réalisées par des systèmes
extérieurs à la Collaboration, ceci se faisant
hors de portée de la Collaboration - Chaque étape de traitement de mise à jour ainsi
réalisée se termine par un commit effectué à
chaque fois par le système extérieur
6Transactionnel ...
- Le concepteur de la Collaboration doit
- Identifier les étapes de traitement qui réalisent
des mises à jour (les verbes Create, Delete,
Update) - Sauvegarder les valeurs initiales des données
avant leur mise à jour - Mettre en uvre un scénario de Compensation
correspondant à chaque étape de mise en uvre
(scénario de compensation un Undo logique du
scénario Regular)
7Transactionnel ...
- En cas d incident, la Collaboration
transactionnelle va - Détecter lincident si/quand il se produit
- Exécuter toutes les étapes de Compensation
correspondant aux étapes de traitement ayant déjà
réalisé des mises à jour
8Transactionnel ...
- Une Collaboration transactionnelle permet donc de
réaliser une opération de Rollback sur les
modifications effectuées, se conformant ainsi au
protocole du two phase commit
9Transactionnel ...
- Quand une Collaboration Parent appelle une
autre Collaboration, l Enfant , lICS gère
le contrôle transactionnel séparément pour le
Parent et lEnfant - Si lEnfant se termine en erreur, le Parent peut
choisir de terminer en erreur ou de poursuivre
son traitement
10Transactionnel ...
- Isolation des données
- Lisolation des données durant une transaction
protège ces données contre une autre tentative de
mise à jour tant que la transaction nest pas
terminée - Dans une Collaboration, chaque étape de
traitement place ses verrous disolation et les
relève à la fin de létape ainsi une donnée
nest isolée de cette manière que pour la
durée dune étape mais pas pour celle de la
Collaboration
11Transactionnel, isolation des données ...
- Si une même donnée était mise à jour dans deux
étapes dune même Collaboration, cette donnée
serait disponible entre ces deux étapes et
pourrait donc être mise à jour par une
application extérieure, présentant ainsi une
fenêtre de vulnérabilité - WBI peut vérifier si la donnée a été altérée par
une intervention extérieure à la Collaboration
entre les deux étapes de mise à jour
12Transactionnel, isolation des données ...
- Parallélisme
- Plusieurs instances dune même Collaboration
peuvent sexécuter simultanément deux de ces
instances peuvent vouloir traiter la même donnée,
cest à dire la même instance du même Business
Object associé au même Verbe - Dans ce cas, lICS met en attente la deuxième
instance tant que la première na pas terminé
13Transactionnel, transaction levels
- WBI propose plusieurs niveaux transactionnels
- None
- Minimal effort
- Best Effort
- Stringent
- qui permettent de faire un choix spécifié dans le
Collaboration Template le Collaboration Object
hérite de ce choix
14Transactionnel, transaction levels ...
- Niveau None
- pas transactionnel
- Niveau Minimal effort
- si une erreur se produisait, lICS exécuterait
les Compensations normalement
15Transactionnel, transaction levels ...
- Niveau Best effort
- Une Collaboration qui sexécute au niveau Best
Effort utilise le contrôle disolation - Si, lors de lexécution dune étape de traitement
comportant une mise à jour, la donnée était dans
un état différent du dernier état connu par la
Collaboration à lissue de létape précédente de
traitement comportant aussi une mise à jour, une
erreur serait émise
16Transactionnel, transaction levels ...
- Niveau Stringent
- le Connecteur est capable de verrouiller la
donnée et de fermer ainsi une petite fenêtre
résiduelle entre la vérification de lisolation
et la suite des opérations existante dans le
niveau Best Effort
17Transactionnel, transaction levels ...
- Un Connecteur a un niveau transactionnel propre
qui est susceptible daffecter le niveau
transactionnel de la Collaboration à laquelle il
est bindé , surtout sil est inférieur - Une Collaboration Template qui serait capable du
niveau Stringent peut voir son niveau maximum se
dégrader en Best effort une fois bindée avec
un connecteur moins capable
18Transactionnel, en erreur
- Si une Collaboration transactionnelle tombe en
erreur, la résolution passe par la fonction
Resolve Transactionnal Status du CSM celle-ci
propose plusieurs possibilités de résolution - Exécuter toutes les étapes de compensation
- Exécuter la dernière étape de compensation sur
laquelle la Collaboration sest arrêtée en erreur - Supprimer la Collaboration
- Supprimer la dernière étape de compensation
19Recovery
- Un incident extérieur, matériel ou logiciel, peut
intervenir qui provoque la fin anormale dune
Collaboration - Quand lICS redémarre, il vérifie létat des
Collaborations qui étaient actives au moment de
linterruption
20Recovery ...
- L ICS entame alors un processus en plusieurs
étapes - LICS commence par bloquer la livraison de
nouveaux événements aux Collaborations qui se
trouvent en recovery - LICS réactive chaque Collaboration interrompue
présente dans la WorkInProgress queue (WIP queue)
et effectue le Rollback - LICS retrouve lévénement déclencheur de chaque
Collaboration et le leur livre chaque
Collaboration ré-exécute son traitement normal - Quand le Recovery est terminé, lICS permet à
chaque Collaboration de recevoir de nouveaux
événements
21Recovery ...
- Stratégies
- Il peut être souhaitable de différer légèrement
le Recovery des Collaborations interrompues,
notamment pour des raisons de performance au
démarrage de la plate-forme - Une ou plusieurs Collaborations peuvent être
placées, à lavance ou, au moment opportun, dans
létat Differed leur exécution devra plus tard
être provoquée manuellement - Egalement, le reboot de lICS peut obtenir le
contrôle exclusif des ressources jusquà être
terminé avant que le recovery des Collaborations
commence cest le recovery asynchrone
22Recovery ...
- Erreur critique
- time-out sur l application, logon impossible à
l application, état du Connector Agent inconnu,
... - Pour éviter que les mêmes causes produisent les
mêmes effets à répétition, une Collaboration peut
être configurée pour se pauser
automatiquement quand une erreur critique se
produit
23Recovery ...
- Connecteur
- Chaque Connector Controler interroge son Agent
toutes les 15 secondes pour sassurer de son bon
état opérationnel en cas de non-réponse, cette
interrogation est répétée 3 fois avant que
lAgent soit déclaré Inactive - Si le Connector Agent devient de nouveau
disponible, la Collaboration repartira
automatiquement
24Backup
- Au delà de la plate-forme elle-même, le périmètre
du backup sétend aux applications utilisatrices - En cas dincident sérieux durant des échanges,
toutes ces applications doivent être reprises à
un point de synchronisation qui permettent aux
données échangées dêtre cohérentes entre elles - Le concepteur doit identifier le point de
synchronisation commun à tous
25Des exercices
26Fin du module
- Vos remarques et commentaires peuvent être notés
sur la page concernée ou sur cette page avant de
les transmettre à votre interlocuteur - Ils aideront à améliorer cette initiation