Activation de la publication d'événements de travail par lots

A l'aide de JMS (Java Messaging System), le serveur par lots peut publier sur des clients externes des événements liés aux travaux.

Pourquoi et quand exécuter cette tâche

La possibilité, pour le serveur par lots, de publier des événements liés aux travaux sur des clients externes permet à un moniteur d'afficher ces événements et de signaler les incidents. Le serveur du répartiteur par lots peut publier des événements pour un travail de la phase de répartition. Le serveur du programme d'exécution par lots peut publier des événements pour des travaux au fur et à mesure du déroulement des différentes phases d'exécution. Ces événements sont publiés dans une arborescence de rubriques selon la structure ci-après.

Tableau 1. Structures de fichiers des arborescences de rubriques pour la publication d'événements
Structure Description
traitement par lots Racine par défaut de l'arborescence de rubriques
[17.0.0.1 et ultérieur]Remarque : Dans la version 17.0.0.1, et ultérieures, la racine de l'arborescence de rubriques est configurable.
batch/jobs Arborescence de rubriques pour tous les événements liés à des travaux.
   
batch/jobs/instance Arborescence de rubriques pour tous les événements liés à une instance de travail.
batch/jobs/instance/submitted Noeud d'arborescence de rubriques. Un message est publié lorsque le serveur par lots crée une instance de travail pour une nouvelle soumission de travail.
batch/jobs/instance/jms_queued Noeud d'arborescence de rubriques. Un message est publié quand la soumission de travail est placée dans la file d'attente de soumissions de travail par le répartiteur JMS par lots.
batch/jobs/instance/jms_consumed Noeud d'arborescence de rubriques. Un message est publié quand le programme d'exécution par lots reçoit la soumission de travail de la file d'attente de soumission de travail.
batch/jobs/instance/dispatched Noeud d'arborescence de rubriques. Un message est publié quand le programme d'exécution par lots accepte une instance de travail pour exécution.
batch/jobs/instance/completed Noeud d'arborescence de rubriques. Un message est publié lorsque l'instance de travail est terminée.
batch/jobs/instance/stopped Noeud d'arborescence de rubriques. Un message est publié quand l'instance de travail est arrêtée.
batch/jobs/instance/stopping Noeud d'arborescence de rubriques. Un message est publié quand l'instance de travail est en cours d'arrêt.
batch/jobs/instance/failed Noeud d'arborescence de rubriques. Un message est publié quand l'instance de travail a échoué.
batch/jobs/instance/purged Noeud d'arborescence de rubriques. Un message est publié quand l'instance de travail a été purgée.
   
batch/jobs/execution Arborescence de rubriques pour tous les événements liés à une exécution de travail.
   
batch/jobs/execution/restarting Noeud d'arborescence de rubriques. Un message est publié quand le programme d'exécution par lots redémarre une exécution.
batch/jobs/execution/starting Noeud d'arborescence de rubriques. Un message est publié quand une exécution de travail démarre.
   
batch/jobs/execution/completed Noeud d'arborescence de rubriques. Un message est publié quand une exécution de travail s'est terminée.
batch/jobs/execution/failed Noeud d'arborescence de rubriques. Un message est publié quand une exécution de travail se termine suite à un incident.
batch/jobs/execution/stopped Noeud d'arborescence de rubriques. Un message est publié quand une exécution de travail est arrêtée.
batch/jobs/execution/jobLogPart Noeud d'arborescence de rubriques. Un message est publié quand une nouvelle partie du journal des travaux est créée, quand un travail s'arrête ou se finit.
   
batch/jobs/execution/step/started Noeud d'arborescence de rubriques. Un message est publié quand une exécution d'étape est démarrée.
batch/jobs/execution/step/completed Noeud d'arborescence de rubriques. Un message est publié quand une exécution d'étape s'est terminée.
batch/jobs/execution/step/failed Noeud d'arborescence de rubriques. Un message est publié quand une exécution d'étape échoue.
batch/jobs/execution/step/stopped Noeud d'arborescence de rubriques. Un message est publié quand une exécution d'étape est arrêtée.
batch/jobs/execution/step/checkpoint Noeud d'arborescence de rubriques. Un message est publié quand un point de contrôle est pris.
   
batch/jobs/execution/partition/started Noeud d'arborescence de rubriques. Un message est publié quand une partition est démarrée.
batch/jobs/execution/partition/completed Noeud d'arborescence de rubriques. Un message est publié quand une partition s'est terminée.
batch/jobs/execution/partition/failed Noeud d'arborescence de rubriques. Un message est publié quand une partition échoue.
batch/jobs/execution/partition/stopped Noeud d'arborescence de rubriques. Un message est publié quand une partition est arrêtée.
   
batch/jobs/execution/split-flow/started Noeud d'arborescence de rubriques. Un message est publié quand un flux de fractionnement est démarré.
batch/jobs/execution/split-flow/ended Noeud d'arborescence de rubriques. Un message est publié quand un flux de fractionnement est terminé.
Le message publié pour chaque sujet est un message texte Java Message Service (JMS TextMessage). Le contenu de ce message est une chaîne de format JSON qui représente l'objet du sujet, par exemple instance de travail, exécution de travail, exécution d'étape ou partition. En outre, le message inclut également l'ensemble de propriétés de message JMS suivant :
  • com_ibm_ws_batch_internal_jobInstanceId : ID instance de travail, si disponible.
  • com_ibm_ws_batch_internal_jobExecutionId: ID exécution de travail, si disponible.
  • com_ibm_ws_batch_internal_stepExecutionId : ID d'exécution d'étape de travail, si disponible.

Le serveur par lots doit être configuré pour activer la publication d'événements lié au travail. Le répartiteur par lots et le programme d'exécution par lots ont la même configuration. La procédure suivante active la publication des événements liés au travail pour un serveur par lots.

Procédure

  1. Activez la prise en charge de JMS en ajoutant la fonction JMS approprié au gestionnaire de fonctions dans le fichier server.xml. Si vous utilisez le fournisseurs de messagerie par défaut de WebSphere Application Server Liberty, ajoutez la fonction wasJmsClient-2.0 et les configurations JMS associées pour le moteur de messagerie. Si vous utilisez un fournisseur de messagerie WebSphere MQ, ajoutez la fonction wmqJmsClient-2.0.
  2. Ajoutez l'élément batchJmsEvents au fichier server.xml.
    <batchJmsEvents connectionFactoryRef="batchConnectionFactory" />
    Remarque : Si vous ne spécifiez pas l'attribut connectionFactoryRef, la valeur par défaut pour connectionFactoryRef est batchConnectionFactory. Vous devez encore configurer la fabrique de connexions JMS batchConnectionFactory dans le fichier server.xml.
    [17.0.0.1 et ultérieur]
    1. Pour mettre à jour la racine des rubriques (topic) pour les événements Batch, ajoutez l'attribut topicRoot à l'élément batchJmsEvents.
      <batchJmsEvents connectionFactoryRef="batchConnectionFactory" topicRoot="NEW_ROOT" />

      La valeur de l'attribut topicRoot remplace la racine par défaut (batch), de sorte que batch/jobs/* devient nouvelle_racine/jobs/*.

  3. Ajoutez la fabrique de connexions JMS correspondante à la configuration de serveur. Cela n'est pas spécifique à la configuration par lots.
    L'exemple ci-après illustre la configuration d'événements par lots et sa configuration JMS à l'aide du fournisseur de messagerie WebSphere MQ.
    <!-- wmq resource adapter -->
    <variable name="wmqJmsClient.rar.location" value="${server.config.dir}/wmq.wlp.rar"/>
    <!-- require for BINDING mode -->
    <wmqJmsClient nativeLibraryPath="/mqm/jms/java/lib"/>
    
    <batchJmsEvents connectionFactoryRef="batchConnectionFactory" />
    
    <jmsConnectionFactory id="batchConnectionFactory" jndiName="jms/batch/connectionFactory">
      <properties.wmq.Jms
        transportType="BINDINGS"
        queueManager="WMQX" />
    </jmsConnectionFactory>
    L'exemple ci-après illustre la configuration d'événements par lots et sa configuration JMS à l'aide du fournisseur de messagerie par défaut de Liberty.
    <batchJmsEvents connectionFactoryRef="batchConnectionFactory" />
    <jmsConnectionFactory id="batchConnectionFactory" jndiName="jms/batch/connectionFactory">
      <properties.wasJms></properties.wasJms>
    </jmsConnectionFactory>

Exemple

Les exemples suivants illustrent une séquence d'événements pour des flux d'exécution de base.
  • Soumettez et exécutez un travail à étape unique avec points de contrôle.
    batch/jobs/instance/submitted
    batch/jobs/instance/jms_queued
    batch/jobs/instance/jms_consumed
    batch/jobs/execution/starting
    batch/jobs/instance/dispatched
    batch/jobs/execution/started
    batch/jobs/execution/step/started
    batch/jobs/execution/step/checkpoint
    batch/jobs/execution/step/checkpoint
    ...
    batch/jobs/execution/step/checkpoint
    batch/jobs/execution/step/completed
    batch/jobs/execution/completed
    batch/jobs/instance/completed
  • Soumettez et exécutez un travail à étape unique avec partition.
    batch/jobs/instance/submitted
    batch/jobs/instance/jms_queued
    batch/jobs/instance/jms_consumed
    batch/jobs/execution/starting
    batch/jobs/instance/dispatched
    batch/jobs/execution/started
    batch/jobs/execution/step/started
    batch/jobs/execution/partition/started
    batch/jobs/execution/partition/started
    batch/jobs/execution/partition/started
    batch/jobs/execution/partition/completed
    batch/jobs/execution/partition/completed
    batch/jobs/execution/partition/completed
    batch/jobs/execution/step/completed
    batch/jobs/execution/completed
    batch/jobs/instance/completed

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_batch_monitoring.html