Bonjour à Tous,
Prière de m'aider à résoudre ce problème, car je suis planté ça fait 2j .
En fait, mon problème est de tuer le verrouillage à partir d’une session « S2 » sachant qu’il a été obtenu à partir d’une session « S1 » en utilisant les fonctions du package dbms_lock
Donc « S1 » lance ces 2 instructions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 dbms_lock.allocate_unique(mon_contexte, handle); status := dbms_lock.request(handle, dbms_lock.X_MODE, li_timeout); --status = 0 ==> lock établi / status=1 :'Timeout' / status=2 : 'Deadlock' / status=3 : 'Parameter Error' / status=4 :'Lock déja obtenu' / status=5 : 'Illegal Lock Handle'
« S1 » peut libérer son propre verrouillage en utilisant :
Mais « S2 » ne peut pas libérer le verrouillage obtenu par « S1 » en utilisant la fonction « dbms_lock.release() » ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 dbms_lock.allocate_unique(mon_contexte, handle); status := dbms_lock.release(handle);
==> Donc mon objectif est : à partir de la session « S2 » je tue le lock obtenu à partir de la session « S1 » tout en gardant la session « S1 » en vie (càd tuer uniquement le process du lock sans tuer toute la session).
Merci d’avance pour votre aide
Partager