Petals SE ASE

compared with
Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (35)

View Page History

Installation et démarrage de ActiveMQ 5.5 + :
\- - Dézipper le tar/gz
\- Dans le répertoire activemq : \_bin/activemq start\_
- Dans le répertoire activemq : _bin/activemq start_

Note : l'administration des queues ActiveMQ doit se trouver à l'adresse \[http://localhost:8161/admin/queues.jsp\] [http://localhost:8161/admin/queues.jsp] (pour observer le cycle de vie et le fonctionnement des queues du SE ASE, au déploiement des SU).

Déploiement du composant dans Petals.
h1. Fonctions / architecture

(Pour les détails, voir la \[spécification du SE-ASE\|^ESB_req_spec-2011-06-15.doc\]). SE-ASE|^ESB_req_spec-2011-06-15.doc]).

Le SE, intercalé entre un client et un service, assure une garantie de livraison des échanges basée sur ActiveMQ (JMS).

Chaque SU pilote la création d'un certain nombre de queues JMS :
\- - <persistence-area> = la queue principale
\- - <persistence-area>_sending = une queue technique chargée des réémissions (erreurs, timeouts...)
\- - <persistence-area-fault> = une queue pour stocker les échanges dont le retour est FAULT (erreur fonctionnelle)

Lorsqu'un échange n'a pu être livré malgré les réémissions prévues, il est stocké dans la "dead letter queue" d'ActiveMQ.

Le mécanisme entre le "posting process" (PP) et le "sending process" (SP) est le suivant :
\- - Le SP écoute 2 queues JMS : <persistence-area> et <persistence-area>_sending (en mode transacted / AUTO_ACKNOWLEDGE).
\- - Un échange est reçu par le PP
\- - Il est mis dans la queue JMS <persistence-area>, que le SP écoute.
\- - Le SP reçoit l'échange et valide la lecture du message JMS ("commit").

Le SP tente alors de transmettre l'échange au service :
\- - En cas de fault, le SP stocke l'échange dans la queue <persistence-area-fault>.
\- - En cas d'erreur ou de timeout, le SP stocke l'échange dans la queue <persistence-area>_sending.

Si l'échange a été mis dans la queue <persistence-area>_sending, le SP est à nouveau activé, mais avec un comportement différent :
\- - Le SP tente de transmettre l'échange au service
\- - En cas d'erreur, il ne valide pas le message (rollback), ce qui déclenche la politique de réémission par JMS (et de nouvelles activations du SP, en fonction de cette politique).
\- - En cas de fault, le SP stocke l'échange dans la queue <persistence-area-fault>.

Si une erreur persiste, JMS finira par mettre l'échange dans la DLQ (dead letter queue).
Paramètres du composant :

\|\| Paramètre \|\| Description \|\| Défaut \|\|
\| activemq-connection-user \| \| ActiveMQ default user (null) \|
\| activemq-connection-password \| \| ActiveMQ default password (null) \|
\| activemq-broker-url \| \| ActiveMQ default broker URL (failover://tcp://localhost:61616) \|
\| java-naming-factory-initial \| \| \|
\| java-naming-provider-url \| \| \|
\| jms-connection-factory-jndiname \| \| \|
\| stop-timeout \| \| 0 \|
|| Paramètre || Description || Défaut ||
| activemq-connection-user | | ActiveMQ default user (null) |
| activemq-connection-password | | ActiveMQ default password (null) |
| activemq-broker-url | | ActiveMQ default broker URL (failover://tcp://localhost:61616) |
| java-naming-factory-initial | | |
| java-naming-provider-url | | |
| jms-connection-factory-jndiname | | |
| stop-timeout | | 0 |

Paramètres du "provides" dans une SU :

\|\| Paramètre \|\| Description \|\| Défaut \|\|
\| persistence-area-name \| Nom de la queue JMS principale \\ \| <provides-service-name> \|
\| persistence-area-name-fault \| Nom de la queue JMS pour les erreurs fonctionnelles (FAULT) \\ \| <provides-service-name>_error \|
\| persistence-area-name-error \| Nom de la queue JMS pour les erreurs \| <provides-service-name>_error \|
\| persistence-area-name-timedout \| Nom de la queue JMS pour les timeout \\ \| <provides-service-name>_error \|
\| persistence-area-name-expired \| \| <provides-service-name>_expired \|
\| mustBeAutomaticallyStarted \| Activation au démarrage de la SU \| true \|
|| Paramètre || Description || Défaut ||
| persistence-area-name | Nom de la queue JMS principale | <provides-service-name> |
| persistence-area-name-fault | Nom de la queue JMS pour les erreurs fonctionnelles (FAULT) | <provides-service-name>_error |
| persistence-area-name-error | Nom de la queue JMS pour les erreurs | <provides-service-name>_error |
| persistence-area-name-timedout | Nom de la queue JMS pour les timeout | <provides-service-name>_error |
| persistence-area-name-expired | | <provides-service-name>_expired |
| mustBeAutomaticallyStarted | Activation au démarrage de la SU | true |

Paramètres du "consumes" dans une SU :

\|\| Paramètre \|\| Description \|\| Défaut \|\|
\| mustBeAutomaticallyStarted \| Activation au démarrage de la SU \\ \| true \|
\| retry-policy-number \| Nombre maximal de réémissions \\ \| 3 \|
\| retry-policy-base-interval \| Intervalle de base entre deux réémissions (secondes) \\ \| 10 \|
\| retry-policy-factor \| Facteur multiplicatif de l'intervalle entre deux réémissions \\ \| 3 \|
\| time-to-live \| \| time-to-live du CDK, ou 0 si absent \|
\| is-idempotent \| \| true \|
|| Paramètre || Description || Défaut ||
| mustBeAutomaticallyStarted | Activation au démarrage de la SU | true |
| retry-policy-number | Nombre maximal de réémissions | 3 |
| retry-policy-base-interval | Intervalle de base entre deux réémissions (secondes) | 10 |
| retry-policy-factor | Facteur multiplicatif de l'intervalle entre deux réémissions | 3 |
| time-to-live | | time-to-live du CDK, ou 0 si absent |
| is-idempotent | | true |

h1. Administation JMX

\*MBean composant\*
*MBean composant*

Nom JMX : org.ow2.petals.se.ase:name=<component-identification>
Attributs :

\|\| Nom \|\| Type \|\|
\| JavaNamingFactoryInitial \| String \|
\| JavaNamingProviderUrl \| String \|
\| JmsConnectionFactoryJndiname \| String \|
\| ActivemqConnectionUser \| String \|
\| ActivemqConnectionPassword \| String \|
\| ActivemqBrokerUrl \| String \|
\| StopTimeout \| integer \|
|| Nom || Type ||
| JavaNamingFactoryInitial | String |
| JavaNamingProviderUrl | String |
| JmsConnectionFactoryJndiname | String |
| ActivemqConnectionUser | String |
| ActivemqConnectionPassword | String |
| ActivemqBrokerUrl | String |
| StopTimeout | integer |

\*MBean SU\*
*MBean SU*

Nom JMX : org.ow2.petals.se.ase:su=<su-name>

Chaque SU instancie au démarrage son propre MBean, lequel expose, outre ses attributs de configuration, les opérations suivantes :
\- - start / stop du "sending process" (si le SP est arrêté, les messages éventuels s'accumulent dans la queue JMS, en attendant le démarrage ultérieur du SP).
\- - start / stop du "posting process" (si le PP est arrêté, le service fourni par la SU rejette tout appel provenant d'un client).

Attributs :

\|\| Nom \|\| Type \|\|
\| PersistenceAreaName \| String \|
\| PersistenceAreaNameError \| String \|
\| PersistenceAreaNameFault \| String \|
\| PersistenceAreaNameTimedout \| String \|
\| ProvidesAutomaticallyStarted \| boolean \|
\| ConsumesEndpoint \| String \|
\| ConsumesAutomaticallyStarted \| boolean \|
\| ConsumesIdempotent \| boolean \|
\| ConsumesTTL \| integer \|
\| ConsumesRetryPolicyNumber \| integer \|
\| ConsumesRetryPolicyBaseInterval \| integer \|
\| ConsumesRetryPolicyFactor \| integer \|
|| Nom || Type ||
| PersistenceAreaName | String |
| PersistenceAreaNameError | String |
| PersistenceAreaNameFault | String |
| PersistenceAreaNameTimedout | String |
| ProvidesAutomaticallyStarted | boolean |
| ConsumesEndpoint | String |
| ConsumesAutomaticallyStarted | boolean |
| ConsumesIdempotent | boolean |
| ConsumesTTL | integer |
| ConsumesRetryPolicyNumber | integer |
| ConsumesRetryPolicyBaseInterval | integer |
| ConsumesRetryPolicyFactor | integer |

Opérations :

Soit la configuration suivante :
\- - Une SU avec "posting process" seul démarré
\- - Une autre SU avec "sending process" seul démarré

Dans la mesure où les mêmes queues seraient utilisées, un appel au "provides" de la première SU déclencherait un appel au "consumes" de la seconde.