How to troubleshoot device connectivity with Mobility

  • 7012815
  • 09-Jul-2013
  • 05-Dec-2016

Environment

Novell Data Synchronizer Mobility Pack

Situation

How to troubleshoot a specific device's connectivity with the Mobility server.
How to monitor devices for connection issues.

Resolution

There is an easy way and are more involved way. One is for busy, active, mostly working servers, while the other works best when either no devices can connect or there is little traffic.

Please consider TID 7013053 - Issues with device connectivity to Mobility server - Master TID for possible solutions.

Troubleshooting Steps:

Option A - unable to connect any devices or less traffic on server:
  1. Monitor for incoming device connections. From a terminal window:
    tailf /var/log/datasync/connectors/default.pipeline1.mobility-AppInterface.log | grep -i device_thread
  2. Test a local connection from the server itself.
    • From a new terminal window:
      telnet <serverAddress> <mobilityPort>
      (ex: telnet localhost 443)
    • You should see from the first terminal window, something similar to the following:
      INFO [Device_Thread-22] [__init__:1314] [userID:] [eventID:] [objectID:] [WSRThread] Socket 34: Total: 15 ,Idle Threads: 15.
    • This shows a connection attempt to Mobility.
  3. From a server outside the internal network test the same connectivity from Step 2. Also try connecting with the device. If the same connection "blip" does not appear. Then the incoming connection is not properly forwarded to the Mobility server.
  4. Confirm the same connectivity and verify certificates are valid by entering the server address here:
    http://www.digicert.com/help/

Option B - unable to connect some devices, busy servers and logs:
  1. Find the IP address assigned to the Mobile device:
    1. Visit http://whatismyipaddress.com from a browser on device.
    2. Note the ipAddress provided in IP Information
  2. Monitor from the server for this device's connection:
    1. Determine the listenPort for incoming devices to Mobility:
      From a terminal window on the Mobility server:

      grep listenPort /etc/datasync/configengine/engines/default/pipelines/pipeline1/connectors/mobility/connector.xml
      example output:
      <listenPort>443</listenPort>

  3. Monitor for the device's connection:
    • From a terminal window on the Mobility server:
      tcpdump -nv 'port <listenPort>' | grep <ipAddressOfDevice>

      ex: tcpdump -nv 'port 443' | grep 192.168.0.1
      Note: Provide the valid Mobility listenPort (default: 443) and IP address of the device.

A valid connection to the server from this device will display lots of information, similar to:
# tcpdump -nv 'port 443' | grep 137.65.231.206
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
12:51:46.426237 IP 137.65.231.206.49840 > server.https: P 3837110120:3837110143(23) ack 4270200272 win 245 <nop,nop,timestamp 19618883 197049144>
12:51:46.426261 IP server.https > 137.65.231.206.49840: . ack 23 win 1039 <nop,nop,timestamp 197066497 19618883>
12:51:46.426351 IP 137.65.231.206.49840 > server.https: F 23:23(0) ack 1 win 245 <nop,nop,timestamp 19618883 197049144>
12:51:46.463975 IP server.https > 137.65.231.206.49840: . ack 24 win 1039 <nop,nop,timestamp 197066507 19618883>