2010-11-02 64 views
10

我使用ColdFusion與Microsoft SQL Server 2005和有時我得到這個錯誤:MS-SQL/ColdFusion的:神祕的數據庫錯誤:對象已關閉

「[Macromedia公司] [SQLServer的JDBC驅動程序]對象已已關閉「。

追溯必然導致SQL查詢正如人們所預料,即使是簡單的SELECT命令,沒有加入或輸入參數或任何幻想的。

我聽說,到目前爲止是重新啓動「服務」,這是我能想象的唯一解決辦法是指SQL Server服務。我試過重新啓動SQL Server和ColdFusion服務,但它仍然在隨機發生。

(也重啓是不是一個解決方案。我們不能有任意的頁面給在任意時間任意錯誤信息在生產環境中。)

當它發生時,持續出現了幾分鐘,然後去而且可能會在幾秒鐘或幾分鐘後回來。它開始發生在我開發應用程序的JavaScript部分時,它與ColdFusion代碼或SQL命令無關。

我的在線搜索都石沉大海至今。

任何幫助表示讚賞。

+0

您是否嘗試過查看SQL日誌以查看是否可以找出造成它的原因? – eapen 2010-11-02 15:00:10

回答

0

原來這只是在服務器超載時發生。除了重新啓動和/或從服務器移除負載之外,似乎沒有任何補救措施。

謝謝所有回答的人!

0

我的直覺是,你要需要看你的代碼之外,用DBA工作,調查數據庫服務器本身的穩定性。這聽起來像SQL Server服務掛起或無法響應。

0

就像那個行爲不端最全的軟件,首先我看起來是司機。您可能希望確定您使用的是最新的Microsoft JDBC驅動程序。我知道他們已經提高了最新驅動程序的性能,這也可能解決您所看到的問題。

如果您使用ColdFusion附帶的驅動程序,那麼它的值爲絕對是值得升級。

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a737000d-68d0-4531-b65d-da0f2a735707&displaylang=en

要知道,如果你不升級,如果你有使用SCOPE_IDENTITY()返回新插入的行的ID INSERT語句,你需要在SET NOCOUNT ON;在每個INSERT語句的頂部,以防止SQL Server返回插入行的數量而不是插入行的ID。

0

有在SQL 2K的錯誤,我想2K5,這樣系統會認爲這是在關機狀態下,儘管從來沒有被要求關閉該服務。 IIRC,它會拋出類似於你的錯誤。我的MS發佈了一個補丁,雖然我似乎記得它是一個單獨的下載,而不是MS Update的一部分。

很抱歉說得這麼含糊,但因爲我處理了這個問題,已經有一段時間。不過希望這能幫助你開始。

10

這是舊的,但我碰到這個,並找到一種方法來做到這一點,而無需重新啓動CF.

在ColdFusion管理員中,轉到您的數據源並編輯導致您的問題的那個。對其進行更改,例如檢查不重要的框,然後提交。

這將重新配置連接並使其工作。回到並取消選中框(如果你不想打勾)。

例如。我關閉「啓用高級ASCII字符...」點擊提交和數據源工作。然後我又回去檢查它並再次提交更改。

不重啓!這是生產箱的理想選擇。

+0

謝謝你的小提示。同樣的事情發生在我身上。 – Tomalak 2012-09-12 16:53:07

2

我們遇到了CF9的這個問題,重新啓動服務沒有幫助。我們在CF配置中刪除並重新創建了違規的DSN,並且已經解決了這個問題。所以如果其他解決方案不起作用,請嘗試一下。