package com.alibaba.druid.http; import java.io.IOException; import java.io.PrintWriter; import java.sql.Driver; import java.sql.DriverManager; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.alibaba.druid.VERSION; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.stat.DruidDataSourceStatManager; import com.alibaba.druid.stat.JdbcDataSourceStat; import com.alibaba.druid.stat.JdbcSqlStat; public class InfoServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter out = resp.getWriter(); out.println(""); out.println("
"); out.println("| URL | " + dataSource.getUrl() + " |
| DbType | " + dataSource.getDbType() + " |
| UserName | " + dataSource.getUsername() + " |
| DriverClassName | " + dataSource.getDriverClassName() + " |
| InitialSize | " + dataSource.getInitialSize() + " |
| MinIdle | " + dataSource.getMinIdle() + " |
| MaxActive | " + dataSource.getMaxActive() + " |
| TestOnBorrow | " + dataSource.isTestOnBorrow() + " |
| TestWhileIdle | " + dataSource.isTestWhileIdle() + " |
| LogicConnectCount | " + dataSource.getConnectCount() + " |
| LogicCloseCount | " + dataSource.getCloseCount() + " |
| LogicConnectErrorCount | " + dataSource.getConnectErrorCount() + " |
| PhysicalConnectCount | " + dataSource.getCreateCount() + " |
| PhysicalCloseCount | " + dataSource.getDestroyCount() + " |
| PhysicalConnectErrorCount | " + dataSource.getCreateErrorCount() + " |
| PSCacheAccessCount() | " + dataSource.getCachedPreparedStatementAccessCount() + " |
| PSCacheHitCount() | " + dataSource.getCachedPreparedStatementHitCount() + " |
| PSCacheMissCount() | " + dataSource.getCachedPreparedStatementMissCount() + " |
| SQL | "); out.println("File | "); out.println("Name | "); out.println("ExecuteCount | "); out.println("ExecuteMillis | "); out.println("ExecuteMillisMax | "); out.println("InTxnCount | "); out.println("ErrorCount | "); out.println("EffectedRowCount | "); out.println("FetchRowCount | "); out.println("RunningCount | "); out.println("ConcurrentMax | "); out.println("ExecHistogram | "); out.println("FetchRowHistogram | "); out.println("UpdateCountHistogram | "); out.println("ExecAndRsHoldHistogram | "); out.println("||
| " + sqlStat.getSql() + " | "); if (sqlStat.getFile() != null) { out.println("" + sqlStat.getFile() + " | "); } else { out.println(""); } if (sqlStat.getName() != null) { out.println(" | " + sqlStat.getName() + " | "); } else { out.println(""); } out.println(" | " + sqlStat.getExecuteCount() + " | "); out.println("" + sqlStat.getExecuteMillisTotal() + " | "); out.println("" + sqlStat.getExecuteMillisMax() + " | "); out.println("" + sqlStat.getInTransactionCount() + " | "); out.println("" + sqlStat.getErrorCount() + " | "); out.println("" + sqlStat.getUpdateCount() + " | "); out.println("" + sqlStat.getFetchRowCount() + " | "); out.println("" + sqlStat.getRunningCount() + " | "); out.println("" + sqlStat.getConcurrentMax() + " | "); out.println("" + sqlStat.getHistogram() + " | "); out.println("" + sqlStat.getFetchRowCountHistogram() + " | "); out.println("" + sqlStat.getUpdateCountHistogram() + " | "); out.println("" + sqlStat.getExecuteAndResultHoldTimeHistogram() + " | "); out.println("