应用使用DBCP连接数据库,在长时间不操作应用后,首次操作会报错

【 使用环境 】测试环境
【 OB 】
【 使用版本 】4.2.4企业版本
【问题描述】应用使用DBCP连接数据库,在长时间不操作应用后,首次操作会报错
【复现路径】重复操作就会恢复正常
【附件及日志】推荐使用OceanBase敏捷诊断工具ob

diag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

@论坛小助手

针对您的问题,“Broken pipe (Write failed)”错误通常表示应用程序与数据库之间的连接在长时间不活跃后被中间网络设备或数据库服务器本身关闭了。当应用程序尝试通过已失效的连接发送请求时,就会出现这个错误。为了解决这个问题,我们可以先使用 obdiag 工具来收集相关的日志信息,以便于进一步的分析。

日志采集场景: 断链接
日志采集命令: obdiag gather scene run --scene=observer.disconnection

请您执行上述命令,将生成的日志文件发送给我们,这将有助于我们了解连接中断的具体原因。同时,为了更好地帮助您解决问题,请您回答以下问题:

  1. 您的应用程序与 OceanBase 之间是否存在任何网络设备(如防火墙、负载均衡器等),这些设备是否有设置会话超时时间?
  2. 您当前使用的 DBCP 连接池配置中是否启用了连接测试或心跳检测机制?如果启用了,具体的配置参数是什么?
  3. 在发生“Broken pipe”错误之前,应用程序是否经历了长时间的空闲状态?如果有,具体多长时间?
  4. 您的 OceanBase 集群版本是多少?是否进行了任何最近的配置更改或更新?
  5. 您是否尝试过在应用程序层面添加重新建立连接的逻辑或使用其他连接池管理工具?

这些问题的答案将有助于我们更准确地定位问题并提供有效的解决方案。谢谢您的配合!

附上敏捷诊断工具 obdiag 使用帮助链接

@论坛小助手

您好,您提的这个技术问题可能牵涉到 OceanBase 企业版范围内的功能细节;针对此类问题,建议你通过以下方式寻求帮助:

  1. 如你所在的企业客户已签署 OceanBase 企业版销售合同,请你联系客户经理;

  2. 如你所在的企业客户尚未签署 OceanBase 企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。

另外,我们欢迎你使用社区版,并在论坛/社群中分享你对社区版本的想法、经验和问题,与其他社区成员共同交流。