Auf welchem NST läuft der Task Scheduler?

23. Februar 2017 16:32

Hi zusammen,

mit NAV 2017 gibt es ja die schöne neue / alte Sache "Task Scheduler". Diese läuft nicht wie früher im NAS sondern im NST, sofern der Parameter "Task Scheduler enabled" dort aktiv ist. Was ich mich allerdings Frage: Wenn mehrere NST existieren, die alle für den "Task Scheduler" aktiv sind. Welcher NST lässt die Jobs dann laufen? Irgendeiner, oder kann man das kontrollieren?

Danke und Gruß
sas_fisch

Re: Auf welchem NST läuft der Task Scheduler?

28. Februar 2017 12:48

Diese Frage habe ich mir auch gerade gestellt und mal die Codeunits untersucht.

Die Job Queue Entries sind einer Benutzer ID zugeordnet und werden somit nur dann ausgeführt, wenn der Benutzer angemeldet ist.
Job Queue Entries, dessen Benutzer ID nicht in der Tabelle User gefunden werden kann, werden anscheinend von allen Job Queue Sessions gestartet.

Die klassische Job Queue, welche unabhängig von den Benutzern im Hintergrund "allgemeine" Aufgaben abarbeitet, gibt es anscheinend nicht mehr in der Form.

Hier meine Idee:
Möchte man also die klassische Job Queue weiterhin betreiben, so muss man ein NST aufsetzen, welches die Codeunit 455 startet.
Die von diesem NST auszuführenden Jobs müssen der Benutzer ID des NST entsprechen.
Hierzu legt man am besten ein spezielles Windows-Login an (z. B. "NAV_JobQueue"), dem man in NAV entsprechende Rechte einräumt.

Ich habe nur noch nicht herausgefunden, wie man ein Job Queue Entry einem anderen Benutzer zuweist, denn bei der Anlage wird automatisch die eigene Benutzer ID eingetragen.
Das Feld ist in der Tabelle leider nicht editierbar, somit müsste man sich mit dem speziellen Windows-Login an NAV anmelden, um die Jobs einzutragen.
Ich habe noch nicht herausgefunden, welche Konsequenzen es hätte, wenn man das Feld Benutzer-ID in der Tabelle Job Queue Entry auf editierbar stellen würde.

Re: Auf welchem NST läuft der Task Scheduler?

10. März 2017 10:38

[quote="Timo Lässer"]Die Job Queue Entries sind einer Benutzer ID zugeordnet und werden somit nur dann ausgeführt, wenn der Benutzer angemeldet ist.[/quote]

Bist Du damit sicher? Ich habe heute morgen einen Report über meinem User zum automatischen Ausführen eingestellt und zwar für eine halbe Stunde später. Dann habe ich meinen Client geschlossen und erst eine Stunde später wieder aufgemacht.

Müsste also eigentlich bedeuten, dass der Report erst nach einer Stunde erzeugt wird und nicht wie eingestellt nach einer halben.

Im Berichtseingang steht als Erstelldatum allerdings die genaue Uhrzeit zu dem ich den Report eingestellt habe. Sieht für mich also so aus, dass der User nicht eingeloggt sein muss. Oder habe ich da was falsch verstanden?

Re: Auf welchem NST läuft der Task Scheduler?

11. März 2017 20:32

Wann wurde der Report denn tatsächlich gedruckt?
Dass das Einstelldatum dem Datum der ursprünglichen Ausführung entspricht wundert mich jetzt nicht. :lol:

Re: Auf welchem NST läuft der Task Scheduler?

13. März 2017 13:04

Ich hab mir jetzt einen Report mit User, aktuelles Datum und Uhrzeit erzeugt. Und den automatisch laufen lassen. Zu der Zeit war ich dann nicht mehr im Client eingeloggt.

Kontext ist mein User, was dafür spricht, dass die Background Session in meinem Namen erzeugt wurde.

Datum und Uhrzeit ist die Zeit, zu der ich den Bericht eingestellt habe. Nicht zu der Zeit, wo ich den Client wieder geöffnet habe.

Also ganz klar, es läuft zwar auf meinen Benutzer, aber wohl unabhängig davon, ob ich einen Client auf habe oder nicht.

Re: Auf welchem NST läuft der Task Scheduler?

28. Februar 2018 16:06

Hallo,

Timo Lässer hat geschrieben:Hier meine Idee:
Möchte man also die klassische Job Queue weiterhin betreiben, so muss man ein NST aufsetzen, welches die Codeunit 455 startet.
Die von diesem NST auszuführenden Jobs müssen der Benutzer ID des NST entsprechen.
Hierzu legt man am besten ein spezielles Windows-Login an (z. B. "NAV_JobQueue"), dem man in NAV entsprechende Rechte einräumt.


Weiß zufälligerweise jemand, ob es bei der Konfiguration eines NAV-Servers im Bereich "NAS Services" ausreicht, die Codeunit 455 als "Startup Codeunit" einzutragen, wenn man über die Aufgabenwarteschlange diverse Jobs automatisieren will?

Hintergrund meiner Frage:
In mehreren Mandanten sollen bestimmte Codeunits periodisch (z.B. alle 60 Minuten) ausgeführt werden.
Ich würde dazu dann pro Mandant eine NAV-Serverinstanz einrichten und im Feld "Services Default Company" den jeweiligen Mandanten eintragen.
Damit dann die Codeunits automatisch durchgeführt werden, würden diese in der Aufgabenwarteschlange (am sinnvollsten mit dem User mit dem der NAV-Server läuft) eingetragen werden.

Jetzt frage ich mich, ob dazu die Codeunit 455 als Parameter ausreicht.

In vorherigen NAV-Versionen (z.B. NAV2013) gab es noch die Codeunit 44 "NASManagement" - aber die gibt's in NAV2017 ja nicht mehr.
Leider ist die Doku von MS hier auch nicht aussagekräftig.

Re: Auf welchem NST läuft der Task Scheduler?

21. April 2021 15:11

Hi,

Die Aufgabenwarteschlange läuft auf dem NST auf welchem der "Task Scheduler" aktiviert ist (das sollte nur auf einem NST so sein). Dabei wird eine "Hintergrund"-Sitzung geöffnet. Sobald die Aufgabe durch ist wird die Sitzung geschlossen.


Die Codeunit 455 reicht nicht aus um den NAS zu triggern, macht aber auch keinen Sinn.
Timo Lässer hat geschrieben:Hier meine Idee:
Möchte man also die klassische Job Queue weiterhin betreiben, so muss man ein NST aufsetzen, welches die Codeunit 455 startet.
Die von diesem NST auszuführenden Jobs müssen der Benutzer ID des NST entsprechen.

JRenz hat geschrieben:Weiß zufälligerweise jemand, ob es bei der Konfiguration eines NAV-Servers im Bereich "NAS Services" ausreicht, die Codeunit 455 als "Startup Codeunit" einzutragen, wenn man über die Aufgabenwarteschlange diverse Jobs automatisieren will?

JRenz hat geschrieben:Jetzt frage ich mich, ob dazu die Codeunit 455 als Parameter ausreicht.


Der NAS ist aber schneller als der Aufgabenwarteschlange.