Aller au contenu

Service SQL IBM i (AS/400) · Procédure

QSYS2.ADD_QUERY_THRESHOLD

Définir un seuil de requête SQL

Procédure qui crée un seuil (temps processeur, par exemple) pour les requêtes SQL de certains travaux, utilisateurs ou sous-systèmes, avec appel de programmes de sortie.

À quoi ça sert

Cette procédure définit un seuil de requête : un nom (THRESHOLD_NAME), un type (THRESHOLD_TYPE, par exemple 'CPU TIME') et une valeur (THRESHOLD_VALUE). Quand une requête atteint ce seuil, les programmes de sortie enregistrés sont appelés.

La portée se règle avec JOB_NAMES (défaut '*ALL'), INCLUDE_USERS (défaut '*ALL'), EXCLUDE_USERS (défaut '*NONE') et SUBSYSTEMS. On l'emploie pour empêcher une requête qui s'emballe de monopoliser le système.

La procédure ajoute une règle active sur le système. Pour la retirer, utilisez QSYS2.REMOVE_QUERY_THRESHOLD.

Résultat réel sur un IBM i 7.5

Procédure non exécutée sur notre IBM i de test : elle agit sur la configuration du système ou sur d'autres travaux.

L'exemple d'IBM

Fixer à 30 secondes le seuil de temps processeur total pour tous les travaux ; à l'atteinte de cette valeur, les programmes de sortie enregistrés sont appelés.

-- Description: Set a threshold value for total CPU time to 30 seconds for all jobs. 
 -- When this value is reached, any registered exit programs will be called. 
 CALL QSYS2.ADD_QUERY_THRESHOLD(THRESHOLD_NAME  => 'MAXTIME', 
                               THRESHOLD_TYPE  => 'CPU TIME', 
                               THRESHOLD_VALUE => 30, 
                               LONG_COMMENT    => 'Maximum runtime for all jobs');

Bon à savoir

Le seuil est un temps processeur estimé par requête : une valeur trop basse peut interrompre des traitements légitimes. Commencez par un petit périmètre (un utilisateur ou un sous-système).

Paramètres

ParamètreTypePar défautSignification
THRESHOLD_NAME GRAPHIC VARYING obligatoire Nom du seuil
THRESHOLD_TYPE VARCHAR(30) obligatoire Type de seuil
THRESHOLD_VALUE BIGINT obligatoire Valeur du seuil
JOB_NAMES VARCHAR(1099) '*ALL' Noms des travaux
INCLUDE_USERS VARCHAR(1099) '*ALL' Utilisateurs à inclure
EXCLUDE_USERS VARCHAR(1099) '*NONE' Utilisateurs à exclure
SUBSYSTEMS VARCHAR(1099) '*ALL' Sous-systèmes (liste séparée par des virgules)
DETECTION_FREQUENCY INTEGER 600 Fréquence de détection
LONG_COMMENT GRAPHIC VARYING NULL Commentaire détaillé