PDA

View Full Version : Maximale Einträge in einer DTAQ



Frankk
11-12-20, 10:57
Hallo,

gibt es Beschränkungen bzgl. der maximalen Anzahl an Einträgen in einer DTAQ?

Wir möchten über eine DTAQ die Inventurbuchungen verarbeiten. Jetzt vermute ich, dass die DTAQ über die wir das Ganze abhandeln sich schneller füllt, als das diese abgearbeitet wird. Da diese DTAQ bereits existiert: Kann man sich die Definition irgendwie anzeigen lassen?

Robi
11-12-20, 11:10
Mit 'normalen' Bordmitteln nicht, evtl API's
Wenn es sie gibt, gibt es auch ein Pgm / einen Ablauf der sie erstellt.
(nach Stromausfall ist eine DTAQ gerne mal defekt ...)
mit *max2GB ist sie schon recht brauchbar groß
mit gekeyter Verarbeitung kann mann mehrere Verarbeitungs Jobs laufen lassen.

Andreas_Prouza
11-12-20, 11:55
Mit dem entsprechenden PTFs gibt's ab 7.3 eine View die dir das ganze anzeigt: QSYS2.DTAQ_INFO.
Müssen diese Einträge sequentiell abgearbeitet werden oder dürfen diese auch parallel laufen?
Denn dann könntest du einfach mehrere Jobs dran hängen, die die Einträge parallel abarbeiten.

Fuerchau
11-12-20, 12:01
Grundsätzlich kann man auch ohne Keys mehrere Jobs laufen lassen, wenn man keine Antwort senden muss.
Man richtet dazu am besten einen Prestartjob und keinen Autostartjob im Subsystem ein.
Man kann dort eine Mindestanzahl Jobs vorgeben, so dass sofort bei Subsystemstart alle Jobs gestartet werden.

Der QRCVDTAQ eines Jobs wird an eine interne Warteschlange drangehängt, so dass die verarbeitenden Jobs auch garantiert nacheinander die Einträge erhalten, verarbeiten und sich "in der Schlange" wieder anstellen.

Die Anzahl Einträge berechnen sich aus (max. Größe / (Max.Satzlänge + 16)).
Übrigens bleiben die Einträge über IPL hinaus erhalten, was bei Keyed-DTAQ gerne zum Überlauf führen kann, wenn die Schlüssel z.B. die Jobnummer enthalten.

camouflage
11-12-20, 12:15
Anmerkung zu Andreas' Hinweis mit QSYS2.DTAQ_INFO:
Hier wird Dir auch geholfen: https://www.rpgpgm.com/2019/12/data-queues-using-sql.html

Alternativ kannst Du das QMHQRDQD Api benutzen, einfach danach googlen, es gibt genügend Beispiele.

Frankk
14-12-20, 07:26
Hallo,

wollte mich für die zahlreichen Infos von euch bedanken. Ihr habt mir sehr weitergeholfen.

Bleibt gesund :-)

& herzlichen Dank