Документация для MBean-атрибутов источника данных - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу отслеживать пулы источников данных, чтобы точно настроить сервер, используя ресурсы, которые требуются в настоящий момент, и заранее принимать решения, пока он не перегружен.

Так что я нашел этот код, который отлично работает,Это сервлет, который выводит информацию в веб при запросе:

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

Этото, что я хотел, я думаю.

Проблема в том, что я не могу найти документ, в котором все эти параметры определены и объяснены, чтобы знать, что я получаю."active", кажется, фактическое количество запросов для этого пула ... или, может быть, "numActive"?

Любой намек?

Большое спасибо.

...