Časté zobrazování stavu "Připojování" a následně "Naposledy synchronizováno" během synchronizace eWay-CRM
Popis
V lokálním logu může být zobrazeno při DebugLevel = 0 (v registrech) následující:
HASH: F3F522677A9CD9FC62C1519CD54FF849 Synchronization failed eWay.Core.Exceptions.InternetConnectionException: The operation has timed out ---> System.Net.WebException: The operation has timed out at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request) at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at eWay.Core.eWayWS.eWayWS.LogIn(String UserName, String PasswordHash, String ClientVersion, String ClientID) at eWay.Core.WebService.Connection.LogIn() at eWay.Core.WSDataInterface.eWayWSConnection.LogIn() at eWay.Core.WebService.Connection.get_SID() at eWay.Core.WSDataInterface.eWayItemStore.b__18() at eWay.Core.WebService.BasicItemStore.CallWebServiceMethod[TResult](WebServiceMethodDelegate`1 method, Boolean supressAfterReLoginEventHandler) at eWay.Core.WebService.BasicItemStore.CallWebServiceMethod[TResult](WebServiceMethodDelegate`1 method) at eWay.Core.WSDataInterface.eWayItemStore.CallWebServiceMethod[TResult](WebServiceMethodDelegate`1 method) at eWay.Core.WSDataInterface.eWayItemStore.GetItemsLastChange(DateTime& lastChange) --- End of inner exception stack trace --- at eWay.Core.WSDataInterface.eWayItemStore.GetItemsLastChange(DateTime& lastChange) at eWay.Core.CachedDataInterface.CachedItemStore.GetItemsLastChange(DateTime& lastChange) at eWay.StandardEdition.Synchronization.SynchronizeThread.TryGetItemsLastChange(DateTime& lastChange, Int64& lastChangeId) --- END TRACE ---
Na serveru je zalogováno:
[12] ERROR w3wp [(null)] - Operation time-out System.Data.SqlClient.SqlException: Vypršel časový limit. Časový limit vypršel před dokončením operace nebo server neodpovídá. The statement has been terminated. v System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) v System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) v System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) v System.Data.SqlClient.SqlDataReader.ConsumeMetaData() v System.Data.SqlClient.SqlDataReader.get_MetaData() v System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) v System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) v System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) v System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) v System.Data.SqlClient.SqlCommand.ExecuteScalar() v eWay.Core.Data.SynchronizedSqlCommand.<>c__DisplayClass1.b__0() v eWay.Core.Data.SqlCommandRepeater.RunSqlCommand(SqlCommand command, SqlCommandDelegate sqlCommand) v eWay.Core.Data.SynchronizedSqlCommand.ExecuteScalar() v eWay.WebService.MSSQLDataInterface.WsSqlCommand.<>c__DisplayClass9.b__8() v eWay.WebService.MSSQLDataInterface.WsSqlCommand.RunCommand(SqlCommandDelegate method) 2015-06-22 09:36:29,580 [12] ERROR w3wp [(null)] - Request processed with error response 'rcDatabaseTimeout' eWay.WebService.Core.Exceptions.WebServiceInternalException: Operation time-out v eWay.WebService.MSSQLDataInterface.WsSqlCommand.RunCommand(SqlCommandDelegate method) v eWay.WebService.MSSQLDataInterface.WsSqlCommand.ExecuteScalar() v eWay.WebService.ServiceLogic.Security.ClientSession.UpdateSession(Guid sid) v eWay.WebService.ServiceLogic.Security.ClientSession..ctor(Guid sid, ItemStore itemStore) v eWayWSImpala.eWayWS.GetItemsLastChange(Guid SID)
Transakční log databáze se nevyprazdňuje a jeho velikost může mít i několik GB.
Verze
Všechny verze eWay-CRM
Obtížnost řešení
Střední
Postup řešení
Obsah:
- Varianta 1: Velký transakční log
- Varianta 2: Kontrola počtu změn v tabulce EWD_ItemChanges
- Varianta 3: Zkontrolovat, že databázi nebrzdí joby (eWayTimer)
Varianta 1: Velký transakční log
Aktivní zálohování
Je třeba zkontrolovat, že je aktivní zálohování eWay-CRM®. Aktivní zálohování se stará o to, že je během zálohování transakční log vyprazdňován.
Individuální řešení zálohy (neaktivní zálohování)
Pokud nechcete mít aktivní zálohování eWay-CRM®, protože si řešíte zálohy všech databází sami, je potřeba také vyřešit zálohu transakčních logů.
Pro tento účel je možné přenastavit Recovery model eWay-CRM® databáze z FULL na SIMPLE. Takové nastavení je možné provést ve vlastnostech databáze v Microsoft SQL Management Studio (viz obrázek).
Varianta 2: Kontrola počtu změn v tabulce EWD_ItemChanges
Tabulka slouží pro synchronizaci změn mezi klientskými aplikacemi. Tabulka by měla mít maximálně nižší statisíce záznamů.
SELECT COUNT(*) FROM EWD_ItemChanges
Starší verze nechávali v tabulce poslední 3 měsíce změn. Tabulku je možné promazat a nechat pouze poslední měsíc:
EXEC eWaySP_DeleteOldItemChanges 1
Varianta 3: Zkontrolovat, že databázi nebrzdí joby (eWayTimer)
Pomocí Activity Monitor v SQL Management Studio můžeme vidět aktivní procesy. Pokud se tam objevuje hodně aktivních dotazů u aplikace eWayTimer, je možné, že databázi brzdí pravidelné úlohy.
Zkuste eWayTimer vypnout (viz Jak zastavit webovou službu eWay-CRM a eWayTimer) a pozorujte, zda problém přetrvává.
Pokud to pomohlo, doporučujeme nastavit, aby v jednu chvíli běžel pouze jeden job: Ladění výkonu eWay-CRM na serveru