Référentiel Liberty[8.5.5.6 ou ultérieure]

Activation d'une prise en charge serveur multiple à l'aide du fournisseur de messagerie WebSphere MQ

L'environnement de traitement par lots peut être configuré pour que des serveurs fonctionnent comme des répartiteurs par lots tandis que d'autres serveurs fonctionnent comme des programmes d'exécution par lots. Les répartiteurs par lots acceptent les demandes de clients externes et les rendent disponibles pour les programmes d'exécution par lots. Les programmes d'exécutionfinaux par lots reçoivent des demandes qui correspondent à leurs capacités et ils exécutent ces demandes. Les répartiteurs par lots et les programmes d'exécution par lots communiquent à l'aide de JMS (Java Messaging Service).

Pourquoi et quand exécuter cette tâche

Cette tâche vous permet de configurer le serveur de répartition par lots et le programme d'exécution par lots à l'aide du fournisseur de messagerie WebSphere MQ.

Procédure

  1. Configurez le répartiteur JMS par lots.
    1. Activez la prise en charge JMS en ajoutant la fonction wmqJmsClient-2.0 au gestionnaire de fonctions dans votre fichier server.xml.
    2. Ajoutez l'élément batchJmsDispatcher dans votre fichier server.xml sur le serveur qui héberge le répartiteur par lots.
      <batchJmsDispatcher connectionFactoryRef={reference to a configured JMS connection factory}
      	queueRef={reference to a configured JMS queue} />
      Remarque : Si vous n'indiquez pas les attributs connectionFactoryRef et queueRef, la valeur par défaut de l'élément connectionFactoryRef est batchConnectionFactory et la valeur par défaut de l'élément queueRef est batchJobSubmissionQueue. Ainsi, vous pouvez indiquer l'élément batchJmsDispatcher sous la forme <batchJmsDispatcher />. Vous devez toujours configurer la fabrique de connexion JMS batchConnectionFactory et la file d'attente batchJobSubmissionQueue JMS dans le fichier server.xml.
    3. Ajoutez la fabrique de connexion JMS et la file d'attente JMS correspondantes à la configuration de serveur. Cela n'est pas spécifique à la configuration par lots. L'exemple ci-après illustre la configuration de répartiteur JMS par lots et sa configuration JMS.
      <batchJmsDispatcher
      connectionFactoryRef="batchConnectionFactory"
      		      queueRef="batchJobSubmissionQueue" />
      
      <!-- wmq resrouce adapter -->
      <variable name="wmqJmsClient.rar.location"
         	value="${server.config.dir}/wmq.wlp.rar"/>
      <!-- require for BINDING mode -->
      <wmpJmsClient nativeLibraryPath="/mqm/jms/java/lib" />
      
      <authData password="pwd" user="user">
      </authData>
      
      <jmsConnectionFactory id="batchConnectionFactory"	
      		      jndiName="jms/batch/connectionFactory">
      	<properties.wmqJms transportType="BINDINGS"
      			   queueManager="WMQX">
      	</properties.wmqJms>
      </jmsConnectionFactory>
      
      <!-- baseQueueName is the queue defined on WMQ system -->
      <jmsQueue id="batchJobSubmissionQueue"
      	  jndiName="jms/batch/jobSubmissionQueue">
          <properties.wmqJms baseQueueName="BATCHQ"
      			  priority="QDEF"
      			  baseQueueManagerName="WMQX">
          </properties.wmqJms>
      </jmsQueue>
  2. Configurez le programme d'exécution JMS par lots.
    1. Activez la prise en charge JMS en ajoutant la fonction wmqJmsClient-2.0 au gestionnaire de fonctions dans votre fichier server.xml.
    2. Ajoutez l'élément batchJmsExecutor dans votre fichier server.xml sur le serveur qui héberge le programme d'exécution par lots.
      <batchJmsExecutor
      activationSpecRef={configured activation specification or batch
      executor}
      	queueRef={reference to the configured JMS queue} />
      Remarque : Si vous n'indiquez pas les attributs activationSpecRef et queueRef, la valeur par défaut de l'élément activationSpecRef est batchActivationSpec et la valeur par défaut de l'élément queueRef est batchJobSubmissionQueue. Ainsi, vous pouvez indiquer l'élément batchJmsExecutor sous la forme <batchJmsExecutor />. Vous devez toujours configurer la spécification d'activation JMS pour batchActivationSpec et la file d'attente JMS batchJobSubmissionQueue dans le fichier server.xml.
    3. Ajoutez la spécification d'activation JMS et la file d'attente JMS correspondantes à la configuration de serveur. Cela n'est pas spécifique à la configuration par lots.
    4. Définissez les fonctions du serveur de programme d'exécution par lots en incluant un sélecteur de messages JMS dans la spécification d'activation.
      • Filtrage basé sur des propriétés définies par le système :

        Plusieurs propriétés de répartiteur par lots sont disponibles dans le message JMS par lots que le programme d'exécution par lots peut utiliser pour filtrer les messages entrants.

        • com_ibm_ws_batch_applicationName : nom de l'application par lots pour la demande de travail
        • com_ibm_ws_batch_moduleName : nom de module de l'application par lots pour la demande de travail
        • com_ibm_ws_batch_componentName : nom de component de l'application par lots pour la demande de travail
        Remarque : Il est recommandé de spécifier un sélecteur de message avec au moins la propriété com_ibm_ws_batch_applicationName afin de garantir que le programme d'exécution reçoit uniquement des travaux qu'il peut traiter.
        L'exemple ci-après indique l'attribut messageSelector afin que le programme d'exécution accepte un travail pour l'application SimpleBatchJob et BonusPayout.
        messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob'
        OR com_ibm_ws_batch_applicationName = 'BonusPayout'">
        L'exemple ci-après indique l'attribut messageSelector afin que le programme d'exécution accepte un travail pour l'application SimpleBatchJob.
        messageSelector="com_ibm_ws_batch_applicationName =
        'SimpleBatchJob'">
      • Filtrage basé sur des propriétés définies par l'utilisateur :

        Le répartiteur par lors définit tous les paramètres de travail qui sont conformes à la propriété de message JMS appropriée dans le message de demande du répartiteur par lots. Ces propriétés peuvent également être utilisées par le sélecteur de message pour ajouter un filtrage supplémentaire au sélecteur de message. Pour cette raison, le nom, ou l'identificateur de la propriété, doit être conforme aux contraintes de propriété de message JMS. Par exemple, la propriété est une séquence de lettre et de chiffres de longueur illimitée, le premier caractère devant être une lettre. Une lettre est un caractère pour lequel la méthode Character.isJavaLetter renvoie true, et elle inclut '_' et '$'. Une lettre ou un chiffre est un caractère pour lesquels la méthode Character.isJavaLetterOrDigit renvoie true. Pour plus d'informations sur le sélecteur de messages JMS, voir JMS Javadoc.

        L'exemple ci-après illustre un sélecteur de message possible qui utilise la propriété com_ibm_ws_batch_applicationName et un paramètre de travail specialCapability.
        messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' AND specialCapability = 'superCapability'">
      L'exemple ci-après illustre la configuration de programme d'exécution JMS par lots et sa configuration JMS.
      <batchJmsExecutor activationSpecRef="batchActivationSpec"
      		  queueRef="batchJobSubmissionQueue"/>
      
      <!-- 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" />
      
      <authData password="pwd" user="user">
      </authData>
      
      <JmsActivationSpec id="batchActivationSpec" >
          <properties.wmqJms destinationRef="batchJobSubmissionQueue" 
      			  messageSelection="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' OR com_ibm_ws_batch_applicationName = 'BonusPayout'"
      			  transportType="BINDINGS"
      			  queueManager="WMQX">
          </properties.wmqJms>
      </jmsActivationSpec>
      
      <!-- baseQueueName is the queue defined on WMQ system -->
      <jmsQueue id="batchJobSubmissionQueue"
      	  jndiName="jms/batch/jobSubmissionQueue">
          <properties.wmqJms baseQueueName="BATCHQ"
      			  priority="QDEF"
      			  baseQueueManagerName="WMQX">
          </properties.wmqJms>
      </jmsQueue>
      
      
  3. Installez votre application par lots sur le serveur. Pour plus d'informations, voir Déploiement d'applications dans le profil Liberty.

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

Dispositions pour les centres de documentation | Commentaires


Icône d'horodatage Dernière mise à jour: Wednesday, 2 September 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_batch_multiJVMmq
Nom du fichier : twlp_batch_multiJVMmq.html