Slow sync of events (Mobility server overloaded with consumerevents for some users)

  • 7016454
  • 28-Apr-2015
  • 28-Apr-2015

Environment

Novell GroupWise Mobility Service
Novell Data Synchronizer Mobility Pack

Situation

Slow sync of events (Mobility server overloaded with consumerevents for some users)
Syncing / processing slow in datasync database, consumerevents table
Thousands of events clogged up in the consumerevents table
How to troubleshoot GMS' consumerevents table found in the psql datasync db
What does the state column in the consumerevents table mean or translate to?

Resolution

Sometimes a particular user's events can overload the server and delay or even prevent sync for others. Although there can be many causes, the steps below will help identify if there are any user(s) with an unusual high amount of events:

  1. See TID 7015282  - How to install dsapp on a Mobility server.
    Note: Once dsapp is installed, proceed with the steps below.

  2. Select Checks & Queries | GW pending events by User (consumerevents)
    Note: If there are events that have yet to be processed and converted, a table with count and users will be displayed similar to below:
    365367 user3
    190    user5
    10     user1
    1      user2

  3. Clearly, in the above example, there appears to be an issue with items being processed for user3. Typically it's best to just remove this user and cleanup database references and then consider re-syncing fresh as needed; however, it can be helpful to take the extra time to dump the table and carefully examine the events for this user at another time. Perhaps a common thread can be determined after analyzing the dumped table. To dump the table to the current directory with filename consumerevents.sql:
    pg_dump -U datasync_user -t consumerevents datasync > consumerevents.sql

  4. If there is a user that should be removed to help restore sync for others (such as user3 in the above example), then proceed with the steps below:
    • Remove the user: See Deleting a User from the GroupWise Mobility Service Administration Guide.
      Note: It may take some time for GMS to remove the user, monitor status through WebAdmin.
    • Sometimes corrupt references should be removed by following TID 7008852 - How to delete the user completely from the Mobility Database.
    • Once the user has been removed, their references in the consumerevents table can likewise be cleaned up with the following command:
      psql -U datasync_user -c "delete from consumerevents where edata ilike '%<sourceName>user3</sourceName>%';"
      Note: Be sure to replace user3 with the appropriate userid determined in Step 2.
    • Restart GMS to release any possible stuck threads, etc: rcgms restart


Additional Information

The state column in the consumerevents table should have the following translations:
STATE_PENDING = '1'
STATE_RETRY = '2'
STATE_DEPENDENT = '3'
STATE_PENDING_DEPENDENT = '4'
STATE_RETRY_DEPENDENT = '5'
STATE_ERROR_0 = '1000'