Die nachstehende Tabelle enthält eine Beschreibung der EGL-Fehlerwerte für Ein-/Ausgabe-Operationen, die sich auf Datenbanken, Dateien und WebSphere MQ-Nachrichtenwarteschlangen auswirken. Wenn Sie die Funktion für Ausnahmebedingungskompatibilität mit Version 6 verwenden (siehe V6-Ausnahmebedingungskompatibilität verwenden) haben Sie Zugriff auf permanente sowie sporadisch auftretende E/A-Fehler (siehe is/not (Operator)). Weitere Informationen hierzu finden Sie im Abschnitt Ausnahmebedingungsbehandlung.
| Fehlerwert | Fehlertyp | Datensatztyp | Bedeutung des Fehlerwerts |
|---|---|---|---|
| deadlock | Permanent | SQL | Zwei Programminstanzen versuchen, einen Datensatz zu ändern. Diese Änderung kann jedoch von keiner der Instanzen ohne Systemintervention ausgeführt werden. Beim Zugriff auf eine SQL-Tabelle in DB2 gibt 'deadlock' an, dass der SQLCODE-Wert -911 ist. |
| duplicate | Sporadisch | DL/I, indexiert oder relativ | Weitere Informationen hierzu finden Sie unter 'duplicate' in diesem Thema. |
| endOfFile | Sporadisch | DL/I, indexiert, relativ oder seriell | Weitere Informationen hierzu finden Sie unter 'endOfFile' in diesem Thema. |
| ioError | Permanent oder sporadisch | Beliebig | Weitere Informationen hierzu finden Sie unter 'ioError' in diesem Thema. |
| fileNotAvailable | Permanent | Indexiert, relativ oder seriell | 'fileNotAvailable' ist bei allen E/A-Operationen möglich und kann beispielsweise darauf hinweisen, dass die Datei von einem anderen Programm verwendet wird oder dass erforderliche Ressourcen für den Zugriff auf die Datei knapp sind. |
| fileNotFound | Permanent | Indexiert, Nachrichtenwarteschlange, relativ oder seriell | 'fileNotFound' ist bei allen E/A-Operationen möglich und weist darauf hin, dass eine angeforderte Datei nicht gefunden wurde. |
| full | Permanent | Indexiert, relativ oder seriell | 'full' wird in folgenden Fällen gesetzt:
|
| hardIOError | Permanent | Beliebig | Weitere Informationen hierzu finden Sie unter 'hardIOError' in diesem Thema. |
| invalidFormat | Permanent | Indexiert, relativ oder seriell | Die Datei, auf die zugegriffen wird, ist nicht mit der Datensatzdefinition kompatibel. Weitere Informationen hierzu finden Sie unter 'invalidFormat' in diesem Thema. |
| noRecordFound | Sporadisch | Beliebig | Weitere Informationen hierzu finden Sie unter 'noRecordFound' in diesem Thema. |
| softIOError | Sporadisch | Beliebig | Ein sporadisch auftretender Fehler wurde festgestellt. Hierbei handelt es sich um 'endOfFile', 'noRecordFound' oder 'duplicate'. |
| unique | Permanent | DL/I, indexiert, relativ oder SQL | Der Code versuchte, einen Datensatz mit einem bereits vorhandenen Schlüssel hinzuzufügen oder zu ersetzen, und dieser Versuch ist fehlgeschlagen. Weitere Informationen hierzu finden Sie unter 'unique' in diesem Thema. |
Die Einstellung 'duplicate' wird nur dann zurückgegeben, wenn die Zugriffsmethode die Information zurückgibt. Dies ist nicht bei allen Betriebssystemen der Fall. Beim SQL-Datenbankzugriff ist die Option nicht verfügbar.
Wenn Sie über ein von EGL generiertes COBOL-Programm unter iSeries auf eine emulierte VSAM-Datei zugreifen, lesen Sie die Informationen im Thema 'Zuordnungselemente' im Handbuch für EGL-Generierung. Dort finden Sie eine Beschreibung der Eigenschaft 'duplicates' im Ressourcenzuordnungsabschnitt, der zur Generierungszeit verwendet wird.
Bei DL/I-Datenbanken ist 'duplicate' ein sporadisch auftretender Fehler, der gesetzt wird, wenn eine Anweisung vom Typ 'add' versucht, ein Segment in eine Datenbank einzufügen, in der Datensätze mit doppelten Schlüsseln nicht zulässig sind und ein Datensatz mit demselben Schlüssel bereits vorhanden ist. Die Anweisung 'add' ist fehlgeschlagen. Der entsprechende Statuscode ist II. Die Werte 'duplicate' und 'unique' sind für DL/I äquivalent.
Bei einer DL/I-Datenbank wird 'endOfFile' gesetzt, wenn eine Anweisung vom Typ 'get next' oder 'get next inParent' versucht, Daten abzurufen und sich der zugehörige Datenbankzeiger am Ende der Datenbank befindet. Der entsprechende Statuscode ist GB.
Das Dateiformat (feste oder variable Länge) stimmt nicht mit dem EGL-Datensatzformat überein.
Bei Datensätzen fester Länge weicht die Länge eines Datensatzes in der Datei von der Länge des EGL-Datensatzes ab. Bei Datensätzen variabler Länge ist ein Datensatz in der Datei länger als der EGL-Datensatz.
Der für den Datensatz angegebene Dateityp stimmt nicht mit dem Dateityp zur Ausführungszeit überein.
Die Schlüssellänge in der Datei weicht von der Schlüssellänge im indexierten EGL-Datensatz ab.
Die Schlüsselposition in der Datei weicht von der Schlüsselposition im indexierten EGL-Datensatz ab.
Die Einstellung 'unique' wird nur dann zurückgegeben, wenn die Zugriffsmethode die Information zurückgibt. Dies ist nicht bei allen Betriebssystemen der Fall.
Beim SQL-Datenbankzugriff wird 'unique' gesetzt, wenn eine hinzuzufügende oder zu ersetzende SQL-Zeile einen Schlüssel enthält, der bereits in einem eindeutigen Index vorhanden ist. Der entsprechende SQLCODE-Wert ist -803.
Bei DL/I-Datenbanken wird 'unique' gesetzt, wenn eine Anweisung vom Typ 'add' versucht, ein Segment in eine Datenbank einzufügen, in der Datensätze mit doppelten Schlüsseln nicht zulässig sind und ein Datensatz mit demselben Schlüssel bereits vorhanden ist. Die Anweisung 'add' ist fehlgeschlagen. Der entsprechende Statuscode ist II. Die Werte 'duplicate' und 'unique' sind für DL/I äquivalent.