2011-05-06 33 views
12

有沒有辦法讓各種Connection.prepareStatement()拋出異常或返回,而不是等待行鎖?如何在PreparedStatement上設置查詢超時?

我想實現跨進程同步使用事先準備好的聲明,我不提交,所以它吸引的特定行寫鎖定。在其他進程中,它會嘗試準備sql語句,然後在原始進程結束時掛起。我需要這個讓我知道它掛起來了,所以我可以停止這個功能,並且每當它重新安排時再試一次。

任何想法?我一直在谷歌搜索幾天,似乎無法找到一個是/否的。

+0

可能是特定的數據庫 - 您使用什麼數據庫管理系統? – DaveH 2011-05-06 15:34:27

+0

8小時後就會啓動。 – Chris 2011-05-06 15:47:56

回答

16

我是個傻瓜,我昨天想通了這一點,只是忘了......

爲了解決這個問題,做

preparedstatement = con.prepareStatement(query); 
preparedstatement.setQueryTimeout(seconds); 

,然後只捕獲異常。

+1

文檔沒有說的'@Since的Java 7,'我也沒有任何人任何事。 – EJP 2015-01-23 18:01:26

+0

我也找不到證據,但我沒有看到所有的困難。我已經刪除它。 – Chris 2015-01-23 18:25:04