gpt4 book ai didi

sql-server - SQL Server sp_getapplock AND sp_releaseapplock 在释放锁定时抛出异常

转载 作者:行者123 更新时间:2023-12-01 19:17:53 27 4
gpt4 key购买 nike

我使用的是 SQL Server 的锁定函数,如下所示

sp_getapplock
sp_releaseapplock

我已指定@LockOwner = 'Session'

但是每次都会抛出以下异常:

com.microsoft.sqlserver.jdbc.SQLServerException: Cannot release the application lock (Database Principal: 'dbo', Resource: '89999') because it is not currently held

欢迎任何建议或想法!

问候!

CREATE PROCEDURE [SETLOCK]
@...
AS
DECLARE
@RESULT INT;
BEGIN TRANSACTION
EXEC @RESULT = sp_getapplock @...
@LockOwner = 'Session';

IF @RESULT = -3
BEGIN
ROLLBACK TRANSACTION;
END;
ELSE
BEGIN
COMMIT TRANSACTION;
END;

最佳答案

错误非常明显:您没有获取资源 89999 上的应用程序锁。您还必须在对 sp_releaselock 的调用中指定 Session (作为 @LockOwner 参数的值)并且锁定释放必须与锁定获取发生在同一 session 上。另一个可能的原因是获取/释放调用不平衡(您有一个额外的释放)。

顺便说一句,使用 session 范围锁时不需要事务。

关于sql-server - SQL Server sp_getapplock AND sp_releaseapplock 在释放锁定时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14952507/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com