How to increase device threads on a Mobility server

  • 7014654
  • 27-Feb-2014
  • 29-May-2015

Environment

Novell GroupWise Mobility Service 2.0
Novell Data Synchronizer Mobility Pack

Situation

Devices aren't receiving updates from the Mobility server or are slow to receive them.
The available device_threads for Mobility are consistently low:
INFO [Device_Thread-13] [__init__:1314] [userID:] [eventID:] [objectID:] [WSRThread] Socket 34: Total: 15 ,Idle Threads: 2.
The server shows low load average in top:  load average: 0.44, 0.37, 0.33
The server has sufficient memory and is capable of extra load.
The server doesn't have any disk i/o performance issues (see TID 7009812)

Resolution

First, verify Idle Threads are consistently low:

  1. Enter the following in a terminal window:
    tailf /var/log/datasync/connectors/mobility-agent.log | grep -i threads
    Here is an example of low Idle Threads:
    INFO [Device_Thread-13] [__init__:1314] [userID:] [eventID:] [objectID:] [WSRThread] Socket 34: Total: 15 ,Idle Threads: 2.
  2. Perhaps this is a temporary overload, give the Mobility server some time to catch up and check again. If this is consistently low, consider increasing the device threads in the next section.

Consider creating an additional Mobility server to distribute the load; however, it is possible that increasing the device threads could help:

  1. Edit the following configuration file:
    /etc/datasync/configengine/engines/default/pipelines/pipeline1/connectors/mobility/connector.xml
  2. In the <custom> section of connector.xml, append the following anywhere on a new line:
    <threads>20</threads>
  3.   Note: Default device_threads is 15.   20 has been used successfully for many customers.   Do not go higher than 20.
  4. Save and Close the file.
  5. Restart Mobility services:
    rcgms restart or rcdatasync restart

Note: If you check the mobility-agent.log with this command - tailf /var/log/datasync/connectors/mobility-agent.log | grep -i threads: INFO [Device_Thread-12] [__init__:1314] [userID:] [eventID:] [objectID:] [WSRThread] Socket 50: Total: 30 ,Idle Threads: 30.

Cause

An excess of device requests are overloading the Mobility server.