症状は次のとおりです。
TinyTds::Error: Adaptive Server 接続がタイムアウトしました: EXEC some_stored_procedure
これexecute_procedure
は、ActiveRecord over を介した低速の MSSQL サーバーでの低速のストアド プロシージャtinytds
です。SQL Query Analyzer でストアド プロシージャを実行するとEXEC
、完了するまでに 29 ~ 30 かかります。
だから私は追加しました:
timeout = 60
と/etc/freetds.conf
:
read_timeout: 60
write_timeout: 60
にdatabase.yml
。
同じエラーがまだ表示されます。私が見逃した他の設定はありますか?
psリターンキーを押した後、タイムアウトエラーがタイマーで表示されるタイミングを測定しましたが、約30秒です。30秒がまたはのデフォルトのタイムアウトではない可能性があると感じており 、SQLが終了する時間の少し近くでエラーが表示されるのはなぜだろうかfreetds
...activerecord