Dépanner les temporisations pour les intégrations synchrones

Si une temporisation se produit tout le temps pour une intégration synchrone ou si celle-ci dure plus longtemps que d'habitude, il est possible qu'elle tente de traiter un trop grand nombre de demandes. Si vous connaissez le nombre de demandes que votre instance traite en une seconde, vous pouvez plus facilement concevoir des intégrations synchrones qui fournissent les réponses rapides dont vous avez besoin.

Le calcul du nombre de demandes par seconde vous aide à déterminer le nombre approximatif de demandes concurrentes que votre système peut recevoir des applications client. Par exemple, lorsqu'une application mobile appelle Oracle Integration, combien de demandes concurrentes provenant de l'application mobile votre instance peut-elle traiter?
Ce calcul s'applique spécifiquement aux intégrations synchrones, pour lesquelles Oracle Integration attend une réponse du service cible. Si une intégration exécute une tâche volumineuse et nécessite beaucoup de temps, Oracle recommande de créer une intégration asynchrone à la place.
Note

  • Généralement, les mots "message" et "demande" sont synonymes. Toutefois, lorsque vous utilisez des données utiles volumineuses, vous pouvez consommer plus d'un message par demande. Cette modification a une incidence sur vos calculs. Voir Voir les mesures d'instance de service et de message de facturation.

    Les calculs de cette section supposent que chaque demande est inférieure ou égale à 50 Ko.

  • Ce calcul est généralement appelé TPS, ou transactions par seconde. Le calcul TPS ne s'applique pas directement à Oracle Integration pour deux raisons :

    • Oracle Integration traite les demandes et non les transactions.
    • Le dimensionnement dans Oracle Integration est basé sur la consommation horaire des messages et non sur la consommation par seconde.

    Pour Oracle Integration, l'équivalent du nombre de transactions par seconde est le nombre de demandes par seconde, qui correspond à votre degré de concurrence.

  1. Déterminez le nombre approximatif de demandes qu'une instance peut traiter en une minute.
    1. Déterminez le nombre d'ensembles de messages que vous avez achetés par heure pour l'instance.

      Pour cet exemple, nous allons dire que vous disposez d'une licence Oracle Integration et que vous avez acheté 4 ensembles.

    2. Multipliez le nombre d'ensembles de messages par le nombre de messages de l'ensemble de messages (5 000 messages pour les clients BYOL et 20 000 messages pour les clients non BYOL).

      Dans cet exemple, nous allons considérer que vous êtes un client utilisant des licences non BYOL. Vos ensembles de messages contiennent donc 5 000 messages.

      4 ensembles de messages x 5 000 messages par heure = 20 000 demandes par heure

    3. Divisez le nombre de demandes horaires par 3 600 pour déterminer votre capacité approximative par seconde.

      20 000 requêtes par heure / 3600 = 5,6 requêtes par seconde

    4. Multipliez les demandes par seconde par 2; une instance peut généralement traiter environ deux fois la capacité achetée.

      5,6 requêtes par seconde x 2 = 11 requêtes par seconde

  2. Calculez votre concurrence (nombre de demandes concurrentes que votre système peut traiter à partir d'applications client).
    1. Déterminez le temps de réponse type en secondes.

      Par exemple, exécutez quelques demandes et vérifiez les temps de réponse dans les horodatages du flux de données d'activités. Voir Suivre le statut des instances Integration dans Utilisation d'intégrations dans Oracle Integration 3.

      Le temps de réponse peut varier en fonction des circonstances. Lorsque le volume de transactions augmente dans votre instance, vos temps de réponse peuvent également augmenter.

      Pour cet exemple, nous allons considérer que votre temps de réponse est de 5 secondes.

    2. Multipliez le nombre de demandes que vous pouvez traiter par seconde par le temps de réponse.

      11 demandes par seconde x 5 secondes = 55 demandes concurrentes

      Cette valeur correspond à votre concurrence approximative.

Exemple 7-1 Traitement du nombre maximal de demandes concurrentes

Examinons un exemple de file d'attente de demandes lorsqu'une instance qui peut traiter 55 demandes concurrentes fonctionne à pleine capacité.

Le tableau suivant illustre la façon dont les demandes arrivent et sont terminées au fil des secondes. Le nombre total de demandes dans la file d'attente augmente jusqu'à atteindre 55 et reste à 55 indéfiniment. Après 5 secondes (le temps de réponse), les demandes commencent à se terminer.

Temps écoulé Demandes qui arrivent Demandes terminées Nombre total de demandes dans la file d'attente

1 seconde

11

0

11

2 secondes

11

0

22

3 secondes

11

0

33

4 secondes

11

0

44

5 secondes

11

11

55

6 secondes

11

11

55

7 secondes

11

11

55

8 secondes

11

11

55

Exemple 7-2 Dépassement du nombre maximal de demandes concurrentes

Imaginez que la même instance reçoit un nombre de demandes par seconde supérieur à la valeur maximale de concurrence. Le tableau suivant illustre la rapidité avec laquelle le nombre de demandes dans la file d'attente peut s'accumuler, même si vous ne dépassez la concurrence que de quelques demandes. Au bout de 3 secondes, l'instance a déjà dépassé son nombre maximal de demandes concurrentes et, au bout de 8 secondes, elle traite le double du nombre maximal de demandes concurrentes.

Si une intégration est susceptible de dépasser la concurrence maximale de l'instance, elle subira probablement des temporisations lorsqu'elle sera créée en tant qu'intégration synchrone. Créez plutôt l'intégration en tant qu'intégration asynchrone.

Temps écoulé Demandes qui arrivent Demandes terminées Nombre total de demandes dans la file d'attente

1 seconde

20

0

20

2 secondes

20

0

40

3 secondes

20

0

60

4 secondes

20

0

80

5 secondes

20

11

89

6 secondes

20

11

98

7 secondes

20

11

107

8 secondes

20

11

116