Troubleshooting
Abstract
This document provides guidelines and information useful for troubleshooting issues related to the ciMDM service.
Understanding the log files.
The MDM service log file is called ciMDM.log and is located in the same folder as other CI log files.
It uses a common logging format which looks like this:
<Date> <Time Stamp> - [<Log Level>] <Class> | <Message>
Date, time stamp, and class should be self-explanatory, while log level can be one of the standard levels in Common.logging. These are:
DEBUG - Used for DEBUG information. This will usually not provide information helpful to non-developers.
INFO - Used to relay INFO information. This is usually about important state changes in the system, such as reconfiguration events.
WARN - Used to relay WARN information, This is usually used to relay information about undesired (but not necessarily wrong) system behavior, such as using the override.xml file.
ERROR - Used to relay recoverable ERROR information. This is usually used to relay information about a serious failure of the software, like uncaught exceptions or malformed REST requests. Exceptions and stack traces are demarcated by '***'
FATAL - Used to relay unrecoverable FATAL information. This used exclusively for the serious failure of the software from which the software cannot recover, such as invalid config.xml. This will usually cause the service to shut down defensively.
You can change the current log level in the file: "ciMDM.exe.config" under the logging section. For debugging this should be set to DEBUG, but in performance-critical production environments, you should probably go with INFO or WARN.
Example Data Contracts
Testing the configuration
If you're unsure whether the configuration delivered by the ciBackend service is correct you can try adding a file called "override.xml" to the installation directory. This file allows you to manually configure the ciMDM service with a static configuration. The data contract is:
Immediate Actions
Symptom | What to try first. |
---|---|
MDM Service won't start. | Check if the config.xml file is present and correct. The file should contain the REST endpoints for ciFrontend, ciBackend, as well as the service GUID. |
MDM Service not working, | The ciMDM service depends on the ciFrontend and ciBackend services. These must be up and running in order for the ciMDM service to function properly. |
MDM Service not working. | The ciMDM service depends on an installed PKI. Make sure that all certificates (SSL and MDM) are installed correctly (in Local Computer -> Personal. Also, make sure the lightweight SCEP service is running and functioning. |
MDM Service not working. | The ciMDM service gets its configuration dynamically from the ciBackend service. Make sure the configuration is correct. You can invoke the /mdm/<service uuid> endpoint on ciBackend to get the data. Alternatively, the configuration is written to the log under the DEBUG level. |
Further Reading
Apple has release Technical Note TN2265 on troubleshooting push notifications. Be aware that this documentation is targeted at application developers, so not everything will apply. The document is here: http://developer.apple.com/library/ios/#technotes/tn2265/_index.html