【发布时间】:2015-03-26 10:26:17
【问题描述】:
我们在使用带有 MSSQL 的 EF 6 和带有 Rabbit MQ 的 MassTransit 时遇到了一个非常奇怪的问题。
场景如下:
- 客户端应用程序在数据库中插入一行(首先通过 EF 代码 - 仅在 DbContext SaveChanges 中的隐式事务)
- 客户端应用程序通过 MassTransit 发布行的 ID
- 带有消费者的 Windows 服务处理消息
- 最初未找到行,重试几次后出现行
我一直认为,在提交之后,该行会被持久化并且可以被其他连接访问......
我们在数据库中启用了 ALLOW_SNAPSHOT_ISOLATION。
这是什么原因,有什么方法可以确保在将 Id 发布到 MQ 之前可以访问该行?
【问题讨论】:
标签: sql-server entity-framework rabbitmq masstransit