Prozess ID von Navision herausfinden

14. Januar 2009 13:23

Hallo zusammen,

heute brauche ich mal Hilfe. Ich möchte gerne beim Starten der finsql.exe herausfinden, welche Prozess-ID ihr zugewiesen wurde. Ich habe schon in den Automations herum gesucht und mit VBS Dinge versucht, schaffe es aber nicht. Kennt ihr eine Lösung?

Grüße

Sebastian

Re: Prozess ID von Navision herausfinden

14. Januar 2009 14:12

Der frühest mögliche mir bekannte Zeitpunkt ist die Funktion CompanyOpen() in der CU1. Von dort über die Tabelle Session auf "My Session" = TRUE filtern und die "Connection ID" auslesen.

Re: Prozess ID von Navision herausfinden

14. Januar 2009 15:10

Ich wollte eigentlich die Prozess-ID der .exe, also die Windows Process ID.

Re: Prozess ID von Navision herausfinden

14. Januar 2009 15:14

Hi Basti!

Nun, wenn man die "sp_$ndo$loginproc" benutzt - wir ham das ja im Dezember mal bei euch evaluiert - dann könnte man die eigene SPID auch vie SQL ermitteln, z.B. SELECT @@SPID.
(Die Prozedur wird vor noch dem Laden der CU1 ausgeführt, also direkt nachdem sich der Client am Server angemeldet hat)

Wofür brauchst Du die SPID? Geht's immer noch um das "Vermeiden multipler Logins"?

Re: Prozess ID von Navision herausfinden

14. Januar 2009 15:19

Sebastian Pfliegel hat geschrieben:Ich wollte eigentlich die Prozess-ID der .exe, also die Windows Process ID.


das könnte man dann so ermitteln:

select [host_process_id] from sys.dm_exec_sessions where session_id = @@spid

Re: Prozess ID von Navision herausfinden

14. Januar 2009 15:30

Hallo Sebastian,

möchtest du die Prozess-ID in NAV oder außerhalb von NAV herausfinden?
Außerhalb von NAV kannst du das z.B. herausfinden, wenn du NAV per Programm mit Befehl 'CreateProcess' aus der Systemlibrary erzeugst. Dort gibt es als Parameter auch die ProcessInfo mit der ProzessID zurück.

Gruß, Fiddi

Re: Prozess ID von Navision herausfinden

14. Januar 2009 17:06

stryk hat geschrieben:Wofür brauchst Du die SPID? Geht's immer noch um das "Vermeiden multipler Logins"?


Hi Jörg, ja darum geht es. Unser Plan war jetzt mit WSH (+ VBS) den Prozess killen. Da Alt+F4 nicht perfekt ist, wollten wir es mit dem Prozess selbst probieren. Ich habe jetzt schon eine Lösung innerhalb von VBS gefunden. Schön wäre es gewesen innerhalb von Navision die ProzessID mit Automations herauszufinden. Leider sind die dafür benötigten Automations nicht richtig installiert.

@fiddi:
Die Info möchte ich erhalten nach dem Start. Die von dir genannte Lösung gefällt mir da nicht so gut, da ich Navision aus einem VBScript starten müsste, wenn ich das richtig verstanden habe.

Re: Prozess ID von Navision herausfinden

14. Januar 2009 17:11

Hallo Sebastian,

für genau diesen Zweck benutze ich die Funktion auch. Nur das meine Anwendung NAV fernsteuert, und nach einer maximalen Zeit den NAV-Client beendet. Alternativ könnte deine Anwendung auf den Inhalt einer Message in NAV- warten und den Client danach beenden.

Gruß, Fiddi

Re: Prozess ID von Navision herausfinden

14. Januar 2009 17:19

Es geht darum den Client zu beenden, wenn man sich zu oft angemeldet hat. Das heißt, das Ganze sollte auf jeden Client laufen. Wenn nun jeder eine neue Verknüpfung bekommen sollte, wäre das ein immenser Aufwand.
Ich habe es jetzt so gelöst: Nav startet eine VBS, wenn es zu oft gestartet wurde. Jetzt sucht er den neuesten fin.sql-Prozess und beendet ihn dann. Am Ende kommt noch eine Msgbox, damit der User sich nicht wundern muss, warum sein Navision nicht aufgeht ;-)