Fehler bei NAV Update 2009 R2 -> 2016

14. November 2016 10:11

Guten Tag,
folgendes ist passiert.
Wir haben am Wochenende ein NAV Update von NAV 2009 R2 auf NAV 2016 durchgeführt.
Wir waren am dem Punkt vom Datenupgrade in der NAV 2015 Version.
Nach ca. 14 Stunden Laufzeit haben wir folgende Fehlermeldung erhalten.
Code:
Der folgende SQL-Fehler war nicht erwartet.
  Timeout abgelaufen. Das Zeitlimit wurde vor dem Beenden des Vorgangs überschritten oder der Server reagiert nicht.
  Fehler beim Ausführen der Anforderung, weil der Batch abgebrochen wurde. Möglicherweise wurde ein Abbruchsignal vom Client gesendet, oder eine andere Anforderung wird in derselben Sitzung

Der Abbruch war bei der Codeunit104051 Funktion UpdateUserID, das war die 3te letzte Funktion während des Update Prozess....
Hatte jemand so eine Fehlermeldung gehabt?
GGf. Lösungsansetze?

Hier die komplette Meldung.

Code:
Server instance: DynamicsNAV80
Tenant ID: default
Session type: Background
Session ID: 5567
User:
Type: Microsoft.Dynamics.Nav.Types.Exceptions.NavSqlException
ErrorNumber: -2
SuppressMessage: False
SuppressExceptionCreatedEvent: False
FatalityScope: None
Message:
  Der folgende SQL-Fehler war nicht erwartet.
  Timeout abgelaufen. Das Zeitlimit wurde vor dem Beenden des Vorgangs überschritten oder der Server reagiert nicht.
  Fehler beim Ausführen der Anforderung, weil der Batch abgebrochen wurde. Möglicherweise wurde ein Abbruchsignal vom Client gesendet, oder eine andere Anforderung wird in derselben Sitzung ausgeführt, sodass die Sitzung ausgelastet ist.
  SQL-Anweisung:
  UPDATE "DATENBANK".dbo."MANDANT$Value Entry" SET "User ID"=@0 WHERE ("Entry No_"=@1 AND "timestamp"=@2) SELECT @@DBTS
  StackTrace:
     bei System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
     bei System.Environment.get_StackTrace()
     bei Microsoft.Dynamics.Nav.Runtime.NavSqlConnection.ThrowNavSqlException(SqlExceptionAdapter exceptionAdapter, NavSqlCommand command, Boolean isLastExceptionARollbackCause, Boolean logExceptions)
     bei Microsoft.Dynamics.Nav.Runtime.NavSqlConnection.ExecuteFunction[T](Func`1 function, NavSqlCommand command)
     bei Microsoft.Dynamics.Nav.Runtime.NavSqlConnection.ExecuteFunctionWithTrace[T](EventTask task, Func`1 function, NavSqlCommand command)
     bei Microsoft.Dynamics.Nav.Runtime.NavSqlCommand.ExecuteReader()
     bei Microsoft.Dynamics.Nav.Runtime.NavSqlDmlCommand.ExecuteAndRetrieveOutputParameters()
     bei Microsoft.Dynamics.Nav.Runtime.NavSqlDmlCommand.ExecuteModify(FilterExpression modifyFilter, MutableRecordBuffer record)
     bei Microsoft.Dynamics.Nav.Runtime.NavSqlConnection.ExecuteCommandAndCacheOnSuccess[T](NavSqlCommandCacheKey commandKey, Func`1 createFunc, Func`2 executeFunc)
     bei Microsoft.Dynamics.Nav.Runtime.NavSqlDmlCommand.ModifyImpl(NavDatabase database, NCLMetaTable table, Int32 companyIndex, MutableRecordBuffer record, FieldList modifiedFields, Boolean retrieveTimestamp, NavBigInteger& timestampValue, Boolean recordConsistentWithCurrentTransaction)
     bei Microsoft.Dynamics.Nav.Runtime.NavSqlDmlCommand.Modify(NavDatabase database, NCLMetaTable table, Int32 companyIndex, MutableRecordBuffer record, Boolean retrieveTimestamp, Boolean recordConsistentWithCurrentTransaction, NavBigInteger& timestampValue)
     bei Microsoft.Dynamics.Nav.Runtime.NavSqlDmlCommand.Modify(NavDatabase database, Int32 companyToken, MutableRecordBuffer recordBuffer, Boolean recordHasBeenReadWithLockInsideThisTransaction, NavBigInteger& timestampValue)
     bei Microsoft.Dynamics.Nav.Runtime.SqlTableDataProvider.Modify(Int32 companyToken, MutableRecordBuffer recordBuffer, Boolean recordHasBeenReadWithLockInsideThisTransaction, ReadOnlyRecordBuffer& outputRecordBuffer)
     bei Microsoft.Dynamics.Nav.Runtime.DataAccess.IssueModify(Int32 companyToken, MutableRecordBuffer inputRecordBuffer, Boolean withTimestampCheck, Boolean checkThatRecordExists, ReadOnlyRecordBuffer& outputRecordBuffer)
     bei Microsoft.Dynamics.Nav.Runtime.DataAccess.PerformModify(Int32 companyToken, Boolean recordWasReadWithLockInsideThisTransaction, Boolean useCache, MutableRecordBuffer& inputRecordBuffer, ReadOnlyRecordBuffer& outputRecordBuffer)
     bei Microsoft.Dynamics.Nav.Runtime.DataAccess.Modify(Int32 companyToken, MutableRecordBuffer inputRecordBuffer, ResultSetEnumerator& resultSetEnumerator, MutableRecordBuffer& newRecordBuffer)
     bei Microsoft.Dynamics.Nav.Runtime.RecordImplementation.ModifyRecord(DataError errorLevel)
     bei Microsoft.Dynamics.Nav.Runtime.NavRecord.Modify(DataError errorLevel, Boolean runApplicationTrigger, Boolean runGlobalTrigger, Boolean isBulkModify)
     bei Microsoft.Dynamics.Nav.Runtime.NavRecord.ALModify(DataError errorLevel, Boolean runApplicationTrigger, Boolean isBulkModify)
     bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit104056.RenameUser_Scope.OnRun()
     bei Filter.InvokeWithFilter(NavMethodScope )
     bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit104056.RenameUser(NavCode oldUserName, NavCode newUserName)
     bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit104056.OnInvoke(Int32 memberId, Object[] args)
     bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit104051.UpdateUserID_Scope.OnRun()
     bei Filter.InvokeWithFilter(NavMethodScope )
     bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit104051.UpdateUserID()
     bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit104051.UpgradeMethods_Scope.OnRun()
     bei Filter.InvokeWithFilter(NavMethodScope )
     bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit104051.OnInvoke(Int32 memberId, Object[] args)
     bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit104055.StartUpgrade_Scope.OnRun()
     bei Filter.InvokeWithFilter(NavMethodScope )
     bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit104055.StartUpgrade()
     bei System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
     bei System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
     bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
     bei Microsoft.Dynamics.Nav.Runtime.NavApplicationMethod.InvokeMethod(ITreeObject obj, String methodName, Object[] args)
     bei Microsoft.Dynamics.Nav.Runtime.NavCodeunit.Invoke(Int32 objectId, String methodName, Object[] args)
     bei Microsoft.Dynamics.Nav.Runtime.NavUpgradeCodeunit.InvokeCodeunitMethod(String methodName, String companyName, Object[] args)
     bei Microsoft.Dynamics.Nav.Runtime.NavExecuteUpgradeCodeunitMethodActivity.<ExecuteAsync>b__5(NavSession navSession)
     bei

Re: Fehler bei NAV Update 2009 R2 -> 2016

14. November 2016 10:14

auf was steht denn der Wert "SQL Command Timeout" im NST?

Re: Fehler bei NAV Update 2009 R2 -> 2016

14. November 2016 10:38

Moin,
"SQL Command Timeout" steht auf : 00:30:00, also Standardwert.

ggf. auf den MAX Wert (24:00:00) stellen, beim nächsten Versuch?

Re: Fehler bei NAV Update 2009 R2 -> 2016

14. November 2016 10:56

ja - wäre ein Versuch wert -> ich stell den immer höher ;-)

Re: Fehler bei NAV Update 2009 R2 -> 2016

14. November 2016 11:02

Schon mal danke dafür!!!
Die Datenbank ist 50GB groß.

Leider kann ich Try and Error nicht durchführen, da es ein 24/7 Betrieb ist...in unserer Testumgebung ist das Update ohne Fehler durchgelaufen, nur beim Kundenserver nicht.

Ggf. gibt's noch weiter Ansätze die ich prüfen könnte, sollte.

Re: Fehler bei NAV Update 2009 R2 -> 2016

14. November 2016 11:55

3ug3n hat geschrieben:in unserer Testumgebung ist das Update ohne Fehler durchgelaufen, nur beim Kundenserver nicht.


deswegen (ja nur deswegen *hust*) sind meine Testumgebungen meist langsamer als die Livesysteme des Kunden :-P

Also mir fällt nix weiter ein - ich denke das wird durch das Hochsetzen des Timeouts erledigt haben. Ich habe als Beispiel den Timeout für eine 120Gb DB auf ca. 2h gestellt...aber das hat weniger was mit der Größe der DB, sondern eher was mit den umzustellenden Daten zu tun -> somit als kein richtiger Anhaltspunkt

Re: Fehler bei NAV Update 2009 R2 -> 2016

16. November 2016 16:55

Ich melde mich nachdem wir den zweiten Versuch gestartet haben.