簡體   English   中英

如何使用JDBC獲取正在運行的語句的列表

[英]How to get a list of running statements using JDBC

我正在使用DBCP和JDBC進行一些數據移動。 有時,當某些查詢運行時間過長時,該應用程序可能會被終止; 但是,正如您所知,盡管該應用程序已被終止,但已發送到數據庫的語句並未被終止。 有沒有辦法找到正在運行的查詢列表並在殺死應用程序之前將其取消?

我知道您可以從數據庫端獲取正在運行的查詢的列表,然后取消查詢,但這不是我想要的方式。 我想找到由應用程序(連接到DB的指定用戶帳戶)通過JDBC發出的正在運行的查詢(語句)列表,並使用statement.cancel()中止查詢。

JDBC API不提供任何方式來獲取所有運行或其他狀態的Statement對象的列表。 但是,您可以自己跟蹤所有Statement對象。 例如,您可以使用WeakHashMap<Statement, Statement>以避免內存/資源泄漏的方式保存現存的Statement對象。

另一種可能性是使用Connection.abort(...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM