MSMQ是个好主意吗?

时间:2009-06-24 05:54:30

标签: .net oracle msmq

系统A通过UI捕获用户的X信息。此信息经过验证并保存在数据库中。用户可以更改,添加或删除信息。我必须使用Web服务保持此X信息与System B同步。此外,我需要在数据库中保留此信息之后尽快发送此信息。

我想过在这里使用MSMQ。系统A将向队列发送消息。侦听此队列中的消息的另一个进程将通过从数据库中读取信息并发送到系统B来处理该消息。

我想知道,在这里使用MSMQ或通过定期轮询数据库来编写我自己的简单排队机制是个好主意。

由于需要近乎实时的转移和保证,我认为使用MSMQ是一个好主意。还有其他更好的解决方案吗?

技术平台是.Net与Oracle数据库。

3 个答案:

答案 0 :(得分:4)

数据库轮询可能不是最好的主意,特别是如果您使用的是已包含advanced queueing的Oracle。如果您选择执行轮询(根据我的建议),请使用DBMS_ALERT通知发送过程中的更改。

答案 1 :(得分:4)

MSMQ在您的场景中看起来非常方便,因为您不熟悉Oracle中的AQ。 MSMQ确实足够快,可以在您的情况下进行复制。为同一目的编写自己的队列不会少于重新发明轮子并增加必须维护的代码。在.NET中实现MSMQ是无摩擦的,这是另一个优点。

答案 2 :(得分:1)

您可以考虑synchronization services。您可以同时使用SQL Server and Oracle