Join 34,000+ subscribers and receive articles from our
blog about software quality, testing, QA and security.

Guaranteed Delivery - MSMQ


We are interested in a centralized logging implementation utilizing the SmartInspect Router. In order to do so, we are contemplating the following:

  • Create a custom Msmq protocol in order to get all of our log entries into a queue.

  • Create an Msmq router listener to monitor the queue, pop messages and send them to the applicable routes. This ensures that we don’t lose any log entries in the event that the router service is unavailable due to a network issue, a server reboot or whatever the case may be.

Are custom router listeners an option?

Is there some reason this wouldn’t work?



Hi Chad,

Thanks for your posting. You could indeed build an infrastructure for this by having a custom Msmq protocol for the libraries, and then either a custom tool that pops messages from the queue and forwards it to the Router. Or customizing the Router service itself. Please note that customizing the Router service requires access to the source code, which is not included with SmartInspect but is available as a separate purchase option.

A third alternative would be to have the custom tool directly write SmartInspect log files as needed (the log file format is fully documented and you can also use various parts and data structures of the logging library for this).

There’s one caveat you might look into: I believe some queue implementations have limits on the message size, but I’m not sure if there’s a limit for Msmq. As SmartInspect also allows you to attach any custom data to a log entry, this could be a problem. Of course, if you don’t plan to log larger packets, this might not be a problem.

Just let me know if you have any further questions about this.



I would prefer to integrate directly with the Router service. What is the additional cost?



Hi Chad,

The Router’s source code can be purchased separately for $1200 and would be covered with your standard SmartInspect support plan (so no additional support plan is needed for the Router). Please note that we don’t have a separate API documentation for the Router source code (as it was not original intended to be shared, but the Router has been licensed by other customers for customizations as well). However, the source code is easy to understand and we can help with any questions etc.



Excellent. Thank you, Dennis.