关于 protheus-locks-deadlocks
此技能面向排查和预防 Protheus 锁问题的开发者,说明混合记录锁模型、事务范围管理方式,以及针对不同数据库引擎的实时诊断方法。
主要功能
- 01Protheus 锁模型与 API 语义
- 02安全的事务范围管理模式
- 03锁顺序与争用预防
- 04实时锁与死锁诊断
- 05针对数据库引擎的 SQL 检查
适用场景
- 01调查记录被锁定的错误
- 02诊断并发负载下的争用
- 03审查使用记录锁的代码
- 04规划需考虑锁顺序的批处理作业
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ thalysjuvenal/ advpl-specialist --skill protheus-locks-deadlocks安装后在 Claude Code 中输入/protheus-locks-deadlocks确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
diagnostics.mdpatterns-prevention.mdreference.md详细介绍
Protheus 锁与死锁
此技能介绍 Protheus 混合锁定模型——由 DBAccess 在底层 RDBMS(PostgreSQL、MSSQL、Oracle)之上协调的记录级 Workarea 锁(RecLock/MsUnlock)——以及如何诊断和预防锁泄漏、锁竞争和死锁,这些都是最常见的生产问题之一。内容涵盖锁 API 语义(RecLock、MsUnlock/MsUnlockAll、SoftLock、LockByName、TCSqlExec、BeginTran/EndTran/DisarmTransaction)、使用 BEGIN SEQUENCE/RECOVER 安全地限定事务范围,以及针对各数据库引擎的实时诊断流程。
当用户报告“Record locked by user XYZ”错误、需要调查并发负载下的性能下降、正在编写或审查锁定记录的代码,或在设计需要考虑锁顺序的大型数据集批处理任务时,请启用此技能。此技能不涵盖 Embedded SQL 中的查询设计或 %nolock% 用法(请参阅 query-builder)、与锁定无关的一般运行时/性能调试(请参阅 advpl-debugging),也不涵盖 BeginSQL/EndSQL 宏语法(请参阅 embedded-sql)。
| 参考文件 | 适用场景 |
|---|---|
| reference.md | 始终阅读——锁类型表、核心锁/事务 API、使用指导 |
| patterns-prevention.md | 编写或重构锁定记录的代码时——BEGIN SEQUENCE/RECOVER、SoftLock、事务范围、锁顺序规则 |
| diagnostics.md | 调查实时锁竞争或死锁时——TopMemoStatus、MonitorActiveLocks、DBAccess 监控、特定引擎的 SQL 锁查询 |
评论
支持 Markdown