org.apache.tomcat.jdbc.pool.DataSource的意外Spring Boot指标

时间:2016-08-30 14:41:59

标签: spring-boot metrics tomcat-jdbc

我使用带有池数据的Spring Boot

datasource:
  type: org.apache.tomcat.jdbc.pool.DataSource
  driverClassName: com.mysql.jdbc.Driver
  url:  ...
  username: ...
  password: ...
  tomcat:
    max-active: 50
    max-idle: 50
    testOnBorrow: true
    validationQuery: select 1;
    validationInterval: 30000

正确地进行此配置,因为日志文件包含以下行的10倍:

16:27:52.191 [] [  restartedMain] DEBUG g.apache.tomcat.jdbc.pool.PooledConnection - Instantiating driver using class: com.mysql.jdbc.Driver [url=...]

之后,我开始使用该应用程序并发出一些数据库请求。 DAO实现使用JPAContext和EntityManager,由Spring自动装配,完美地返回数据库中的预期结果。

@Autowired
private JpaContext jpaContext;

@Autowired
private EntityManager em;

EntityManager em = jpaContext.getEntityManagerByManagedType(DownloadHistoryItemCustomEntity.class);
Query q = em.createNativeQuery(query, DownloadHistoryItemCustomEntity.class);

但是,Spring Boot指标并未显示该单个数据源的任何用法

http://localhost:8080/metrics    
  "datasource.primary.active": 0,
  "datasource.primary.usage": 0.0

为什么没有值> 0?
我希望价值大于零!
不是主要的'正确的数据源?

多米尼克

1 个答案:

答案 0 :(得分:0)

datasource.primary.active是当前活动连接数。 datasource.primary.usage是介于0和1之间的值,其中0表示没有活动连接,1表示池中的每个连接都处于活动状态。对于非零值,当您向/metrics端点发出请求时,必须激活数据库连接。