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