SetTimerEvent() "fremd" abschalten [ERLEDIGT]

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

SetTimerEvent() "fremd" abschalten [ERLEDIGT]

Beitrag von Manfred »

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?
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!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: SetTimerEvent() "fremd" abschalten

Beitrag von Tom »

Ist sowas mal eben kurz möglich, einen TimerEvent von außen zu killen?
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?
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: SetTimerEvent() "fremd" abschalten

Beitrag von Tom »

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
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: SetTimerEvent() "fremd" abschalten

Beitrag von Manfred »

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.
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!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: SetTimerEvent() "fremd" abschalten

Beitrag von Manfred »

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?
So ohne irgendwas anzuzeigen? Also ein Sequence oder extra Errorblock gibt es nicht.
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!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: SetTimerEvent() "fremd" abschalten

Beitrag von Tom »

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
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: SetTimerEvent() "fremd" abschalten

Beitrag von Manfred »

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.
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!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: SetTimerEvent() "fremd" abschalten

Beitrag von Tom »

Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: SetTimerEvent() "fremd" abschalten

Beitrag von Manfred »

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.
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!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: SetTimerEvent() "fremd" abschalten

Beitrag von Manfred »

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. :roll: :banghead: angry9: :badgrin:

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!!
Antworten