AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Timeout für sich aufhängenden Thread/Timeout allgemein
Thema durchsuchen
Ansicht
Themen-Optionen

Timeout für sich aufhängenden Thread/Timeout allgemein

Ein Thema von s.h.a.r.k · begonnen am 18. Mär 2009 · letzter Beitrag vom 20. Mär 2009
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#11

Re: Timeout für sich aufhängenden Thread/Timeout allgemein

  Alt 19. Mär 2009, 11:56
hm... das muss ich dann wohl leider überlesen haben aber es muss doch eine möglichkeit geben, so einen thread zu "zeigen wo es lang geht"!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#12

Re: Timeout für sich aufhängenden Thread/Timeout allgemein

  Alt 19. Mär 2009, 12:13
Ja sowas habe ich mir auch gesagt, aber nach ner guten Woche suchen aus ausprobieren bin ich leider zu keinem wirklichen Ergebniss gekommen.
Ich denke auch das es irgendwie möglich sein muss einen Thread zu beenden, egal ob der nun will oder nicht.
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#13

Re: Timeout für sich aufhängenden Thread/Timeout allgemein

  Alt 19. Mär 2009, 12:15
Netzstecker ziehen? Speicher nullen?

Liegt das Problem nicht eher am Quelltext im Thread?
In welcher Endlosschleife hängt er denn?
  Mit Zitat antworten Zitat
Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#14

Re: Timeout für sich aufhängenden Thread/Timeout allgemein

  Alt 19. Mär 2009, 12:22
Das Problem ist nicht zwingend ein Programmfehler im eigenen Quelltext.
Bei mir z.B. bleibt ein Modem einfach stehen und meldet sich nicht mehr (gesteuert über Fremden Quelltext auf den ich keinen einfluss habe).

In diesem Beispiel tritt der "Fehler" ja beim Verbinden einer Datenbank auf.Ich stell mal die Theorie auf, das der Vorgang des Datenbankverbindens nicht von dir Programmiert wurde sondern das es über eine fertige Komponente läuft.(Korregier mich bitte wenn ich hier falsch liege).

PS: kennst du zufällig den Befehl für "Stecker auswerfen - Stecker wieder einstecken"
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#15

Re: Timeout für sich aufhängenden Thread/Timeout allgemein

  Alt 19. Mär 2009, 14:24
*hehe* die ideen werden echt immer besser

wie schon von pro_rj gesagt: der quelltext, er hängt ist nicht in meinen handlungsbereich. den quelltext habe ich nicht geschrieben und ich komme auch nicht dran. auch wenn ich es könnte, weiß ich nicht was ich da ändere. es geht auch allgemein um das prinzip dabei, wie ich finde. eni fehler in meiner bzw. in pro_rj's programmierung liegt nicht vor, das ist eine voraussetzung.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#16

Re: Timeout für sich aufhängenden Thread/Timeout allgemein

  Alt 19. Mär 2009, 14:28
Zitat von s.h.a.r.k:
hm... das muss ich dann wohl leider überlesen haben :( aber es muss doch eine möglichkeit geben, so einen thread zu "zeigen wo es lang geht"!
Hallo,

das Problem haben andere Datenbanken auch, und es scheint auch eine Lösung zu geben, wenn man die Thread-ID bestimmt. Lies mal das hier:

http://www.builderau.com.au/architec...9130339,00.htm

Vielleicht hilft das weiter, jedenfalls scheint mir die Sache nicht hoffnungslos.

Gruss Reinhard
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#17

Re: Timeout für sich aufhängenden Thread/Timeout allgemein

  Alt 19. Mär 2009, 23:08
danke für die idee, aber es liegt nicht an oracle! es liegt daran, dass der thread einfach stehen bleibt und sich aufhängt. dass da intern was mit einem verbindungsversuch zu einer oracle-db zu tun hat, ist eher zufall! trotzdem nochmals danke
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Timeout für sich aufhängenden Thread/Timeout allgemein

  Alt 19. Mär 2009, 23:11
Zitat von Pro_RJ:
TerminateThread() schickt ja auch nur an den Trhead ein signal alla "Schau mal das du in nächster Zeit Fertig wirst"
Nein tut es nicht:
Zitat:
TerminateThread is used to cause a thread to exit. When this occurs, the target thread has no chance to execute any user-mode code.
Und deswegen wollte ich wissen, was GetLastError für einen Fehlercode zurückgibt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#19

Re: Timeout für sich aufhängenden Thread/Timeout allgemein

  Alt 20. Mär 2009, 00:17
Zitat von s.h.a.r.k:
danke für die idee, aber es liegt nicht an oracle!
Hallo,

natürlich nicht - tut mir ja leid, dass ich keinen fixfertigen Code liefern kann wie erwartet, meine Idee war nur, wenn der Schreiber von Orakill.exe in der Lage ist, mit der Thread-ID einen Thread zu killen, dann besteht offenbar diese Möglichkeit. Im Gegensatz dazu kommen die meisten Diskussionen, die ich zu dem Thema gesehen habe zu dem Ergebnis, dass es nicht geht oder zu garkeinem. Wie üblich findet man viele Fragen und wenig Antworten.

Deshalb glaube ich auch nicht, dass du etwas findest, was du nur kopieren oder downloaden musst.

Gruss Reinhard
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#20

Re: Timeout für sich aufhängenden Thread/Timeout allgemein

  Alt 20. Mär 2009, 07:29
Falls es gar keine saubere Lösung gibt, könntest Du vor dem Verbindungsversuch per anyDAC versuchen, den Server anzupingen. Wenn das klappt, versuche eine ADO- oder DBExpress-Verbindung aufzubauen. Wenn das klappt, verwende dein anyDAC.

Das löst das Problem zwar nicht, könnte aber trotzdem zum Ziel führen.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz