[英]How to get connection pool size programmatically in JBoss?
有什么方法可以確定數據庫連接池的大小。 我想找出最小池大小,最大池大小。
原因如下:
但是對於某些客戶端,由於越來越多的用戶嘗試同時從池中獲取連接,因此該大小(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.