Conseils relatifs au codage pour la programmation des médiations

Conseils de programmation à appliquer lors de l'écriture d'un code de médiation.

  • Prenez soin d'éviter le bouclage dans le chemin de routage de transmission. Par exemple, si vous définissez une destination dans le chemin qui est identique à la destination actuelle, le message boucle indéfiniment et le chemin de routage est redéfini sur la destination actuelle à chaque fois. La structure de médiation ne vérifie pas les boucles dans les chemins de routage.
  • Evitez l'utilisation de zones statiques lorsque cela est possible. Une seule médiation peut être déployée pour traiter plusieurs messages simultanément.
  • Ne placez en cache aucun élément qui soit déterminé à partir du contexte ou du contenu du message. Ces valeurs varient pour chaque message. L'exception consiste à placer en cache les valeurs dérivées uniquement à partir des propriétés du gestionnaire de médiations pour de meilleures performances.
  • La programmation de la médiation est sujette aux mêmes restrictions que la programmation d'un EJB. Pour en savoir plus sur ces restrictions, voir section 18.1.2 de la spécification EJB 1.1.
  • Choisissez le niveau approprié de contrôle transactionnel pour votre médiation : par exemple, une médiation qui opère sur des zones d'un message a peu de chances d'avoir des implications pour le contrôle transactionnel. Au contraire, si votre médiation met à jour les zones de la base de données, elle requiert un contrôle transactionnel et vous devez demander à l'administrateur de définir l'indicateur UseGlobalTransaction dans la définition de médiation. Par défaut, cet indicateur a la valeur False.
  • Conseils qui s'appliquent spécifiquement au format de message :
    • Il est recommandé de vérifier que le message respecte le format attendu une fois que la fonction de médiation a effectué des opérations dessus. Vous devez utiliser la méthode isWellFormed dans l'interface SIMessage afin de vérifier que toutes les valeurs des propriétés du message peuvent être sérialisées et que le graphique des données respecte le format du message.
    • Suivant la manière dont vous voulez traiter le message, vous pouvez spécifier un format qui correspond à vos besoins au lieu d'accepter le format naturel. Par exemple, si vous voulez gérer un message SOAP comme chaîne d'octets, utilisez la méthode getNewDataGraph dans l'interface SIMessage et définissez le format JMS/bytes. getNewDataGraph renvoie un nouveau graphique des données SDO contenant une copie du contenu de la charge SIMessage dans la représentation en arborescence spécifiée par la zone de format, dans cet exemple sous la forme d'une chaîne d'octets.
    • Il est recommandé de vérifier le format du message dans le code de la médiation car il est peu probable qu'une médiation puisse traiter un message à un format inattendu. Utilisez la méthode getFormat sur l'interface SIMessage.
  • La version de SDO prise en charge par les médiations est Version 1 uniquement.
  • En raison d'une restriction liée aux messages dans l'interface utilisateur SDO, les méthodes d'accès aux messages ne contiennent pas de clause ‘throws'. Par conséquent, une exception émise par une méthode d'accès suite à une erreur d'analyse est une exception non vérifiée. La médiation peut détecter une exception de l'analyse syntaxique en recherchant la classe d'exception SIMessageParseException dans le package com.ibm.websphere.sib.exception. Utilisez un code similaire au suivant :
    try {
      // Fonction impliquant un accès au message SDO
    } catch (SIMessageParseException e) {
      // Recherche du motif réel de l'exception d'exécution et résolution de cette exception.
      // Signe probable d'un échec de l'analyse syntaxique...
      Throwable cause = e.getCause();
    }
    Remarque : Si une médiation ne détecte pas l'exception SIMessageParseException, la version d'origine du message est envoyée à la destination des exceptions.
  • Lors du déploiement de votre médiation, affectez au gestionnaire et à la liste des gestionnaires des noms descriptifs faciles à retenir.
  • Lorsque vous déployez une médiation sur une destination unique, utilisez exactement le même nom pour le gestionnaire de médiations, la liste des gestionnaires de médiations et l'objet de médiation dans la console d'administration.
  • Pour de meilleures performances, spécifiez des règles de sélecteur afin que la médiation effectue la médiation des sous-ensembles requis uniquement de messages transitant par une destination.

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