Partilhar via


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 Burns

  • Anonymous
    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? Anup

  • Anonymous
    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 removed

  • Anonymous
    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 removed

  • Anonymous
    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)