Anmelden

View Full Version : Problem Senden Eintrag an Datenwarteschlangen



Seiten : [1] 2

hartmuth
14-03-12, 15:29
Hallo, zusammen

Nutze dzt. öfters Datenwarteschlangen für asynchrone Job-Verarbeitung.

Nun im CL-Pgm beim Senden eines Eintrags an eine DtaQuee folgende Meldung erhalten

CPF24B4 von SPOOLTOPDF bei 1364 empfangen.

Schwerwiegender Fehler beim Adressieren der Parameterliste.

Was könnte da falsch sein? Wo kann ich ansetzen?

Die angegebene Länge von 256 entspricht eigentlich der Länge des Parameters und auch der Eintrags-Länge der DTAQ.

Viele Grüße
Herbert Fidler

Pikachu
14-03-12, 15:55
Wie sieht denn der CALL QSNDDTAQ ... aus und wie sind die Parameter definiert? Was wird an Parametern alles übergeben?

mk
14-03-12, 16:14
Hallo,

ohne Codeschnipsel ist das schwierig.

Ich kann nur raten:

Programm das die DTAQ Daten schreibt prüfen ob alle
Werte korrekt in die DTAQ geschrieben werden.

Programm das die Daten von der DTAQ liest prüfen
ob eventuelle Verschiebungen vorhanden sind
( packed, zoned ? )

Ist die Länge der DTAQ in beiden Programmen korrekt ?

Gruß
Michael

hartmuth
14-03-12, 16:27
Code ist " wie immer"
CALL PGM(QSNDDTAQ) PARM(ELEKTRSIGN STONESOBJ &LEN &SND)

&len wurde auf 256 st. gesetzt
&snd ist mit 256 st. definiert

Aber mir ist klar, dass in so einem Fall Hilfestellung schwierig.
Ich wollte vor allem wissen, wie komme ich eventuell an nähere Hinweise zum eingrenzen des Fehlers?

danke schon mal für jede Info

Pikachu
14-03-12, 16:42
Kommt der Fehler bei dieser Datenwarteschlange immer oder nur ab und zu vor? Vielleicht ist es eine geschlüsselte Datenwarteschlange und die optionale Parametergruppe 1 wird benötigt. Send Data Queue (QSNDDTAQ) API (http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/apis/qsnddtaq.htm)

hartmuth
14-03-12, 17:13
ein direkter Aufruf ist möglich.
ein Aufruf aus diesem besagten Programm, "scheinbar" mit denselben Parametern aber nicht.
Obwohl nur wenige Parameter scheine ich etwas zu übersehen.

Fuerchau
14-03-12, 17:13
Soweit ich sehe, hast du die DTAQ-Namen und Lib als Konstanten vorgegeben.
Beide Konstanten müssen 10-Stellig sein, die Lib ist aber nur 9-Stellig!

Jetzt ist es eher zufällig, ob an der 10. Stelle des Libnamens im Speicher ein Leerzeichen ist.

Lösung:
Verwende
a) besser korrekt definierte Variablen mit Init-Wert
b) Bette die Konstanten in Hochkomma ein und fülle mit fehlenden Leerzeichen auf

Eine andere Idee habe ich hierzu nicht.
Der CALL aus einer Kommandozeile funktioniert etwas anders als aus einem Programm.

hartmuth
14-03-12, 17:37
Lt. Debugger ist &SND nicht "auffällig" befüllt.
Er soll eine Batch-Datei aufrufen.
Auch &LEN enthält 256 , eben die Länge von &SND

&SND *CHAR 256 'F:\ALLGEMEIN\SYSTEM\PORTA'
+26 'BLESIGNER\SIGN V:\BREITSC'
+51 'HOPF\RE_247977_999999.PDF'

die 9-st. Bibl. habe ich in eine Variable gesteckt
&LIB *CHAR 10 'STONESOBJ '

Ich bin ratlos. Brauche aber natürlich das Programm dringend.
Eigentlich nicht meine erste Arbeit mit DTAQs.
Bin etwas ratlos

B.Hauser
14-03-12, 17:43
Manchmal hilft es die Dataqueue neu zu erstellen!
(Sollte man übrigens ab und an machen!)

Birgitta

Fuerchau
14-03-12, 17:43
Mal ne blöde Frage:
Ist &LEN als "*DEC 5 0 " definiert?

http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=%2Fapis%2Fqsnddtaq.htm