| |
Visual-Basic EinsteigerProgrammabsturz - 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 | |
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. | |
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 | |
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. | |
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. | |
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 | |
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. | |
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 | |
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 | |
| 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 |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere Infos
|