Todos os produtos
Search
Central de documentação

Tablestore:SocketTimeoutException com o Java SDK do Tablestore

Última atualização: Jun 30, 2026

O acesso ao Tablestore pode apresentar timeout devido a falhas de rede, instabilidade na conexão, alta carga no servidor ou eventos de Full Garbage Collection (GC) no cliente. Caso ocorra timeout, investigue o problema verificando a conectividade de rede, a latência do servidor e possíveis problemas de Full GC no lado do cliente.

Sintomas

Ao usar o Java SDK para acessar o Tablestore, você pode receber o erro Unexpected error: java.net.SocketTimeoutException. O exemplo abaixo ilustra uma mensagem de erro típica:

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

Possíveis causas

Esse erro ocorre quando o tempo entre a requisição e a resposta excede o valor definido em socketTimeoutInMillisecond. O valor padrão desse parâmetro é 30.000 milissegundos.

Nota

Em condições normais, evite definir um valor muito baixo para socketTimeoutInMillisecond. Configure esse valor em ClientConfiguration.

As causas mais comuns incluem:

  • Evento de Full GC no cliente.

  • Problemas de rede, como falhas de conexão ou instabilidade.

  • Latência elevada no servidor que ultrapassa o valor de socketTimeoutInMillisecond.

Solução

  1. Verifique se há problemas de Full GC no cliente.

    Use ferramentas como jmap e jcmd para inspecionar o uso de memória da JVM e identificar erros de falta de memória (OOM).

    Caso ocorra um erro OOM, a thread de E/S em segundo plano do HttpClient pode ser encerrada inesperadamente. Para resolver essa situação:

    • Otimize o código se o uso de memória estiver anormal ou se houver vazamento de memória.

    • Aumente a memória disponível caso o consumo esteja adequado, mas os recursos da máquina sejam insuficientes.

    • Incremente a memória heap da JVM para reduzir a probabilidade de eventos de Full GC quando a máquina estiver ociosa e o uso de memória for baixo.

    Além disso, uma exceção SocketTimeoutException também pode ocorrer sob alta carga da máquina, taxas elevadas de erros de rede ou alto uso de CPU. Nesses cenários, a requisição pode atingir o timeout antes mesmo de ser enviada.

  2. Valide a conectividade de rede entre o cliente e o servidor.

    Se todas as requisições falharem com SocketTimeoutException, a causa provável é uma falha de rede. Execute os comandos ping ou curl para testar a conexão.

    Os exemplos a seguir demonstram como executar o teste. Substitua myinstance pelo nome da sua instância do Tablestore.

    ping myinstance.cn-hangzhou.ots.aliyuncs.com
    curl myinstance.cn-hangzhou.ots.aliyuncs.com
    • Caso identifique uma falha de rede, verifique se você não está usando um endpoint interno em um ambiente fora do ECS. Certifique-se de usar o endpoint correto. Para mais informações sobre endpoints, consulte Endpoints.

      Se o cliente acessar o Tablestore a partir de uma instância ECS, estabeleça a conexão via VPC ou rede clássica.

    • Quando houver conectividade, mas os timeouts persistirem, a instabilidade da rede pode estar causando alta latência. Verifique se há tráfego intenso, largura de banda insuficiente ou taxa elevada de retransmissão de pacotes. Se detectar oscilações significativas na rede, entre em contato com o suporte de rede.

  3. Para verificar a latência do servidor no console do Tablestore, siga estas etapas:

    1. Faça login no console do Tablestore.

    2. Na barra de navegação superior, selecione um grupo de recursos e uma região.

    3. Na página Overview, clique em no nome da instância desejada na lista de instâncias.

    4. Na aba Instance Details, clique em no nome da tabela de dados na área Tables.

    5. Na página Manage Table, clique em na aba Monitoring Indicators. Em seguida, selecione uma tabela ou índice, especifique um intervalo de tempo e defina Metric Group como Average Latency para visualizar a latência média dos diferentes tipos de operação.

      Se a latência do servidor exceder o valor de socketTimeoutInMillisecond, abra um ticket para o suporte técnico do Tablestore.

      fig_20220217_mointor