我在大型sitecore数据库上运行数据库清理(控制面板>数据库>清理数据库)时遇到错误,这主要是由于媒体库blobs表。运行约4分钟后出现错误。
Job started: CleanUpDatabases|System.InvalidOperationException: This SqlTransaction has completed; it is no longer usable.
at System.Data.SqlClient.SqlTransaction.ZombieCheck()
at System.Data.SqlClient.SqlTransaction.Rollback()
at Sitecore.Data.DataProviders.Sql.DataProviderTransaction.Dispose()
at Sitecore.Data.DataProviders.Sql.SqlDataProvider.CleanupBlobs(CallContext context)
at Sitecore.Data.DataProviders.Sql.SqlDataProvider.CleanupDatabase(CallContext context)
at Sitecore.Data.DataProviders.DataProvider.CleanupDatabase(CallContext context, DataProviderCollection providers)
at Sitecore.Shell.Applications.Databases.CleanUp.CleanUpForm.Cleaner.CleanUp()|Job ended: CleanUpDatabases (units processed: )
将web.config中的DefaultSQLTimeout
增加到一个较大的值似乎没有什么区别。
答案 0 :(得分:2)
尝试在sitecore / settings中的web.config中添加DataProviderTimeout设置,对我有用 - 我们的主数据库大约为50GB。运行v6.4.1 Update-1
答案 1 :(得分:0)
对我来说,接受的解决方案不起作用。 在我的情况下,我有一个很大的主数据库(显然)很多孤立的媒体项目。 一些研究表明,Sitecore有一个SQL服务器脚本可以解决这个问题。 Bjarke Istrup Pedersen创建了一个小型的控制台.NET程序,它使用一个漂亮,简单的界面来运行这个脚本:
http://mixedsitecore.blogspot.dk/2014/05/fixing-database-with-too-many-orphaned.html
它解决了我的问题。