相关疑难解决方法(0)

如何清除SQL Server事务日志?

我不是SQL专家,每当我需要做一些超出基础知识的事情时,我就会想起这个事实.我有一个不大的测试数据库,但事务日志肯定是.如何清除事务日志?

sql-server transaction-log

555
推荐指数
13
解决办法
117万
查看次数

"这个SqlTransaction已经完成;它已不再可用."...配置错误?

我已经在这一天工作了大约一天半,并在网上搜索了大量的博客和帮助文章.我发现了几个与此错误有关的SO问题,但我认为它们并不适用于我的情况(或者在某些情况下,遗憾的是,我无法理解它们的实现:P).我不确定我能够很好地描述这一点以获得帮助......但是这里有:

我们有一个.NET应用程序来跟踪我们的资源.有一个导出功能可以将资源复制到时间跟踪系统和计费系统; 这将访问链接到时间和计费数据库的存储过程.

我最近将计费系统数据库移动到新服务器(原始服务器:Server 2003 SP2,SQL 2005;新服务器:Server 2008 R2,SQL 2008 R2).我有一个指向2008数据库的链接服务器设置.我更新了存储过程以指向2008服务器,然后我收到有关MSDTC和RPC的错误(http://www.safnet.com/writing/tech/archives/2007/06/server_myserver.html).我在链接服务器上启用了"rpc/rpc out"并将MSDTC设置为允许网络访问(类似于:http://www.sqlwebpedia.com/content/msdtc-troubleshooting).

现在,当我尝试运行导出功能时,我得到了上述内容:"此SqlTransaction已完成;它已不再可用." 对我来说似乎很奇怪的是,当我刚刚运行存储过程(来自SSMS)时,它表示它已成功完成.

谁看过这个吗?我在配置中遗漏了什么吗?我继续浏览相同的页面,我发现的唯一一件事是我在进行MSDTC更改后没有重新启动(在此处提到:http://social.msdn.microsoft.com/forums/en-US/adodotnetdataproviders/thread/7172223f-acbe-4472-8cdf-feec80fd2e64 /).

我可以发布部分或全部存储过程,如果它有帮助...请告诉我.

sql stored-procedures server-error sql-server-2008-r2

46
推荐指数
6
解决办法
11万
查看次数

ZombieCheck异常 - 此SqlTransaction已完成; 它不再可用 - 在简单提交期间

我有以下代码执行单行提交到数据库表(SQL 2008/.NET 4)

using (var db = new MyDbDataContext(_dbConnectionString))
{
    Action action = new Action();
    db.Actions.InsertOnSubmit(dbAction);
    db.SubmitChanges();
}
Run Code Online (Sandbox Code Playgroud)

通常一切都很好,但有一段时间我得到以下异常:

System.InvalidOperationException: This SqlTransaction has completed; it is no longer usable.
at System.Data.SqlClient.SqlTransaction.ZombieCheck()
at System.Data.SqlClient.SqlTransaction.Rollback()
at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
Run Code Online (Sandbox Code Playgroud)

关于SO有很多类似的问题,但在阅读之后我无法解决问题.

这可能只是由于SQL超时(在调用后接近25秒发生异常)?或者我应该期望在这种情况下SQL超时异常?

有谁知道还有什么可能导致这个?

sql-server transactions

14
推荐指数
2
解决办法
2万
查看次数

SQLTransaction已完成错误

我在申请中遇到了一次错误.

这个SQLTransaction已经完成; 它不再可用

堆栈跟踪附在下面 - 它说Zombie CheckRollback.

代码中的错误是什么?

注意:此错误只出现一次.

UPDATE

MSDN - SqlTransaction.Rollback方法

如果连接终止或者事务已在服务器上回滚,则Rollback会生成InvalidOperationException.

僵尸检查交易 - 错误

我在各种应用程序中看到此错误的最常见原因之一是,在我们的应用程序中共享 SqlConnection.

public int SaveUserLogOnInfo(int empID)
{
        int? sessionID = null;
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            SqlTransaction transaction = null;
            try
            {
                transaction = connection.BeginTransaction();
                sessionID = GetSessionIDForAssociate(connection, empID, transaction);

                    //Other Code

                //Commit
                transaction.Commit();
            }
            catch
            {
                //Rollback
                if (transaction != null)
                {
                    transaction.Rollback();
                    transaction.Dispose();
                    transaction = null;
                }

                //Throw exception
                throw; …
Run Code Online (Sandbox Code Playgroud)

.net c# ado.net transactionscope

12
推荐指数
2
解决办法
2万
查看次数