2010-05-12 70 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以支持所有「業務成本」組件,以使事情是可靠的,實際上工作。

一旦完成自己編寫/調試所有必需的代碼,您經常會發現您花費了比許可證更多的費用。雖然如此,它只是關於需求。