1

我有一个场景,我需要处理(在 SQL Server 中)作为文件夹中的 .xml 文件实时传递的消息。

我开始调查 SQL Service Broker 以满足我的排队需求。基本上,我希望 Service Broker 提取我的 .xml 文件,并在它们到达文件夹时将它们放入队列中。但是,SQL Service Broker 不支持“独白”对话,至少在当前版本中不支持。它只支持发起者和目标服务之间的对话。

我可以使用 MSMQ,但我需要维护两件事 - MSMQ 中用于文件处理的 .Net 代码和 SQL Server T-SQL 存储过程。我还有什么选择?

谢谢。

4

2 回答 2

1

您需要利用 FileSystemWatcher 来监视目录。您的实现可以简单地响应新文件并使用事件来排队处理文件(如果这可以让您的生活变得更好,可以在 Service Broker 中实现)。

正如其他海报所提到的,你真的把事情搞反了:Service Broker 响应消息;必须有人发送消息以使其响应。它不是一个通用的服务宿主进程。根据功能集和横向扩展/纵向扩展的要求,您可能希望查看 BizTalk,因为这是用它实现的一种非常常见的模式,并且它有大量的基础架构来支持所有正交的“做生意成本”组件来制作事情是可靠的,实际工作。

一旦您自己编写/调试了所有必需的代码,您通常会发现您花费的美元超过了许可成本。不过,这一切都与需求有关。

于 2011-12-15T17:41:37.787 回答
0

没有任何。您的整个想法被打破了 - 因为您必须从目录中获取文件,所以使用服务代理根本没有意义。你需要一个监听进程,所以你也可以让监听进程进行处理。

于 2010-05-12T04:57:43.773 回答