簡體   English   中英

監視JDBC連接池

[英]Monitoring JDBC connection pools

我正在通過JDBC驅動程序和Tomcat配置連接Java應用程序。 我使用此類定義了配置。 但是有時候,我有以下例外情況:

  • com.mysql.jdbc.exceptions.MySQLTimeoutException :由於超時或客戶端請求而取消的語句
  • java.sql.SQLException :查詢執行被中斷
  • java.sql.BatchUpdateException :由於超時或客戶端請求而取消了語句

但是數據庫上沒有太多負載,所以我認為問題出在我的配置上。 這是我的一些配置:

  • maxActive = 100
  • minIdle = 10
  • initialSize = 10
  • maxWait = 10000
  • maxIdle = 15

這些是針對某些重載系統的。 因此,我需要隨時查看我的池大小是否足夠以及可用連接數之類的其他信息。 有沒有監視連接池內部的好方法?

對於超時異常,請考慮以下偽代碼:

if(!connection.isValid())
  connection = getNewConnection();
resultSet rs = connection.execute(qry);

在執行查詢之前,基本上檢查連接是否超時。

如果查詢被中斷,除了回滾事務並重試之外,您無能為力。

啟用JMX,tomcat將在其mbean服務器中注冊您的數據源。 然后,您可以使用jconsole查看連接池詳細信息。

暫無
暫無

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

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