EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von flanelli »

Sorry, kann sein, dass diese Thema schon mal besprochen wurde aber ich finde es hier nicht...

Szenario:
Das komplette Programm mit allen Dateien liegt auf einem 2008-er oder einen 2016-er Server.
Die Arbeitsplätze ( teilweise Win7, teilweise WIN10) greifen über Terminalserver ( 2008/2016 )
aber auch direkt zu. Alles läuft über Laufwerksmapping, also kein UNC-Pfad.

Ab und zu bleibt am Server bei dem einen oder anderen User die EXE auch nach dem korrekten
Ausstieg des users auf seinem Arbeitplatz als Prozess sozusagen "hängen".
Das hat dann in der Folge die Auswirkung, dass bei einem neuerlichen Aufruf der Prozess nicht
wieder gestartet werden kann, das Programm also nicht mehr aufrufbar ist.
Beendet man direkt am Server diesen "alten" Prozess dann klappt wieder alles einwandfrei.

Kann mir da jemand mal nen Tip geben?

Danke
Ahoile aus dem Süden
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von ramses »

Ein Programm das auf einem Netzlaufwerk Share liegt zu starten ist seit einiger Zeit aus verschiedenen Gründen nicht mehr ratsam.
Ich würde die EXE und zugehörige DLL' in den Ordner c:\programme(x86)\meinProgramm verschieben und ausschliesslich daraus starten.
Sicher bedeutet dies einigen zusätzlichen Aufwand für Updates usw. aber viele Probleme wirst du so nicht mehr haben.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von Tom »

Eine DLL wird nicht entladen. Was an Fremd-DLLs ist eingebunden?
Herzlich,
Tom
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von flanelli »

ramses hat geschrieben: Mi, 30. Okt 2019 17:18 Ein Programm das auf einem Netzlaufwerk Share liegt zu starten ist seit einiger Zeit aus verschiedenen Gründen nicht mehr ratsam.
Ich würde die EXE und zugehörige DLL' in den Ordner c:\programme(x86)\meinProgramm verschieben und ausschliesslich daraus starten.
Sicher bedeutet dies einigen zusätzlichen Aufwand für Updates usw. aber viele Probleme wirst du so nicht mehr haben.
Danke für den Tip aber das ist kein gangbarer Weg für mich und das aus mehreren Gründen.
Zum Einen habe ich an manchen Standorten bis zu 120 Benutzer bzw. insgesamt auf ca. 50 Standorten immer wieder
variirend locker 1.600 User. Da kannst jede Routine vergessen die wirklich bombensicher jeden Arbeitsplatz bzgl. Exe und Dll
updatet. Schon klar wie das technisch machbar wäre aber viel zu umständlich, unsicher und problematisch.

Naja und was generell irgendwelche Probleme betrifft die ich dann "so nicht mehr haben sollte", kann ich nur festhalten,
dass es im Grunde genommen außer hie und da die Existenz einiger DAU's es seit vielen Jahren keinerlei nennenswerte
Probleme gab und gibt. Das einzige, relevante Problem ist halt jetzt das fallweise "Hängen" einer EXE und das auch nur wenn es sich um einen 2008-er oder 2012-er Server handelt, mit 2003-er gab es dieses Problem nicht ein einziges Mal.
Tom hat geschrieben: Mi, 30. Okt 2019 17:23 Eine DLL wird nicht entladen. Was an Fremd-DLLs ist eingebunden?
Bei diesem Programm gibt es nur eine einzige Fremd-DLL und zwar die SOCMAPI.DLL wegen dem Mailen, alles andere ist Xbase++ pur und an der kann es m.E. auch nicht liegen denn wenn man die Liste der, sich irgendwie im Zugriff befindenen Dateien betrachtet dann ist diese SOCMAPI.DLL nicht dabei und auch keine Xbase++DLL findet sich da.
Es bleibt lediglich die EXE hängen und da hat sich seit Jahren nie etwas beim Ausstieg technisch geändert.

Wie gesagt, es kommt ja nicht permanent vor aber insgesamt rund 10-20 Mal im Monat, klingt bei der Anzahl der User
ja nicht viel aber da das Problem nur ein Admin vor Ort oder wir via Fernwartung lösen können ist das halt doch ungut.
Ahoile aus dem Süden
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von ramses »

Danke für den Tip aber das ist kein gangbarer Weg für mich und das aus mehreren Gründen.
Auch nicht wenn es das Problem beseitigen würde???
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von AUGE_OHR »

hi,

um welche Xbase++ Version handelt es sich :?:

verwendest du Bitmap mit Transparenz :?:
gruss by OHR
Jimmy
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von flanelli »

ramses hat geschrieben: Mi, 30. Okt 2019 19:06
Danke für den Tip aber das ist kein gangbarer Weg für mich und das aus mehreren Gründen.
Auch nicht wenn es das Problem beseitigen würde???
In diesem Fall tatsächlich derzeit nicht da es mehr als nur einen Grund gibt warum die Exe und die Dll's
ausschließlich ein einziges Mal am Server liegen sollen. Würde aber zu weit führen die Gründe aufzuzählen
da etliche davon mit der ganzen Programmthematik zu tun haben und nicht "nur" das Updatethema einen
immensen Aufwand durch eine dahingehende Adaptierung bedeutet. Das kann allenfalls eines Tages im Zuge
einer globalen Restrukturierung erfolgen oder falls sich tatsächlich mal noch andere Probleme durch die
Positionierung auf einem Netzlaufwerk ergeben sollten - was aber bis dato nicht der Fall ist.

Abgesehen davon kann es auch keine wirklich zufriedenstellende Lösung sein, dem Problem auf diese Art
und Weise aus der Welt zu schaffen denn diesen Weg betrachte ich nicht als "workaround" sondern als Flucht.
Ahoile aus dem Süden
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von ramses »

Wende dich doch mit dieser Problematik doch mal an Microsoft.
Die können dir am besten aufzeigen wo das Problem liegen könnte und was sich am Netzwerkprotokoll und Sicherheitseinstellungen in den letzten Jahren so geändert hat. Weil du ja bereits erkannt hast dass die Probleme mit 2003 Server noch nicht vorhanden waren ....
Die Leute von M$ sind wenn du an der richten Stelle landest sehr nett und sehr hilfsbereit ......
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von AUGE_OHR »

hi,

kannst der User das EXE in der Taskliste sehen und dort beenden :?:

wenn ja könnte man es auch mit einem API Aufruf "stoppen" und "entfernen"
such mal nach "GetWindowThreadProcessId" im Forum
gruss by OHR
Jimmy
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von flanelli »

@Ramses.
danke für Deinen Tip mit MS-Support.
Da ich ja stets positiv DENKE werde ich den, von Dir vorgeschlagenen Weg mal
versuchen, wenn gleich der GLAUBE daran mir doch ein wenig fehlt :-)

@Jimmy,
nein, der User sieht die Exe in seiner Taskleiste natürlich nicht und auch wenn der
Arbeitsplatz überhaupt abgedreht ist bleibt am Server ( wenn das Problem auftritt )
die EXE als offene Datei und "Leiche" stehen.
Ahoile aus dem Süden
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von Tom »

Bei diesem Programm gibt es nur eine einzige Fremd-DLL und zwar die SOCMAPI.DLL wegen dem Mailen, alles andere ist Xbase++ pur und an der kann es m.E. auch nicht liegen denn wenn man die Liste der, sich irgendwie im Zugriff befindenen Dateien betrachtet dann ist diese SOCMAPI.DLL nicht dabei und auch keine Xbase++DLL findet sich da.
Bei mir war's List&Label, und ich habe mich auch wundgesucht nach Abhängigkeiten, nix da, und trotzdem lag's daran: DLLs geladen und nicht wieder ordentlich geladen, EXE beendet sich vermeintlich und bleibt - vermutlich aufgrund der Abhängigkeit - im Speicher. Hat mit OS oder so wenig zu tun, lässt sich aber ggf. nachstellen, indem man einfach mal ein Quit irgendwo reinhängt, während die Fremd-DLL noch geladen ist. Wenig Aufwand, und sei es nur, um diese Fehlerquelle auszuschließen. :wink:
Herzlich,
Tom
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von flanelli »

@TOM
Danke für die Anregung und es wäre ja auch ein guter Ansatz und leicht durchführbar wenn...

... ja wenn man das Problem im eigenen Haus, auf den eigenen Systemen/Konfigurationen auch haben würde
aber das ist ja nicht der Fall, es tritt lediglich fallweise mal auf dem einen, mal auf dem anderen Kundenstandort
ganz sporadisch auf wobei mit 99,99%iger Sicherheit davon ausgegangen werden kann, dass die Applikation korrekt
beendet wurde und nicht irgendwie "abgeschossen" wird.
Ich kann ja nicht im laufenden Betrieb irgendwo ein "Quit" reinsetzen und dann checken ob es da an der Fremd-Dll
hapert. Klar ginge es mal kurzfristigst wenn das Problem permanent auftritt aber ...
Ahoile aus dem Süden
Dieter
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 237
Registriert: Do, 14. Aug 2008 14:59
Wohnort: Straelen
Hat sich bedankt: 2 Mal
Danksagung erhalten: 3 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von Dieter »

@flanelli

Ich gehe davon aus, dass die RemoteDesktop-Konsole, die die Client-Verbindung zum Terminalserver herstellt, hin und wieder einfriert. Seit ca. einem Jahr konnte ich dieses Einfrieren auf unserem Windows-Terminalserver 2008 in unregelmäßigen Abständen feststellen (insbesondere bei hoher Serverlast). Da nicht nur meine xbase-Software, die von ca. 70 Arbeitsplatzrechnern über RDP auf den zentralen Terminalserver zugreift, hin und wieder mit diesem Problem konfroniert wird, habe ich die Vermutung, dass es etwas mit den Windows-10-Updates der Clients zu haben muss. Diese These stützen folgende Links im Internet:
https://windowsunited.de/windows-10-180 ... gsabbruch/
https://www.heise.de/newsticker/meldung ... 20555.html
https://old.reddit.com/r/sysadmin/comme ... h=e4807cae

Nächste Woche plane ich einen Umzug auf einen Windows-Terminalserver 2012, auf dem nur noch meine Software läuft. Außerdem möchte ich feststellen, welche Windows-Version und welches Build die Clients verwenden. Ist es möglich, aus dem Programm heraus welches zentral auf dem Server läuft, den Client-Versions-/ Buildstand abzufragen?
Viele Grüße

Dieter

Was man nicht versteht, besitzt man nicht.
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von flanelli »

@Dieter
Danke für Deine, in jedem Fall sehr interessante Beobachtung.

Allerdings handelt es sich bei meinem beschriebenen Problem ja
nicht um ein Einfrieren einer Client-Verbindung sondern um das
"Hängenbleiben" der EXE am Server, auch nachdem am Client das
Programm korrekt geschlossen wurde und sich der Client auch
insgesamt ordentlich verabschiedet hat und heruntergefahren wurde.

Wenn nun dieser Arbeitsplatz wieder hochgefahren wird und am Server
unerklärlicherweise die EXE immer noch in der Liste der geöffneten
Dateien vorhanden ist, dann läßt sich das Programm von diesem Client
aus nicht mehr starten.

es spielt übrigens keine Rolle, wie lange der Arbeitsplatz außer Betrieb
ist. Wenn das Problem auftritt, dann bleibt diese EXE auch nach Tagen und
Wochen etc. "hängen" und nur ein manuelles Entfernen oder ein Neustart
des Servers bereinigt die Situation wieder.

Mein simples Denken sagt mir halt, dass eine eingefrorene Client-Verbindung
ja nicht dazu führen kann, dass am Server dann auf immer und ewig irgendeine
Datei als geöffnet verbleibt aber wenn es so sein sollte, würde ich mir dieses
Phänomen gerne erklären lassen. Vor allem auch, warum es lediglich die EXE
betrifft und nicht auch alle anderen Dateien.

Bzgl. eines Feststellens des Betriebssystem am Client sollte m.E. ein OS() das Ergebnis bringen.
Ahoile aus dem Süden
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von Tom »

Ich glaube, Du hast meinen Vorschlag nicht ganz verstanden. Du hast, wie Du ausführst, als einzige Fremdkomponente (wirklich kein Active-X? nix dergleichen?) SocMapi eingebunden. Du hast also irgendwo die Wrapperfunktionen, Dein DLLLoad(), DLLExecuteCall() und so weiter. Klemm doch da einfach testweise mal ein Quit rein, vor das DLLUnload() - und schau, ob Deine App, wenn Du sie kompilierst und startest und an diese Stelle führst, als Task erhalten bleibt, obwohl sie sich scheinbar beendet. Und dann schau gleich nochmal nach, ob SocMapi wirklich die einzige Komponente dieser Art ist. :wink: Das kostet ein paar Minuten.
Herzlich,
Tom
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von flanelli »

Tom hat geschrieben: Mo, 04. Nov 2019 11:17 Ich glaube, Du hast meinen Vorschlag nicht ganz verstanden. Du hast, wie Du ausführst, als einzige Fremdkomponente (wirklich kein Active-X? nix dergleichen?) SocMapi eingebunden. Du hast also irgendwo die Wrapperfunktionen, Dein DLLLoad(), DLLExecuteCall() und so weiter. Klemm doch da einfach testweise mal ein Quit rein, vor das DLLUnload() - und schau, ob Deine App, wenn Du sie kompilierst und startest und an diese Stelle führst, als Task erhalten bleibt, obwohl sie sich scheinbar beendet. Und dann schau gleich nochmal nach, ob SocMapi wirklich die einzige Komponente dieser Art ist. :wink: Das kostet ein paar Minuten.
Ich glaube schon, dass ich Deinen Tip richtig verstanden habe aber es bringt mir nichts wenn ich diesen Check
auf meinen hausinternen Systemen durchführe da diese zwangsläufig nicht den diversen Konfigurationen auf
den Standorten des Kunden entsprechen. Wenn die App auf meinen Systemen nach dem Quit nicht mehr als Task
vorhanden ist dann bedeuted das ja nicht, dass es auf den Kundensystemen auch zwingend zu 100% der Fall sein muß.

Auf einen dieser Kundenstandorte den Check durchzuführen bringt mir auch nichts denn wie ich ja schon angeführt
habe, handelt es sich nicht um ein permanentes Problem sondern ein völlig sporadisch auftretendes und wie soll
ich da beim Kunden vor Ort so einen Check durchführen bis irgendwann einmal dieser Problemfall erneut eintritt.
Es gibt absolut keinen Ansatz wann und in welchem Zusammenhang dieser "Hänger" auftreten wird und es kommet
auch vor, dass dieses Problem auf einem Arbeitsplatz nachdem es einmal aufgetreten ist, das nächste Mal aber erst in
6 Wochen oder auch gar nicht mehr.

Lieber Tom, falls ich Deiner Meinung nach das Problem bzw. Deinen Lösungsvorschlag immer noch nicht richtig
verstanden habe, wäre ich Dir sehr dankbar wenn Du es mir nochmals bitte "gaaaaaaaaanz langsam" für grufties
verständlich erklären könntest.

Herzlichen Dank, Marcel
Ahoile aus dem Süden
Benutzeravatar
BJelinek
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 218
Registriert: Sa, 02. Jun 2012 20:57
Wohnort: 73257 Köngen
Hat sich bedankt: 9 Mal
Danksagung erhalten: 3 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von BJelinek »

Könnte es an der Freigabe liegen.

Bei den 2003 Servern hat man kein Zwischenspeichern eingestellt.

Bei den neueren Servern muss man auch noch im Server-Manager
Datei-/Speicherdienste -> Freigaben dem Hacken bei
"Zugriffsbasierte Aufzählungen aktivieren" entfernen.

Dies fordert zum Beispiel die DATEV für Ihre Freigaben und prüft es auch.
Grüße
Bernd

Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von Tom »

Was ich zu sagen versuche, Marcel. Es gibt dieses Verhalten - die Anwendung hat sich beendet, aber die EXE hängt noch als Task irgendwo -, wenn man DLLs lädt und nicht ordentlich wieder entlädt. Jedenfalls haben wir dieses Verhalten in diesem Zusammenhang beobachten können, und ich meine mich zu erinnern, dass das andere hier auch schon getan haben. Wenn Du also eine Fremd-DLL - etwa SocMapi - lädst (DLLLoad()) und sogar ansprichst (DLLPrepareCall() usw.) und Du beendest Deine Anwendung dann hart (QUIT oder ALT-C), bevor die DLL wieder entladen wird, dann könnte das dazu führen, dass Du das Fehlverhalten siehst. Und dann wüsstest Du, wo Du beim Kunden zu suchen hast (irgendwas beim Mailversand geht böse schief). Es kann aber auch sein, dass SocMapi zu wenig komplex ist, um das Problem auszulösen. Ich hab's noch nicht probiert.
Herzlich,
Tom
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von flanelli »

Tom hat geschrieben: Mo, 04. Nov 2019 13:55 Was ich zu sagen versuche, Marcel. Es gibt dieses Verhalten - die Anwendung hat sich beendet, aber die EXE hängt noch als Task irgendwo -, wenn man DLLs lädt und nicht ordentlich wieder entlädt. Jedenfalls haben wir dieses Verhalten in diesem Zusammenhang beobachten können, und ich meine mich zu erinnern, dass das andere hier auch schon getan haben. Wenn Du also eine Fremd-DLL - etwa SocMapi - lädst (DLLLoad()) und sogar ansprichst (DLLPrepareCall() usw.) und Du beendest Deine Anwendung dann hart (QUIT oder ALT-C), bevor die DLL wieder entladen wird, dann könnte das dazu führen, dass Du das Fehlverhalten siehst. Und dann wüsstest Du, wo Du beim Kunden zu suchen hast (irgendwas beim Mailversand geht böse schief). Es kann aber auch sein, dass SocMapi zu wenig komplex ist, um das Problem auszulösen. Ich hab's noch nicht probiert.
Vielen Dank Tom, so habe ich das ja auch schon zuvor verstanden bzw. interpretiert.
Aber so wie Du jetzt auch schreibst
"dann könnte das dazu führen, dass Du das Fehlverhalten siehst"
wäre nur dann zielführend wenn es WIRKLICH bei meinem Test auf MEINEN Systemen auch zu diesem Problem kommt
und das tut es eben definitiv nicht. Das Problem läßt sich bei mir im Haus nicht reproduzieren.
Ja, dann wüßte ich, wo ich beim Kunden zu suchen müßte bzw. könnte auch davon ausgehen, dass die SOCMAPI.DLL
nicht korrekt entladen wurde und daraus das Problem der "hängenbleibenden" Exe entsteht.

Nungut, da es direkt beim Kunden absolut unmöglich ist das Problem auszutesten, gehe ich nun mal einfach theoretisch
davon aus, dass die Schuld bei einer nicht korrekt entladenen SOCMAPI.DLL liegt. Nur theoretisch, weil bezogen
auf Dein (irgendwas beim Mailversand geht böse schief) da es bei keinem Anwender zu irgendwelchen Problemen beim Emailversand kommt und ich daher praktisch diese DLL nicht als Verursacher betrachte, aber egal, bleiben wir mal bei der
Schuldzuweisung für sie SOCMAPI.DLL

Jetzt wäre natürlich sehr interessant zu erfahren WIE man das Problem lösen kann, denn wenn es an einem fehlerhaften
Entladen der SOCMAPI.DLL ( oder auch irgendeiner anderen DLL ) liegt, dann hat man darauf ja absolut keinen Einfluß.
Wie soll ich das System dazu zwingen, eine DLL korrekt zu entladen wenn es das System nunmal nicht macht?
Das wäre ja dann endlich mal eine echte eierlegende Wollmilchsau wenn das möglich wäre.
Das Argument, eine andere DLL, eine andere Lösung zu suchen wird dem einen oder anderen jetzt sicher in den
Gedanken aber das hätte auch nur Sinn wenn es 100%tig feststeht welche DLL der Verursacher ist.

OK, zumindest nehme ich mal die Erkenntnis mit, dass es so ein Problem offenbar auch bei anderen Entwicklern
gab und wahrscheinlich dann auch noch gibt aber ob ich das dem Kunden so erklären kann wie einen Bibelspruch
ist halt etwas anderes. Derzeit "überlebe" ich das Problem aber nur deshalb weil der Kunde seit über 20 Jahren
mit allen Leistungen immer sehr zufrieden war und man halt eine wahre Partnerschaft hat.

Kein guter Tag heute *snief*
Ahoile aus dem Süden
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von flanelli »

BJelinek hat geschrieben: Mo, 04. Nov 2019 13:40 Könnte es an der Freigabe liegen.

Bei den 2003 Servern hat man kein Zwischenspeichern eingestellt.

Bei den neueren Servern muss man auch noch im Server-Manager
Datei-/Speicherdienste -> Freigaben dem Hacken bei
"Zugriffsbasierte Aufzählungen aktivieren" entfernen.

Dies fordert zum Beispiel die DATEV für Ihre Freigaben und prüft es auch.
Hallo Bernd, ich kann jetzt gerade nicht nachvollziehen was das Problem mit einer
Freigabe und der Einstellung "Zugriffsbasierte Aufzählungen aktivieren" zu tun
haben könnte. Es geht ja nicht um eine "Freigabe" der EXE-Datei ...
Und selbst wenn es so wäre, 100 Mal kein Problem, 1 Mal dann doch ein Problem
kann auch mit so einer Einstellung m.E. nichts zu tun haben. So viel Murks
traue ich nichtmal Mircoschrott zu :-)
Ahoile aus dem Süden
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von Rolf Ramacher »

guten Morgen.

kann es evtl. dadurch sein. "einschlafen der Netzwerkverbindung" ?
energiesparmodus oder ähnliches. ????

das ist das Problem, wenn man nicht genau weiß wo es herkommt. dann ist es schiessen ins blaue
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von Tom »

Es kann auch mit der Mondphase zu tun haben. :roll:

Zwei Fragen, Marcel: 1. Warum zur Hölle kann die Anwendung eigentlich nicht erneut gestartet werden? Was verhindert das? Ich kann meine Anwendung mehrere Dutzend Male auf einem Desktop starten, ganz egal, wo sie sich befindet, also ob sie lokal oder von einem gemappten Laufwerk geladen wird. Natürlich bekomme ich irgendwann Performanceprobleme. Aber technisch gibt's da kein Hindernis, auch nicht auf einem Terminal Server. Es sei denn, die Anwendung ist seamless publiziert. Ist das der Fall? 2. Es gäbe Möglichkeiten, um erstens zu prüfen, ob die Anwendung noch als Task vorhanden ist (Quellcode dazu findest Du hier im Forum) und zweitens eine solche Task zu killen. Dafür müsste man eine kleine App schreiben, die die eigentliche Anwendung startet. Das hätte aber den Zusatznutzen, dass eine Antwort auf die Startauslösung schneller käme, denn erfahrungsgemäß dauert es bei großen Xbase++-Anwendungen zuweilen ein paar Sekunden, bis sie sich nach dem Doppelklick zeigen. Der Nachteil wäre, dass ein absichtlicher Doppelstart nicht mehr möglich wäre.

Und noch einmal. Du hast doch Deine Anwendung bei Dir. Irgendwo werden Mails versendet. Es gibt dann beim Zugriff auf SocMapi erst das DLLLoad(), dann DLLPrepareCall() und DLLExecuteCall(). Am Ende erfolgt irgendwo ein DLLUnload(), nach dem Logoff. Häng doch vor dieses DLLUnload() - in die Zeile direkt davor - mal ein QUIT, compile die Anwendung und löse einmal den Mailversand aus, woraufhin sich die Anwendung direkt vor dem DLLUnload() beenden müsste. Und dann schau, ob sie noch im Speicher hängt. Wenn das der Fall ist, dann weißt Du wenigstens, wo das Problem liegt, und Du könntest beispielsweise intensiver loggen, was beim Mailversand geschieht und schiefgehen kann - und/oder den Mailversand in eine SEQUENCE hängen, auf dass Fehler dort die App nicht mehr killen. Irgendwie so. Verstanden?
Herzlich,
Tom
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von flanelli »

Tom hat geschrieben: Di, 05. Nov 2019 9:56 Zwei Fragen, Marcel: 1. Warum zur Hölle kann die Anwendung eigentlich nicht erneut gestartet werden? Was verhindert das?
Fest steht, dass sich die Anwendung nicht starten läßt wenn diese am Server "hängengeblieben ist",
daher verhindert eben dieser "Hänger" den Start, was anderes kann es definitiv nicht sein.
Tom hat geschrieben: Di, 05. Nov 2019 9:56 Ich kann meine Anwendung mehrere Dutzend Male auf einem Desktop starten, ganz egal, wo sie sich befindet, also ob sie lokal oder von einem gemappten Laufwerk geladen wird. Natürlich bekomme ich irgendwann Performanceprobleme. Aber technisch gibt's da kein Hindernis, auch nicht auf einem Terminal Server. Es sei denn, die Anwendung ist seamless publiziert. Ist das der Fall?
Fest steht, dass es rein thematisch kein Problem gibt, wenn man die Anwendung mehr als einmal startet, also ein
Doppelstart, Dreifachstart etc. klappt prinzipiell immer und das ist auch so gewollt.
Womit die Antwort auf die Frage 2 auch schon gegeben ist, guter Ansatz aber nicht machbar da Mehrfachstart gewollt.
Tom hat geschrieben: Di, 05. Nov 2019 9:56 Und noch einmal. Du hast doch Deine Anwendung bei Dir. Irgendwo werden Mails versendet. Es gibt dann beim Zugriff auf SocMapi erst das DLLLoad(), dann DLLPrepareCall() und DLLExecuteCall(). Am Ende erfolgt irgendwo ein DLLUnload(), nach dem Logoff. Häng doch vor dieses DLLUnload() - in die Zeile direkt davor - mal ein QUIT, compile die Anwendung und löse einmal den Mailversand aus, woraufhin sich die Anwendung direkt vor dem DLLUnload() beenden müsste. Und dann schau, ob sie noch im Speicher hängt. Wenn das der Fall ist, dann weißt Du wenigstens, wo das Problem liegt, und Du könntest beispielsweise intensiver loggen, was beim Mailversand geschieht und schiefgehen kann - und/oder den Mailversand in eine SEQUENCE hängen, auf dass Fehler dort die App nicht mehr killen. Irgendwie so. Verstanden?
Ja klar habe ich alles verstanden aber möglicherweise verstehst Du den Kern meines Problemes nicht.
Die Anwendung bleibt auf meinen hausinternen Systemen NIE hängen und nachdem ich heute auf einem der Kundenstandorte
eine, rein zum testen "parallele" komplette Applikation der bestehenden eingerichtet habe war das Ergebnis dieses Tests
so wie eigentlich vorhersehbar auch eine Nullnummer. Ich habe einen Azubi vor eine der Mühlen plaziert und der hat die Applikation 120 Mal aufgerufen und mit diesem Quit vor dem Dllunload() laufen lassen. Es gab kein einziges Mal einen "Hänger", so wie ich doch bis jetzt auch immer wieder betont habe, dass dieses Problem NUR SPORADISCH auftritt.
Somit gehe ich davon aus, dass es wohl nicht an dem Mailen liegt wobei ich ja auch bereist geschildert habe dass es
NIE irgendein Problem mit dem Mailversand gibt und es NIE zu einem Killen der App dadurch kam.

Also versuche ich es jetzt nochmal KLAr zu definieren.
Die Applikation läuft wie geschmiert ohne ein einziges Problem und wird nach dem Ende der Tätigkeit vom
jeweiligen User am Arbeitsplatz brav mit der korrekten Schlußroutine des Programmes beendet.
10 Minuten, oder 3 Stunden später oder am nächsten Tag oder in 4 Tagen oder oder startet der gleiche Anwender
auf dem gleichen Arbeitsplatz die Applikation und alles klappt wie immer perfekt, AUSSER...

Ja, AUSSER es tritt eben genau das Problem auf dass die EXE am Server immer noch im Speicher als geöffnet
drinnehängt und dann geht nichts mehr solange man nicht manuell diese Datei am Server aus der Liste der
geöffneten Dateien entfernt oder den SERVER neu startet. Ein Neustart des Arbeitsplatzes löst das Problem
definitiv NICHT.
Ja, und genau dieses Problem tritt IRGENDWANN mal auf, mal auf einem Arbeitsplatz mehrere Wochen
nicht, mal auf dem gleichen Arbeitplatz 2 Mal in der gleichen Woche und dann wieder in 1 Monat oder so.
Völlig willkürlich ohne den geringsten Ansatz einer möglichen Ursache.

An der Appllikation selbst wird es wahrscheinlich doch nicht liegen, möglicherweise ist, auch wenn es mir
seltsam erscheint, auf allen Standorten des Kunden der Wurm wohl irgendwie im OS selbst bzw. in allen nur
erdenklichen Einstellungen irgendwo eine dabei die dafür verantwortlich ist dass es zu diesem Problem kommt.

Ich dachte mir halt als einfacher Junge vom Land :-) dass irgendjemand genau dieses Problem schon mal hatte
und dafür eine Erklärung oder gar eine Lösung gefunden hat und da ich ja stets positiv denke, glaube ich immer
noch daran
Zuletzt geändert von flanelli am Di, 05. Nov 2019 18:54, insgesamt 1-mal geändert.
Ahoile aus dem Süden
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von flanelli »

Rolf Ramacher hat geschrieben: Di, 05. Nov 2019 9:45 guten Morgen.

kann es evtl. dadurch sein. "einschlafen der Netzwerkverbindung" ?
energiesparmodus oder ähnliches. ????

das ist das Problem, wenn man nicht genau weiß wo es herkommt. dann ist es schiessen ins blaue
@Rolf, danke Dir für Dein Mitdenken aber es gibt kein Problem mit einem Einschlafen von Netzwerkverbindungen.
Es geht um den "Hänger" der EXE am Server die dort eben fallweise ohne erklärbare Ursache
einfach als "offene Datei" vermerlt bleibt auch wenn der Arbeitsplatz schon mehrere Minuten, Stunden, Tage
nicht mehr eingeschaltet ist aber völlig korrekt heruntergefahren wurde.
Ahoile aus dem Süden
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: EXE bleibt nach Beendigung immer noch als Prozess sichtbar

Beitrag von AUGE_OHR »

in alten Zeiten gab es mal den Registry Hack

Code: Alles auswählen

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]
"AlwaysUnloadDll" = "1" 
aber der funktioniert nicht mehr seit Windows VISTA

---

die SOCmapi ist ja 32 Bit und funktioniert nicht mit 64 Office.
ich nutze deshalb jetzt eher die CLASS TMapiSendMsg von Pablo mit Ot4Xb
TestMAPI.zip
(2.32 KiB) 205-mal heruntergeladen
---

wie Tom schon sagte kann man vorher den Speicher prüfen ob die EXE schon läuft.
wenn ja kann man es "abschliessen" aus der Taskliste (Processlist, nicht Taskleiste)
gruss by OHR
Jimmy
Antworten