MSMQ versus table temporary dump

I know this question was asked a little earlier. But looking around, I still cannot figure out which path I should go. Here is my scenario, hope you can help:

We will have a series of web services scheduled to be applied by hundreds of mobile applications. These services will provide data on the device with new information arriving at and returning from the devices. The data returned from the devices will need to update one central SQL server database, which will also load several desktop applications and a website.

To reduce the time for request / response of these services, we decided to process the data coming from the devices after this happened, either by inserting them into the MSMQ instance, or by storing serialized objects in temporary data and storing and processing them through Windows.

So, my choices, but besides this, there are a few more things that can help you guys advise me:

  • Data returned from devices will not be returned to smaller message packets that must be ordered on the server side.
  • I don't know anything about MSMQ, but I previously wrote Windows services. Although I have no problem getting MSMQ if necessary.
  • I want to save a response from devices, where in case of processing failure for some reason caused by data. Thus, I can interrogate the data and see if there is a problem, that is, the device allows the user to add comments that extend the associated field length in the database on the server side.

With this information, do you think I should look into studying MSMQ or should I stick to a simpler solution?

Chris.

+6
architecture message-queue msmq
source share
1 answer

MSMQ is not a bad choice, and it is definitely not difficult to learn, but keep in mind that there are some limitations you should be aware of.

Minuses:

  • Each queue can only be 2 GB.
  • Each message is 4MB (although the 4 MB limit can be fixed using MSMQ with WCF).
  • Only for Windows, so you can use it with .NET, C / C ++ or the COM library for a COM-enabled environment.

Pros:

  • Supports Windows Network Load Balancing.
  • Microsoft Cluster Service Support.
  • Integrated with Active Directory.
  • Ships with Windows.
  • It supports transactions.
  • MSMQ messages can be monitored by audit messages in the Windows event log.
  • Messages can be automatically authenticated (signed) or encrypted upon sending, as well as confirmed and decrypted upon receipt.

Another approach you might want to consider is to write your data to an intermediate table. This may be a good idea since you want to have a message log back.

It’s hard for me to give advice when I don’t know the rest of the system architecture, but I hope this answer helps a little.

useful links

.NET MSMQ Programming - Part 1
Using MSMQ with WCF

+8
source share

All Articles