NAS Stop-Event in Navision Code?

30. März 2006 11:30

hallo,

vermutlich gibt es hier keine Loesung, zumal nichts in den Docs steht und auch sonst nirgends etwas erwaehnt wird, aber ich frage trotzdem mal. :oops:

Wird der NAS gestartet, springt er in CU 1 Funktion 99. Von da weg kann man seinen Code einbauen.

Jetzt die Frage:
Wenn ich den NAS stoppe, springt er dann auch an eine bestimmte Stelle im Navision?

gruesse
feri

30. März 2006 13:35

>>Wenn ich den NAS stoppe, springt er dann auch an eine bestimmte >>Stelle im Navision?
Ich meinte NEIN! (99,999%)

30. März 2006 15:04

hallo,
das habe ich bereits befuerchtet. So ein trigger waere wirklich extrem hilfreich und eigentlich auch vom Aufbau her logisch. :-?
Naja, in dem Fall muss ich eine weniger elegante Loesung suchen. :-(

gruesse
feri

11. April 2006 14:51

hi,

ich habe mittlerweile eine halbwegs passable Loesung hierfuer gefunden, und moechte sie euch nicht vorenthalten. :wink:

Ein Arbeitskollege hat mir ein ActiveX Programm geschrieben, mit dem ich den Status eines Windows-Services (also in dem Fall vom NAS) ermitteln kann.

Diesen Status pruefe ich in meiner "Quasi-Endlosschleife", sobald der Status auf "wird gestoppt" wechselt (ich frage im Code auf <> Running ab), beende ich meine Schleife.

gruesse
feri

11. April 2006 14:53

feri

Wieso musst Du den Stop des NAS denn wissen?

11. April 2006 15:47

feri

Wieso musst Du den Stop des NAS denn wissen?


Der NAS startet eine Codeunit mit einer Endlosschleife (die horcht eine Message Queue ab). Will man den NAS stoppen, versucht er vorher noch den aktuell laufenden Job zu beenden, da dieser jedoch eine Endlosschleife hat, wartet er ewig, und man kann ihn dann nur noch abwuergen.

Das Problem waere dann beim Einspielen von aktualisierten Objekten (NAS-Neustart notwendig) oder auch beim Server-Neustart gegeben.

gruesse
feri

11. April 2006 16:10

@feri

Du hast Recht. Dieses Problem kenne ich zur Genüge aus WebShop-Projekten mit dem NAS.
Wichtig ist nur, man darf nicht den Status (STOPP) des NAS abfragen.
Denn auch wenn der NAS sich "aufgehängt" hat, steht der Status immer noch auf STARTED und nicht etwa auf STOPPED

11. April 2006 17:13

Denn auch wenn der NAS sich "aufgehängt" hat, steht der Status immer noch auf STARTED und nicht etwa auf STOPPED


Hm, sollte sich der NAS wirklich aufhaengen (eigentlich ja gar nicht so selten *g*), kann ich im code vermutlich eh nichts mehr steuern, und auch die Endlosschleife duerfte nicht mehr aktiv sein.

Dann muesste man sowieso manuell eingreifen.

11. April 2006 17:34

feri

Nein, Du kannst mit einem externen Programm den ApplicationServer Zeitgesteuert immer wieder abfragen. Als irgendeine XML-Message senden. Wenn das Senden fehlschlägt, ist der NAS am Boden und kann durch das externe Programm neu gestartet werden.

Das ganze sieht bei einem unserer Kunden so aus (Attachment).

Gruss

12. April 2006 08:01

Ok, jetzt verstehe ich, was du meinst.

btw, ist das ein gefaktes Log, oder stürtzt der NAS bei diesem Kunden wirklich so oft ab? Bei uns passiert das eigentlich nur manchmal, wenn wir den NAS neustarten wollen.

Gruesse
feri

12. April 2006 09:03

btw, ist das ein gefaktes Log, oder stürtzt der NAS bei diesem Kunden wirklich so oft ab


Da ist nichts gefakt.

Die passiert ehr oft bei Lockproblemen.
So à la
Sie können die Tabelle Verkaufszeile nicht sperren, da Sie durch Benutzer xy gesperrt ist.

Verwendet Ihr den NAS den schon produktiv mit vielen Concurrent-Usern?

12. April 2006 09:08

martinst hat geschrieben:Sie können die Tabelle Verkaufszeile nicht sperren, da Sie durch Benutzer xy gesperrt ist.


Vielleicht sollte man hier darüber nachdenken, eine SQL-Server-Datenbank zu verwenden, die muss nicht die ganze Tabelle Verkaufszeile sperren, wenn jemand einen Auftrag erfasst oder irgendwie bearbeitet.

12. April 2006 09:37

Vielleicht sollte man hier darüber nachdenken, eine SQL-Server-Datenbank zu verwenden, die muss nicht die ganze Tabelle Verkaufszeile sperren, wenn jemand einen Auftrag erfasst oder irgendwie bearbeitet.


Das werde ich nicht tun. Ich halte nichts von SQL-Server, aber das ist eine andere Geschichte und ich denke, eine Diskussion zu diesem Thema führt ins Unendliche.

Das Problem mit dem NAS taucht ja auch nicht nur dort auf, sondern jedes fehlgeschlagene Get usw. bringt den NAS in die Knie.
Wenn also im Code nur Rec.Get steht und dieser Rec eben nicht existiert, knallts.
Und den ganzen Navision-Code ändern auf if not get then ist halt auch nicht drin.

13. April 2006 17:20

hi,

solche Fehler werden bei uns eigentlich alle abgefangen und geloggt. Momentan werden auch alle Errors als Mail verschickt, damit wir bei Bedarf reagieren koennen.

Gruesse
feri