Aller au contenu

Service SQL IBM i (AS/400) · Variable globale

SYSIBMADM.SELFCODES

Codes SQLCODE capturés par SELF

Variable globale qui liste les SQLCODE à capturer en détail par SELF, le journal d'erreurs SQL de Db2 for i, pour les travaux démarrés ensuite.

À quoi ça sert

SYSIBMADM.SELFCODES est une variable globale de type VARCHAR(256). Sa valeur est une liste de codes SQL séparés par des virgules, par exemple '-913, -204'. Les travaux démarrés après sa définition enregistrent le détail des instructions SQL qui échouent avec l'un de ces codes.

Dans la pratique, on s'en sert pour comprendre une erreur récurrente en production : un -913 (blocage ou délai d'attente sur un enregistrement) ou un -204 (objet introuvable) dont on ne retrouve pas l'origine dans les travaux. On la définit avec CREATE OR REPLACE VARIABLE.

Avant d'affecter une liste saisie à la main, on peut la contrôler avec la fonction SYSIBMADM.VALIDATE_SELF.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

VALUES SYSIBMADM.SELFCODES

Ce que l'IBM i a renvoyé le 01/10/2026 (1 ligne au plus) :

00001
NULL

Données anonymisées : les noms de système, de profils, de bibliothèques, de postes et les adresses IP ont été remplacés. Les objets du schéma JOBISQL sont des objets de démonstration créés pour ce site.

L'exemple d'IBM

Configurer SELF pour capturer le détail, pour tous les travaux démarrés à partir de maintenant, des instructions SQL qui échouent avec le SQLCODE -913 ou -204.

-- Description: Configure SELF to capture detail for all jobs started in the future, 
     -- for any SQL statements that fail with SQLCODE = -913 or SQLCODE = -204. 
  CREATE OR REPLACE VARIABLE SYSIBMADM.SELFCODES  
      VARCHAR(256) DEFAULT '-913, -204';

Bon à savoir

Seuls les travaux démarrés après la définition de la variable sont concernés : un travail déjà actif n'est pas touché.