OSB / SOA 12c : Message Throttling pour un Business Service

Pour contrôler le flux de messages vers un service métier et empêcher les retards, vous pouvez activer et configurer la limitation ou le Throttling  des messages pour les services métier dans vos applications Service Bus.

  • Concept

Lorsque vous utilisez le throttling pour contrôler le flux de messages, une file d’attente de limitation ou throttling  queue est créée, dans laquelle les messages sont mis en file d’attente lorsqu’un service métier atteint sa simultanéité maximale ou lorsqu’un groupe de limitation atteint sa concurrence maximale. Les messages avec une même priorité sont traités selon la base first-in-first-out .
La Throttling Queue est une file d’attente en mémoire. Une fois qu’un message a été dans la Throttling Queue pour un intervalle supérieur à la valeur d’expiration de message configurée pour le service métier, il devient un message expiré et est supprimé de la file d’attente. Lorsque vous supprimez ou renommez un service métier, tous les messages dans la file d’attente de limitation sont supprimés.
Lorsque vous activez ou désactivez le Throttling, ainsi que la configuration des propriétés de limitation, dans l’onglet Propriétés de la page d’accueil du service métier dans Fusion Middleware Control, toutes les modifications que vous appliquez sur cette page prennent effet immédiatement.

  • Configurer le Throttling pour un Business Service

Lorsque le Throttling est activé, le flux des messages est restreint aux points de terminaison et les messages sont traités par priorité. Vous pouvez éventuellement attribuer une priorité aux messages en utilisant les options de routage; dans le cas contraire, les messages sont supprimés selon la méthode du premier entré, premier sorti.
Pour configurer la limitation pour un service métier :
1. Dans le panneau Target Navigation du Fusion Middleware Control, étendez SOA > service-bus et cliquez sur le nom du projet qui contient le business service à configurer.

Le Service Bus Project home page apparaît, cliquez sur Properties, et pour activer le throttling pour le business service, sélectionnez Throttling State :


2.  Entrez les informations suivantes :

  • Maximum Concurrency : Le nombre maximal d’enregistrements que le service métier peut traiter simultanément. Cette valeur ne peut pas être 0 (zéro); ce doit être un entier positif.
  • Throttling QueueLe nombre maximal de messages dans la file d’attente de limitation ou Throttling  Queue. Une valeur de 0 indique qu’il n’y a pas de Throttling Queue.
  • Message ExpirationLe nombre de millisecondes qu’un message peut être dans la file d’attente avant l’expiration. Une valeur de 0 signifie que les messages n’expirent pas.

Exemple :

Si vous ne souhaitez plus limiter les messages pour un service métier, vous pouvez désactiver le throttling pour ce service à tout moment. Lorsque vous désactivez le throttling, les messages sont traités normalement et le flux de messages n’est plus limité par les paramètres de throttling.
Pour désactiver la limitation pour un service métier, il  suffit de décocher la case Throttling state :

Quelques Erreurs associées à la mauvaise configuration

OSB-380102    (==> Solution : Augmenter la nombre des messages dans la throttling queue)
Throttling error: throttling queue for business service refPersonneITE is full and rejected message

Bonne Lecture !
Sanae