我可以检查事务性msmq队列中的项目吗?

时间:2012-04-09 10:55:03

标签: c# .net msmq transactional

我正在使用事务性msmq队列。在添加新项目之前,我需要检查队列中的项目和尚未提交的项目。

我可以检查队列中的所有项目,但是如何查看已出列但仍未提交的项目?

更新 我有几个从属实例和一个主服务器。每个从站都可以将数据(大文件)上传到主站并从主站下载新数据。

Slaves在msmq队列中的master上注册上传和下载操作,然后启动事务,出列操作,用大文件操作,如果没有其他回滚事务则提交事务。

我必须拒绝所有上传注册,直到我确定文件完全上传为止,因为有几个奴隶不必同时上传一个文件。

1 个答案:

答案 0 :(得分:0)

对我来说,这听起来更像是客户/服务结构的架构问题,而不是与MSMQ相关。

如果我在数据库上处理事务,我会直觉地希望所有客户只有在提交后才能看到的任何更改。在您的场景中,MSMQ的行为就像我期望的那样来自DBMS。

总而言之,就我理解你的任务而言,我认为你可能会在错误的地方看 。请考虑在服务处跟踪上传内容。如果你需要确保客户端不上传多个文件,那么你应该在那里实现它。

您可能的选择取决于您的环境(我们尚不知道)。您可以使用某种缓存来管理客户端连接,也可以使用锁来同步上载,或者将服务配置为仅接受X连接,或者......