gpt4 book ai didi

java - 如何查看server.xml中的tomcat数据源连接池

转载 作者:行者123 更新时间:2023-11-28 22:48:09 25 4
gpt4 key购买 nike

我试图检查 server.xml 中的连接池

这是我来自 Tomcat 的 server.xml

服务器.xml

<GlobalNamingResources>
<Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource"
maxTotal="200" maxIdle="50" maxWaitMillis="10000"
username="test" password="test"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost\test;databaseName=test" />
</GlobalNamingResources>

上下文.xml

<Context>
<ResourceLink name="jdbc/test"
golbal="jdbc/test"
type="javax.sql.DataSource" />
</Context>

我不知道如何从 server.xml 检查连接池,因为我将数据源错误地/或没有放在 context.xml 中。

由于服务器处于生产环境中,因此无法重置。我无法将数据源更改为 context.xml

我查了很多引用资料,大多数连接池的监视器都是将数据源放在context.xml中

例如: http://www.jcgonzalez.com/java-monitor-jdbc-connection-pool-servlet

我按照上面的所有代码,我可以在测试环境中检查连接池。

但是我无法从 server.xml 检查连接池。

在server.xml中是否有引用代码可以查看数据源连接池状态?

我试过了

   try {
MBeanServer server = ManagementFactory.getPlatformMBeanServer();

Set<ObjectName> objectNames = server.queryNames(null, null);
for (ObjectName name : objectNames) {
MBeanInfo info = server.getMBeanInfo(name);

if (info.getClassName().equals(
"org.apache.catalina.mbeans.ContextResourceLinkMBean")) {
for (MBeanAttributeInfo mf : info.getAttributes()) {
Object attributeValue = server.getAttribute(name,
mf.getName());
if (attributeValue != null) {
writer.println("" + mf.getName() + " : "
+ attributeValue.toString() + "<br/>");

}
}
break;
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

但它只返回:

name : jdbc/test
global : jdbc/test
type : javax.sql.DataSource

我想检查连接池状态而不是 context.xml 中的引用

有人可以帮忙吗?

最佳答案

此演示文稿可以帮助您满足监控要求:

Tomcat Presentations - 只需搜索“监控”。

关于java - 如何查看server.xml中的tomcat数据源连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50732947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com