You can’t move a delivered MSMQ message

Quite often I see people discussing moving messages between queues and this mildly grates on my nerves. Delivered messages can’t be moved out of the queue they end up in – the only thing you can do is delete the message, either through receving it, purging the queue it is in, or waiting for any…

0

Transactional MSMQ on a cluster

Before Windows 2008 (MSMQ 4.0) there was only one option if you needed to read messages transactionally on a high availability cluster – the application had to be clustered in the same resource group as the MSMQ service hosting the queues. This was because only local receive operations could be transactional on Windows 2003 (MSMQ…

2

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®…

0

How to tell if a remote MSMQ queue is transactional?

[[Corrected December 17th, 2009, with input from Jolie Boushey]] This isn’t going to be easy. There are two major obstacles to cope with Private queues are, by definition, not published to Active Directory so their properties cannot be found with a simple query to directory services As a result of that, the remote machine hosting the…

4

MSDTC and MSMQ – Brothers in Arms

I’ve just responded to a newsgroup poster asking how to avoid using MSDTC on a cluster. Their applications weren’t using distributed transactions and they didn’t want to have to provide another shared disk just for MSDTC. On a cluster, there is only one instance of MSDTC so the MSMQ services (clusterised and local) cannot be…

0

Setting up MSMQ with multiple instances of Distributed Transaction Coordinator (DTC)

The Windows Server Core support team has produced a useful blog post that explains how to understand and implement multiple instances of MSDTC, a feature new to Windows Server 2008. How to Configure Multiple Instances of Distributed Transaction Coordinator (DTC) on a Windows Server Failover Cluster 2008 The example used to illustrate the process uses of MSMQ which…

0

Oil and water – MSMQ transactional messages and load balancing

A really common request is to load-balance MSMQ, either to “scale out” (adding more machines, as opposed to “scale up” by enhancing the existing server) or for high availability. For load-balancing to work, the traffic must be stateless as there is no guarantee that a sending machine will be using the same balancer each time. For…

2

Remote transactional reads only work in MSMQ 4.0

Important note about performing remote transactional reads (introduced in MSMQ 4.0) – both the machine reading the queue and the machine hosting the queue have to be running MSMQ 4.0, not just the reader. 929788 Error message when you perform a transactional remote receive that invokes an external transaction from a down-level client: “0x800706D9 – “There…

0

How do I get transactional remote receives with MSMQ?

It is not always efficient for business reasons to implement a classic push system – “send remote, read local” – and a pull mechanism may instead be required – “send local, read remote”. The downside to this has been that the “read remote” couild not be transactional which makes the operation unreliable and prone to data loss. Transactional…

3

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…

4