2011-10-20 30 views
0

我有一個數據庫和Java線程死鎖的問題,所以是否有可能設置一段時間讓java線程處於鎖定狀態,然後釋放它,以防止所有系統掛起?通過這個技巧,我想釋放DB中的鎖定以將系統返回到正常工作流程,並且不管某些查詢會失敗...如何獲取鎖定並在一段時間後釋放它? Java

+0

海事組織,你應該考慮確定和固定根而不是繞開症狀。 – lobster1234

+0

花了很多時間,但找不到問題,因爲這是非常罕見的事情,並且在本地機器上我們無法再現:( – whatswrong

+1

是否存在Java線程死鎖,或者是否存在數據庫死鎖(或活鎖)? –

回答

0

嘗試Statement.setQueryTimeout()

但是,在大多數情況下,這可能應該被認爲是破解而不是一個合適的解決方案。正如@ lobster1234所說,找到並修復根本原因。

+0

AFAIK查詢超時未在所有JDBC驅動程序上實現。 –

0

如果你的數據庫支持(鎖定)等待超時,請確保它配置,或者使用nowait選項(如果可用)(這將立即報告鎖錯誤)

+0

感謝您的諮詢,將盡力檢查此 – whatswrong

+0

我看到在postgresql中鎖定等待超時不受支持,只有死鎖 – whatswrong

相關問題