Geeks With Blogs
MSMQ from the plumber's mate MSMQ is part of your business' IT plumbing which makes you the plumber and I'm your mate. September 2010 Entries
Take care when installing MSMQ 4.0 using "Turn Windows features on or off"
New KnowledgeBase article "No Microsoft Message Queuing 4.0 components are enabled after you use the Turn Windows features on or off wizard in Windows Vista" The user interface rules for the "Turn Windows features on or off" part of the Control Panel do not seem to have been followed for enabling MSMQ. Here is the screen before you decide to install MSMQ. As expected the box next to "Microsoft Message Queue (MSMQ) Server" is empty: Now click on the box to select MSMQ and you get this: Tradition would ......

Posted On Monday, September 13, 2010 4:04 PM

Watch out when re-installing MSMQ 4.0 in a domain
There's a KB article for MSMQ 4.0: 935498 A Message Queuing 4.0-based server runs in Workgroup mode after you install the Message Queuing Active Directory Domain Services Integration feature This problem may take you by surprise as it's not how previous versions worked. In the past a reinstallation of MSMQ in Active Directory Integrated Mode would go as follows: MSMQ installed first time MSMQ object is created under the computer object in AD MSMQ uninstalled MSMQ object is deleted from AD MSMQ installed ......

Posted On Monday, September 13, 2010 4:02 PM

How long MSMQ queue names are displayed ... or not
A few companies pack huge amounts of useful information into their queue names so that it is very easy to work out what each queue is for. A downside of this is that some Windows applications inconsistently display the queue names. Take the following sample public and private queues I created for test, each 70 characters in length: Performance Monitor can only display 64 characters for the MSMQ queue object which includes the computer name (and "\private$" for private queues) as documented here: ......

Posted On Monday, September 13, 2010 4:00 PM

MSMQ Messages stuck in the outgoing queue?
If you are sending transactional messages and they seem to get stuck in the outgoing queue then it may be that acknowledgements are being discarded, especially if you can resolve the problem by purging outgoing and destination queues and restarting the corresponding MSMQ services. There are a few scenarios where acknowledgements may appear to get lost. For example: 328999 Message Queuing in workstation mode does not receive acknowledgements There are a couple of fixes you may want to check you have: ......

Posted On Monday, September 13, 2010 3:57 PM

How MSMQ prevents duplicate messages
First, before going into preventing duplicate messages, we need to investigate where they come from. In most cases there is a problem getting data from A to B which results in messages being resent and therefore potentially delivered muliple times. For example, if there is a complicated/unreliable system of routers (and multiple paths) between sender and receiver, you could see the following happen: Message is sent down route A A network bottleneck appears for some reason so message is delayed en ......

Posted On Monday, September 13, 2010 3:55 PM

Load-balancing MSMQ - a brief discussion
There are several ways of load balancing MSMQ with varying levels of support and efficiency, including: A hardware load balancer (load-balancing on the wire) DNS Round Robin (load-balancing at the outgoing queue) Software-implemented Round Robin (load-balancing within the sending application) Hardware load balancing This KB article covers MSMQ and hardware load balancing very well: 899611 How Message Queuing can function over Network Load Balancing (NLB) Basically use NLB for sending non-transactional ......

Posted On Monday, September 13, 2010 1:32 PM

Can I have 1,000s of MSMQ queues?
"Can I have 1,000s of MSMQ queues?" Yes, of course you can. "Is it a good idea to?" Maybe not. The queues themselves do not take up many resources: In memory - each ACTIVE queue is about 400 bytes (over half of which is kernel memory). On disk - each queue has a configuration file (in the \msmq\storage\lqs directory) and these are only 1-2kb each. So a thousand queues - all containing a single message, for argument's sake - are not going to be much of an overhead on an MSMQ machine. The problem may ......

Posted On Saturday, September 11, 2010 3:05 AM

"How do I install MSMQ 4.0 on my Windows 2003 server?"
Simple answer - you don't. MSMQ is part of the operating system so you cannot install a different version to the one that came with it: Version of MSMQ Operating system 1.0 Windows NT4, Windows 95/98/Me 2.0 Windows 2000 3.0 Windows XP, Windows 2003 4.0 Windows Vista, Windows 2008 R1 * 5.0 Windows 7, Windows 2008 R2 * * - Windows 2008 R1 and R2 are regarded as separate operating systems for this discussion. If there is new functionality that you need then you will have to upgrade the operating system. ......

Posted On Saturday, September 11, 2010 3:04 AM

So, what's the limit on connections to an MSMQ server?
I get this question now and then from customers who think it will help them work out how many servers they need for their clients. To me it sounds like "How many people can you fit in a Mini?" - although you can probably fit 21 people into one, the car is no longer any use as a transportation device. For MSMQ, if the theoretical limit was 1,000,000 (for argument's sake) you wouldn't want that many clients as the poor server would have been dragged to its knees long before then. But luckily there ......

Posted On Saturday, September 11, 2010 3:03 AM

Tracking down MSMQ registry documentation
MSMQ is a protocol that can benefit from the odd tweak to the registry. Unfortunately it is not always obvious what you can change to improve performance so I've tried to pull together the various sources of documentation. The first place to look is the Resource Kit Registry Reference which is pretty comprehensive. The Windows 2003 version is here but is dated "March 28, 2003" so doesn't include any new registry values introduced through hotfixes. Also, not every registry value is included for whatever ......

Posted On Saturday, September 11, 2010 3:02 AM

MSMQ prefers to be unique
If you want to quickly create a few test machines or roll out dozens of branch offices, DON'T clone MSMQ. The end result will be messages that just stick in the outgoing queue for no obvious reason and then, when you've got fed up waiting, get delivered to the destination just as inexplicably. In some situations the messages may just disappear without a trace. If you look in the registry at HKLM\Software\Microsoft\MSM... Cache you will find a binary value called QMId. This value, ......

Posted On Saturday, September 11, 2010 3:01 AM

What editions of Vista have MSMQ?
Due to the decision to exclude MSMQ from Windows XP Home edition, there is obviously a question over what Microsoft has done in Windows Vista. Way back in time a tiny note was put in Windows XP's Read1st.txt (which no-one reads): 3.3.1 Message Queuing ---------------------------... Products: Windows XP Home Edition only Message Queuing is not supported on Windows XP Home Edition. If you are upgrading from Windows 95, Windows 98, or Windows Millennium Edition ......

Posted On Saturday, September 11, 2010 3:00 AM

MSMQ 3.0 too secure for you?
With lots of customers developing systems that use MSMQ across WANs, I find that I get a number of calls on problems getting messages through. Usually sending messages works a treat but pulling them back again doesn't. The main reason for this is the tightening up of MSMQ's use of RPC as documented in the Message Queuing security overview. The "Secured remote read" feature will need to be tweaked if you plan to work across forest boundaries - even if you don't, this problem can appear in development ......

Posted On Saturday, September 11, 2010 2:59 AM

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 Saturday, September 11, 2010 2:58 AM

Optimising performance of MSMQ over HTTP
Here are a couple of registry values you can tweak if you are sending messages over a high latency network like the Internet. The first two are for setting the TCP receive window which is the number of bytes a sender can transmit without receiving an acknowledgment. In general, larger receive windows will improve performance over networks that combine both high latency with a lot of bandwidth. Caution: Using a TCP Window size that maximises bandwidth utilisation will do just that - It will maximise ......

Posted On Friday, September 10, 2010 1:15 AM

Troubleshooting MSMQ over HTTP - nothing in the web server log files?
If you are scratching your head because the files in the %windir%\system32\LogFiles\... directory have no entries for the incoming MSMQ messages then you need to tick two boxes: Open up Computer Management Navigate to: Services and Applications Internet Information Services (IIS) Manager Web Sites Default Web Site Right-click the web site and choose Properties On the Web Site tab, tick "Enable Logging" and press OK Right-click the MSMQ application underneath the web site and choose Properties ......

Posted On Thursday, September 9, 2010 11:47 PM

Unable to install MSMQ HTTP Support - 0x80070003
You may see the following error message when you are trying to install HTTP support for MSMQ messaging: "The Message Queuing IIS extension /LM/W3Svc/1/Root/MSMQ cannot be created. Message Queuing will not be able to receive HTTP Messages. Error Code 0x80070003 Error Description: The system cannot find the path specified" What this is saying is that the MSMQ virtual directory cannot be created. Note that setup wants to create this under "/LM/W3Svc/1/Root" which is the root of the website with ID number ......

Posted On Thursday, September 9, 2010 11:45 PM

Sending MSMQ messages over HTTP to a web server not listening on Port 80
Luckily this isn't difficult. The address needs to be modified just like using Internet Explorer to browse a web site that's listening on a different port so just insert the port number after the server name. For example, here's the address where the destination web service is listening on port 8080: DIRECT=HTTP://MyWebServer:8... ......

Posted On Thursday, September 9, 2010 11:44 PM

MSMQ over HTTP is a push-only technology
If you are designing a system that uses MSMQ over HTTP then you need to take into account that you can only push messages around the system and not pull them. So you can send from Machine A to Machine B but you can't do a similar remote receive from B to A. The reason for this is that remote receives always use the RPC protocol even if you are specifying DIRECT=HTTP or DIRECT=HTTPS. The functionality used to be present in Windows XP before service pack 2 but was withdrawn because of the limitations ......

Posted On Thursday, September 9, 2010 11:41 PM

MSMQ messages using HTTP just won't get delivered #17
If you are having trouble sending transactional messages from a Windows XP client, bear in mind that the format of the Mapping file you have created is going to be different from that used in later operating systems. The differences are discussed in Message Queuing HTTP Deployment Scenarios for Microsoft® Windows Server™ 2003 and Microsoft® Windows® XP Professional and I've highlighted the particular content in a table as follows: Scenario 1: External Client Sending Transactional and Nontransactional ......

Posted On Thursday, September 9, 2010 11:36 PM

MSMQ messages using HTTP just won't get delivered #16
If you are sending messages over HTTP then there is a chance you may be behind a proxy server which prevents you making a direct connection to the destination server. This is no big deal - Internet-enabled products such as Internet Explorer and MSMQ always check for any proxy settings so they know how to get out onto the Web. Specifically they check: HKEY_LOCAL_MACHINE\SOFTWARE... Settings\Connections\WinHtt... If you have MSMQ messages in an outgoing ......

Posted On Thursday, September 9, 2010 11:34 PM

MSMQ messages using HTTP just won't get delivered #15
This sounds obvious but make sure port 80 is open on the firewalls and routers between sender and receiver. It's easy to get bogged down in trying to work out why MSMQ isn't sending, such as checking if acknowledgements are getting lost and so on. In this case take a step back and look at what you're trying to do - POST data over the HTTP protocol. If the messages are stuck in the outgoing queue and nothing at all shows up in the web logs on the server then try a simple test - browse the destination ......

Posted On Thursday, September 9, 2010 11:34 PM

MSMQ messages using HTTP just won't get delivered #14
Another KB article has been published for MSMQ over HTTP: 941754 Incoming messages may be rejected by the queue manager on the cluster after you configure the clustered instance of Message Queuing to use HTTP messaging in Windows Server 2008 The principle here is that MSMQ does a reverse lookup on the IP address to find the computer name - if the lookup fails then MSMQ isn't happy. This is similar to a previous blog where the lookup returned the wrong computer name from a HOSTS file. I'm not sure ......

Posted On Thursday, September 9, 2010 11:33 PM

MSMQ messages using HTTP just won't get delivered #13
I'm again writing about MSMQ failing to send messages over HTTPS. One quick test that people use to check that the certificate is OK is to browse the server over SSL with Internet Explorer. usually this will work and the problem will then be assumed one of MSMQ's making. Unfortunately it is not as simple as that as there are multiple certificate stores available on the machine. Internet Explorer takes certificates from both the "Current User" and "Local Computer" personal stores but MSMQ only makes ......

Posted On Thursday, September 9, 2010 11:32 PM

MSMQ messages using HTTP just won't get delivered #12
Here's a solution discovered by Andreas Naranjo which is worth adding to my long-running "MSMQ messages using HTTP just won't get delivered" series. When trying to send an MSMQ HTTPS message from a Windows Server 2003 machine to another, the messages are stuck in the sender's Outgoing queue and the queue status says "Waiting to Connect." HTTP messages go through just fine but HTTPS messages are stuck. The problem can be with the Root Certificate Authority (CA) not being installed and trusted on the ......

Posted On Thursday, September 9, 2010 11:29 PM

MSMQ messages using HTTP just won't get delivered #11
Security. You've got to love it. Spent a little while trying to work out why my test messages weren't going over HTTP to a Windows Vista destination before I realised what was wrong. The IIS service may have been running but, of course, the Windows Firewall is blocking port 80 by default. So... Control Panel Windows Firewall Click the Change Settings link Choose the Exceptions tab Enable "World Wide Web Services (HTTP)" Enable "Secure World Wide Web Services (HTTPS)" Press OK and test again ......

Posted On Thursday, September 9, 2010 11:27 PM

MSMQ messages using HTTP just won't get delivered #10
This post refers to the situation where a client is sending MSMQ messages over HTTP to a receiving server hidden behind a firewall. The messages will be stuck in the Outgoing Queue with a state that switches between "Inactive" and "Waiting to Connect." If you collect a Network Monitor trace then you should see that the server replied to the message from the client with a response of "HTTP 400 - Bad Request" without including a body in the response. If you had a PSS engineer format the MSMQLOG.BIN ......

Posted On Thursday, September 9, 2010 11:16 PM

MSMQ messages using HTTP just won't get delivered #9
I thought for completeness that I would go through some of the KnowledgeBase articles that document problems sending MSMQ messages over HTTP. 883474 Large messages that are sent over an HTTP session may not leave the outgoing queue Basically an HTTP Response must come back from the web server within a certain time or the message will be rejected and redelivery must be attempted. Unfortunately the article doesn't say what the default timeout is. The workaround is to add the HttpResponseTimeout registry ......

Posted On Thursday, September 9, 2010 11:15 PM

MSMQ messages using HTTP just won't get delivered #8
The following KB article isn't anything new (it's been out a few years) 889859 Messages that you try to send over HTTPS may remain in the outgoing message queue in Message Queuing 3.0 but a customer asked me why the Certificate Revocation List could not be found so I looked into it. The cause of the problem documented in the KB is: "This problem may occur if Message Queuing 3.0 cannot reach the location of the certificate revocation list (CRL) that is specified in the properties of the certificate. ......

Posted On Thursday, September 9, 2010 11:14 PM

MSMQ messages using HTTP just won't get delivered #7
Here's one for Windows 2008 that I've copied from the Motley Queüe Blog. MSMQ’s transactional message support uses internal messages called “order ACKs” to coordinate between sender and receiver so that no user messages are lost. When transactional messages are sent via HTTP, the URLs used to send the order ACKs back to the sender sometimes contain the special character “+”. IIS 7 has a security feature in request filtering to disallow all double escaped characters, and this interferes with the return ......

Posted On Thursday, September 9, 2010 11:01 PM

MSMQ messages using HTTP just won't get delivered #6
Here's another "MSMQ messages wouldn't leave the outgoing queue" problem that a customer reported. The root cause was an entry in the HOSTS file from an ancient project the machine had been used for in a previous life: 127.0.0.1 localhost 10.12.4.7 intranet To process the HTTP request, the MQISE component makes an RPC call to itself. To do this, it makes a reverse lookup to determine who it is but here it failed as it could not contact the machine called "intranet". Solution was to delete the invalid ......

Posted On Thursday, September 9, 2010 10:59 PM

MSMQ messages using HTTP just won't get delivered #5
Here's another reason for MSMQ messages to be undelivered over HTTP. For this customer problem, the network traffic and IIS logs showed that the messages were being correctly POSTed to the web server. The next step should be for the server's MSMQ web application to accept the HTTP traffic and convert it into a native MSMQ message for the local queue manager. As the message never appeared in the queue, the troubleshooting involved looking in the formatted output from the MSMQLOG.BIN. In this case ......

Posted On Thursday, September 9, 2010 10:57 PM

MSMQ messages using HTTP just won't get delivered #4
There is a KB that covers an HTTP message delivery problem on 64-bit Vista. 936497 BUG: Error message when you try to send messages to a Message Queuing queue on a computer that is running a 64-bit version of Windows Vista: "404 not found" The problem occurs when Internet Information Services (IIS) is configured to run in 32-bit mode on a 64-bit version of Windows Vista. 32-bit IIS is expecting to interact with 32-bit MQISE.DLL but that file does not exist in the %WINDIR%\SysWOW64 directory - there ......

Posted On Thursday, September 9, 2010 10:55 PM

MSMQ messages using HTTP just won't get delivered #3
There is an interesting MSMQ 4.0 problem highlighted in the following KB article: 936502 A message is not received when you use the HTTP protocol to send the message from a Message Queuing client to a Message Queuing 4.0-based server http://support.microsoft.co... Basically, don't put ".SVC" in your queue names as otherwise IIS will get confused IF you have chosen WCF activation: The handlers for Windows Communication Foundation (WCF) are looking for this file extension ......

Posted On Thursday, September 9, 2010 10:54 PM

MSMQ messages using HTTP just won't get delivered #2
After a long while trying to work out what was going wrong with another customer's system, I finally cracked it. There were two servers and we could send messages between them in one direction but not the other. Messages would happily go into the outgoing queue and then disappear. The first place I looked was in the IIS logs on the receiving machine - the web service is the first place that the message will reach so we need to check if the POST request is getting through. 2006-10-05 12:55:49 W3SVC1 ......

Posted On Thursday, September 9, 2010 8:23 PM

MSMQ messages using HTTP just won't get delivered #1
Here’s an unusual problem that you shouldn't expect to bump into and the solution is potentially painful. Scenario You want to make use of the HTTP protocol to send MSMQ messages from one machine to another. You have installed HTTP support for MSMQ and have addressed your messages correctly but they will not leave the outgoing queue. There is no configuration for HTTP support - setup has already done all that for you (although you may want to check the most recent "Installation of the MSMQ HTTP Support ......

Posted On Thursday, September 9, 2010 8:09 PM

Copyright © John Breakwell | Powered by: GeeksWithBlogs.net | Join free