我们使用Sybase ASE (15.5)服务器作为我们的DB,并且有奇怪的、间歇性的SPID阻塞问题,我正试图在应用层以编程方式检测和缓解这些问题。reorg在widgets上放置独占锁请求,但无法获得锁,因为widgets已经被挂起的SPID/查询锁定和阻塞;然后
整个系统现在被捆绑起来: reorg在获得widgets上的独占锁之前无法启动,但是widgets被挂起的SPID捆绑在阻塞共享锁中。而且因为reor
.; // some expressionAFAIK,C++生存期规则将保证在获取锁之前调用not_locked(),并在锁保持时调用locked()。但是,我不太清楚的是,返回的表达式将在何时根据调用锁析构函数的点进行计算。它是否保证表达式将在析构函数之前进行计算?我会这样认为,但我不是百分百肯定,如果不是,它可能会导致非常微妙,间歇性,难以找到的错误!