即使连接数多于线程数,Hikari getconnection仍然很慢

问题描述

我有一个应用程序,该应用程序从IBM MQ读取消息,对其进行处理并将数据写入Oracle数据库。

该应用程序被配置为具有6个并发线程(如果我理解正确的话,应该最多同时处理6条消息),并且连接池中的最小和最大12个连接。

作为测试,我将30条消息写到队列中,这些消息耗时很长。由于只有6个线程和12个连接,因此据我了解,新线程仍应始终有可用的连接。

但是我一直看到getConnection花费300ms +。

这是配置的相关部分:

spring:
  jms:
    cache.enabled: false
    listener:
      concurrency: 1
      max-concurrency: 6
   datasource:
    driverClassName: "oracle.jdbc.OracleDriver"
    url: "[dbUrl]"
    username: "user"
    password: "pw"
    hikari.minimum-idle: 12 
    hikari.maximum-pool-size: 12

我正在使用Spring 5.2.5和Spring Boot 2.2.6。

我想念什么?我期望getConnection总是在几毫秒内返回,即使数据库操作可能很耗时?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)