-
Erstmal danke an die reichlichen Anworter!!!
Das in dem Programm ein RCVDTAQ steht hat folgenden Hintergrund: Dieses augegeliederte "Teil"-Programm ist ein Teil zum testen. Das eigentliche enthält einen SNDDTAQ und einen RCVDTAQ und steuert die Kommunikation zwischen einem Client und unser iSeries. Alle paar Tage kam es nun vor das sich der Client aufgehängt hat. Das mit dem SND und RCV funktioniert also schon länger ohne Probleme.
Ein Problem haben wir festgestellt könnte sein, wenn der Client wieder neu reingeht und einen RCV macht und dann unter Umständen "Altlasten" liest und sich dann dementsprechend seltsam verhält. Um dies zu verhindern wollten wir mit CLR alle "Altlasten" mit Jobnummer und User vorm RCV löschen.
Ich hab mit Dtaq noch nicht soviel gemacht. Vieles wird mir durch lesen klarer.
Was ich aber nicht "raffe" ist - das mit dem Error.
Wenn ich den CERROR aus dem CALLP rauslasse, bekomme ich das Programm umgewandelt - aber beim Aufruf einen Fehler.
Lass ich ihn so drin, krieg ich das Teil nicht umgewandelt.
Wie muss ich also die Definition richtig machen in den D-Bestimmungen?
-
- Der Error Code ist in der Required Paramter Group 2, d.h. entweder alle oder keiner der Parameter in Parameter Group 2 muss übergeben werden.
- Bei dem Parameter handelt es sich um einen Ein-/Ausgabe-Parameter und Du hast ihn als Input Only (Schlüssel-Wort Const) definiert.
Die Error-Datenstruktur (Format ERRC0100 sieht so aus)
Code:
D RefDSAPIError1 DS Qualified
D ByteProv 10I 0 inz(%size(RefDSAPIError1))
D ByteAvail 10I 0
D MsgId 7A
D Reserved 1
D ExceptData 32767
Der Parameter Error Code kann dann so aussehen:
Code:
D ParErrDS LikeDS(RefDSAPIError1) Error Data Structure
D Options(*NoPass)
Eine entsprechende Variable wird wie folgt definiert:
Code:
D ParErrDS1 DS LikeDS(RefDSAPIError1) inz(*LikeDS)
Birgitta
-
Hi,
Versuch mal den Error-Code so zu definieren
DCL VAR(&CERROR) TYPE(*CHAR) LEN(16)
-
Hallo,
sorry, wenn ich nochmal wegen dem CLRDTAQ nerve. Aber ich bekomme es einfach nicht "gebacken".
Wo liegt mein Fehler liegt? Wie muss ich es richtig schreiben?
(Umwandlung schlägt fehl mit flg. Fehlermeldung:
RNF5407 20 1 Mehr Parameter im Prototypaufruf übergeben als zulässig.
Code:
D CLRDTAQ PR EXTPGM('QCLRDTAQ')
D DATAQUEUENAME 10A CONST
D DATAQUEUELIB 10A CONST
D KEYORDER 2A CONST OPTIONS(*NOPASS)
D KEYLENGTH 3P 0 CONST OPTIONS(*NOPASS)
D KEYDATA 32767A CONST OPTIONS(*NOPASS)
D ParErrDS1 DS LikeDS(RefDSAPIErr) inz(*LikeDS)
D
D* ParErrDS1 LikeDS(RefDSAPIErr) Options(*NoPass)
D
D RefDSAPIErr DS Qualified
D ByteProv 10I 0 inz(%size(RefDSAPIErr))
D ByteAvail 10I 0
D MsgId 7A
D Reserved 1
D ExceptData 32767
Code:
C SR999 BEGSR
C
C EVAL KEY = E_JOBNR + E_JOBUSR
C CALLP CLRDTAQ('DYQ01' : '*LIBL' : 'EQ' : 17 :
C KEY : PARERRDS1)
C
C TIME R120T2 12 0
C
C ENDSR
Danke!!!
Mit freundlichen Grüßen
Ralph
-
Die Definition "ParErrDS1 DS" gehört nicht mehr zur PR-Deklaration sondern ist eine eigene DS.
Du musst diese ohne "DS" wie KEYDATA definieren.
-
Ich danke für den Tipp!! Jetzt tut das Teil endlich was es soll   - LÖSCHEN - 
Danke nochmal an alle, für ihre Mühen etwas dazu zu schreiben!
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