- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是 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/
我正在实现内部没有事务的存储过程。事实上,它会,但仅限于特定地点,以将时间减少到最少。存储过程的本质是我一次只想运行一个。 我尝试使用 sp_getapplock 但很快发现它需要在事务内部。 是否有
我有大约 20 个相互消耗的存储过程,形成了一个树状依赖链。 然而,存储过程使用内存中的表进行缓存,并且可以从许多不同的客户端同时调用。 为了防止针对内存表的并发更新/删除尝试,我使用了 sp_get
对最后一条消息感到抱歉。我在我的问题上做了一个粘贴。长问题简短,当在 try/catch 块内使用 sp_GetAppLock 时,我应该在捕获异常时调用 sp_ReleaseAppLock 吗? S
我有一个存储过程,我想确保它不能同时执行。 我的(多线程)应用程序通过此存储过程对基础表执行所有必要的工作。 IMO,锁定表本身是一个不必要的激烈操作,因此当我发现 sp_GetAppLock(它本质
我有一个不能同时执行的存储过程。多个进程调用此存储过程,但进程顺序访问存储过程至关重要。 存储过程基本上是在一张表中扫描满足各种条件的主键,将该记录标记为调用进程正在使用,然后将主键传递回调用进程。
我从此链接阅读了文章 https://msdn.microsoft.com/en-us/library/ms189823.aspx 有一件事我不太明白它们之间的区别这 @LockMode=共享、更新、
我使用的是 SQL Server 的锁定函数,如下所示 sp_getapplock sp_releaseapplock 我已指定@LockOwner = 'Session' 但是每次都会抛出以下异常:
我们有一个使用 sp_getapplock 的系统每当有人在 GUI 中打开订单时创建独占互斥体。这用于防止多人同时更改订单。 有时人们会打开订单然后回家,让订单保持打开状态。这有效地阻止了任何人更改
我想知道将 EF 上下文与 sp_getapplock 和 session 所有者类型一起使用的风险/安全性。基于docs ,我的理解是 session 所有者意味着如果在此之前未明确释放,则将在 s
我是一名优秀的程序员,十分优秀!