Aller au contenu

Service SQL IBM i (AS/400) · Vue

QSYS2.RECORD_LOCK_INFO

Verrous d'enregistrements

Liste les verrous d'enregistrements posés sur les membres de fichiers de la base de données : numéro d'enregistrement, état du verrou et travail qui le détient.

À quoi ça sert

Cette vue répond à la question classique : qui verrouille quel enregistrement ? Pour chaque verrou, elle donne la table et son membre, le numéro d'enregistrement relatif (RELATIVE_RECORD_NUMBER), l'état, le statut et la portée du verrou, ainsi que le travail concerné (JOB_NAME, JOB_USER, JOB_NUMBER) et son unité d'exécution.

Elle accepte les paramètres LIBRARY_NAME, FILE_NAME, MEMBER_NAME et IASP_NUMBER, qui limitent la recherche à un fichier plutôt que d'énumérer tout le système. Elle remplace l'enchaînement de la commande WRKOBJLCK puis de l'option sur les enregistrements.

Le gain du SQL est la jointure : on peut rapprocher le travail verrouillant de QSYS2.GET_JOB_INFO pour afficher l'instruction SQL en cours et l'adresse IP du client, comme dans l'exemple d'IBM.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

SELECT * FROM QSYS2.RECORD_LOCK_INFO

Pas de résultat : la vue parcourt tout le système et n'a pas répondu dans le délai que nous nous fixons ; aucun verrou d'enregistrement n'était actif.

L'exemple d'IBM

Rechercher les verrous d'enregistrements posés sur la table TOYSTORE/SALES.

-- Description: Find any record locks over the TOYSTORE/SALES table 
 WITH LOCK_CONFLICT_TABLE ( 
  table_name, lock_state, rrn, q_job_name) AS ( 
 SELECT table_name, lock_state, rrn, job_name 
 FROM QSYS2.RECORD_LOCK_INFO where 
  table_schema = 'TOYSTORE' and 
  table_name = 'SALES' 
 ) SELECT table_name, lock_state, rrn, 
          q_job_name, V_SQL_STATEMENT_TEXT, 
          V_CLIENT_IP_ADDRESS, B.* 
     FROM LOCK_CONFLICT_TABLE, TABLE(QSYS2.GET_JOB_INFO(q_job_name)) B;

Bon à savoir

Filtrez toujours sur la bibliothèque et le nom du fichier : sans filtre, la vue parcourt tous les verrous du système, ce qui peut être long.

Paramètres

ParamètreTypePar défautSignification
LIBRARY_NAME VARCHAR(10) obligatoire Nom de la bibliothèque
FILE_NAME VARCHAR(10) obligatoire Nom du fichier
MEMBER_NAME VARCHAR(10) obligatoire Nom du membre
IASP_NUMBER INTEGER obligatoire Numéro de l'ASP indépendant

Colonnes renvoyées (16)

Afficher les 16 colonnes
ColonneTypeSignification
TABLE_SCHEMA VARCHAR(128) Bibliothèque de la table
TABLE_NAME VARCHAR(128) Nom de la table
TABLE_PARTITION VARCHAR(128) Partition de la table
SYSTEM_TABLE_SCHEMA VARCHAR(10) Bibliothèque système de la table
SYSTEM_TABLE_NAME VARCHAR(10) Nom système de la table
SYSTEM_TABLE_MEMBER VARCHAR(10) Membre de la table (nom système)
RELATIVE_RECORD_NUMBER BIGINT Numéro d'enregistrement relatif
LOCK_STATE VARCHAR(8) État du verrou
LOCK_STATUS VARCHAR(9) Statut du verrou
LOCK_SCOPE VARCHAR(10) Portée du verrou
JOB_NAME VARCHAR(28) Nom du travail
JOB_NAME_SHORT VARCHAR(10) Nom court du travail
JOB_USER VARCHAR(10) Profil utilisateur du travail
JOB_NUMBER VARCHAR(6) Numéro du travail
THREAD_ID BIGINT Identifiant de l'unité d'exécution
LOCK_SPACE_ID BINARY(20) Identifiant de l'espace de verrouillage