Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pengaturan waktu habis di driver JDBC dapat digunakan untuk memprioritaskan respons aplikasi. Secara bawaan, sebagian besar batas waktu pada driver memprioritaskan penantian hasil untuk memastikan konsistensi data. Pastikan Anda memilih batas waktu yang sesuai dengan kebutuhan aplikasi Anda.
Untuk koneksi awal, loginTimeout digunakan:
-
loginTimeoutadalah jumlah detik yang ditunggu driver untuk membangun koneksi ke server. Jika batas waktu ini terlewati, driver mengembalikan kesalahan dan tidak membuka koneksi. Nilai nol mengatur timeout ke timeout sistem default, yaitu 30 detik pada driver JDBC 11.2 dan versi yang lebih baru. Pada driver JDBC 10.2 dan versi sebelumnya, timeout default adalah 15 detik. Setiap nilai bukan nol mengatur jumlah detik yang ditunggu driver sebelum timeout koneksi yang gagal. Jika Anda terus-menerus kesulitan menghubungkan driver JDBC, Anda mungkin perlu meningkatkan timeout ini menjadi 90 atau bahkan 120 detik.loginTimeoutjuga membatasi percobaan ulang koneksi driver, bukan hanya satu kali percobaan koneksi, yang penting saat Anda terhubung ke database Azure SQL Database serverless yang dijeda secara otomatis. Untuk informasi lebih lanjut, lihat Menyambung ke basis data serverless yang dijeda otomatis.
Setelah koneksi dibuat, queryTimeout, cancelQueryTimeout, dan lockTimeout digunakan selama eksekusi pernyataan.
socketTimeout digunakan untuk komunikasi driver apa pun dengan server.
-
queryTimeoutadalah waktu, dalam detik, yang akan ditunggu driver setelah mengirim perintah eksekusi ke server untuk menerima balasan dari server yang berisi data. Jika waktu ini terlampaui, perintah dibatalkan. Melebihi batas waktu ini tidak menutup koneksi. Nilai defaultnya adalah -1, yang berarti batas waktu tak terbatas. -
cancelQueryTimeoutadalah waktu, dalam detik, driver menunggu pengakuan pembatalanqueryTimeoutdari server, sebelum menghentikan/menutup koneksi secara paksa. Artinya, driver menunggu selama totalcancelQueryTimeoutplusqueryTimeoutdetik sebelum koneksi ditutup. Mengatur batas waktu ini ke nilai bukan nol memastikan aplikasi dapat tetap responsif jika ada kegagalan jaringan atau komunikasi dengan server, ketika kueri telah kehabisan waktu. Nilai default untuk properti ini adalah -1, yang merupakan waktu tunggu tak terbatas. -
lockTimeoutadalah lama waktu yang harus ditunggu hingga kunci dilepaskan, jika ada kunci yang memblokir eksekusi pernyataan. Melebihi batas waktu ini tidak mengakibatkan koneksi tertutup. Nilai default untuk properti ini adalah -1, yang merupakan waktu tunggu tak terbatas. -
socketTimeoutberlaku untuk semua komunikasi soket dengan server. Jika server menghentikan komunikasi dengan driver, baik dengan tidak mengakui atau membalas data, driver menunggu nilaisocketTimeoutsebelum menutup koneksi. Mengatur batas waktu ini ke nilai bukan nol memastikan aplikasi dapat tetap responsif jika ada kegagalan jaringan atau komunikasi dengan server. Nilai defaultnya adalah 0, yang berarti batas waktu tak terbatas. PastikansocketTimeoutlebih besar daripadaqueryTimeoutmenghindari pengecualian batas waktu soket selama jendelaqueryTimeout. Demikian pula, pastikansocketTimeoutlebih besar daripadacancelQueryTimeoutuntuk menghindari pengecualian batas waktu soket selama jendelacancelQueryTimeout.
Nilai batas waktu yang wajar untuk aplikasi Anda bergantung pada prioritas aplikasi. Mengatur nilai yang lebih rendah untuk batas waktu memprioritaskan respons aplikasi daripada konsistensi data. Ketika batas waktu tercapai, aplikasi perlu memutuskan tindakan terbaik. Keputusan tersebut didasarkan pada tindakan database yang sedang dilakukan. Misalnya, untuk sebuah SELECT pernyataan, keputusannya bisa melaporkan kesalahan kepada pengguna, atau bisa juga menghubungkan kembali dan mencoba ulang. Untuk INSERTUPDATE pernyataan, keputusan itu mungkin berbeda.
Untuk aplikasi responsif, loginTimeout dan queryTimeout harus diatur ke nilai yang relatif rendah. Demikian pula, cancelQueryTimeout juga harus diatur ke nilai rendah untuk memastikan driver tidak menunggu terlalu lama bagi server untuk mengakui pembatalan kueri, ketika queryTimeout terlampaui. Akhirnya, socketTimeout harus diatur untuk mencegah driver menunggu terlalu lama dalam situasi ketika koneksi ke server terputus (gangguan jaringan, server mengalami crash, dll.).
Ringkasan properti
| Properti | Deskripsi | Bawaan | Hasil koneksi |
|---|---|---|---|
loginTimeout |
Jumlah detik yang harus ditunggu driver sebelum koneksi yang gagal dinyatakan batas waktu. | 30 detik [11.2+], jika tidak 15 detik |
Koneksi tertutup |
queryTimeout |
Jumlah detik untuk menunggu sebelum membatalkan kueri. | -1 [Batas waktu tak terbatas] | Buka koneksi |
cancelQueryTimeout |
Jumlah detik untuk menunggu pengakuan pembatalan QueryTimeout. | -1 [Batas waktu tak terbatas] | Koneksi tertutup |
lockTimeout |
Jumlah milidetik untuk menunggu sebelum database mengembalikan kesalahan waktu habis kunci. | -1 [Batas waktu tak terbatas] | Buka koneksi |
socketTimeout |
Jumlah milidetik untuk menunggu operasi baca atau tulis pada soket. | Nol [Batas waktu tak terbatas] | Koneksi tertutup |