为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:
【CPU】:
【问题描述】*:c#在并发使用DmBulkCopy2对同一张表进行数据插入时会报死锁的错误。
比如同时4个线程并发执行下面这段代码,对同一个表进行插入就会报死锁的错误,而单线程循环执行4次则正常,我这张表有一个主键索引,和一个联合索引。是否是锁表导致的?不支持并发对同一张表进行插入?
using (var db = new DmConnection(ado.Connection.ConnectionString))
{
db.Open();
using (var bc = new DmBulkCopy2(db))
{
bc.BatchSize = BatchSize;
bc.IndexOption = IndexOption;
bc.SetIdentity = SetIdentity;
bc.DestinationTableName = tableName;
bc.BulkCopyTimeout = ado.CommandTimeOut;
bc.WriteToServer(dt);
}
db.Close();
}
错误信息:Dm.DmException (0xFFFFFFFF): -1,BB_tmp_2026: 死锁

先发一下您目前使用的版本,下面语句查询到的完整信息: