Soon you'll be able to run MSMQ 4.0 on both server AND workstation.

So to review, for those who haven't been looking at MSMQ 4.0 since Vista came out over a year ago, here's "what's new":

  • Transactional Remote Receive
    This is the biggy - pull messages from a remote queue reliably within a transaction. It's not necessarily the best way of doing things as it is not as efficient as pushing messages through your system but it is now there if you need it.
  • Handling Poison Messages
    This will be familiar to anyone that has uses Queued Components in COM+. Poison messages are those that continue to fail to be read. For example, an application uses a transaction to read the message and update a database. Should the database update fail then the transaction aborts, putting the message back in the queue. The application then keeps trying to process the message until the database comes back on-line whihc may take days. Messages can now be given extra properties that determine how many times they can be read before being moved to retry queue (or even discarded completely) which frees up the application to move onto the next message.
  • Subqueues
    Again, something that was originally found in Queued Components. Unlike QC, though. these are not really queues in their own right but more partitions of the main queue.
  • Application-specific dead letter queues
    No longer does every dead message go into the same graveyard. Now you can create as many dead letter queues as you want to make it easy to work out which application is failing, rather than having to dig through the main Dead Letter Queue to find what you want.

And here are the Knowledgebase articles specific to MSMQ 4.0:

I'll have a look around to see if I can find anything "fixed in SP1" but I don't think there was much that needed fixing.