2012-11-12 85 views
1

由於歷史原因,我們在兩臺相同的Windows 2008服務器機箱上運行一些傳統的vb6服務器端代碼,這些服務器機箱使用dao 3.6進入後端MS訪問數據庫。這個工作很好,多年來,我們目前正在遷移所有的代碼。但是,其中一個運行代碼的服務器越來越脆弱,因此我們需要將代碼移到新的服務器上,因爲遷移後的解決方案一段時間不會準備就緒。 工作正常的服務器運行Windwos Server Web 2008 Sp1 64位。新服務器是Windows Server Standard 2008 R2 Standard Sp1。 在這臺新服務器上運行測試時,我們開始在應用程序中隨機凍結。有一個簡單的循環,在數據庫的每個表上運行select查詢。添加一堆日誌記錄後,它對DAO.Database對象的OpenRecordset方法的調用凍結。有時它會凍結幾秒鐘,其他時間會持續10到11分鐘,然後繼續。正在運行的查詢是這種格式,而且都應該返回0記錄:Windows Server 2008上的DAO 3.6

SELECT * FROM BlahBlah WHERE WriteTime > #25 Oct 2012 10:09:43# 

當數據庫上直接運行(即接入),他們返回的罰款。這不是每次都鎖定的查詢。我想,這可能是具體到我們的軟件的東西,我沒有設法追查,直到我發現了一個非常類似的帖子在這裏(不幸的是,沒有回覆,除了我的!) http://www.vbforums.com/showthread.php?653166-Using-Dao-3.6-on-Windows-server-2008&highlight=dao+3.6+server+2008

我發現這樣的唯一的事遠遠是運行在服務器上的DAO360.dll的版本是3.60.9704,而有問題的服務器上的版本是3.60.9756(即Dao的更新版本)。我沒有手動安裝或註冊任何東西,但在新服務器上安裝了Access 97和Access 2003,與舊服務器相同。我還應該指出,如果我將後端代碼原樣移動到舊服務器,那麼測試工作正常,所以我非常肯定它不是代碼。

現在我知道DAO已經過時了,但是我一直堅持使用這個代碼庫,直到遷移的解決方案可用並經過徹底測試,所以任何想到的地方的確很受歡迎。與此同時,我將嘗試在新服務器上手動註冊3.60.9704版本,並運行更多測試以查看是否存在問題,但如果它出現這種情況會很奇怪...

回答

1

啊哈!雖然我們只使用DAO,不完全成熟的訪問,這似乎是答案

http://social.technet.microsoft.com/Forums/en-US/officesetupdeployprevious/thread/2a34fc07-0a1e-4248-b866-2b1c60aabba2

當我看着多一點進去,該代碼在細運行的服務器是Windows 2008 Web服務器,儘管它是64位,但它與Windows Server 2008 R2的新機器上的操作系統完全不同。解決方案似乎是回到服務器上較舊的操作系統,而不是重新編寫整個應用程序,這對我們來說是一件容易的事情。 幸運的是,這隻需要運行幾個月左右,因爲整個事情正在被重寫。

相關問題