有没有办法确定数据库连接池大小。我想找出最小池大小,最大池大小。
原因如下:
但对于某些客户端来说,这个大小(30)恰好很小,因为越来越多的用户试图同时从池中获取连接。然后在这种情况下,我需要将max-pool-size增加到更高的数字。我想要这样的东西将帮助我获取这些参数,然后基于我将执行一些逻辑。就像池大小达到25/30一样,它会触发电子邮件作为警报,以便开发人员可以增加其池大小。通过这种方式,避免客户端在收到所有问题时无法获得连接时会遇到的问题。
有没有办法以编程方式访问这些连接池参数。
答案 0 :(得分:0)
有多种方法。如果您的数据源将在standalone.xml中配置,您可以轻松实现目标
通过CLI命令(如果您不熟悉CLI,请查看here)
/subsystem=datasources/data-source=ExampleDS/statistics=pool:read-resource(include-runtime=true)
通过JMX 通过阅读以下MBean
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中配置数据源 - 它的支持方式更好。