Gestion des agents de base de données

La plupart des applications établissent une relation un à un entre le nombre d'applications connectées et le nombre de demandes d'application pouvant être traitées par le serveur de base de données. Toutefois, votre environnement peut nécessiter une relation plusieurs-à-un entre le nombre d'applications connectées et le nombre de demandes d'application pouvant être traitées.

Deux paramètres de configuration du gestionnaire de base de données contrôlent ces facteurs séparément:
  • Le paramètre max_connections indique le nombre maximal d'applications connectées
  • Le paramètre max_coordagents indique le nombre maximal de demandes d'application pouvant être traitées simultanément

Le concentrateur de connexion est activé lorsque la valeur de max_connections est supérieure à la valeur de max_coordagents. Etant donné que chaque agent de coordination actif nécessite une surcharge de ressources de base de données globale, plus le nombre de ces agents est élevé, plus les limites supérieures des ressources globales disponibles seront atteintes. Pour éviter que cela ne se produise, définissez la valeur de max_connections sur une valeur supérieure à la valeur de max_coordagentsou définissez les deux paramètres sur AUTOMATIC.

Il existe deux scénarios spécifiques dans lesquels la définition de ces paramètres sur AUTOMATIC est une bonne idée:
  • Si vous êtes certain que votre système peut gérer toutes les connexions qui peuvent être nécessaires, mais que vous souhaitez limiter la quantité de ressources globales utilisées (en limitant le nombre d'agents de coordination), définissez max_connections sur AUTOMATIC. Lorsque max_connections est supérieur à max_coordagents, le concentrateur de connexion est activé.
  • Si vous ne souhaitez pas limiter le nombre maximal de connexions ou d'agents de coordination, mais que vous savez que votre système requiert ou bénéficierait d'une relation plusieurs à un entre le nombre d'applications connectées et le nombre de demandes d'application traitées, définissez les deux paramètres sur AUTOMATIC. Lorsque les deux paramètres sont définis sur AUTOMATIC, le gestionnaire de base de données utilise les valeurs que vous spécifiez comme rapport idéal des connexions aux agents de coordination. Notez que ces deux paramètres peuvent être configurés avec une valeur de départ et un paramètre AUTOMATIC. Par exemple, la commande suivante associe à la fois la valeur 200 et AUTOMATIC au paramètre max_coordagents :update dbm config using max_coordagents 200 automatic.

Exemple

Examinons le scénario suivant :
  • Le paramètre max_connections est défini sur AUTOMATIC et a une valeur en cours de 300
  • Le paramètre max_coordagents est défini sur AUTOMATIC et a une valeur en cours de 100
Le rapport de max_connections à max_coordagents est 300:100. Le gestionnaire de base de données crée de nouveaux agents de coordination lorsque des connexions sont établies et la concentration des connexions est appliquée uniquement lorsque cela est nécessaire. Ces paramètres génèrent les actions suivantes:
  • Les connexions 1 à 100 créent de nouveaux agents de coordination
  • Les connexions 101 à 300 ne créent pas de nouveaux agents de coordination ; ils partagent les 100 agents qui ont déjà été créés
  • Les connexions 301 à 400 créent de nouveaux agents de coordination
  • Les connexions 401 à 600 ne créent pas de nouveaux agents de coordination ; ils partagent les 200 agents qui ont déjà été créés
  • et ainsi de suite
Dans cet exemple, on suppose que les applications connectées conduisent suffisamment de travail pour justifier la création de nouveaux agents de coordination à chaque étape. Après un certain temps, si les applications connectées ne conduisent plus suffisamment de travail, les agents de coordination deviennent inactifs et peuvent être arrêtés.

Si le nombre de connexions est réduit, mais que la quantité de travail gérée par les connexions restantes est élevée, le nombre d'agents de coordination risque de ne pas être réduit immédiatement. Les paramètres max_connections et max_coordagents n'affectent pas directement la mise en pool ou l'arrêt de l'agent. Les règles de fin d'agent normales s'appliquent toujours, ce qui signifie que le rapport des connexions aux agents de coordination peut ne pas correspondre exactement aux valeurs que vous avez spécifiées. Les agents peuvent revenir dans le pool d'agents pour être réutilisés avant d'être arrêtés.

Si une granularité plus fine du contrôle est nécessaire, spécifiez un rapport plus simple. Par exemple, le rapport de 300:100 de l'exemple précédent peut être exprimé en 3:1. Si max_connections est défini sur 3 (AUTOMATIC) et max_coordagents sur 1 (AUTOMATIC), un agent de coordination peut être créé pour trois connexions.