【问题标题】:setting connectionTimedOut to 1 sec is throwing Socket Timed Out error将 connectionTimedOut 设置为 1 秒会引发 Socket Timed Out 错误
【发布时间】:2020-07-07 04:40:32
【问题描述】:

我正在开发一个在 pcf 环境中运行的 Web 应用程序,它有大约 100 个用户。我正在使用 Hikari CP 库来管理数据库连接并通过在应用程序代码中将其设置为 1 秒来自定义 connectionTimedout 属性。连接池大小设置为 100。

在一种情况下,调用我明确创建的存储过程

Connection = DriverManager.getConnection()

ArrayDescriptor() 的对象是连接对象。 我是using ArrayDescriptor,因为存储过程的输入需要对象数组。

但是这段代码随机抛出 Socket Read Timed Out 错误

使用 dbcp 库管理的连接池配置时,相同的代码运行良好。

有人可以帮忙吗? Hikari CP 库有什么问题?

根据合规规则,我不能在公共域上发布代码。

【问题讨论】:

  • 什么是connectionTimedOut?你的意思是connectionTimeout?无论如何,1s 太小了。使用 10s 或 30s 或 1m。 `ArrayDescriptor()` is expecting connection object` 是什么意思? ArrayDescriptor() 是什么?为什么相关? springspring-boot 和它有什么关系?
  • @Marquis of Lorne 我正在使用 spring jdbc 通过传递参数 a1、a2 和其他 ArrayDescriptor arrDesc = new ArrayDescriptor("VARCHAR_ARRAY", connection); ARRAY a1= new ARRAY(arrDesc, connection, array); ARRAY a2= new ARRAY(arrDesc, connection, userRolesArr); 来执行存储过程@
  • @MarquisofLorne 请检查我的 cmets

标签: java hikaricp dbcp


【解决方案1】:

connectionTimeout

这个属性控制一个最大毫秒数 客户端(即您)将等待来自池的连接。 如果这样 在没有连接可用的情况下超过时间,a SQLException 将被抛出。可接受的最低连接超时为 250 毫秒。默认值:30000(30 秒)

【讨论】:

    猜你喜欢
    • 2013-07-16
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 2022-08-16
    • 2023-02-09
    • 1970-01-01
    相关资源
    最近更新 更多