我在應用程序中使用ESE(JetBlue),當JetAttachDatabase被調用時它返回JET_errDatabaseDirtyShutdown。我應該在我的應用中做什麼?我的願望是刪除任何未完成的交易如何在代碼中執行可擴展存儲引擎(JetBlue)修復?
0
A
回答
0
通過對JetInit的調用會自動完成日誌恢復,JetInit會自動回滾未處理的事務。爲了使JetInit能夠正常工作,必須找到日誌文件,因此在這種情況下,您可能有:
- 刪除日誌文件。不要這樣做。
- 未正確設置日誌文件路徑。初始化時始終設置相同的日誌文件路徑,以便ESE可以找到日誌。
- 移動數據庫。日誌包含數據庫的硬編碼路徑,因此移動數據庫會中斷恢復。要處理這個問題,您可以將備用恢復路徑系統參數設置爲包含數據庫的目錄。
0
您可以將應用程序配置爲在JetCreateInstance()和JetInit()之前添加以下內容來自動嘗試清除「髒關機」。是這些東西的順序很重要:
Api.JetSetSystemParameter(instance, JET_SESID.Nil, Server2003Param.AlternateDatabaseRecoveryPath, 0, Path.GetDirectoryName(databasePath));
(上面的例子是在C#中,但你明白了吧...)
最後一個參數是你想修復的數據庫的位置出現,所以最有可能是與髒數據庫文件相同的目錄。
相關問題
- 1. 如何限制可擴展存儲引擎(JetBlue)的內存使用量?
- 2. 如何獲取JetUpdate()後可擴展存儲引擎(JetBlue)中的自動增量值
- 3. 如何在可執行文件中存儲C++源代碼?
- 4. 如何存儲可擴展的可擴展事件日誌?
- 5. Firefox擴展:本機代碼執行?
- 6. Cassandra 1.1存儲引擎如何存儲複合材料?
- 7. 如何在ModalPopUp控件擴展代碼執行之前執行數據綁定
- 8. 如何快速添加許多記錄與一些重複到可擴展存儲引擎
- 9. 如何使用Chrome擴展存儲API執行CRUD操作?
- 10. 可擴展文件存儲
- 11. VBA執行存儲在單元中的代碼 - 有可能嗎?
- 12. 在C++中實現可擴展代碼
- 13. Rails 3.0引擎 - 在ActionController中執行代碼
- 14. 擴展android TTS引擎
- 15. 擴展V8 JavaScript引擎
- 16. 插入萬元的小記錄到可擴展存儲引擎(捷藍) - 快速
- 17. 擴展ArrayIterator並修改數組存儲
- 18. 如何在VS代碼擴展中引用COM類型庫(interop)?
- 19. 該表的存儲引擎不支持修復
- 20. 如何修改代碼,在此擴展通過cron
- 21. 如何修復iOS擴展子查詢?
- 22. 如何避免在Git存儲庫分支上重複執行代碼
- 23. BIRT擴展在每代之後執行
- 24. 如何使Firefox擴展中的代碼在定時器上執行
- 25. 如何在C++中修復此代碼?
- 26. 要求本地存儲在ASP.NET(可從IHttpModule的執行代碼)
- 27. 如何修復這個執行登錄網站的python代碼
- 28. 如何在chrome擴展中執行shell執行?
- 29. 執行存儲過程的ASP代碼
- 30. 如何從另一個Rails引擎擴展Rails引擎中的模型?
但是,如果日誌文件不存在會發生什麼?我不知何故在代碼中需要恢復數據庫,就好像我會運行「esentutl/p ....」一樣? – 2016-11-07 16:29:37