簡體   English   中英

如何在JBoss中以編程方式獲取連接池大小?

[英]How to get connection pool size programmatically in JBoss?

有什么方法可以確定數據庫連接池的大小。 我想找出最小池大小,最大池大小。

原因如下:

  1. 我的應用程序在Wildfly-9.0.1.Final上運行。
  2. 我已經在-ds.xml文件中配置了數據源。
  3. 我有很多客戶端,每個客戶端都有-ds.xml文件。
  4. 在每個文件中,我指定了max-pool-size = 30。

但是對於某些客戶端,由於越來越多的用戶嘗試同時從池中獲取連接,因此該大小(30)很小。 然后在那種情況下,我需要將最大池大小增加到更大的數字。 我想要類似的東西可以幫助我獲取這些參數,然后基於此我將執行一些邏輯。 就像池大小達到25/30一樣,它將觸發電子郵件作為警報,以便開發人員可以增加其池大小。 這樣,將有助於避免客戶端在獲得全部連接時無法連接時遇到的問題。

有什么方法可以通過編程方式訪問這些連接池參數。

好吧,有多種方法。 如果您的數據源將在standalone.xml中配置,則可以輕松實現目標

通過CLI命令 (如果您不熟悉CLI,請在此處查看

/subsystem=datasources/data-source=ExampleDS/statistics=pool:read-resource(include-runtime=true)

通過閱讀以下MBean 來通過JMX

jboss.as:subsystem=datasources,data-source=ExampleDS,statistics=pool

注意:在兩種情況下,ExampleDS都必須替換為您的實際數據源名稱。

更新資料

如果直接將-ds.xml放到Deployments目錄中,則可以讀取如下統計信息:

/deployment=my-ds.xml/subsystem=datasources/data-source=java\:jboss\/my\/jndiName\/for\/DeployedDS/statistics=pool:read-resource(include-runtime=true)

要么

jboss.as:deployment=my-ds.xml,subsystem=datasources,data-source="java:jboss/my/jndiName/for/DeployedDS",statistics=pool

請注意,無論如何,您都必須先啟用這些統計信息,然后才能使用上述方法獲取任何有用的信息。 這些統計信息可能會降低性能。 您可以例如通過CLI啟用以下統計信息:

/deployment=my-ds.xml/subsystem=datasources/data-source=java\:jboss\/my\/jndiName\/for\/DeployedDS/statistics=pool:write-attribute(name=statistics-enabled, value=true)

在使用WildFly時,通常建議您在standalone.xml中配置數據源-更好地支持它。

請嘗試使用jboss-cli

[standalone @ localhost:9999 /] / subsystem = datasources / data-source = ExampleDS / statistics = pool:read-resource(include-runtime = true)

暫無
暫無

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

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