-
hups
Huch da waren die Finger wieder zu schnell.
Für alle die es interessiert kommt hier die Lösung:
in den RPG Programm wird mit Entry Parametern und
viel mit API's gearbeitet. Bei einer API wurde eine falsche
Empfangslänge( größer als die Empfänger Datenstruktur) angegeben. Die Daten werden korrekt von System übertragen.
Anscheinend arbeitet OS400 in der Version V5R1 aber intern
mit anderen Pointern als die V4R4 Version.
Dadurch kam es zu dem kuriosen Close Problem.
Danke an alle die sich mit dem Problem beschäftigt haben.
Gruss Michael
-
Das kann ich so nicht stehen lassen !
Wenn bei API's die Parameter korrekt übergeben werden, kann es auch bei zukünftigen Releasen keine Probleme geben. Bei allen API's wird die Länge des verfügbaren Puffers angegeben, die natürlich nicht den tatsächlichen Puffer übersteigen darf.
Bei Ergänzungen in neuen Releasen werden die Daten dann halt abgeschnitten. Deshalb gibt es ja fast immer das Feld "Bytes-Avaliable", in dem die verfügbare Länge der Information abgelegt wird.
Das gleiche gilt auch für ENTRY-Parameter !
Die Schnittstellen zwischen rufendem und gerufenem Programm müssen immer übereinstimmen, da es sonst immer zu Pufferüberschreibungen kommen kann.
-
Hallo Bladur,
ich wollte ja nur die Lösung posten.
Es ist mir klar, das wenn man alles richtig macht es auch funktioniert.
In diesem konkteten Fall war es aber so das in dem Feld für die Empfangslänge 1500 Bytes angegeben war. Die API Empfängerstruktur aber nur 1480 Stellen empfangen kann.
Das PGM ist auf V4R4 ohne Fehler kompiliert und funktionierte. Bei dem V5r1 kam der Close Fehler.
Nachdem ich die Empfängervariable für das API auf 1480 geändert habe funktioniert das Pgm ohne Probleme mit V5R1.
gruss Michael
-
Was ich sagen wollte, ist genau das was eingetreten ist.
Wie kommt man dazu eine Länge von 1500 anzugeben wenn nur 1480 verfügbar sind ?
Ich hoffe dass du nicht noch mehr solche Programme hast, da nicht alle Fehler die daraus resultieren, zu Abstürzen führen.
Manchmal sucht man sich da nähmlich zu Tode, da eine Pufferüberschreibung ggf. nur zu unerklärlichen Daten bzw. Pgm-Ablauf führt.
Bestes Beispiel war da sogar mal Brain-XPPS. Im rufenden Programm war eine Struktur nur 1 Mal definiert (OCCURS), im gerufenen aber 2 Mal (die berühmten Filehandler).
Nun trat allerdings ganz selten ein ungeklärtes Phänomen auf, da das Upro nur selten auf die 2. Struktur zugriff bzw. bei den sog. Test-Chains in Struktur 2 niemals Daten vorkommen sollten und somit die Felder nicht verändert wurden.
Aber so 1 mal alle paar Wochen war dann halt doch mal ein Satz da und die im aufrufenden Prgramm nachfolgenden Daten wurden zerstört.
Um diesen Fehler zu finden brauchte ich 3,5 Jahre !!!
-
Hallo Baldur,
3,5 Jahre habe ich zum Glück nicht benötigt.
Da allerdings die SW nicht von mir stammt, ist es manchmal
sehr mühsam die Fehler anderer zu finden.
Aber eigentlich kann man sich auf eines verlassen.
Die Maschine hat immer Recht.
Gruss Michael
Similar Threads
-
By mk in forum NEWSboard Java
Antworten: 8
Letzter Beitrag: 21-04-11, 21:51
-
By robertki in forum NEWSboard Programmierung
Antworten: 25
Letzter Beitrag: 19-01-07, 08:42
-
By timeless in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 11-01-07, 12:04
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
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