|
Hi,
I hope someone on the list can help me with the Retrieve Data Queue Message
(QMHRDQM) API.
I make a prototyped call to the Retrieve Data Queue Description (QMHQRDQD)
and get the necessary header information, then make a prototyped call to
QMHRDQM for the non destructive read of the contents. I'm starting with a
non-keyed data queue.
The format I'm using for RDQM0100 is:
D RDQM0100 DS
D BytesRtn 10i 0 Inz(0)
D BytesAvl 10i 0 Inz(0)
D #returned 10i 0 Inz(0)
D #available 10i 0 Inz(0)
D KeyLngthRtn 10i 0 Inz(0)
D KeyLngthAvl 10i 0 Inz(0)
D TxtLngthRtn 10i 0 Inz(0)
D TxtLngthAvl 10i 0 Inz(0)
D EntLngthRtn 10i 0 Inz(0)
D EntLngthAvl 10i 0 Inz(0)
D OffsetFirst 10i 0 Inz(0)
D Qlibrary 10 Inz(' ')
D Rsvd1 1 Varying
D OffsetNext 10i 0 Inz(0)
D EnqDatTim 8
D MsgKey 1 Varying
D MsgText 32689 Varying
D Rsvd2 1 Varying
The info I get back is fine throught the Qlibrary field, the OffsetNext
always comes out to 128, the EnqDatTim decodes (via a prototyped call to
QWCCVTDT) to 20330131002706259, and the first six bytes of the data queue
entry are 'missing'.
Here's the contents of the return structure:
BYTESRTN OF RDQM0100 = 832
BYTESAVL OF RDQM0100 = 832
#RETURNED OF RDQM0100 = 1
#AVAILABLE OF RDQM0100 = 1
KEYLNGTHRTN OF RDQM0100 = 0
KEYLNGTHAVL OF RDQM0100 = 0
TXTLNGTHRTN OF RDQM0100 = 764
TXTLNGTHAVL OF RDQM0100 = 764
ENTLNGTHRTN OF RDQM0100 = 776
ENTLNGTHAVL OF RDQM0100 = 776
OFFSETFIRST OF RDQM0100 = 56
QLIBRARY OF RDQM0100 = 'CMSDTABS '
RSVD1 OF RDQM0100 = ' '
OFFSETNEXT OF RDQM0100 = 128
ENQDATTIM OF RDQM0100 = ']ß ©U 0'
MSGKEY OF RDQM0100 = '0'
MSGTEXT OF RDQM0100 =
....5...10...15...20...25...30...35...40...45...50...55...60
1 '21403000790|MPPTH CMSDTAMP MPPTH 320 èJ '
61 ' - ' ] Q MPä¤ä¤3r'
121 'r° MPGMPPTH rr¤ b '
181 ' j& ¬ j¤ j& Ë& ¤ - " '
241 ' ¤ â⬠îb¬ r / â '
301 ' ±'
361 ' Í 000000000000000000000000000'
421 '00000000000000000000000000000000000MPä¤ä¤3rr° CITRPG '
481 ' rr¤ b j& '
More
A dump of the dtaq object returns:
*00000021403000790|MPPTH CMSD*
*TAMP MPPTH 320 èJ *
* - ' ] Q *
* MPä ¤ä ¤3rr°*
* MPGMPPTH rr¤ *
etc.
So the first 6 )'s are missing and the pipe character marking the beginning
of the data is is pos 12, not pos 18.
I seem to be screwing up in the enqueue date and time, which the API doc on
the InfoCenter desribes as 8 character. I've walked it in to 1 character
and come close to the right offset for the pipe but still not gotten right.
I'd sure appreciate any help the list can offer.
Thanks!
Tom Westdorp
AS/400 Senior Programmer/Analyst
Voice: (702) 221-6859
Fax: (702) 221-6881
tom.westdorp@stationcasinos.com <mailto:tom.westdorp@stationcasinos.com>
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.