SYMPTOMS
MSMQ is supposed to be run on several VEs on the same node. It is installed successfully on all nodes, however even it can be started on one VE it fails to start on others.“Insufficient resources” error is displayed at this moment.
CAUSE
It is important to ensure that all the [clustered] MSMQ resources have adequate kernel memory address space for mapping messages. Each resource has its own instance of the Message Queuing driver (Mqac.sys) which maps files to a 4MB range of the System View Space memory pool (desktop heap for drivers). As the default pool size is 16MB, this allows for 3 MSMQ services (3x4MB=12MB) and 4MB left over for other (non-MSMQ) device drivers - this 4MB remainder may not be enough. Even worse, running a fourth service would mean MSMQ would try and allocate itself all of the memory pool, leaving none for other services to make use of. The results of this are, obviously, unpredictable and you may see "Insufficient Resources" reported.Although, it usually relates to clusters, the situation is the same - several instances of MSMQ including the driver are running on the same node.
RESOLUTION
The solution is to configure the following value in the registry:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\SystemViewSize
SystemViewSize should be calculated using the following formula:
SystemViewSize = (16 + (maximum of VEs with MSMQ x 4))
Additional information
Please see original Microsoft articles:http://blogs.msdn.com/johnbreakwell/archive/2007/09/17/kb-940-960-insufficient-resources-with-multiple-instances-of-msmq.aspx
http://technet2.microsoft.com/windowsserver/en/library/435e1605-b46b-4420-a081-630dca4e27d81033.mspx?mfr=true