Mode de traitement des messages en mode ASF

En mode ASF, les unités d'exécution et les sessions serveur sont allouées uniquement lorsqu'un message adapté au bean géré par message (MDB) est détecté. Le nombre d'unités d'exécutions pouvant être traitées par un bean géré par message est déterminé par la valeur de la propriété Nombre maximal de sessions pour le port d'écoute.

Les ports d'écoute sont stabilisés à partir de la version 7 et des versions ultérieures de WebSphere Application Server. Pour plus d'informations, lisez l'article sur les fonctions stabilisées. Vous devez vous préparer à faire migrer vos configurations de déploiement de bean géré par message WebSphere MQ depuis l'utilisation des ports d'écoute vers l'utilisation des spécifications d'activation. [AIX Solaris HP-UX Linux Windows][IBM i]Pour plus d'informations sur la configuration des spécifications d'activation du mode non-ASF, voir Configuration de spécifications d'activation du mode non-ASF. Toutefois, ne commencez pas cette migration si vous pensez que l'application a encore besoin d'utiliser des serveurs d'applications antérieurs à WebSphere Application Server Version 7. Par exemple, si vous disposez d'un cluster de serveurs d'applications dont certains membres sont à la version 6.1 et d'autres à une version ultérieure, vous ne devez pas migrer les applications de ce cluster pour qu'elles utilisent les spécifications d'activation avant d'avoir migré tous les serveurs d'applications du cluster vers la version ultérieure.

[AIX Solaris HP-UX Linux Windows][IBM i]
Le diagramme ci-dessous présente le processus de messagerie entre WebSphere Application Server et IBM MQ lorsque le service d'écoute de messages est en mode ASF.
Figure 1. Traitement des messages en mode ASF sur les systèmes répartis et IBM i
La figure est décrite dans le texte.
Comme présenté dans le diagramme, lorsque le service d'écoute de messages est en mode ASF, les messages sont traités de la manière suivante :
  1. Lorsque le port d'écoute est démarré, il ouvre une connexion vers le gestionnaire de files d'attente IBM MQ et crée un agent de file d'attente interne.
  2. L'agent de file d'attente écoute les messages sur la destination JMS.
  3. L'agent de file d'attente détecte un message.
  4. L'agent de file d'attente vérifie si le message est adapté au bean MDB qui utilise le port d'écoute.
  5. Si le message est approprié au bean MDB, le port d'écoute alloue une unité d'exécution provenant du pool d'unité d'exécution pour le service d'écoute de message et alloue une session de serveur provenant du pool de sessions du serveur d'applications. S'il s'agit de la première utilisation de la session de serveur depuis le démarrage du port d'écoute, une connexion au fournisseur JMS est alors ouverte. La session de serveur s'exécute sur l'unité d'exécution allouée.
  6. L'agent de file d'attente transmet l'ID du message à la session de serveur. Il commence ensuite à écouter à nouveau les messages.
  7. La session de serveur utilise l'ID message pour extraire le message de la destination.
  8. La session de serveur traite le message en appelant à nouveau la méthode onMessage() du bean MDB.
  9. Une fois le message traité, la session de serveur est fermée et est renvoyée dans le pool de sessions du serveur d'applications. La connexion ouverte par la session de serveur sur le fournisseur JMS reste ouverte afin que la session de serveur n'ait pas besoin d'établir à nouveau la connexion.
  10. L'unité d'exécution est fermée et renvoyée dans le pool d'unités d'exécution du service d'écoute de message.

Le nombre d'unités d'exécutions pouvant être traitées par un bean géré par message est déterminé par la valeur de la propriété Nombre maximal de sessions pour le port d'écoute. Si vous affectez à la propriété Nombre maximal de sessions la valeur par défaut 1, cela signifie que le bean géré par message ne peut traiter qu'un seul message à la fois. Par conséquent, si l'agent de file d'attente trouve un second message avant que le traitement du premier message soit terminé, l'agent de file d'attente bloque le second message jusqu'à ce que le traitement du premier message soit terminé et que la session du serveur devient disponible.

Pour traiter plusieurs messages en même temps, vous pouvez le faire en mode ASF en attribuant à la propriété Nombre maximal de sessions une valeur supérieure à 1. Par exemple, si la propriété Nombre maximal de sessions a pour valeur 2, les messages sont traités de la manière suivante :
  1. L'agent de file d'attente détecte le premier message et alloue une unité d'exécution et une session de serveur comme dans le premier exemple. Le message est traité à l'aide de la méthode onMessage() du bean MDB.
  2. Lors du traitement du premier message, l'agent de file d'attente commence à écouter à nouveau les messages.
  3. L'agent de file d'attente détecte le deuxième message et alloue une deuxième unité d'exécution et une deuxième session de serveur. Le message est traité à l'aide de la méthode onMessage() du bean MDB.
  4. Une fois le premier message traité, la première session de serveur est fermée et est renvoyée au pool de sessions de serveur. La première unité d'exécution est fermée et renvoyée au pool d'unités d'exécution.
  5. Une fois le deuxième message traité, la deuxième session de serveur est fermée et est renvoyée au pool de sessions de serveur. La deuxième unité d'exécution est fermée et renvoyée au pool d'unités d'exécution.
[z/OS]

Le diagramme ci-dessous présente le processus de messagerie entre WebSphere Application Server et IBM MQ lorsque le service d'écoute de messages est en mode ASF.

Figure 2. Traitement des messages en mode ASF sur les systèmes z/OS
La figure est décrite dans le texte.
Comme présenté dans le diagramme, lorsque le service d'écoute de messages est en mode ASF, les messages sont traités de la manière suivante :
  1. Lorsque le port d'écoute est démarré, il ouvre une connexion vers le gestionnaire de files d'attente IBM MQ et crée un agent de file d'attente interne.
  2. L'agent de file d'attente écoute les messages sur la destination JMS.
  3. L'agent de file d'attente détecte un message et vérifie s'il est approprié pour le bean MDB qui utilise le port d'écoute.
  4. Si le message est approprié pour le bean MDB, l'agent de file d'attente transmet l'ID de message dans un enregistrement de travail. Ce dernier est envoyé à la file d'attente de gestion de charge de travail (WLM).
  5. L'agent de file d'attente commence à écouter à nouveau les messages.
  6. La file d'attente WLM démarre un répartiteur ASF dans une région serviteur afin de traiter l'enregistrement de travail.
  7. Le répartiteur ASF alloue une session de serveur provenant du pool de sessions de serveur.
  8. La session de serveur utilise l'ID de message disponible dans l'enregistrement de travail afin d'extraire le message de la destination.
  9. La session de serveur traite le message en appelant à nouveau la méthode onMessage() du bean MDB.
  10. Une fois le message traité, la session de serveur est fermée et est renvoyée dans le pool de sessions du serveur d'applications. La connexion ouverte par la session de serveur sur le fournisseur JMS reste ouverte afin que la session de serveur n'ait pas besoin d'établir la connexion.
  11. L'unité d'exécution est fermée et renvoyée dans le pool d'unités d'exécution du service d'écoute de message.

Le nombre d'unités d'exécutions pouvant être traitées par un bean géré par message est déterminé par la valeur de la propriété Nombre maximal de sessions pour le port d'écoute. Si vous affectez à la propriété Nombre maximal de sessions la valeur par défaut 1, cela signifie que le bean géré par message ne peut traiter qu'un seul message à la fois. Par conséquent, si l'agent de file d'attente trouve un second message avant que le traitement du premier message soit terminé, l'agent de file d'attente bloque le second message jusqu'à ce que le traitement du premier message soit terminé et que la session du serveur devient disponible.

Pour traiter plusieurs messages en même temps, vous pouvez le faire en mode ASF en attribuant à la propriété Nombre maximal de sessions une valeur supérieure à 1. Par exemple, si la propriété Nombre maximal de sessions a pour valeur 2, les messages sont traités de la manière suivante :
  1. L'agent de file d'attente détecte le premier message et configure un enregistrement de travail, comme dans le premier exemple.
  2. L'enregistrement de travail est envoyé à la file d'attente WLM et un répartiteur ASF est configuré dans une région serviteur.
  3. Le répartiteur ASF alloue une session de serveur et le message est traité à l'aide de la méthode onMessage() du bean MDB.
  4. Lors du traitement du premier message, l'agent de file d'attente commence à écouter à nouveau les messages.
  5. L'agent de file d'attente détecte le deuxième message et alloue une deuxième unité d'exécution et une deuxième session de serveur. Le message est traité à l'aide de la méthode onMessage() du bean MDB.
  6. Une fois le premier message traité, la première session de serveur est fermée et est renvoyée au pool de sessions de serveur. La première unité d'exécution est fermée et renvoyée au pool d'unités d'exécution.
  7. Une fois le deuxième message traité, la deuxième session de serveur est fermée et est renvoyée au pool de sessions de serveur. La deuxième unité d'exécution est fermée et renvoyée au pool d'unités d'exécution.

Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cmb_asfnonasf_asf
Nom du fichier : cmb_asfnonasf_asf.html