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ètre | Type | Par défaut | Signification |
|---|---|---|---|
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é |