Pour consulter l‘état de vos instances vous avez pouvez utiliser la console Enterprise Manager de la SOA Suite.
Que fait cette console ?
Elle consulte elle-même la base de déshydratation dans laquelle sont stockés les états de vos transactions.
Quelle solution dans le cas où la console n’est plus accessible ou peu répondante ?
En allant puiser l’information à sa source : en base de données.
Cet article vous propose de connaître l’état de vos composites SCA et plus précisément des exécutions BPEL directement en base.
La base de déshydratation stocke la représentation des instances SOA.
Son schéma comprend plusieurs tables.
Parmi celles-ci, nous pouvons citer :
- COMPOSITE_INSTANCE
- CUBE_INSTANCE
- AUDIT_TRAIL
- AUDIT_DETAILS
- XML_DOCUMENT
Pour cet exercice – déterminer l’état des transactions BPEL- nous nous intéressons exclusivement à la table CUBE_INSTANCE. Celle-ci permettant de connaître les données des instances.
- Table CUBE_INSTANCE : stocke les méta-datas des instances ; par exemple la date d’initialisation, l’état actuel, son titre et le processus qui l’identifie.
Nous vous fournissions une requête permettant de connaître le nombre de transactions et leurs états :
select
count(*),
decode(CUBE_INSTANCE.STATE,
0, 'STATE_INITIATED',
1, 'STATE_OPEN_RUNNING',
2, 'STATE_OPEN_SUSPENDED',
3, 'STATE_OPEN_FAULTED',
4, 'STATE_CLOSED_PENDING_CANCEL',
5, 'STATE_CLOSED_COMPLETED',
6, 'STATE_CLOSED_FAULTED',
7, 'STATE_CLOSED_CANCELLED',
8, 'STATE_CLOSED_ABORTED',
9, 'STATE_CLOSED_STALE',
10,'STATE_CLOSED_ROLLED_BACK','unknown') STATE
from
CUBE_INSTANCE
group by
STATE;
Exécutez cette requête et obtenez les informations :
Bien entendu, vous pouvez modifier la requête pour favoriser une lecture par état ou par composite.Nous vous fournissons maintenant la grille de lecture permettant de décoder les états :
- 0 – INITIATED
L’instance vient juste d’être créée. - 1 – OPEN AND RUNNING
L’instance est créée et est en cours d’exécution. - 2 – OPEN AND SUSPENDED
L’instance est suspendue.
Elle est en attente d’une exécution pour revenir en état de fonctionnement. - 3 – OPEN AND FAULTED
L’instance est en activité mais a lèvé une exception.
L’instance reprendra son exécution lorsque l’exception sera levée. - 4 – CLOSED AND PENDING
L’instance a démarré sa procédure d’annulation.
Son état est « levé » ; on ne peut la solliciter de nouveau : replay, recovery sont impossibles. - 5 – CLOSED AND COMPLETED
L’instance est révolue.
Toutes les activités bpel sont donc terminées. - 6 – CLOS ET FAULTED
L’instance est révolue mais en erreur.
Elle ne peut être récupérée.
Pratiquement, c’est un état où l’instance était en cours d’annulation mais a rencontrée une erreur.
C’est un état qui nécessitera très probablement une intervention du métier pour récupérer la situation. - 7 – CLOSED AND CANCELED
L’instance est annulée et toutes les activités ont elles-mêmes étaient annulées.
Vos données ne sont pas corrompues. - 8 – CLOSED AND ABORTED
C’est l’état où un utilisateur a volontairement annulé l’instance : « abort ». - 9 – CLOSED AND STALE
L’instance est terminée mais le processus a changé depuis.
Cela correspond par exemple à une transaction révolue succédé du redéploiement du composite qui l’a exécuté.
Il est donc impossible d’agir sur l’instance puisque le processus l’exécutant n’existe plus. - 10 – NON RECOVERABLE
L’instance a échouée et ne peut être récupérée.
Cet état vous obligera à une reprise de données par le métier.
La SOA Suite présente une manière simple d’accéder aux logs/audits des instances de composites au travers de l’Enterprise Manager. Cet article permet d’interroger directement à la base de déshydratation et fourni la grille de lecture des états de vos instances.
A vous maintenant d’adapter la requête à vos besoins et d’opérer les bon choix concernant vos instances bpel !
Cet article a été rédigé pour la SOA Suite en version 11.1.1.6.
Nombre | Etat |
3266 | STATE_OPEN_RUNNING |
1287 | STATE_CLOSED_FAULTED |
75454 | STATE_CLOSED_COMPLETED |
13380 | STATE_CLOSED_ABORTED |
4574 | STATE_CLOSED_STALE |
36057 | STATE_CLOSED_ROLLED_BACK |