简体   繁体   English

一段时间后如何获取锁并强制释放? 爪哇

[英]How to acquire a lock and force release it after some time? Java

I have a problem with database and java threads deadlocks, so is it possible to set some time for java thread to be inside lock, and release it then, to prevent all system hang? 我的数据库和Java线程死锁有问题,是否可以设置一些时间让Java线程处于锁定状态,然后释放它,以防止所有系统挂起? By this trick I want to release lock in DB to return system to normal workflow and no matter that some query would fail... 通过这个技巧,我想释放数据库中的锁以使系统恢复到正常的工作流程,而无论某些查询将失败...

Try Statement.setQueryTimeout() . 尝试Statement.setQueryTimeout()

However, in most circumstances doing this should probably be considered a hack rather than a proper solution. 但是,在大多数情况下,应该将其视为黑客行为,而不是适当的解决方案。 As @lobster1234 has said, find and fix the root cause. 正如@ lobster1234所说,找到并解决根本原因。

如果您的数据库支持(锁定)等待超时,请确保已对其进行配置,或者使用nowait选项(如果有)(它将立即报告锁定错误)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM