我尝试检查server.xml中的连接池
这是Tomcat的server.xml
server.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>
context.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中的引用
有人可以帮忙吗?