vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Programmabsturz - was nun 
Autor: crosstravel
Datum: 12.08.20 16:25

Hallo zusammen,

trotz aller Plausibilitäten und Fehlerroutinen kann es geschehen, dass das Programm abstürzt (z.B. durch einen Datenfehler usw.). Mir ist nicht klar, was in diesem Moment mit den Ressourcen geschieht, welche der jeweilige Benutzer gerade im Zugriff hatte. Werden diese durch einen ABEND automatisch freigegeben?

Wenn nicht, gibt es evtl. schlaue Functionen, welche für eine Art Recovery aufgerufen werden können?

Danke
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programmabsturz - was nun 
Autor: Manfred X
Datum: 13.08.20 10:32

Hallo!

Daten dürfen ein Programm nie zum Absturz bringen können.
Beim Lesen oder bei der Abfrage von Daten sollten geeignete
Plausibilitätstests durchgeführt werden. (Noch schlimmer als
ein Programmabsturz wäre es meist, wenn ein Programm unbrauchbare
Daten nicht erkennte und deshalb irreführende Ergebnisse lieferte.)

Was mit Ressourcen, geöffneten Datenbanken oder den gerade beschriebenen
Dateien geschieht, lässt sich nicht allgemein beantworten.
Die Datenquellen könnten in einen inkonsistenten Zustand geraten, Daten
aus Schreib-Caches gingen verloren. Im Einzelnen hängt das von der
Programmierung ab.

Eine Rekonstruierbarkeit wäre zu programmieren, indem eine
umfassende Protokollierung der Nutzeraktivitäten und Backups der
Daten- und Einstellungs-Änderungen regelmäßig gespeichert werden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programmabsturz - was nun 
Autor: crosstravel
Datum: 13.08.20 11:29

Hallo Manfred,

Du hast mit Deinen Ausführungen in allen Punkten recht. Es gibt aber in einem Netzwaerk auch externe Gründe, welche zu einem Absturz führen können. Diese können natürlich nicht durch das Programm abgefangen werden. Ich gehe davon aus, dass bei einem abnormalen Ende des Programmes die evtl. vorhandenen Locks auf Tabellen freigegeben werden. Ich denke, hier gibt es keine andere Wahl.

Gruss
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programmabsturz - was nun 
Autor: Manfred X
Datum: 16.08.20 07:07

Hallo!

Ob und wie bei einem Absturz geöffnete Datenbank-Tabellen repariert
werden können, hängt vom Datenbanksystem und dessen Einstellungen ab.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programmabsturz - was nun 
Autor: RBE.-Elektronik
Datum: 03.09.20 21:41

Hallo Leute.

Grüß euch alle. Dieses Problem kommt vor. Die Gründe dafür können mannigfaltig sein. Gerade Datenbanken wieder herzustellen ist oft schwierig und meistens mit Datenverlust oder gar Totalausfall endend. Da ich selbst mal eine Datenbank programmiert habe kenne ich das Problem. Dafür habe ich als Lösung folgenden Weg beschritten.

Per Programm dem Typ der Datenbank ein- bis mehrdimensional Speicher dimensioniert.
Da die ganz alten Dateioperationen aus VB-Dos noch immer perfekt und schnell laufen schreibe ich die gesamte Datenbank in den Arbeitsspeicher. Als Beispiel je nach Öffnungsmodus,

OPEN Datenbankdateiname Öffnungsmodus
INPUT Datenbankfelder in Variablen
CLOSE

Jetzt bearbeitest du deine Datenbank. Per Timer können Zwischenspeicherungen vorgenommen werden. Wenn du fertig bist oder das Programm beenden willst, lässt du automatisch speichern.

Mit dieser Vorgehensweise kann mit dem Programm passieren was immer vorkommen kann. Deine Datenbank ist immer wieder verfügbar.


Ich bin ganz neu hier, arbeite mit Visual Basic 6 Enterprise Edition und Windows 7 Ultimate, vor langer Zeit mit VB-Dos. Gerne möchte ich euch auch Problemfragen stellen, um Mithilfe bitten, habe aber auch viel zu bieten. Vielen Dank.

Ralf.

Ralf.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programmabsturz - was nun 
Autor: crosstravel
Datum: 04.09.20 07:06

Hallo Ralf,

Deine Idee ist nachvollziehbar. Jedoch sehe ich sie nicht im praktischen Einsatz mit ca. 20 Benutzerns an dezentralen Standorten, die alle gleichzeitig mit der Datenbank arbeiten. Ich arbeite deshalb mit MySQL und INNODB, welche eine Satzsperrung ermöglicht. Einen gewollten Abbruch behandle ich mit Rollback. Lediglich ungewollte Abstürze können Probleme verursachen. Deshalb ist es mir so wichtig, diese Situationen zu verhindern.

Gruss
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programmabsturz - was nun 
Autor: Manfred X
Datum: 04.09.20 10:32

Hallo!

Warum steigst Du nicht auf aktuelle VB.Net-Versionen um?
Man arbeitet mit Datenbanken entkoppelt, d.h. die DB wird geöffnet,
ein Datenpakt geladen, die DB wird wieder geschlossen.
Zuvor wird eventuell ein Sperrvermerk bei den geladenen Datensätzen
hinterlassen, damit andere Benutzer nichts ändern können.

Die Bearbeitung des Datenpaketes erfolgt im Hauptspeicher des
Rechners. Angesichts der heute üblichen Speichergrößen kann man
umfangreiche Pakete laden.

Nach Bearbeitung eines Paketes wird die DB geöffnet, alle Aktualisierungen
mit einem Kommando übertragen und die DB wieder geschlossen.

Während der Bearbeitung eines Datenpakets kann man Zwischenstände
automatisiert unabhängig von der DB speichern
(z.B. als XML-Serialisierung).
Bei einem Absturz verliert man in em Fall kaum etwas.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programmabsturz - was nun 
Autor: crosstravel
Datum: 04.09.20 12:52

Hallo Manfred,

die Überlegung eines Umstiegs auf VB.Net stand auch schon im Raum. Der Aufwand wäre allerding enorm und es ist sehr fraglich, dass diese Investition sich auszahlt. Der Markt gibt das einfachnicht her. Ich glaube, diese Überlagung haben sich schon viele Anwender gemacht - und sind zum gleichen Resultat gekommen. Dashalb - weiter mit VB6.

Gruss
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programmabsturz - was nun 
Autor: W. Wolf
Datum: 27.11.20 12:17

Hallo Manfred,

>Warum steigst Du nicht auf aktuelle VB.Net-Versionen um?
>Man arbeitet mit Datenbanken entkoppelt, d.h. die DB wird geöffnet,
>ein Datenpakt geladen, die DB wird wieder geschlossen.

Warum sollte man dafür auf .Net umsteigen müssen? Das kann man mit VB6 und ADO auch so machen. Und auch vor ADO hat es mittels DAO oder RDO Techniken gegeben, die kollektives Bearbeiten einer DB erlaubten. Also, mit VB.Net hat das nichts zu tun.

Schönen Gruß
W. Wolf
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel