首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能挂起HikariCP

不能挂起HikariCP
EN

Stack Overflow用户
提问于 2017-09-06 13:38:56
回答 2查看 3.2K关注 0票数 1

当模拟网络连接失败几秒钟时尝试挂起HikariCP池时会引发异常。为何不能暂停泳池呢?是否有其他简单的方法来模拟丢失的网络连接(本地主机上的MySQL服务器)?

Configuration:

代码语言:javascript
复制
final String configFile = "src/main/resources/db.properties";
HikariConfig config = new HikariConfig(configFile);
config.setRegisterMbeans(true);
config.setPoolName("hikari-pool-1");
ds = new HikariDataSource(config);

属性:

代码语言:javascript
复制
jdbcUrl=jdbc:mysql://localhost:3306/db?user=user&password=password
dataSource.prepStmtCacheSize=250
dataSource.prepStmtCacheSqlLimit=2048
dataSource.useServerPrepStmts=true
dataSource.useLocalSessionState=true
dataSource.useLocalTransactionState=true
dataSource.rewriteBatchedStatements=true
dataSource.cacheResultSetMetadata=true
dataSource.cacheServerConfiguration=true
dataSource.elideSetAutoCommits=true
dataSource.maintainTimeStats=false

JUnit

代码语言:javascript
复制
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
ObjectName poolName = new ObjectName("com.zaxxer.hikari:type=Pool (hikari-pool-1)");
HikariPoolMXBean poolProxy = JMX.newMXBeanProxy(mBeanServer, poolName, HikariPoolMXBean.class);
poolProxy.suspendPool();

异常

代码语言:javascript
复制
java.lang.IllegalStateException: hikari-pool-1 - is not suspendable
EN

回答 2

Stack Overflow用户

发布于 2017-09-06 13:48:16

默认情况下,不允许挂起池,需要显式启用池挂起。

也请参阅文档

allowPoolSuspension 此属性控制池是否可以通过JMX挂起并恢复。这对于某些故障转移自动化方案非常有用。当池被挂起时,对getConnection()的调用不会超时,并将一直保持到池被恢复。缺省值: false

简单地说,加上:

代码语言:javascript
复制
config.setAllowPoolSuspension(true)
票数 5
EN

Stack Overflow用户

发布于 2017-09-07 20:28:28

这些都是很好的答案。不幸的是,暂停池并不是模拟网络中断的好方法。取决于您是在Windows、Linux还是Mac上,可能有不同的选项。

在Linux上,模拟网络故障的最佳方法是启用/禁用防火墙规则,该规则会向MySQL端口丢弃(而不是拒绝)通信量。它应该是这样的(查看在线参考资料):

代码语言:javascript
复制
iptables -A INPUT -i lo -p tcp --dport 3306 -j DROP

禁用(删除该块)将执行如下操作:

代码语言:javascript
复制
iptables -D INPUT -i lo -p tcp --dport 3306 -j DROP
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46076786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档