亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

h2數據庫無法處理中斷怎么辦

h2數據庫無法處理中斷怎么辦

皈依舞 2023-04-13 16:40:55
如何處理 h2 數據庫無法處理中斷,我偶爾會看到我的嵌入式 h2 數據庫似乎已損壞,特別是我修改了一個 ExecutorService,這樣如果任務花費的時間太長,它就會取消任務。該任務可以取消,但是隨后的數據庫訪問失敗,出現異常我后來發現了這個問題基本上,如果在嵌入式模式下使用 H2,并且它接收到中斷,那么所有后續訪問都會失敗,直到線程池關閉并重新打開。在我給出的例子中,一個進程必須被取消,因為它似乎被卡住了,除了中斷之外沒有其他解決方案我還有另一種情況,通常控制器線程本身不直接執行數據庫工作,所以我一直在努力了解為什么發生中斷時為什么會導致數據庫錯誤,因為這是由控制器線程處理的。我現在已經解決了這個問題,我使用的是具有固定大小 BlockingQueue 的 ExecutorService(這樣我們就不會在內存中建立大隊列),但是如果隊列已滿,那么新任務實際上由控制器線程執行(因為 CallerRunsPolicy),所以控制器線程畢竟可以調用數據庫。我將 H2 與休眠一起使用,并且在這兩種情況下,在中斷后立即調用以下命令   HibernateUtil.closeFactory();似乎解決了這個問題,但是我想這意味著任何其他具有休眠會話的線程都將被破壞,但至少新打開的會話是可以的。所以我對這個解決方法不是特別滿意,還有其他想法嗎?使用 H2 作為服務器不是解決方案,因為 H2 的全部要點是應用程序中自包含的嵌入式數據庫。
查看完整描述

1 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

盡管沒有正確記錄使用異步協議允許在不中斷所有其他連接的情況下中斷連接。



查看完整回答
反對 回復 2023-04-13
  • 1 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號