不要小看 query timeout 呀啊啊~

在小系統上面沒碰過的問題,到了大系統上可就要小心啦!

過去在寫一些 desktop/web application 在連接資料庫時,query timeout 都隨便設定一個大約 10 seconds 的值,一直以來也都沒出過什麼錯,反正網站 load 輕、資料庫中的資料少,就算有錯應該也是在 10 seconds 內會爛掉。

結果最近接手了一個資料庫內容還蠻龐大的網站,結果在做一些 query 動作有時候會失敗,然而這個網站並不是由我開發的,追 exception 的 stack trace 找到的 code 後發現只是一個簡單的 [tag]SQL query[/tag] 所丟出來的 exception,然後就開始一連串 可能/不可能 的懷疑下進行各種奇妙的 debug 方式....XD 但都無功而返

結果今天不知道為什麼發現 SQL exception 告訴我這些 request 是被 cancel 掉的,我這才恍然大悟,開始懷疑是 timeout 的問題,索性就把它設久一點,然後問題就解決了... = =

包括這次的心得,我更加地確信:

Debug 比開發更需要靈感啊!

  • 做測試也是需要靈感的呢~XD

  • 結論其實 QA 是很重要滴~