首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在server.xml中检查tomcat数据源连接池

如何在server.xml中检查tomcat数据源连接池
EN

Stack Overflow用户
提问于 2018-06-07 12:25:20
回答 1查看 5.2K关注 0票数 0

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

这是我来自Tomcat的server.xml

server.xml

代码语言:javascript
代码运行次数:0
运行
复制
<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

代码语言:javascript
代码运行次数:0
运行
复制
<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

我遵循上面的所有代码,可以在Testing Environment中检查连接池。

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

server.xml中是否有检查数据源连接池状态的参考编码?

我试过了

代码语言:javascript
代码运行次数:0
运行
复制
   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();
    }

但它只返回:

代码语言:javascript
代码运行次数:0
运行
复制
name : jdbc/test
global : jdbc/test
type : javax.sql.DataSource

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

有人能帮帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2018-06-14 00:04:39

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50732947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档