Problem mit NAS-Dienst und SQL-Views

5. August 2014 13:04

Hallo Zusammen,

aktuell habe ich folgendes Problem im Zusammenhang mit NAS-Dienst/Aufgabenwarteschlange und SQL-Views in NAV2013:

In NAV ist über die Eigenschaft "Linked Objekt" eine Verarbeitungs-Tabelle mit einer SQL-View verknüpft.
Diese SQL-View verweist auf eine Tabelle auf einer anderen SQL-Datenbank (und auch einer anderen SQL-Server-Instanz, daher wurde in SQL-Server ein entsprechender Verbindungsserver eingerichtet).
Diese Verarbeitungstabelle soll nun über Applikation-Server abgearbeitet werden nach Verarbeitung eines Datensatzes das Feld "Status" verändert werden.
Dies erfolgt über eine Codeunit, die über die Aufgabenwarteschlage jede Minute angestossen werden soll.
Wird diese Codeunit manuell angestossen, funktioniert es.
Hierzu ist nun folgende Aufgabenwarteschlage konfiguriert:

Aufgabenwarteschlange 1.jpg


Aufgabenwarteschlange 2.jpg


Wird der entsprechende ApplikationServer-Dienst für die Aufgabenwarteschlage gestartet, so läuft er direkt auf folgende Meldungen/Fehlermeldungen im Ereignisprotokoll, aus denen ich nicht so recht schlau werde :

____

Zunächst die Information-Meldungen:
___

Server instance: DynamicsNAV70_NAS_XXX
Session type: UnknownClient
Session ID: N/A
"MicrosoftDynamicsNavServer$DynamicsNAV70_NAS_XXX is using the configuration file: C:\Program Files\Microsoft Dynamics NAV\70\Service\Instances\DynamicsNAV70_NAS_XXX\DynamicsNAV70_NAS_XXX.config"
___
Server instance: DynamicsNAV70_NAS_XXX
Session type: UnknownClient
Session ID: N/A
Von 'Microsoft Dynamics NAV Service' wird auf Anforderungen unter 'net.tcp://sqlneu.XXX-gruppe.intra:7065/Dyna ... ntService' gelauscht.
___
Server instance: DynamicsNAV70_NAS_XXX
Session type: UnknownClient
Session ID: N/A
The service has registered service principal names in Active Directory.
Account: WOELKDOMAIN\eds-koblenz
Service principal names:
DynamicsNAV/SQLNEU:7065
DynamicsNAV/SQLNEU.XXX-gruppe.intra:7065
___
Server instance: DynamicsNAV70_NAS_XXX
Session type: UnknownClient
Session ID: N/A
'Microsoft Dynamics NAV Application Server' ist für den Start mit folgender Konfiguration geplant:

Unternehmen: XXX, Codeunit: 1, Methode: NASHandler, Argumente: JOBQUEUE
___
Server instance: DynamicsNAV70_NAS_XXX
Session type: Nas
Session ID: 0
SQL-Abfragebenachrichtigungen sind auf SQL Server 'SQLNEU\NAV2013' in der Datenbank '2014-04-25 XXX TEST' nicht verfügbar. Der Objektänderungslistener wurde in den Abrufmodus geschaltet.
___
Server instance: DynamicsNAV70_NAS_XXX
Session type: Nas
Session ID: 0
Der Objektänderungslistener überwacht SQL Server 'SQLNEU\NAV2013' in der Datenbank '2014-04-25 XXX TEST'.
___
Ab jetzt kommen Fehlermeldungen:
___
Server instance: DynamicsNAV70_NAS_XXX
Session type: Background
Session ID: 3
User:
Type: System.NullReferenceException
Message: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
StackTrace:
bei Microsoft.Dynamics.Nav.Runtime.NavRuntimeAdapter.ErrorHandler(Int32 errorCode, Int32 errorNumber, Int32 moduleNumber, String errorText)
bei Microsoft.Dynamics.Nav.Runtime.NativeMethods.AdapterSetLockTimeout(IntPtr connectionHandle, Boolean lockTimeout)
bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit52006.OnRun_Scope.OnRun()
bei Filter.InvokeWithFilter(NavMethodScope )
bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit52006.OnRun(INavRecordHandle εrec)
bei Microsoft.Dynamics.Nav.Runtime.NavCodeunit.DoRun(DataError errorLevel, NavRecord record)
bei Microsoft.Dynamics.Nav.Runtime.NavCodeunit.RunCodeunit(DataError errorLevel, Int32 objectId, NavRecord record)
bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit52006.ProcessRecordIn_Scope.OnRun()
bei Filter.InvokeWithFilter(NavMethodScope )
bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit52006.ProcessImport_Scope.OnRun()
bei Filter.InvokeWithFilter(NavMethodScope )
bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit52006.OnInvoke(Int32 memberId, Object[] args)
bei Filter.InvokeWithFilter(NavMethodScope )
bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit52007.OnRun(INavRecordHandle εrec)
bei Microsoft.Dynamics.Nav.Runtime.NavCodeunit.DoRun(DataError errorLevel, NavRecord record)
bei Microsoft.Dynamics.Nav.Runtime.NavCodeunit.RunCodeunit(DataError errorLevel, Int32 objectId, NavRecord record)
bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit449.OnRun_Scope.OnRun()
bei Filter.InvokeWithFilter(NavMethodScope )
bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit449.OnRun(INavRecordHandle εrec)
bei Microsoft.Dynamics.Nav.Runtime.NavCodeunit.DoRun(DataError errorLevel, NavRecord record)
bei Microsoft.Dynamics.Nav.Runtime.NavCodeunit.RunCodeunit(DataError errorLevel, Int32 objectId, NavRecord record)
bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit451.Process_Scope.OnRun()
bei Filter.InvokeWithFilter(NavMethodScope )
bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit451.Process(INavRecordHandle jobQueueEntry)
bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit451.OnRun_Scope.OnRun()
bei Filter.InvokeWithFilter(NavMethodScope )
bei Microsoft.Dynamics.Nav.BusinessApplication.Codeunit451.OnRun(INavRecordHandle εrec)
bei Microsoft.Dynamics.Nav.Runtime.NavCodeunit.DoRun(DataError errorLevel, NavRecord record)
bei Microsoft.Dynamics.Nav.Runtime.NavCodeunit.InvokeRun(Int32 objectId, Object[] args)
bei Microsoft.Dynamics.Nav.Runtime.ALSession.StartSession(Object state)
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
bei System.Threading.ThreadPoolWorkQueue.Dispatch()
Source: Microsoft.Dynamics.Nav.Ncl
HResult: -2147467261
----------------------------------
Type: System.NullReferenceException
Message: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
StackTrace: bei Microsoft.Dynamics.Nav.Runtime.NavSqlConnectionScope.GetSetLockTimeout(Int32& lockTimeoutEnabled, Int32 setValue)
Source: Microsoft.Dynamics.Nav.Ncl
HResult: -2147467261
___
Anwendung: Microsoft.Dynamics.Nav.Server.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.NullReferenceException
Stapel:
bei Microsoft.Dynamics.Nav.Runtime.ALSession.StartSession(System.Object)
bei System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
bei System.Threading.ThreadPoolWorkQueue.Dispatch()
___
Name der fehlerhaften Anwendung: Microsoft.Dynamics.Nav.Server.exe, Version: 7.0.36347.0, Zeitstempel: 0x5333f146
Name des fehlerhaften Moduls: KERNELBASE.dll, Version: 6.3.9600.16384, Zeitstempel: 0x5215fa76
Ausnahmecode: 0xe0434352
Fehleroffset: 0x0000000000008384
ID des fehlerhaften Prozesses: 0x12ec
Startzeit der fehlerhaften Anwendung: 0x01cfb0922641ee85
Pfad der fehlerhaften Anwendung: C:\Program Files\Microsoft Dynamics NAV\70\Service\Microsoft.Dynamics.Nav.Server.exe
Pfad des fehlerhaften Moduls: C:\Windows\system32\KERNELBASE.dll
Berichtskennung: 67f29958-1c85-11e4-80bf-005056a62c68
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
___



Vielen Dank für Eure Hinweise,
Blue
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Problem mit NAS-Dienst und SQL-Views

8. August 2014 19:42

Hallo ,
die Fehlermeldung weisen ja auf deine Codeunit 52006 hin, die von der 52007 aufgerufen wird.
Der NAS läuft vermutlich in einer eigenen Instanz.
Soweit so gut.
Hat den der Benutzer, der für das starten der CU verantwortlich zeichnet (das ist der, den du ausgeblaut hast), auch ausreichende Rechte innerhalb der SQL-Server-Instanzen.?

Ich vermute mal, dass es hier irgendwo klemmt.

Beste Grüße

Re: Problem mit NAS-Dienst und SQL-Views

15. Oktober 2014 12:09

Sorry, hatte ganz vergessen, mich hier nochmal zurückzumelden.
Also, das Problem bei der NAS-Verarbeitung wurde durch den CAL-Befehl LOCKTIMEOUT verursacht.
Nachdem dieser auskommentiert wurde, lief auch die Verarbeitung über NAS.

Warum der LOCKTIMEOUT-Befehl dieses Problem verursacht hat, konnten wir leider nicht ermitteln.

Grüße, Blue