-
Fehlerbehandlung im RPGLE-FREE
Guten Tag Forum,>>
Ich hatte gestern wahrscheinlich etwas falsch gemacht, da ich meine Anfrage nicht sehen kann und auch keine Reaktion per mail erhalten habe. Hie noch einmal mein Problem.>>
>>
In einem interaktiven Programm wird eine log.File zunächst eingelesen zum Aktualiesieren in Abhängigkeit einer anderen Datei. Dann kann jeder einzelne Satz bearbeitet werden. Wird das Programm von mehreren Anwendern genutzt, gibt es das Problem der Sperren, wenn ein Satz gerade benutzt wird. Ich wollte dies mit einer Monitorgruppe abfangen. >>
>>
Aktualiesierung:>>
monitor; >>
read dateir;>>
on-error 1218;>>
#err = *on;>>
Endmon; >>
>>
Dow not %eof(datei);>>
If #err *off; >>
>>
Aktualisierung>>
> >
Endif;>>
> >
Nächsten Satz einlesen>>
monitor; >>
read dateir;>>
on-error 1218;>>
#err = *on;>>
Endmon; >>
>>
Enddo;>>
>>
Jetzt folgt die Verarbeitung: -> Subfile füllen -> Satz auswählen und updaten>>
>>
Jetzt mein Problem: Es kommt zwar nicht zum Fehler aber das Programm liest nicht den nächsten Satz sondern immer wieder den gesperrten Satz. Wie kann ich die on-error Lösung besser gestalten? Ich möchte nicht mit read(n) einlesen.
Vielen Dank für eure Hilfe
kretzsch
-
Mit Read(e) benötigt man keinen Monitor. %error() liefert dann den Status.
Leider kann man ohne Read(n) gesperrte Sätze nicht überlesen.
Im Falle der Sperre musst du selber per Read(n) den gesperrten Satz dann überlesen.
-
Schade, schade ... aber trotzdem danke.
-
Du musst deine Logik überarbeiten.
Zum Anzeigen aller Sätze per READ(N) die Subfile füllen.
Zum Bearbeiten eines Satzes dann per CHAIN genau diesen Satz dann sperren.
-
Genau so hatte ich es auch immer gemacht, ich dachte man kann es mit dem Befehl Monitor eleganter lösen.
-
Das wäre aber ein Drama, wenn sich der Lesebefehl je nach Fehlerüberwachung anders verhielte!
Aber es passiert logischerweise das absolut Idente, der Lesebefehl kann nicht lesen. Ob man diesen Zustand nun per Bezugszahl, Built-In-Funktion oder MONITOR feststellt, darf für die Position des Dateizeigers keinen Unterschied machen.
Außerdem sollte man DB-Sätze nur dann sperren, wenn die Updatewahrscheinlichkeit hoch ist.
Zum Füllen eines Subfiles aber auf keinen Fall, wie Baldur schon völlig richtig angemerkt hat.
Und selbst wenn es ginge; die Faulheit beim Codieren würde sich da sowieso zur Laufzeit rächen. Man muss nur genug User drauf los lassen.
-
Zitat von AG1965_2
Außerdem sollte man DB-Sätze nur dann sperren, wenn die Updatewahrscheinlichkeit hoch ist.
Und selbst wenn es ginge; die Faulheit beim Codieren würde sich da sowieso zur Laufzeit rächen. Man muss nur genug User drauf los lassen.
Genau aus diesem Grund verwende ich zum lesen eine logische Inputdatei und eine Updatedatei.
Und schon sind einige Probleme gelöst.
kf
-
Halte ich auch für übertrieben, nur deswegen 2 Datenpfade zu öffnen, wo es doch READ(N) usw. gibt, womit ich auch eine Datei, die für Update geöffnet wurde, ohne Sperre lesen kann.
-
Die Satzwartezeit (Default 1 Minute) ist dann auch nicht zu verachten.
Warum soll man den User erst 1 Minute warten lassen um dann unvollständige Daten anzuzeigen?
Bei SQL und Transaktionen muss ja sowieso anders denken.
-
Für mein Verständnis sehr hilfreich, danke
-
Halte ich auch für übertrieben, nur deswegen 2 Datenpfade zu öffnen, wo es doch READ(N) usw. gibt, womit ich auch eine Datei, die für Update geöffnet wurde, ohne Sperre lesen kann.
Das klappt aber nur wenn Du ohne Commitment Control arbeitest.
Unter Commitment Control gibt weder die Erweiterung (N) noch der OpCode UNLOCK den Datensatz frei!
Birgitta
-
Danke Birgitta, wieder was (von dir) gelernt!
Similar Threads
-
By ExAzubi in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 02-07-14, 14:13
-
By XMan in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 20-12-13, 08:50
-
By Liebhoff in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 01-03-02, 21:24
-
By HoScHiE in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 12-10-01, 10:46
-
By Frank in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 02-09-01, 11:35
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks