【发布时间】:2015-01-06 09:40:16
【问题描述】:
我经常遇到这个异常。
2015-Jan-06 14:24:59.167 (SEVERE) 尝试获取时发现死锁 lock [0] System.Exception Message = 尝试获取时发现死锁 锁定源 = Data.ResultAccumulator
我的应用程序是一个 VB.Net 应用程序,我正在使用 MySQL 连接 .Net 版本 6.8.3
在 DataAdapter.Update 方法中使用 DataTable 进行批量更新时,我遇到了这个异常。 整个更新过程都在 Transactions 中运行。
我发现了各种不同的线程,其中用户建议分析 Innodb 状态。所以我在得到这个异常后就获得了这个状态。但是不知道怎么分析。这是 innodb 的状态。
====================================== 2015-01-06 14:25:07 2ec INNODB 监控输出 ====================================== 从过去 29 秒计算的每秒平均值 ----------------- 背景线程 ----------------- srv_master_thread 循环:7208 srv_active,0 srv_shutdown,74547 srv_idle srv_master_thread 日志刷新并写入:81579 ---------- 信号量 ---------- OS WAIT ARRAY INFO:预留计数 3583 操作系统等待阵列信息:信号计数 4766 互斥体自旋等待 3514,回合 53287,操作系统等待 1608 RW 共享旋转 2281,回合 46994,操作系统等待 1262 RW-excl 旋转 1304,回合 36969,操作系统等待 674 每次等待的旋转轮数:15.16 mutex,20.60 RW-shared,28.35 RW-excl ------------ 交易 ------------ Trx id 计数器 1859662 清除已完成 trx 的 n:o = 1859662 的 trx,看到谁能告诉我调试这个问题的方法,以便我找到解决方法。
【问题讨论】:
标签: mysql database vb.net innodb deadlock