Я хочу отслеживать пулы источников данных, чтобы точно настроить сервер, используя ресурсы, которые требуются в настоящий момент, и заранее принимать решения, пока он не перегружен.
Так что я нашел этот код, который отлично работает,Это сервлет, который выводит информацию в веб при запросе:
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"?
Любой намек?
Большое спасибо.