数据源的MBean属性文档

时间:2019-02-22 10:25:30

标签: java database datasource pool

我想监视我的数据源池,以便使用实际每天需要的资源微调服务器,并在不知所措之前提前做出决定。

所以我发现这段代码很完美。这是一个servlet,可以在请求时将信息转储到Web中:

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    PrintWriter writer = resp.getWriter();
    writer.println("<!DOCTYPE html>");
    writer.println("<html>");
    writer.println("<body>");
    writer.println("<p><h1>Tomcat Pool</h1></p><p>");
    try {
        MBeanServer server = ManagementFactory.getPlatformMBeanServer();
        Set<ObjectName> objectNames = server.queryNames(null, null);
        for (ObjectName name : objectNames) {
            MBeanInfo info = server.getMBeanInfo(name);
            if (name.toString().contains("type=DataSource")) {
                writer.println("--------------<br/>");
                for (MBeanAttributeInfo mf : info.getAttributes()) {
                    Object attributeValue = server.getAttribute(name,
                            mf.getName());
                    if (attributeValue != null) {
                        writer.println("" + mf.getName() + " : "
                                + attributeValue.toString() + "<br/>");

                    }
                }
            }
        }
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    writer.println("</p></body>");
    writer.println("</html>");
}

一个请求可能看起来像这样(我只是为了简化一个数据源发布数据):

propagateInterruptState : false
useDisposableConnectionFacade : true
validationInterval : 30000
jmxEnabled : true
ignoreExceptionOnPreLoad : false
logAbandoned : false
commitOnReturn : false
password : Password not available as DataSource/JMX operation.
maxIdle : 10
testWhileIdle : false
removeAbandoned : false
minIdle : 10
abandonWhenPercentageFull : 0
maxWait : -1
active : 0
size : 5
logValidationErrors : false
driverClassName : com.mysql.jdbc.Driver
name : Tomcat Connection Pool[2-2023938592]
poolSweeperEnabled : true
validationQueryTimeout : -1
numActive : 0
modelerType : org.apache.tomcat.jdbc.pool.DataSource
validationQuery : select 1
rollbackOnReturn : false
className : org.apache.tomcat.jdbc.pool.DataSource
numIdle : 5
alternateUsernameAllowed : false
suspectTimeout : 0
useEquals : true
removeAbandonedTimeout : 60
loginTimeout : 0
testOnConnect : false
idle : 5
initialSize : 5
defaultTransactionIsolation : -1
url : jdbc:mysql://localhost:3306/SYSTEMLOGS
numTestsPerEvictionRun : 0
testOnBorrow : false
fairQueue : true
timeBetweenEvictionRunsMillis : 5000
minEvictableIdleTimeMillis : 60000
accessToUnderlyingConnectionAllowed : true
maxAge : 0
testOnReturn : false
useLock : false
waitCount : 0
maxActive : 120
username : root

那是我想要的。

问题是我似乎找不到所有定义和解释了所有这些参数的文档,以了解我得到了什么。 “活动”似乎是该池的实际请求数量……还是“ numActive”?

有任何提示吗?

非常感谢您。

0 个答案:

没有答案