我在一个生产环境的应用程序中经常遇到这个错误,但不是在所有情况下都出现,只有2个页面会出现。以下是一些错误截图。
事务(进程ID XX)在与另一个进程通信缓冲区资源上发生死锁,并被选为死锁牺牲者。重新运行该事务。
如何解决这个错误?数据库服务器是 SQL Server 2005。
我在一个生产环境的应用程序中经常遇到这个错误,但不是在所有情况下都出现,只有2个页面会出现。以下是一些错误截图。
事务(进程ID XX)在与另一个进程通信缓冲区资源上发生死锁,并被选为死锁牺牲者。重新运行该事务。
如何解决这个错误?数据库服务器是 SQL Server 2005。
请参阅这里:主动死锁通知
你可以按照错误信息的建议,让程序重试交易!
但这非常取决于交易的“原子性”!也就是说,如果你被死锁了,很可能其他进程已经成功更新了你感兴趣的行。在这种情况下,将更新应用于该行是否仍然有意义呢?
至少要向用户提供更友好的错误信息(“另一个用户已更改您尝试更新的xxxx。请查看新值并重试。”)