我有一个相对较大的系统运行Rails和TinyTds(使用FreeTds的SQLServer数据库适配器)。问题是我每天收到大约200封电子邮件,说我的请求是超时或死锁。
[Exception] application#index (ActionView::Template::Error) "TinyTds::Error: Adaptive Server connection timed out: EXEC sp_executesql
它们总是发生在不同的行为上。
A ActiveRecord::DeadlockVictim occurred in transportes#importacao:
TinyTds::Error: Transaction (Process ID 276) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
我不知道为什么它超时这么多,并且已经在这些电子邮件中挣扎了将近2个月。 我已经尝试更新gem版本,FreeTds的linux二进制文件并没有任何帮助。
目前使用Ruby 1.9.3-p484,Rails 3.2.16和TinyTds 0.6.2
有人能给我一些关于如何解决这个问题的见解吗?
答案 0 :(得分:1)
我建议您尝试一些选项..
以下示例将锁定超时时间设置为1800毫秒。
SET LOCK_TIMEOUT 1800;
GO