[Resolved] CMSVC-2578: In some cases, Device Services doesn't properly utilize MSMQ for MDM samples

Version Identified

AirWatch Console 8.3.x, 8.4.x, 9.0.3 and below






  • High CPU usage on Device Services servers tied to extensive device sample processing.
  • ADO.NET database pool exhausting error seen when analyzing process dump of w3wp (device services) process.
  • Long response times for PUT requests to /deviceservices/AppleMDM/Processor.aspx seen in IIS.



Note: Make sure to take a backup of your server before attempting any manual file changes.

Samples can be configured to process through MSMQ by changing a few settings in the Device Services Web.config file. On each Device Services server, perform the following steps:

1. Navigate to AirWatch\AirWatch 8.4\Websites\WanderingWiFi.AirWatch.DeviceServices (changing the version numbers as necessary).

2. Make a backup of the web.config file by making a copy and moving it to the desktop.

3. Edit the original web.config file in a text editor.

4. Scroll to the section labeled "<!-- Dependency Container Definitions -->".

5. Change the IInterrogatorPersistenceManager to map to InterrogatorQueuePersistenceManager. The full line should change from:

     <type type="IInterrogatorPersistenceManager" mapTo="InterrogatorDatabasePersistenceManager">


     <type type="IInterrogatorPersistenceManager" mapTo="InterrogatorQueuePersistenceManager">


6. Change the IMdmCommandProcessorPayloadHandler value to map to MdmCommandPayloadQueueManager.  The full line should change from:

     <type type="IMdmCommandProcessorPayloadHandler" mapTo="MdmCommandPayloadSamplingManager">


     <type type="IMdmCommandProcessorPayloadHandler" mapTo="MdmCommandPayloadQueueManager">


7. Save the web.config file.

8. Perform an IIS reset. 

9. You can validate the change was successful by stopping the AirWatch Interrogator Queue Monitor Service and confirming the MSMQs begin filling up (you may need to query a few devices in the console if the environment is small).


Fix Version

This issue has been resolved in AirWatch 9.0.4 and 9.1.

Have more questions? Submit a request


Article is closed for comments.