mcpField
P
protheus-locks-deadlocks

protheus-locks-deadlocks

github.com/thalysjuvenal数据与数据库19147 次安装6 周前更新
代码仓库

关于 protheus-locks-deadlocks

此技能面向排查和预防 Protheus 锁问题的开发者,说明混合记录锁模型、事务范围管理方式,以及针对不同数据库引擎的实时诊断方法。

主要功能

  1. 01Protheus 锁模型与 API 语义
  2. 02安全的事务范围管理模式
  3. 03锁顺序与争用预防
  4. 04实时锁与死锁诊断
  5. 05针对数据库引擎的 SQL 检查

适用场景

  1. 01调查记录被锁定的错误
  2. 02诊断并发负载下的争用
  3. 03审查使用记录锁的代码
  4. 04规划需考虑锁顺序的批处理作业

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/thalysjuvenal/advpl-specialist --skill protheus-locks-deadlocks

安装后在 Claude Code 中输入/protheus-locks-deadlocks确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

diagnostics.md
patterns-prevention.md
reference.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