Calcul de la mise en attente
Pour calculer la mise en attente, vous utilisez les propriétés configurées et des valeurs d'exécution spécifiques. L'exemple de code suivant montre comment calculer un scénario de mise en attente hypothétique.
Pour calculer la mise en attente
Laissez alpha représenter un facteur compris entre 0 et 1 mesurant la contrainte de mémoire. En pratique, alpha possède un composant pour chacun des 3 critères de limitation basée sur la mémoire (propriétés de mise en attente) ; dans cet exemple, ils sont désignés par alpha(virtual), alpha(private) et alpha(physical). Définissez les éléments suivants :
IF ActualPrivateBytes < OptimalUsage alpha(private) = 1 ELSE IF ActualPrivateBytes > MaximalUsage alpha(private) = 0 ELSE alpha(private) = (MaximalUsage - ActualPrivateBytes) / (MaximalUsage - OptimalUsage)
Notes
Les éléments OptimalUsage et MaximalUsage possèdent des valeurs par défaut pour chaque propriété de mise en attente. Ces valeurs peuvent être modifiées dans le fichier BTSNTSvc.exe.config. Pour plus d’informations, consultez Propriétés par défaut de déshydratation.
Définissez les autres composants alpha de la même façon. Définissez les éléments suivants :
alpha = Minimum { alpha(virtual), alpha(private), alpha(physical) } where alpha(…) = 1 whenever IsActive=false for that given memory unit
Définissez ensuite l'élément TestThreshold (l'unité de TestThreshold, MinThreshold et MaxThreshold est la seconde) :
TestThreshold = MinThreshold + (alpha * (MaxThreshold – MinThreshold))
Notes
Valeur par défaut de MinThreshold = 1. Valeur par défaut de MaxThreshold = 1800. Ces valeurs peuvent être modifiées dans le fichier BTSNTSvc.exe.config. Pour plus d’informations, consultez Propriétés par défaut de déshydratation.
Définissez ensuite les éléments TimeBlocked et EstimatedTime :
TimeBlocked = durée d'attente réelle pour que l'abonnement soit satisfait
EstimatedTime = durée d'inactivité estimée pour cette orchestration (par ex., le délai d'attente restant pour l'écoute)
La décision de mise en attente dépend du résultat de la condition booléenne suivante (true = mise en attente) :
- Dehydrate = (EstimatedTime > TestThreshold OR TimeBlocked > (2* TestThreshold))
Notes
La durée estimée correspond à la durée restante avant l'expiration du délai (si l'attente est de 5 minutes et si deux minutes se sont déjà écoulées, TimeBlocked=120 secondes, EstimatedTime=180 secondes).
Voir aussi
Propriétés par défaut de mise en attente
Fichier BTSNTSvc.exe.config