Datasync or Mobility not able to populate the GAL with all users

  • 7019011
  • 17-May-2017
  • 17-May-2017

Environment

Novell GroupWise Mobility Service 2014 R2
Novell Datasync 2.1
Novell GroupWise 2012 Support Pack 2
Novell GroupWise 2014 R2 Support Pack 2

Situation

The customer noticed when they updated from GroupWise 8 to GroupWise 2012, their Datasync 2.1 or Datasync 14.2.2 server was not able to populate the Mobility GAL with all 50,000+ users, they would get only about 10% of the users in the Mobility GAL table. Or when they go into the Mobility Web Admin console, Users, and click on Add Users , then click on the Search button (total number of users listed was not correct).  It would say "showing 1-10 of 7100 entries".  Should say 50,000 entries.

Resolution

By searching thru the Groupwise-agent.log, we would see [GAL_Monitor_Thread] activity, we would see a reference to each of the user names (the user names were actually numbers, in numerical order) it did sychronize into the GAL, and the last name was a specific value, like 123456.  So we knew that next name that should be in the groupwise-agent.log in the GAL_Monitor_Thread activity should be like
123457.

With this information, possibly identifying a "problem" user, and from the error we could see in the
groupwise-agent.log file :

 ------------- syncGAL Exception error --------------------------------------------------------
 2017-05-15 13:29:53.591 ERROR [GALMonitor_Thread] [gal:153] [userID:] [eventID:] [objectID:] [GALMonitor] syncGAL Exception: EntityRef: expecting ';', line 1, column 16328
Traceback (most recent call last):
  File "./groupwise/lib/gal.py", line 139, in syncGAL
  File "./groupwise/lib/gal.py", line 320, in readGALEntries
  File "/lib/superxml.py", line 205, in fromString
  File "/lib/superxml.py", line 63, in readString
  File "/lib/superxml.py", line 45, in readFileObject
  File "lxml.objectify.pyx", line 1864, in lxml.objectify.parse (src/lxml/lxml.objectify.c:19649)
  File "lxml.etree.pyx", line 2957, in lxml.etree.parse (src/lxml/lxml.etree.c:56299)
  File "parser.pxi", line 1543, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:82510)
  File "parser.pxi", line 1571, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:82792)
  File "parser.pxi", line 1450, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:81590)
  File "parser.pxi", line 965, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:78311)
  File "parser.pxi", line 569, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:74567)
  File "parser.pxi", line 650, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:75458)
  File "parser.pxi", line 590, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:74791)
XMLSyntaxError: EntityRef: expecting ';', line 1, column 16328
----------------------------------------------------------------------------------------------

We could tell that Mobility was parsing thru user data, in this case, a user that is linked to eDirectory.  And it appeared there was some data or characters that was being parsed by Mobility from GroupWise via soap, that it did not like.  So our challenge was to identify this bad data.

It was discovered in ConsoleOne (or iManager) that under the General tab there was a field called "Generational qualifier" for data like "Jr." or "Junior" , etc.  It contained the string "as&when" (no quotes) and when this user data synchronized to GroupWise, then Mobility would parse thru this user data to populate the GAL and when it hit this string it stopped the GAL population process.  That is why only about 10% of the names populated the GAL.

It is unknown how this odd value came to populate this eDirectory user field.

But the solution is to remove this value from all eDirectory users (from iManager) that are linked to GroupWise Post Offices and Datasync or Mobility.

Cause

Parsing thru invalid eDirectory user data caused syncGAL process to stop.  Remove the invalid data and sync this new updated user information with GroupWise, thereby allowing the next syncGAL process to start and complete.

Additional Information

When Mobility was pointing to a GroupWise 8 Post Office instead of GroupWise 2012 or 2014, then the issue did not occur.

Note:  
By turning on a POA soap trace (Micro Focus support KB 7012614) at the time that we try to populate the GAL, like when Datasync 2.1 or Mobility 14.2.2 starts initially or when in the Mobility Web Admin console, Config, User Source, click "Poll Now" button, we could see when we searched for the xml tag called <gwt: nameSuffix> that a few users, including the problem user we identified, had the value in this tag of "as&when".  Knowing this information in the soap trace log file might help to know what to search for in case odd characters or non a-z or non 0-9 characters might be present that could cause an issue for Mobility parsing user data with these kinds of characters.