My technical journal.

Maybe useful, maybe not.
posts - 105 , comments - 45 , trackbacks - 0

My Links


Tag Cloud


Post Categories

October 2010 Entries

Current list of MSMQ Hotfixes
I think it is always a good idea to keep on top of any changes to the products you are using and this includes knowing what hotfixes have been released since the latest service pack. To this end I've produced a table of the hotfixes available for MSMQ. Hotfixes are cumulative so you only need to install the hotfix with the highest version number. Of course, ONLY install the hotfixes that resolve problems you are seeing or expect to see. Windows 7 Version Date Hotfix 6.1.7600.20716 21-May-2010 2028997 ......

Posted On Saturday, October 23, 2010 11:55 PM | Comments (0) | Filed Under [ MSMQ ]

MSMQ requires free contiguous space in storage before messages can be delivered
An interesting problem which I thought was worth sharing. A customer was trying to send some large messages from one machine to another but, even though the destination had not yet reached its storage quota and there should have been enough capacity, nothing was getting delivered. The visible symptom was an outgoing queue with a status of "waiting to connect" whilst other outgoing queues to the same destination machine were working fine. The root cause lay in the way MSMQ stores messages. In the ......

Posted On Wednesday, October 20, 2010 3:43 PM | Comments (0) |

Checking if MSMQ queues exist is hard work so should you bother?
Frank Boyne, 5 star MVP, posted a great response to a question on the MSMQ newsgroups which I felt was worth reiterating. Basically someone wanted to check if a private queue on a remote machine existed before they sent a message to it. The problem was that they couldn't call the MessageQueue.Exists() method without getting InvalidOperationException. As Frank explained, this method call isn't available for remote computers, as documented in MSDN. Exception Condition ArgumentException The path syntax ......

Posted On Monday, October 18, 2010 1:34 PM | Comments (1) |

How to help outgoing queues scale in MSMQ
This post is written for those systems where a central MSMQ server sends messages to a large number of MSMQ clients. "Large" here could mean hundreds, maybe thousands. MSMQ is not designed to be a real-time system - although you can use it as such, that wasn't the main focus. Instead MSMQ will ensure messages get delivered, no matter how long it takes. This means that you can send messages to thousands of destinations but not necessarily instantly or concurrently. To understand why this is, we need ......

Posted On Tuesday, October 12, 2010 11:55 AM | Comments (0) |

Click, Boom...
MSMQ is a very robust product and people expect it to be able to look after data no matter what. To test that it does, customers can perform scary tests like hitting the power switch while the server is running. Obviously a power cut is a real-world event and customers should not expect to lose messages (which usually also means losing money) when one occurs. Surprisingly messages DO disappear and customers rise up to condemn MSMQ's transactional robustness. But you need to dig deeper to find out ......

Posted On Monday, October 11, 2010 2:59 PM | Comments (0) |

How to tell if MSMQ is installed
Here is a collection of approaches I've pulled together from my archives for telling if MSMQ is installed without being able to physically go and bring up Computer Management to check yourself. Please feel free to let me know if you have developed any of your own tricks to do this. Points 5.12 and 5.13 are from the MSMQ FAQ: 5.12 Is there a programmatic way to know if Message Queuing is installed on a computer? Yes. Try to load Mqrt.dll (using the LoadLibrary API). · For MSMQ 1.0 and 2.0, the DLL ......

Posted On Monday, October 11, 2010 10:17 AM | Comments (0) |

Difference between Path name and Format name when accessing MSMQ queues
For beginners to MSMQ development, the fact that there are FIVE ways of addressing an MSMQ queue is a real pitfall. Many hours will be lost trying to work out why a seemingly perfect address keeps returning errors. From MSDN: Referencing a Queue To perform an operation on a queue, an application must reference the queue in one of five ways, depending on the operation that the application is performing: By path name—used to create the queue, to open the queue for sending, peeking at, and receiving ......

Posted On Saturday, October 9, 2010 4:49 PM | Comments (0) |

You can't have multiple MSMQ triggers set to do retrieval processing
On the Newsgroups today was a question about the following error: "The new trigger was not successfully created. Multiple triggers with retrieval processing are not allowed on a single queue." The poster already had a Peeking trigger on the queue and was trying to add a Retrieval trigger. He didn't know why he was getting the error as he did not have "multiple triggers with retrieval processing". What the error is really trying to say is that multiple triggers cannot co-exist with retrieval processing. ......

Posted On Wednesday, October 6, 2010 6:02 PM | Comments (0) |

Powered by: