Hi,
ich habe leider bei ein paar unserer Anwender das Problem, dass unsere Anwendung ab und zu "einfriert" und dann eine Systemlast von 100% verursacht.
Bisher haben ausschließlich Anwender, die eine Version unserer Software haben, die mit 1.9 gelinkt ist, das Problem.
Das Problem tritt nicht häufig auf (meistens liegen etliche Tage dazwischen), aber immer wieder. Einen programmatischen Fehler kann ich sicher ausschließen, da das Problem an unterschiedlichen Stellen auftritt und immer wieder an Stellen im Programm, die täglich etliche Male benutzt werden.
Ein Anwender hat das Problem definitiv erst seit wir in auf eine 1.9-Version abgedatet haben.
Unsere Software wird von unseren Anwendern in aller Regel mindestens 1x am Tag neu gestartet, d. h. wir haben es hier nicht mit ultra-langen Laufzeiten zu tun.
Kennt jemand das Problem und/oder hat eine Idee?
Kommt unter XP und Win2003 (im Terminalmodus) vor, HT-/DualCore-Rechner, aber auch bei normalen Pentium...
"Aufhängen" einer xbase-Applikation (Systemlast 10
Moderator: Moderatoren
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Hallo Rolf,
nein, solche programatischen Sachen scheiden aus. Es passiert immer wieder an harmlosen Stellen (beim Drücken einer Taste), die am Tag hundertmal benutzt werden.
Ich habe da eher die Event-Verarbeitung in Verdacht...
Ich habe gerade mit Till gemailt, evtl. stellt mir Alaska eine Debugversion der Runtime zur Verfügung (mit logging-Funktionen), die ich bei einem oder 2 Anwender einsetze...
nein, solche programatischen Sachen scheiden aus. Es passiert immer wieder an harmlosen Stellen (beim Drücken einer Taste), die am Tag hundertmal benutzt werden.
Ich habe da eher die Event-Verarbeitung in Verdacht...
Ich habe gerade mit Till gemailt, evtl. stellt mir Alaska eine Debugversion der Runtime zur Verfügung (mit logging-Funktionen), die ich bei einem oder 2 Anwender einsetze...
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
hi,
Ja weil auch ich des öfteren im "otherwise" der Eventloop lande obwohl
ich meine "alle" Tastatur Eingaben abgefangen zu haben ..
Nein weil sowas "gewöhnlich" 0% CPU dann bei mir anzeigt.
Zum "Ja" muss ich noch erwähnen das ich "versuche" teilweise die
"Navigation´s" Tasten (Cursor, PgDn etc.) "umzuleiten". Wenn ich nun
nicht den "Focus" auf dem "XbPart" mit dem "Keyboard-Slot" habe
geht das ganze an die "Main" Eventloop und dort evtl. in das "Otherwise"
Ich habe also jedem "XbPart" auf dem oDlg den Keyhandler MAINKEYS()
zugewiesen und führe beides Mal die "selbe" Aktion aus. Trotzdem kommt
es in der "Main" Eventloop "irgendwann" zum "hänger" wärend das "selbe"
in MAINKEYS() "immer" funktioniert.
sag deinen User doch, die sollen bei "hängern" mit ALT-C "abbrechen",
dann hast du wenigstens eine XPPFATAL.LOG und kannst ja dann sehen
ob du irgendwo in einer Eventloop "hängst" ... nur sollte das nicht 100%
CPU Last ergeben ...
gruss by OHR
Jimmy
JaNein ...Markus Walter hat geschrieben: harmlosen Stellen (beim Drücken einer Taste), die am Tag hundertmal benutzt werden.
Ich habe da eher die Event-Verarbeitung in Verdacht...
Ja weil auch ich des öfteren im "otherwise" der Eventloop lande obwohl
ich meine "alle" Tastatur Eingaben abgefangen zu haben ..
Nein weil sowas "gewöhnlich" 0% CPU dann bei mir anzeigt.
Zum "Ja" muss ich noch erwähnen das ich "versuche" teilweise die
"Navigation´s" Tasten (Cursor, PgDn etc.) "umzuleiten". Wenn ich nun
nicht den "Focus" auf dem "XbPart" mit dem "Keyboard-Slot" habe
geht das ganze an die "Main" Eventloop und dort evtl. in das "Otherwise"
Code: Alles auswählen
PROCEDURE MAIN
...
oDlg := XbpDialog().....
...
bKeyHandler := {|nKey,uNIL,obj| MAINKEYS(nKey,obj, ...)
AEval( aControls, {|o| o:keyBoard := bKeyHandler } )
...
DO WHILE .T.
...
nEvent := AppEvent( @mp1, @mp2, @oXbp, nTimeout ) // nTimeout
DO CASE
//
// geht hier "ein paar Mal" und hängt dann
//
* CASE nEvent == xbeP_Keyboard .AND. mp1 == xbeK_RIGHT
* IF oBar:getData()+1 > nDuration
* oBar:setData( nDuration )
* ELSE
* oBar:setData( oBar:getData()+1 )
* ENDIF
* Scroll2bar( oBar:getData(), XBPSB_NEXTPOS , ... )
* setAppFocus(oDlg)
...
STATIC PROCEDURE MAINKEYS(nKey ... )
...
CASE nKey == xbeK_RIGHT
//
// geht 1000 Mal und mehr ...
//
IF aoChild[CH_BAR]:getData()+1 > nDuration
aoChild[CH_BAR]:setData( nDuration )
ELSE
aoChild[CH_BAR]:setData( aoChild[CH_BAR]:getData()+1 )
ENDIF
Scroll2bar( aoChild[CH_BAR]:getData(), XBPSB_NEXTPOS , ...)
setAppFocus(aoChild[CH_BAR])
zugewiesen und führe beides Mal die "selbe" Aktion aus. Trotzdem kommt
es in der "Main" Eventloop "irgendwann" zum "hänger" wärend das "selbe"
in MAINKEYS() "immer" funktioniert.
sag deinen User doch, die sollen bei "hängern" mit ALT-C "abbrechen",
dann hast du wenigstens eine XPPFATAL.LOG und kannst ja dann sehen
ob du irgendwo in einer Eventloop "hängst" ... nur sollte das nicht 100%
CPU Last ergeben ...
gruss by OHR
Jimmy
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Hi Markus,
läuft die Anwendung im Netz? Nicht das dort etwas ist. z.B. es gibt antivirenprogramme, die jeden Netzzugriff prüfen. Dies könnte ein Grund sein, da ich dies schon einige Male erlebt habe.
Trifft diese Phänomen immer nur in Verbindung mit anderen Programmen auf ? Vielleicht immer mit dem gleichen ? Nur an einem PC ? Dann wäre vielleicht dort das Problem zu suchen.
Dies sind einige Tips/Info, da ich diese schon erlebt habe. Denn wenn diese Funktion 99 mal klappt, aber dann das 100. Mal nicht, muß es nicht unbedingt an der Programmierung liegen.
prüf mal nach.
läuft die Anwendung im Netz? Nicht das dort etwas ist. z.B. es gibt antivirenprogramme, die jeden Netzzugriff prüfen. Dies könnte ein Grund sein, da ich dies schon einige Male erlebt habe.
Trifft diese Phänomen immer nur in Verbindung mit anderen Programmen auf ? Vielleicht immer mit dem gleichen ? Nur an einem PC ? Dann wäre vielleicht dort das Problem zu suchen.
Dies sind einige Tips/Info, da ich diese schon erlebt habe. Denn wenn diese Funktion 99 mal klappt, aber dann das 100. Mal nicht, muß es nicht unbedingt an der Programmierung liegen.
prüf mal nach.