SetTimerEvent() "fremd" abschalten [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
SetTimerEvent() "fremd" abschalten [ERLEDIGT]
Hi,
seit ein paar Tagen beobachte ich einen Vorgang, der mir etliches Kopfzerbrechen bereitet. Ich habe in einem Programm eine SetTimerEvent() gestartet, um eine Abfrage im Hintergrund zu tätigen. Auf meinen PC´s klappt es prima, nur auf einem Kunden PC so gut wie gar nicht. Zu Anfang läuft es eine Zeit, aber dann scheint dieser TimerEvent wohl von einem anderen Programm eliminiert zu werden. Teilweise hilft es das Programm neu zu starten, aber auch nicht immer. Der Kunde meint, es wäre etliches unterbunden auf dem PC von einem anderen Anbieter, aus Sicherheitsgründen.
Ist sowas mal eben kurz möglich, einen TimerEvent von außen zu killen?
seit ein paar Tagen beobachte ich einen Vorgang, der mir etliches Kopfzerbrechen bereitet. Ich habe in einem Programm eine SetTimerEvent() gestartet, um eine Abfrage im Hintergrund zu tätigen. Auf meinen PC´s klappt es prima, nur auf einem Kunden PC so gut wie gar nicht. Zu Anfang läuft es eine Zeit, aber dann scheint dieser TimerEvent wohl von einem anderen Programm eliminiert zu werden. Teilweise hilft es das Programm neu zu starten, aber auch nicht immer. Der Kunde meint, es wäre etliches unterbunden auf dem PC von einem anderen Anbieter, aus Sicherheitsgründen.
Ist sowas mal eben kurz möglich, einen TimerEvent von außen zu killen?
Zuletzt geändert von Manfred am Mi, 01. Sep 2010 21:27, insgesamt 1-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: SetTimerEvent() "fremd" abschalten
Eigentlich nicht. Thread ist Thread. Wenn da jemand von außen reinfunken könnte, würde 95% der Software nicht mehr laufen. Ich vermute stark, dass Du das selbst tust. Z.B. durch mehrfache Aufrufe von SetTimerEvent() - es gibt nur eines pro Thread. Oder durch den Aufruf mit dem Parameter "0" (Null) irgendwo - das stoppt den Timer-Thread. Kann Dein Benutzer die Taktung des Events steuern/konfigurieren? Hat er da vielleicht irgendwo eine Null gesetzt?Ist sowas mal eben kurz möglich, einen TimerEvent von außen zu killen?
Herzlich,
Tom
Tom
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: SetTimerEvent() "fremd" abschalten
Ergänzung: Möglich auch, dass sich der Thread aufgrund eines Laufzeitfehlers einfach verabschiedet. Gibt's eine SEQUENCE in diesem Thread? Oder einen eigenen ErrorBlock?
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: SetTimerEvent() "fremd" abschalten
Nenene,
nichts von dem. SetTimerEvent() wird (siehe express++ Thread) 1x am Anfang gestartet. Nirgendwo abgeschaltet. Und wie schon erwähnt, auf 2 meiner PC läuft das Teil ohne Probleme. Ich führe ein Protokoll über jeden Schritt, den der TimerEvent durchläuft und das Protokoll läuft in dem Falle nur am Anfang ein paar Minuten und dann tut sich nichts mehr. Der Event wird nach einer Zeit nicht einmal mehr automatisch gestartet, nach dem Neustart, was ja normalerweise der Fall ist.
Deine Vermutung hatte ich anfänglich auch, aber offizielle ist an dem Teil nichts zu drehen. Der Kunde wußte sogar nicht einmal etwas davon, das eine Abfrage im Hintergrund läuft. Außerdem habe ich die Sache selbst beobachtet.
nichts von dem. SetTimerEvent() wird (siehe express++ Thread) 1x am Anfang gestartet. Nirgendwo abgeschaltet. Und wie schon erwähnt, auf 2 meiner PC läuft das Teil ohne Probleme. Ich führe ein Protokoll über jeden Schritt, den der TimerEvent durchläuft und das Protokoll läuft in dem Falle nur am Anfang ein paar Minuten und dann tut sich nichts mehr. Der Event wird nach einer Zeit nicht einmal mehr automatisch gestartet, nach dem Neustart, was ja normalerweise der Fall ist.
Deine Vermutung hatte ich anfänglich auch, aber offizielle ist an dem Teil nichts zu drehen. Der Kunde wußte sogar nicht einmal etwas davon, das eine Abfrage im Hintergrund läuft. Außerdem habe ich die Sache selbst beobachtet.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: SetTimerEvent() "fremd" abschalten
So ohne irgendwas anzuzeigen? Also ein Sequence oder extra Errorblock gibt es nicht.Tom hat geschrieben:Ergänzung: Möglich auch, dass sich der Thread aufgrund eines Laufzeitfehlers einfach verabschiedet. Gibt's eine SEQUENCE in diesem Thread? Oder einen eigenen ErrorBlock?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: SetTimerEvent() "fremd" abschalten
Es liegt mit Sicherheit an einem Fehler in der aufgerufenen Prozedur. Ich könnte jetzt ein Beispiel bauen, mit einem TimerEvent, das irgendwo zergurkt ist, aber das könntest Du auch tun. Möglich - ich weiß es nicht -, dass Fehler im Timer-Thread schlicht zur Terminierung desselben führen, statt das ErrorSys aufzurufen.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: SetTimerEvent() "fremd" abschalten
Na gut,
frage ich einmal anders herum: Könnte man irgendwie anzeigen lassen, ob der TimerEvent noch läuft. Meine Protokollführung scheint da ja nicht weit zu kommen. Gibt es irgendeine API oder so, die mir das anzeigen würde, oder der Taskmanager? Nur mal um zu gucken, ob und wenn ja wann der Thread abkackt.
frage ich einmal anders herum: Könnte man irgendwie anzeigen lassen, ob der TimerEvent noch läuft. Meine Protokollführung scheint da ja nicht weit zu kommen. Gibt es irgendeine API oder so, die mir das anzeigen würde, oder der Taskmanager? Nur mal um zu gucken, ob und wenn ja wann der Thread abkackt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: SetTimerEvent() "fremd" abschalten
Hi Tom,
ich habe jetzt einmal das ganze Szenario mit Tageswechsel usw. durchgespielt bei mir. Nach Deinem Vorschlag mit dem Absturz, war ich doch etwas verunsichert. Aber es klappt. Also werde ich mal abwarten bis der Kunde sich einen neuen Rechner besorgt hat, auf dem nur mein Programm läuft und dann weiter sehen. War auch nur kurz eine Frage, ob jemand auf Anhieb sowas gehört hat.
ich habe jetzt einmal das ganze Szenario mit Tageswechsel usw. durchgespielt bei mir. Nach Deinem Vorschlag mit dem Absturz, war ich doch etwas verunsichert. Aber es klappt. Also werde ich mal abwarten bis der Kunde sich einen neuen Rechner besorgt hat, auf dem nur mein Programm läuft und dann weiter sehen. War auch nur kurz eine Frage, ob jemand auf Anhieb sowas gehört hat.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: SetTimerEvent() "fremd" abschalten
Au man,
Fehler gefunden. Sowas blödes aber auch. Ich habe ab und an in dem Bereich einen Browser auf um anzuzeigen was sich in der Datenbank tut. Klar, der hat natürlich in dem Falle auch ein SetTimerEvent() laufen, um alle paar Sekunden den Browser zu aktualisieren. Der läuft bei mir nicht, aber beim Kunden.
Hast also Recht gehabt mit Deiner 1.Vermutung. Den habe ich total vergessen.
Jetzt werde ich dafür wohl einen ExtraThread bauen müssen......
Fehler gefunden. Sowas blödes aber auch. Ich habe ab und an in dem Bereich einen Browser auf um anzuzeigen was sich in der Datenbank tut. Klar, der hat natürlich in dem Falle auch ein SetTimerEvent() laufen, um alle paar Sekunden den Browser zu aktualisieren. Der läuft bei mir nicht, aber beim Kunden.
Hast also Recht gehabt mit Deiner 1.Vermutung. Den habe ich total vergessen.
Jetzt werde ich dafür wohl einen ExtraThread bauen müssen......
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!