环境:SQL SERVER 2005 + JDK1.5
近期在进行项目维护时,在一个日常读写操作频繁的数据表上增加了一个触发器,在该表insert、update、delete时,将该表数据全部复制到处于同一服务器上的另一个数据库中,系统实际运行时发现抛出异常:
事务(进程 ID 88)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteUpdate(Unknown Source)
com.microsoft.sqlserver.jdbc.SQLServerStatement.executeUpdate(Unknown Source)
删除触发器后,系统恢复正常。
初步怀疑是由于数据表数据变化频繁,触发器来不及执行造成的。