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 computers running MSMQ version 1.0, consider upgrading your computer to Windows XP Professional.
The full contents of the Windows XP Read1st.txt File can be found here.
[Edit August 22nd, 2007]
For MSMQ, there is a useful page with table that lists what works with Vista:
Installing and Uninstalling Message Queuing with Unattended Setup
which boils down to:
Windows Vista Home Basic and Starter Editions
MSMQ Server
Message Queuing Triggers
Multicasting Support
Messaging Queue DCOM Proxy
Windows Vista Home Premium Edition
As above plus HTTP Support
Windows Vista Ultimate, Business and Enterprise Editions
As above plus Directory Service Integration (public queues, etc)
Unsupported
Routing Service
Windows 2000 Client Support
So the bare minimum you can expect is MSMQ running in workgroup mode with private queues only.
Comments
Anonymous
February 07, 2007
John, I am running Vista Ultimate edition and I can verify this version supports MSMQ. However, for the life of me I cannot figure out how to create public Queues. Only Private queues seem to be supported. Any knowledge about Public message queues on VISTA? Thanks! Chris BurnsAnonymous
February 08, 2007
Hi Chris, This won't have changed in Vista as Public queues means Active Directory and is not OS-dependent. My domain-connected Ultimate edition has public queues showing up and gives me the option to create new ones. Is your machine running in Workgroup mode? Does Computer Management show folders under "Message Queuing" for Outgoing Queues (optional), Private Queues and System Queues but a red cross through Public Queues?Anonymous
January 30, 2008
I am still trying to figure out how to create public queues for my Vista business edition. I have also noticed that private queues that I created do not work fine with my .NET programs. No matter what I do, I cannot send a simple message into the queue. I have provided all the permissions just in case and it still does not work. Does anyone have any ideas? AnupAnonymous
January 30, 2008
Hi Anup, you don't say how you are trying to create public queues. If the "Public Queues" folder does not appear under "Message Queuing" in Computer Management then you cannot create public queues because MSMQ is not Active Directiry intregrated. For the private queues problem, what symptoms do you see - any error messages? Are you sending a message to a queue on a different machine to the application or the local machine.Anonymous
January 31, 2009
The comment has been removedAnonymous
January 31, 2009
Hi Nate, To ensure you track the sending of messages, you need to enable negative source journaling so that rejected messages go into the Dead Letter Queue. By default, rejected messages are simply discarded. For reading messages, you need to ensure you set a timer. If you decide to wait an infinite amount of time then I can imagine your app no longer responding if it doesn't think there is a message to read. Note - "Everyone" does not include everyone; you need to add "Anonymous Logon" to really cover everyone. Cheers John Breakwell (MSFT)Anonymous
January 31, 2009
The comment has been removedAnonymous
February 01, 2009
Hi, I would experiment sending messages to a bogus destination. If the message is successfully created then the MSMQ queue manager will put it in the corresponding outgoing queue (which obviously is going nowhere). If no queue is created then you know that the Send() function is not working. You will get an exception if this call fails so put a try/catch specifically round the Send() call. Note that internally, sending to local queues is different from sending to a remote destination. It is easier to troubleshoot sending to a remote queue because MSMQ doesn,t take any short cuts. If you are happy that messages are being generated but not delivered then negative source journaling and the Dead Letter Queue will show you the cause. There isn't much more to it than that. If you are confident your code is correct and none of the above helps then I would recommend raising a support call with Microsoft support. They can help you analyse the MSMQ internal logging and see where the problem may be. Cheers John Breakwell (MSFT)