Betriebssystemfehler

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
henxl
UDF-Programmierer
UDF-Programmierer
Beiträge: 91
Registriert: Fr, 10. Feb 2006 19:46
Wohnort: Mannheim

Betriebssystemfehler

Beitrag von henxl »

Hallo,

ich arbeite in einer "DO WHILE"-Scheife eine Datenbank Satz für Satz ab und sichere dabei die Datensatznummer mit nRec:=RECNO(). Später gehe ich die diesem Satz zurück: GO nRec.

Die Routine läuft seit Monaten ohne Fehler. Plötzlich tritt folgender Fehler auf:

Code: Alles auswählen

FEHLERPROTOKOLL     : 14.08.2006 10:23:42
*
Programm            : "C:\Gb\GB.EXE", Version 2.3.11 Build 288
*
Xbase++ Version     : Xbase++ (R) Version 1.90.331
Betriebssystem      : Windows XP 05.01 Build 02600 Service Pack 2
------------------------------------------------------------------------------
oError:args         :
          -> VALTYPE: N VALUE: 141
oError:canDefault   : J
oError:canRetry     : N
oError:canSubstitute: N
oError:cargo        : NIL
oError:description  : Betriebsystemfehler
oError:filename     : 
oError:genCode      :         40
oError:operation    : DbGoto
oError:osCode       :          1
oError:severity     :          2
oError:subCode      :          4
oError:subSystem    : BASE
oError:thread       :          1
oError:tries        :          0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von GB1_RVREAD(1189)
Aufgerufen von GB_BART(1513)
Aufgerufen von BW1_0(417)
Aufgerufen von GB_MENUSELECT(1248)
Aufgerufen von GB_BMPMENUSELECT(1358)
Aufgerufen von (B)GB_BMPMENU(1412)
Aufgerufen von GB_0(602)
Aufgerufen von GB(303)
Aufgerufen von MAIN(37)
Hat jemand eine Idee, was dieser Fehler bedeutet und wodurch er ausgelöst wird ?

Grüße

Heinz
Das einzige, was ich weiß ist, dass ich nichts weiß, Sokrates
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 193
Registriert: Fr, 09. Jun 2006 7:52
Wohnort: Nähe Sömmerda

Beitrag von Gerd König »

Hallo Heinz, das kann alles mögliche sein :cry:

PC-Fehler (Speicher, Festplatte)
Netzwerkfehler (Keine Verbindung zum Server)
....

Viele Grüße
Gerd
henxl
UDF-Programmierer
UDF-Programmierer
Beiträge: 91
Registriert: Fr, 10. Feb 2006 19:46
Wohnort: Mannheim

Beitrag von henxl »

Hallo Gerd,

um dem Fehler auf die Spur zu kommen, läuft die Anwendung auf einem Pentium 4, 3 GHz, 1 GB RAM, HDD üder 100 GB frei, als Einzelplatzversion, keine Netzverbindungen. Und trotzdem tritt der Fehler gelegentlich auf.

Mir ist klar, dass sich die Laufzeitbedingungen ändern müssen, damit der Fehler auftritt, zBsp. zu wenig Arbeitsspeicher, weil ein anderes Programm ...
Aber aus dem Fehlerprotokoll kann ich nichts Konkretes ableiten.

Vielleicht hat jemand ein ähnliches Problem und weiß Rat ...

Grüße

Heinz
Das einzige, was ich weiß ist, dass ich nichts weiß, Sokrates
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
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:

Beitrag von Tom »

Das kann - leider - auch ein Indexfehler (Korruption) sein, aber die möglichen Ursachen sind vielfältig. Seit der 1.82 reduziert das Fehlersystem fast alles, was mit Indexen zu tun hat, auf Betriebssystemfehler 1, "unzulässige Funktion", und da solche Fehler zumeist nicht nachstellbar sind, hat man große Probleme. In der Regel hilft aber eine Reindexierung der Datenbank. Die ganzen DBFNTX/1012 und Nachbarn habe ich jedenfalls seit der 1.82 nicht mehr gesehen; ich hatte auch diesbezüglich mit Alaska korrespondiert und gehofft, das würde in der 1.9 geändert sein, isses aber nicht. :cry:
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21189
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Tom,

haben die Alaska Jungs wenigstens erklärt, warum das jetzt so ist?
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: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Manfred.

Nö. 8)
Herzlich,
Tom
henxl
UDF-Programmierer
UDF-Programmierer
Beiträge: 91
Registriert: Fr, 10. Feb 2006 19:46
Wohnort: Mannheim

Beitrag von henxl »

Hallo Tom,

vielen Dank für den Hinweis.
An einen Indexfehler habe ich auch schon gedacht.

In vorliegenden Beispiel wurden bereits über 100 Datensätze abgearbeitet. Es wird nur aus der Datenbank gelesen. Bei den ersten 100 Datensätzen war die Indexdatei also in Ordnung.
Und nach dem Neustart läuft die Anwendung mit der selben Indexdatei einwandfrei. Deshalb schließe ich hier einen Indexfehler aus.

Nochmals danke.

Grüße

Heinz
Das einzige, was ich weiß ist, dass ich nichts weiß, Sokrates
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Betriebssystemfehler

Beitrag von AUGE_OHR »

hi,
henxl hat geschrieben: ich arbeite in einer "DO WHILE"-Scheife eine Datenbank Satz für Satz ab und sichere dabei die Datensatznummer mit nRec:=RECNO(). Später gehe ich die diesem Satz zurück: GO nRec.

Die Routine läuft seit Monaten ohne Fehler. Plötzlich tritt folgender Fehler auf:

Code: Alles auswählen

Xbase++ Version     : Xbase++ (R) Version 1.90.331
Betriebssystem      : Windows XP 05.01 Build 02600 Service Pack 2
oError:genCode      :         40
oError:operation    : DbGoto
1.) tritt der "Fehler" erst seit v1.9x auf ?
2.) hat du eine eigene DBESYS ?

DBClose/DbGoto/OrdlistAdd "Fehler" haben meistens was mit dem
"Timeing" zu tun die in der v1.9x "leicht" verändert wurde (meine ich
jedenfalls festgestellt zu haben wärend der beta Phase). Nachdem
ich dann meine "eigene" DBESYS mit "optimierten" Werten benutzt habe
gab es das Problem nicht mehr :

Code: Alles auswählen

  /*
   *   DBF und NTX Database-Engine werden "hidden" geladen
   *   und zu der neuen abstrakten DBFNTX Database-Engine verbunden.
   */
   IF ! DbeLoad( "DBFDBE", .T.)
      Alert( MSG_DBFDBE_NOT_LOADED , {"OK"} )
   ENDIF
   IF ! DbeLoad( "NTXDBE",.T.)
      Alert( MSG_DBFDBE_NOT_LOADED , {"OK"} )
   ENDIF
   IF ! DbeBuild( "DBFNTX", "DBFDBE", "NTXDBE" )
      Alert( MSG_DBFNTX_NOT_CREATED , {"OK"} )
   ENDIF
   // now DBFNTX / NTXDBE is active
   // set some new value
   DbeInfo( COMPONENT_DATA , DBFDBE_LOCKRETRY, 100000 ) 
   DbeInfo( COMPONENT_DATA , DBFDBE_LOCKDELAY,     20 ) 
   DbeInfo( COMPONENT_ORDER, NTXDBE_LOCKRETRY, 100000 )
   DbeInfo( COMPONENT_ORDER, NTXDBE_LOCKDELAY,     20 )

   DbeSetDefault( "DBFNTX" )
gruss by OHR
Jimmy
henxl
UDF-Programmierer
UDF-Programmierer
Beiträge: 91
Registriert: Fr, 10. Feb 2006 19:46
Wohnort: Mannheim

Beitrag von henxl »

Hallo Jimmy,

danke für die Antwort.
Ich habe erst seit 2 Wochen auf 1.9 umgestellt. Der Fehler trat vorher auch schon auf.

Hier ein Auszug aus meiner DBESYS (nach Deinem Änderungsvorschlag):

Code: Alles auswählen

  // siehe Alaska News Auge_Ohr 15.11.2005 in BugReport:
  DbeInfo( COMPONENT_DATA , DBFDBE_LOCKRETRY, 20000000 )
  DbeInfo( COMPONENT_DATA , DBFDBE_LOCKDELAY,       10 )
  DbeInfo( COMPONENT_ORDER, DBE_LOCKMODE,LOCKING_EXTENDED) 
  DbeInfo( COMPONENT_ORDER, NTXDBE_LOCKRETRY, 20000000 )
  DbeInfo( COMPONENT_ORDER, NTXDBE_LOCKDELAY,       10 )
Grüße

Heinz
Das einzige, was ich weiß ist, dass ich nichts weiß, Sokrates
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,

henxl hat geschrieben:

Code: Alles auswählen

  DbeInfo( COMPONENT_ORDER, DBE_LOCKMODE,LOCKING_EXTENDED) 
hat jemand mit LOCKING_EXTENDED gute/schlechte Erfahrung ?

unter welchen Umständen bringt es was ?
(schneinbar nicht unter Novell ...)

gruss by OHR
Jimmy
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Beitrag von Bertram Hansen »

Hallo,

hierzu habe ich auch eine Frage.

Darf ich die neue Einstellung

Code: Alles auswählen

DbeInfo( COMPONENT_ORDER, DBE_LOCKMODE,LOCKING_EXTENDED)
auch verwenden, wenn auf die selben dBase Tabellen mit einem unter Clipper 5.2e erstellten Programm und einem unter xBase++ Version 1.9 erstelltem Programm zugegriffen (schreiben, lesen, Indexfelder verändern, Index erstellen, etc.) wird?
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
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:

Beitrag von Tom »

Nein.
Herzlich,
Tom
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Beitrag von Bertram Hansen »

Danke Tom für die schnelle und kurze Antwort
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Antworten