Socket发送请求“超时”——接收数据方式引起的bug

本文讲述了在对接银行资管外围系统时遇到的Socket发送请求超时问题,分析过程包括银行方未收到请求、网络通信检查、怀疑第三方jar包问题等。最终发现是接收数据方式较慢导致,通过增大超时时间及改变接收方式(先获取数据长度再读取报文)解决了问题。测试环境使用Socket,正式环境使用SSLSocket,提示在使用readLine时可能因对方未主动结束连接而超时,建议明确数据长度以避免等待。
摘要由CSDN通过智能技术生成

Socket发送请求“超时”——接收数据方式引起的bug


一、场景描述

前段时间对接某家银行的资管外围系统,测试环境测试通过,联调报告经银行风控部门审批通过,上线时出现严重问题(不能正常发送/接收请求):发送请求成功、接收数据失败并抛出SocketTimeoutException。

对接使用的技术:Socket(接触的两家银行(一家股份制商业银行、一家国有银行(四大行之一))的外围系统都是使用Socket,是不是银行对外接口大多使用Socket?)

二、分析过程

出现问题后,马上向银行方技术团队反馈,希望他们能够给出一些有效的解决方案;首先要确定的就是他们是否接收到请求,因为他们没有权限登录到服务器查看信息,所以只能第二天去看(正好第二天要去投产),所以约定好投产之后查看日志确定是否接受到请求(第二天告诉我没收到我们这边的请求,表示很无奈);我这边也跟踪一下路由,看看网络通信这些是否正常,使用traceroute命令看时并没有发现问题,发送/接收都很正常。这时候猜想可能是银行方给的请求的jar有点小瑕疵。在对接群里找其他接入方问问吧,看看他们有没有出现过类似的问题,我勒个去,除了我 没人有这问题。

个人感觉代码的问题应该也不大,但就是不知道问题在哪(后来问银行的技术团队,他们的告诉我那个jar(其实就是几个java文件)后来改过,但是他们手上没有最新的,要第二天才能给我࿰

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值