Utilisation des propriétés des messages

Vous pouvez utiliser les propriétés de message pour modifier les traitements ultérieurs.

Avant de commencer

Avant de commencer cette tâche, vous devez prendre connaissance des propriétés prises en charge par l'interface SIMessage dans Prise en charge des propriétés des messages pour les médiations.

Pourquoi et quand exécuter cette tâche

Il existe deux types de propriétés de message différents :
  • Les propriétés système (y compris les en-têtes JMS, les propriétés JMSX et JMS_IBM_properties)
  • Les propriétés utilisateur.

Vous pouvez utiliser les propriétés des messages pour déterminer les messages à traiter par une médiation ultérieure ou affecter le traitement par une médiation ou une application en aval. La règle définie dans la zone du sélecteur lors de la configuration de la médiation teste les valeurs des propriétés des messages.

Vous pouvez accéder aux propriétés, les modifier et les supprimer à l'aide de l'interface SIMessage (voir SIMessage.) Il existe trois ensembles de méthodes différents :

  • Ces propriétés agissent sur les propriétés système et sur les propriétés utilisateur si le nom est précédé du préfixe user. :
    • getMessageProperty
    • setMessageProperty
    • deleteMessageProperty
    • clearMessageProperties
  • Ces propriétés n'agissent que sur les propriétés utilisateur ; le préfixe user. est inutile :
    • getUserProperty
    • setUserProperty
    • deletUserProperty
    • clearUserProperties
  • getUserPropertyNames renvoie une liste des noms des propriétés utilisateur dans le message.
Généralement, vous pouvez utiliser les propriétés des messages de la manière suivante lorsque vous programmez une médiation :

Procédure

  1. Recherchez le point d'insertion du code de médiation fonctionnel dans votre gestionnaire de médiations, dans la méthode handle (contexte MessageContext). L'interface est MessageContext ; vous devez la transtyper en SIMessageContext sauf si vous n'êtes intéressé que par les méthodes fournies par MessageContext.
  2. Extrayez l'interface SIMessage de l'objet MessageContext. Par exemple, SIMessage message = ((SIMessageContext)context).getSIMessage();
  3. Créez votre fonction d'en-tête de médiation d'une manière similaire aux exemples suivants, à l'aide des informations de référence fournies dans Prise en charge des propriétés des messages pour les médiations pour :
    1. Extraire une propriété utilisateur du message. Par exemple, String task = (String)msg1.getUserProperty("task");. Dans ce cas, la chaîne associée à la tâche peut faire référence à une opération que la médiation doit effectuer.
    2. Définir une propriété utilisateur dans laquelle les propriétés des messages sont stockées comme paires nom-valeur. La méthode setUserProperty ne peut être employée que pour définir des propriétés utilisateur ; par conséquent, le nom transmis dans la méthode ne doit pas inclure le préfixe "user". Par exemple, msg1.setUserProperty("background","green");
    3. Supprimer une propriété utilisateur du message. Par exemple, msg1.deleteUserProperty("task");

Exemple

Le code de la fonction de médiation permettant d'utiliser les propriétés des messages peut être similaire au fragment de code de l'exemple suivant :

    String task = (String)msg1.getUserProperty("task");
    if (task != null) {
      if (task.equals("addColor")) {
        msg1.setMessageProperty(SIProperties.JMS_IBM_Format, "colorful");
        msg1.setUserProperty("background","green");
        msg1.setUserProperty("foreground","purple");
        msg1.setUserProperty("depth",new Integer(3));
        msg1.deleteUserProperty("task");
      }
      else {
        msg1.clearUserProperties();
      }
    }     

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



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=tjy1504
Nom du fichier : tjy1504.html