Aller au contenu

Service SQL IBM i (AS/400) · Vue

QSYS2.OBJECT_LOCK_INFO

Verrous posés sur les objets

Liste les verrous détenus ou attendus sur un objet, avec le travail, le type et l'état du verrou : l'équivalent SQL de WRKOBJLCK.

À quoi ça sert

Cette vue renvoie les verrous posés sur un objet, comme le fait WRKOBJLCK. On l'interroge avec la bibliothèque, le nom, le type d'objet et le numéro d'ASP indépendant. Chaque ligne donne l'état du verrou (LOCK_STATE), son statut, sa portée, le nombre de verrous, le travail concerné, l'unité d'exécution et le programme, module et procédure en cours.

C'est l'outil de base pour comprendre un conflit d'accès à une table ou à un programme. L'exemple d'IBM joint le résultat à GET_JOB_INFO pour voir l'instruction SQL et l'adresse IP du client des travaux fautifs, ce que la commande ne propose pas.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

SELECT * FROM QSYS2.OBJECT_LOCK_INFO

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

OBJECT_SCHEMA Bibliothèque de l'objet OBJECT_NAME Nom de l'objet SYSTEM_OBJECT_SCHEMA Bibliothèque système de l'objet SYSTEM_OBJECT_NAME Nom système de l'objet SYSTEM_TABLE_MEMBER Membre de la table (nom système) OBJECT_TYPE Type de l'objet SQL_OBJECT_TYPE Type d'objet SQL ASP_NUMBER Numéro de l'ASP ASPGRP Groupe d'ASP MEMBER_LOCK_TYPE Type de verrou du membre LOCK_STATE État du verrou LOCK_STATUS Statut du verrou LOCK_SCOPE Portée du verrou JOB_NAME Nom du travail JOB_NAME_SHORT Nom court du travail JOB_USER Profil utilisateur du travail JOB_NUMBER Numéro du travail THREAD_ID Identifiant de l'unité d'exécution LOCK_SPACE_ID Identifiant de l'espace de verrouillage LOCK_COUNT Nombre de verrous PROGRAM_LIBRARY_NAME Nom de la bibliothèque du programme PROGRAM_NAME Nom du programme MODULE_LIBRARY_NAME Bibliothèque du module MODULE_NAME Nom du module PROCEDURE_NAME Nom de la procédure STATEMENT_ID Identifiant de l'instruction MACHINE_INSTRUCTION Instruction machine
LEROY S1DEA LEROY S1DEA NULL *SBSD NULL 0 *SYSBAS NULL *SHRRD HELD THREAD 801898/QSYS/QSYSARB4 QSYSARB4 QSYS 801898 1 NULL 1 QSYS QWCASUUM NULL NULL NULL NULL 1447
BIBAPP060 RECSBS BIBAPP060 RECSBS NULL *SBSD NULL 0 *SYSBAS NULL *SHRRD HELD THREAD 801898/QSYS/QSYSARB4 QSYSARB4 QSYS 801898 1 NULL 1 QSYS QWCASUUM NULL NULL NULL NULL 1447
BIBAPP085 SBSVOLTYBD BIBAPP085 SBSVOLTYBD NULL *SBSD NULL 0 *SYSBAS NULL *SHRRD HELD THREAD 801898/QSYS/QSYSARB4 QSYSARB4 QSYS 801898 1 NULL 1 QSYS QWCASUUM NULL NULL NULL NULL 1447
BIBAPP111 VBOSBS BIBAPP111 VBOSBS NULL *SBSD NULL 0 *SYSBAS NULL *SHRRD HELD THREAD 801898/QSYS/QSYSARB4 QSYSARB4 QSYS 801898 1 NULL 1 QSYS QWCASUUM NULL NULL NULL NULL 1447
BIBAPP112 S99 BIBAPP112 S99 NULL *SBSD NULL 0 *SYSBAS NULL *SHRRD HELD THREAD 801898/QSYS/QSYSARB4 QSYSARB4 QSYS 801898 1 NULL 1 QSYS QWCASUUM NULL NULL NULL NULL 1447

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

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

-- Description: Find any object locks over the TOYSTORE/SALES table 
 WITH LOCK_CONFLICT_TABLE (object_name, lock_state, q_job_name) AS ( 
 SELECT object_name, lock_state, job_name 
 FROM QSYS2.OBJECT_LOCK_INFO where 
 object_schema = 'TOYSTORE' and 
 object_name = 'SALES' ) 
      SELECT object_name, lock_state, 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;

Paramètres

ParamètreTypePar défautSignification
LIBRARY_NAME VARCHAR(10) obligatoire Nom de la bibliothèque
OBJECT_NAME VARCHAR(10) obligatoire Nom de l'objet
OBJECT_TYPE VARCHAR(10) obligatoire Type de l'objet
IASP_NUMBER INTEGER obligatoire Numéro de l'ASP indépendant

Colonnes renvoyées (27)

Afficher les 27 colonnes
ColonneTypeSignification
OBJECT_SCHEMA VARCHAR(128) Bibliothèque de l'objet
OBJECT_NAME VARCHAR(128) Nom de l'objet
SYSTEM_OBJECT_SCHEMA VARCHAR(10) Bibliothèque système de l'objet
SYSTEM_OBJECT_NAME VARCHAR(10) Nom système de l'objet
SYSTEM_TABLE_MEMBER VARCHAR(10) Membre de la table (nom système)
OBJECT_TYPE VARCHAR(7) Type de l'objet
SQL_OBJECT_TYPE VARCHAR(9) Type d'objet SQL
ASP_NUMBER INTEGER Numéro de l'ASP
ASPGRP VARCHAR(10) Groupe d'ASP
MEMBER_LOCK_TYPE VARCHAR(10) Type de verrou du membre
LOCK_STATE VARCHAR(7) É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
LOCK_COUNT INTEGER Nombre de verrous
PROGRAM_LIBRARY_NAME VARCHAR(10) Nom de la bibliothèque du programme
PROGRAM_NAME VARCHAR(10) Nom du programme
MODULE_LIBRARY_NAME VARCHAR(10) Bibliothèque du module
MODULE_NAME VARCHAR(10) Nom du module
PROCEDURE_NAME VARCHAR(4096) Nom de la procédure
STATEMENT_ID CHAR(10) Identifiant de l'instruction
MACHINE_INSTRUCTION INTEGER Instruction machine