Good IOS MDM (continue) – Testing and Troubleshooting Presented by: Jerry Wen 03/14/2012
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 2 IOS MDM Command Life Cycle – Flow Diagram IOS MDM Command Life Cycle – troubleshooting process and logs analysis MDM DB Query Occasions where iOS MDM commands are invoked Agenda
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 3 IOS MDM Command Life Cycle – Flow Diagram
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential :47: PST | INFO | 1_3123/53_2/55_10 | com.good.ws.SOAPLoggingHandler | log | client_webapps-qa.good.com_443_ws_ManageService Sending: 373C7163-DBCF-40BC-898F E9BAAE DeviceLock MDM Command process – GMC send command (EMF.log)
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential :47: PST | INFO | 1_3123/53_2/55_10 | com.good.emf.wf2.WFExecutorImpl | schedulePrepped | Submiting WFGroup of 1 first is after ms delay MDM Command process – GMC query webapps periodically (EMF.log)
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 6 Webapps log: /appdist/jboss/E1/server/default/log/server.log :47:01,471 | INFO | DM GMC-RWS2K3GMC_bizapps01- zone2.lab.good.com_184700_4333 | com.good.ws.ms.ManageServiceImpl | Received DeviceLock request for guid:373C7163-DBCF-40BC-898F E9BAAE returning with task Id: MDM Command process – webapps got the MDM command
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 7 MDM command initiated in DB
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 8 PN service invoked
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 9 /appdist/webbatch/current/logs/process_pnservice/batch.log :47:38,072 [main] INFO com.good.batch.processors.APNSMessageSender - Processing handheld : :47:38,073 [main] INFO com.good.batch.processors.APNSMessageSender - token is: e25da68bb8f c8c094257cc7ce7c98026dd1d37c41afd9fa88ff45717 Message is:{"mdm":"DE2263ED A-9493-DA49EB2C7DA0"} MDM Command process – PN service
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 10 The device log can be got by connecting device to IPCU Feb 28 10:47:40 unknown mdmd[3172] : (Note ) MDM: mdmd starting... Feb 28 10:47:41 unknown profiled[3173] : (Note ) profiled: Service starting... Feb 28 10:47:41 unknown mdmd[3172] : (Note ) MDM: Polling MDM server for commands Feb 28 10:47:41 unknown mdmd[3172] : (Note ) MDM: Network reachability has changed. Feb 28 10:47:43 unknown mdmd[3172] : (Note ) MDM: Transaction completed. Status: 200 Feb 28 10:47:43 unknown mdmd[3172] : (Note ) MDM: Attempting to perform MDM request: DeviceLock Feb 28 10:47:43 unknown mdmd[3172] : (Note ) MDM: Handling request type: DeviceLock Feb 28 10:47:43 unknown mdmd[3172] : (Note ) MDM: Command Status: Acknowledged Feb 28 10:47:43 unknown mdmd[3172] : (Note ) MDM: Transaction completed. Status: 200 Feb 28 10:47:43 unknown mdmd[3172] : (Note ) MDM: Server has no commands for this device. Feb 28 10:47:45 unknown mdmd[3172] : (Note ) MDM: mdmd stopping... MDM Command process – Device MDM command execution
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 11 Webapps log: /appdist/jboss/E1/server/default/log/server.log :47:43,172 | INFO | null_bizapps01-zone2.lab.good.com_184703_5082 | com.good.mdm.ios.MDMServer | CommandUUID Status Acknowledged UDID :47:43,201 | INFO | null_bizapps01-zone2.lab.good.com_184703_5082 | com.good.mdm.ios.MDMServer | Rec a message from the device, Udid : cdb25c885ee7bebb0e52ee146ad1257a3818ce10 messageType null status:Acknowledged MDM Command process – Webapps server got MDM command Ack
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential :48: PST | INFO | 1_3123/53_2/55_10/57_3 | com.good.ws.SOAPLoggingHandler | log | client_webapps- qa.good.com_443_ws_ManageService Received: 373C7163-DBCF-40BC-898F E9BAAE DeviceLock COMPLETED T02:47:01.000Z T02:47:43.000Z T02:43:32.083Z MDM Command process – GMC got the MDM command status from webapps (EMF.log)
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 13 Get your “System Identifier” from GMC -> handheld -> “Handheld Info” Connect to Webapps DB using some DB Client tool Get handheld GUID by running: select GMC_MANAGE_HANDHELD_ID from GMC_MANAGE_HANDHELD where handheld_guid = '373C7163-DBCF-40BC-898F E9BAAE'; Query MDM command Queue and PN Services tables select * from MDM_GATEWAY_QUEUE where handheld_id = '68160' order by queue_id desc; select * from PN_SERVICE_QUEUE where handheld_id = '68160' order by queue_id desc; MDM DB Query
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 14 The pre-requisite is handheld applied with MDM Enabled policies GMC queries an ios handheld when MDM profile installed GMC Admin click “Refresh” button in an ios handheld page GMC Admin switches “Data Roaming” in handhelds/handheld page GMC Admin click action button from Handheld -> Security GMC Admin adds managed apps to ios handheld’s policy GMC Admin “Remove and uninstall” managed apps from ios handheld’s policy GMC Admin removes a ‘managed’ ios application from “Customer software” GMC Admin clicks “Uninstall” button for a Packaged Application in Handheld -> Applications page GMC Admins update an ios handheld’s ios configuration settings in policy Others – Like MDM Access Right change When are IOS MDM Commands invoked?
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 15 Below info means MDM profile is removed from device :31:25,229 [main] INFO com.good.batch.processors.APNSMessageSender - No Token found for handheld :31:25,230 [main] INFO com.good.batch.processors.APNSMessageSender - Processing handheld : FAQ -1 batch.log
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 16 Below info means Apple APNs reject our request. So far we have not got response from Apple Support :17:39,753 [main] INFO com.good.batch.processors.APNSMessageSender - Error while sending the message, will try again javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:742) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1030) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:622) at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59) at java.io.OutputStream.write(OutputStream.java:58) at com.good.batch.processors.APNSMessageSender.send(APNSMessageSender.java:138) at com.good.batch.processors.APNSMessageSender.pushMessages(APNSMessageSender.java:116) at com.good.batch.processors.PNService.execute(PNService.java:84) at com.good.batch.processors.BatchCommand.main(BatchCommand.java:18) FAQ -2 batch.log
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 17 /appdist/jboss/E1/server/default/conf/log4j.xml Webapps log level
©2011 Good Technology, Inc. All Rights Reserved. Company Confidential 18 What if I distribute paid apps to other devices via Good Enterprise? The apps can be downloaded and “installed” on devices, while not able to run. Answer for last session