全部产品
Search
文档中心

Tablestore:Apa yang harus saya lakukan jika kesalahan "SocketTimeoutException" terjadi saat saya menggunakan Tablestore SDK for Java untuk mengakses Tablestore?

更新时间:Jun 24, 2025

Kesalahan timeout dapat terjadi saat menggunakan klien untuk mengakses Tablestore karena pemutusan jaringan, jitter jaringan, beban kerja server yang tinggi, atau pengumpulan sampah penuh (GCs) pada klien. Solusi harus diterapkan berdasarkan penyebab spesifiknya.

Deskripsi masalah

Saat menggunakan Tablestore SDK for Java untuk mengakses Tablestore, muncul kesalahan "Unexpected error: java.net.SocketTimeoutException". Contoh kesalahan:

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

Penyebab potensial

Durasi dari pengiriman permintaan hingga penerimaan respons melebihi batas atas. Batas atas ditentukan oleh parameter socketTimeoutInMillisecond, dengan nilai default 30.000 milidetik.

null

Umumnya, disarankan untuk tidak menetapkan nilai terlalu kecil untuk parameter socketTimeoutInMillisecond. Nilai ini dapat diatur dalam ClientConfiguration.

Penyebab potensial meliputi:

  • Pengumpulan sampah penuh (full GC) dilakukan pada klien.

  • Masalah jaringan seperti jitter jaringan atau jaringan berbeda.

  • Latensi server lebih tinggi daripada nilai parameter socketTimeoutInMillisecond.

Solusi

  1. Periksa apakah full GC dilakukan pada klien.

    Gunakan alat seperti jmap atau jcmd untuk menganalisis Java virtual machine (JVM). Misalnya, periksa penggunaan memori JVM dan apakah out of memory (OOM) terjadi.

    Jika OOM terjadi, thread I/O di latar belakang HttpClient akan keluar. Selesaikan masalah dengan metode berikut:

    • Optimalkan kode jika terjadi penggunaan memori yang tidak tepat atau kebocoran memori.

    • Tingkatkan alokasi memori jika penggunaan memori sudah benar tetapi sumber daya JVM tidak mencukupi.

    • Jika JVM idle dan hanya sejumlah kecil memori yang digunakan, tingkatkan heap JVM untuk mengurangi kemungkinan kesalahan.

    Kesalahan "SocketTimeoutException" dapat terjadi jika beban kerja server, laju kesalahan jaringan, atau penggunaan CPU tinggi. Dalam skenario ini, permintaan timeout sebelum dikirim.

  2. Periksa konektivitas jaringan antara klien dan server.

    Jika kesalahan "SocketTimeoutException" terjadi pada semua permintaan, kemungkinan jaringan terputus. Jalankan perintah ping atau curl untuk menguji konektivitas jaringan.

    Contoh kode berikut menunjukkan cara menguji konektivitas jaringan. Dalam contoh ini, instance bernama myinstance digunakan.

    ping myinstance.cn-hangzhou.ots.aliyuncs.com
    curl myinstance.cn-hangzhou.ots.aliyuncs.com
    • Jika terjadi kegagalan jaringan, Anda mungkin menggunakan titik akhir internal di lingkungan non-Elastic Compute Service (ECS). Gunakan titik akhir yang sesuai. Untuk informasi lebih lanjut, lihat Titik Akhir.

      Jika Anda mengakses Tablestore dari lingkungan ECS, disarankan untuk menggunakan virtual private cloud (VPC) atau jaringan klasik.

    • Jika jaringan terhubung tetapi latensi keseluruhan tinggi karena jitter jaringan, periksa apakah Penggunaan bandwidth, lalu lintas, atau laju pengiriman ulang paket tinggi. Jika jitter jaringan tinggi, hubungi insinyur jaringan untuk analisis lebih lanjut.

  3. Lakukan langkah-langkah berikut untuk memeriksa apakah latensi server tinggi:

    1. Masuk ke Konsol Tablestore.

    2. Di bilah navigasi atas, pilih grup sumber daya dan wilayah.

    3. Di halaman Overview, klik nama instance.

    4. Di bagian Tables tab Instance Details, klik nama tabel data.

    5. Di tab Monitoring Indicators halaman Manage Table, pilih tabel atau indeks, tentukan rentang waktu, dan atur Metric Group ke Average Latency untuk melihat latensi rata-rata dari berbagai jenis operasi.

      Jika latensi server lebih besar daripada nilai parameter socketTimeoutInMillisecond, submit a ticket untuk menghubungi dukungan teknis Tablestore.

fig_20220217_mointor