Clientsync Probleme nach Datenbankumzug

By | 16. Oktober 2019

Vor Kurzem mussten wir die DSM Datenbank aufgrund des Supportendes von Server 2008 umziehen. Da der Schwenk nicht direkt funktionierte (Hinweis: Nach einem Datenbankumzug immer den Server neustarten!), waren kurzfristig die alte und die neue Datenbank online. Das führte nicht direkt zu einem Fehler, jedoch fiel mir einige Tage später etwas auf: Verschiedene Clients synchronisierten sich nicht mehr mit DSM, die letzte Synchronisation fand zum Zeitpunkt des Datenbankumzuges oder kurz davor statt. Das Logfile zeigte folgenden Fehler:

22:42:16.466 E   Warning (Module:SWMSClntLib, Severity:0x03): The server returned an exception (3758622480) when syncing for computer 153282 and user 144635.

Fehlerhafte Schnappschuss-ID. (0xe0080710)

22:42:16.468 E   Warning (Module:SWMSClntLib, Severity:0x03): Failed to synchronize with BLS

Fehlerhafte Schnappschuss-ID. (0xe0080710)

22:42:16.468 E   Warning (Module:SWMSRT, Severity:0x03): Client sync (C:\Program Files (x86)\Common Files\enteo\NiLogs\SyncLogs\PerformSync_SYSTEM_0000003957.log) failed [-536344816]

22:42:16.470 E   Warning (Module:SWMSRT, Severity:0x03): ClientSync failed with error code 3758622480

Fehlerhafte Schnappschuss-ID. (0xe0080710)

22:42:16.473 2   SWMSRT: Client sync for computer ‚153282‘ and user ‚144635‘ (QoS level ‚Polling‘) failed with ‚Fehlerhafte Schnappschuss-ID. (0xe0080710)‘ (3758622480)

In diesem war ein Hinweis auf das PerformSync .log, was Folgendes zeigte:

22:42.16.399  2 syncserv.dll  The server has thrown an exception of type -536608564

22:42.16.400  E Warning (Module:mgmtagnt.exe, Severity:0x03): syncserv.dll  The exception translates into:

Fehlerhafte Schnappschuss-ID. (0xe0080710)

22:42.16.400  2 syncserv.dll  StackTrace:

22:42.16.400  2 syncserv.dll       at Enteo.BlServer.Core.ClientManagement.CoreCommands.CheckAndUpdateSynchronizationInfoCommand.CheckAndUpdateSyncCounters(SynchronizationData syncDa

22:42.16.400  2 syncserv.dll    ta, IVirtualObject computer)

22:42.16.400  2 syncserv.dll       at Enteo.BlServer.Core.ClientManagement.CoreCommands.CheckAndUpdateSynchronizationInfoCommand.Execute(SynchronizationData syncData)

22:42.16.400  2 syncserv.dll       at Enteo.BlServer.Base.ClientManagement.CommandInfrastructure.SynchronizationInvoker.ExecuteSingleCommand(ISynchronizationCommand command, Synchron

22:42.16.400  2 syncserv.dll    izationData data)

22:42.16.400  2 syncserv.dll       at Enteo.BlServer.Base.ClientManagement.CommandInfrastructure.InvokerBase`2.Execute(TData data)

22:42.16.400  2 syncserv.dll       at Enteo.BlServer.Orchestration.ClientManagement.ClientManagementOrchestration.<>c__DisplayClass7_0.<Sync>b__0(IMdsFactory mdsFactory)

22:42.16.400  2 syncserv.dll       at Enteo.BlServer.Orchestration.OrchestrationBase.HandleRequestInternal[TReply](String callName, String callDetails, TransactionHandling transactio

22:42.16.400  2 syncserv.dll    nHandling, ExecuteRequestDelegate`1 exec, Func`1 getClientInfo, Func`1 getRequestServerInfo, Func`2 getReplyServerInfo, OrchestrationCallWrapperActions actions)

22:42.16.400  2 syncserv.dll       at Enteo.BlServer.Orchestration.OrchestrationBase.HandleRequestJson[TReply](String callName, JsonRequestBase request, TransactionHandling transacti

22:42.16.400  2 syncserv.dll    onHandling, OrchestrationCallWrapperActions actions, ExecuteRequestDelegate`1 executeRequest)

22:42.16.400  2 syncserv.dll       at Enteo.BlServer.Orchestration.ClientManagement.ClientManagementOrchestration.Sync(SyncRequest request, Action`1 calculatedSynchronizationDataAction)

22:42.16.400  2 syncserv.dll       at Enteo.BlServer.WebService.ClientManagement.ClientService.HandleRequest[TReply,TInterface](JsonRequestBase request, Func`2 exec)

22:42.16.401  2 syncserv.dll       at Enteo.BlServer.Orchestration.ClientManagement.Json.JsonService.ProcessInternalWithValidation[TRequest,TReply](Stream s, Func`2 handler, Action`1

22:42.16.401  2 syncserv.dll     postProcessReply, Action handleServiceNotAvailable, Func`2 extendTraceFileName, JsonSchema validationSchema)

22:42.16.401  0 syncserv.dll  Request was:

22:42.16.402  2 syncserv.dll    {

22:42.16.402  2 syncserv.dll      „Changes“:{

22:42.16.402  2 syncserv.dll        „Computer“:{

22:42.16.402  2 syncserv.dll          „153282“:{

22:42.16.402  2 syncserv.dll            „BasicInventory“:{

22:42.16.402  2 syncserv.dll              „InstalledOSVersion“:“10.0.17134.1006″,

22:42.16.402  2 syncserv.dll              „SyncCountClient“:4527,

22:42.16.402  2 syncserv.dll              „SystemType“:1

22:42.16.402  2 syncserv.dll            },

22:42.16.402  2 syncserv.dll            „ClientInfo“:{

22:42.16.402  2 syncserv.dll              „RebootPending“:false

22:42.16.402  2 syncserv.dll            },

22:42.16.402  2 syncserv.dll            „Computer“:{

22:42.16.402  2 syncserv.dll              „CalculatedWakeUpTime“:null

22:42.16.402  2 syncserv.dll            }

22:42.16.402  2 syncserv.dll          }

22:42.16.403  2 syncserv.dll        },

 

Der Hinweis auf die „Fehlerhafte Schnappschuss-ID. (0xe0080710)“ brachte mich dann auf die richtige Spur: Während beide Datenbanken online waren, synchronisierte der Client nochmal mit der alten Datenbank, danach direkt mit der neuen, ohne dass wir noch mal ein Backup überspielt hatten (selbst Schuld!).

Nur wie die Clients wieder zum Laufen kriegen? Die harte Variante (aus DSM löschen und dann noch mal synchronisieren) funktionierte, ist jedoch eher unbefriedigend, da er jede Software neu installieren will (inklusive Betriebssystem).

Nach einiger Recherche habe ich jedoch noch eine sanftere Methode gefunden: Im Ordner „C:\Program Files (x86)\Common Files\enteo\sync\“ gibt es eine Datei „ComputerState.json“, die scheinbar auch den Timestamp der letzten Synchronisation enthält. Wird diese gelöscht, läuft auch die Synchronisation wieder (und die Datei wird automatisch neu erstellt).

Schreibe einen Kommentar