赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 服务支持
  5. 常见问题
  6. APISDK
  7. 使用Java SDK访问表格存储时出现SocketTimeoutException异常

使用Java SDK访问表格存储时出现SocketTimeoutException异常

  • APISDK
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

由于网络不通或网络抖动、服务器高负载、客户端Full GC等原因可能会导致客户端访问表格存储超时。当出现客户端访问超时的问题时,您需要通过检查网络连通性、服务器延迟、客户端是否出现Full GC问题等操作来解决该问题。

问题现象

使用Java SDK访问表格存储时出现Unexpected error: java.net.SocketTimeoutException异常。报错示例如下:

content: 11:56:48.072 WARN  com.alicloud.openservices.tablestore.core.utils.LogUtil - TraceId:4bc30ca1-f112-2d52-d8b1-61a95072eda5	Failed	RetriedCount:1	com.alicloud.openservices.tablestore.ClientException: Unexpected error: java.net.SocketTimeoutException

可能原因

从发出请求到返回结果的耗时超过了socketTimeoutInMillisecond的值。socketTimeoutInMillisecond的默认值为30000,单位为毫秒。

说明

在正常情况下,不建议将socketTimeoutInMillisecond的值设置得过小。您可以在ClientConfiguration中设置socketTimeoutInMillisecond的值。

出现此问题的可能原因如下:

  • 客户端出现Full GC问题。

  • 网络问题,例如网络不同或者网络抖动。

  • 服务端延迟过高,大于socketTimeoutInMillisecond的值。

解决方案

  1. 确认客户端中是否出现Full GC问题。

    通过jmap、jcmd等工具排查JVM,确认JVM的内存占用情况,确认是否出现内存溢出OOM。

    如果出现OOM,则会导致HttpClient后台的IO线程直接退出。请根据以下方式进行处理。

    • 如果存在不合理的内存使用或内存泄露问题,请优化代码。

    • 如果内存使用合理但是机器资源不足,请扩容内存。

    • 如果机器空闲且内存占用较少,请调大JVM的堆内存,降低问题发生的概率。

    另外,当机器的负载较高、网络异常率高、CPU使用率高时,也会出现SocketTimeoutException错误,一般是请求可能还未发出就已超时。

  2. 排查客户端与服务端的网络连通性。

    如果全部请求都出现SocketTimeoutException,则可能是网络不通,您可以通过ping或者curl命令测试是否为网络问题。

    测试示例如下,其中myinstance为表格存储实例名称。

    ping myinstance.cn-hangzhou.ots.aliyuncs.com
    curl myinstance.cn-hangzhou.ots.aliyuncs.com
    • 如果发现是网络不通,则可能是在非ECS环境中使用了内网的Endpoint,请使用合适的Endpoint。关于Endpoint的更多信息,请参见服务地址。

      如果客户端从ECS环境中访问表格存储,建议客户端通过专有网络或者经典网络访问表格存储。

    • 如果网络可连通,则可能是网络抖动导致整体延迟长,请检查是否存在流量过高、带宽吃紧、网络重传率高等情况。如果网络抖动较大,请联系网络相关技术支持人员排查处理。

  3. 通过表格存储控制台确认服务端延迟是否过高。具体步骤如下:

    1. 登录表格存储控制台。

    2. 在页面顶部选择资源组和地域。

    3. 在概览页面的实例列表中,单击实例名称。

    4. 在实例详情页签的数据表列表区域,单击数据表名称。

    5. 在表管理页面的监控指标页签中,选择表或索引,指定时间范围,并选择指标分组为平均访问延迟,即可查看不同操作类型的平均访问延迟信息。

      如果服务端延迟大于socketTimeoutInMillisecond的值,请提交工单联系表格存储技术支持。

      fig_20220217_mointor

相关文章

使用Java SDK访问表格存储时出现SocketTimeoutException异常 2025-04-22 14:18

由于网络不通或网络抖动、服务器高负载、客户端Full GC等原因可能会导致客户端访问表格存储超时。当出现客户端访问超时的问题时,您需要通过检查网络连通性、服务器延迟、客户端是否出现Full GC问题等操作来解决该问题。 问题现象 使用Java SDK访问表格存储时出现Unexpected error

Java SDK日志库相关问题 2025-04-22 14:18

表格存储Java SDK使用的是哪个日志库? 表格存储Java SDK依赖的是slf4j,在依赖中默认依赖log4j2作为日志实现库。</

使用SDK时出现Validate PK type fail异常 2025-04-22 14:18

当使用SDK出现Validate PK type fail异常时,请确保设置的主键数据类型和数据表的主键数据类型一致。 问题现象 使用SDK写入数据时出现如下异常:

使用SDK时出现Validate PK size fail异常 2025-04-22 14:18

当使用SDK出现Validate PK size fail异常时,请确保设置的主键个数和数据表的主键个数一致。 问题现象 使用SDK更新数据时出现如下异常:

使用SDK时出现Validate PK name fail异常 2025-04-22 14:18

当使用SDK时出现Validate PK name fail异常时,请确保设置的主键名称与主键顺序和数据表的主键名称与主键顺序一致。 问题现象 使用SDK查询数据时出现如下异常:

使用Java SDK时出现The access key id is invalid异常 2025-04-22 14:18

现象 使用Java SDK时出现如下异常:

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号