2010-05-12 71 views
2

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

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

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

谢谢。

+1

我不知道为什么你需要monolog对话。您始终可以使用对话框模拟独白。你能否澄清你想达到的目标? – 2010-05-12 21:55:56

+0

我无法控制输入消息的来源。它们正被放入服务器上的目录文件夹中。我的想法是在我的服务之间进行独白会话,这个服务会拾取xml文件并在sql server中处理它们。 如果我对输入消息的来源有一定程度的控制,我可以让他们直接发布消息给我的发起者队列在sql服务代理。但是,情况并非如此。消息在目录文件夹中以.xml格式发送。 – user352 2010-05-12 23:19:10

回答

0

无。您所拥有的全部想法已被破坏 - 因为您必须从目录中提取文件,使用服务代理根本无从入手。你需要一个监听过程,所以你也可以让监听过程进行处理。

1

您需要利用FileSystemWatcher来监控目录。您的实现可以简单地响应新文件,并使用该事件对文件进行排队处理(如果这能让您的生活更美好,可以在Service Broker中实施)。正如其他海报所提到的,你真的有东西倒退:Service Broker响应消息;有人必须发送一条消息来回应。这不是一个通用的服务主机进程。取决于功能集和扩展/扩展需求,您可能希望查看BizTalk,因为这是一种非常常见的模式,它具有基础设施的多个TONS以支持所有“业务成本”组件,以使事情是可靠的,实际上工作。

一旦完成自己编写/调试所有必需的代码,您经常会发现您花费了比许可证更多的费用。虽然如此,它只是关于需求。

相关问题