diff --git a/pom.xml b/pom.xml index d0a433e..393078c 100644 --- a/pom.xml +++ b/pom.xml @@ -118,9 +118,9 @@ - com.zaxxer - HikariCP - 5.0.0 + com.alibaba + druid + 1.2.6 diff --git a/src/main/java/com/qniao/iot/IotMonitoringDataJob.java b/src/main/java/com/qniao/iot/IotMonitoringDataJob.java index bf0576e..706b2d2 100644 --- a/src/main/java/com/qniao/iot/IotMonitoringDataJob.java +++ b/src/main/java/com/qniao/iot/IotMonitoringDataJob.java @@ -259,7 +259,7 @@ public class IotMonitoringDataJob { } } // 如果上次是待机,并且这次也是待机,那么就不需要发送了 - if (!(lastWorkingStat == 2 && machineWorkingStat == 2 && isExistEs)) { + if ((!(lastWorkingStat == 2 && machineWorkingStat == 2)) || !isExistEs) { DeviceMonitoringData data = new DeviceMonitoringData(); data.setDataSource(receivedEvent.getDataSource()); data.setMachineIotMac(receivedEvent.getMachineIotMac()); diff --git a/src/main/resources/db.setting b/src/main/resources/db.setting index 7f6dd45..3e3fba1 100644 --- a/src/main/resources/db.setting +++ b/src/main/resources/db.setting @@ -25,20 +25,29 @@ maxActive = 20 # 最小连接池数量 minIdle = 0 -## 连接池配置项 -# 自动提交 -autoCommit = true -# 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒 -connectionTimeout = 30000 -# 一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟 -idleTimeout = 600000 -# 一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒,参考MySQL wait_timeout参数(show variables like '%timeout%';) -maxLifetime = 1800000 -# 获取连接前的测试SQL -connectionTestQuery = SELECT 1 -# 最小闲置连接数 -minimumIdle = 10 -# 连接池中允许的最大连接数。缺省值:10;推荐的公式:((core_count * 2) + effective_spindle_count) -maximumPoolSize = 20 -# 连接只读数据库时配置为true, 保证安全 -readOnly = false \ No newline at end of file + + +# 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时 +initialSize = 10 +# 最大连接池数量 +maxActive = 20 +# 最小连接池数量 +minIdle = 10 +# 获取连接时最大等待时间,单位毫秒。配置了maxWait之后, 缺省启用公平锁,并发效率会有所下降, 如果需要可以通过配置useUnfairLock属性为true使用非公平锁。 +maxWait = 0 +# 是否缓存preparedStatement,也就是PSCache。 PSCache对支持游标的数据库性能提升巨大,比如说oracle。 在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。作者在5.5版本中使用PSCache,通过监控界面发现PSCache有缓存命中率记录, 该应该是支持PSCache。 +poolPreparedStatements = false +# 要启用PSCache,必须配置大于0,当大于0时, poolPreparedStatements自动触发修改为true。 在Druid中,不会存在Oracle下PSCache占用内存过多的问题, 可以把这个数值配置大一些,比如说100 +maxOpenPreparedStatements = -1 +# 用来检测连接是否有效的sql,要求是一个查询语句。 如果validationQuery为null,testOnBorrow、testOnReturn、 testWhileIdle都不会其作用。 +validationQuery = SELECT 1 +# 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 +testOnBorrow = true +# 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能 +testOnReturn = false +# 建议配置为true,不影响性能,并且保证安全性。 申请连接的时候检测,如果空闲时间大于 timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 +testWhileIdle = false +# 有两个含义: 1) Destroy线程会检测连接的间隔时间 2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明 +timeBetweenEvictionRunsMillis = 60000 +# 物理连接初始化的时候执行的sql +connectionInitSqls = SELECT 1 \ No newline at end of file