Sunday, August 11, 2013

Sharing Everything From My Experience And Knowlegde

Sharing Everything From My Experience And Knowlegde


Cara Mengatasi Error [RESOLVED] : Timeout expired.The timeout period elapsed prior to completion of the operation or the server is not responding.

Posted: 10 Aug 2013 05:02 PM PDT

Mungkin diantara teman teman pernah mengalami error seperti judul posting saya diatas. yaitu :
Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
Error ini terjadi karena batas waktu eksekusi command/perintah sql melebihi waktu yang telah ditentukan pada property CommandTimeOut. Biasanya ini terjadi saat anda mengeksekusi perintah SQL Query yang kompleks (besar/rumit/banyak data/inner join tabel). Contoh :
1.Select * from detail_trans order by bukti desc
jika table detail_trans memiliki data/row > 1.000.000 maka biasanya akan terjadi error timeout
2.Kondisi jaringan
Jika kondisi jaringan ke server baik itu LAN maupun Wireless sedang sibuk (busy) baik itu karena aktifitas jaringan lain (print, copy paste share file) maupun multi akses (ada yang tarik report, ada yang input transaksi, dan lain lain) sehingga kondisi jaringan sangat padat, maka error timeout pun biasanya akan terjadi.
So, bagaimana cara mengatasi masalah ini ???
1. Pintar pintar dalam mengolah sql query
Contoh : jangan selalu SELECT * FROM ..., misalkan jika anda hanya ingin mengambil nobukti atau tanggal saja maka cukup SELECT BUKTI, TANGGAL FROM ... ini akan lebih meringankan proses eksekusi sql query.
2.Set property CommandTimeOut pada variable SqlCommand / OledbCommand / OdbcCommand
Secara default CommandTimeOut berisi/bernilai = 30. Tigapuluh ini adalah dalam satuan Detik (Second), jadi jika  eksekusi sql query lamanya melebihi 30 detik maka akan terjadi error TimeOut. Solusi sederhana nya adalah menambah CommandTimeOut nya, misalah menjadi 1 menit (60 detik), atau 3 menit (60 * 3 = 180) dan seterusnya. Tapi masalahnya bagaimana kita bisa tahu berapa lama eksekusi sebuah sql query ??? jadi cara terakhirnya adalah mengeset CommandTimeOut manjadi Unlimited, caranya dengan mengeset CommandTimeOut menjadi 0 (nol = unlimited)
Contoh : jika anda menggunakan SqlClient :
Using cmd as new SqlCommand 
       cmd.Connection = con
       cmd.CommandText = "SELECT * FROM DETAIL_TRANS ORDER BY BUKTI DESC"
       cmd.CommandTimeout = 0
       Using dreader as SqlDatareader = cmd.ExecuteReader
                 '... sintak anda
       End Using
End Using 

Tags:
fix error Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding., tips dan trik mengatasi error Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding., vbnet error Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.solution of Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.

No comments:

Post a Comment