Hallo Forum,

beim Erstellen von Data Queues mit KEYs beinhaltet die Dtaq-Länge MAXLEN den KEY oder wird der separat geführt?

Schreibe ich mit QSNDDTAQ in eine Dataq von MAXLEN 100 und KEYLEN 26, dann kommen auf der Java-Seite beim KeyedDataQueue.read die 100 an Daten an (richtigerweise ohne KEY-INFO, setze aber mit entsprechnder KEY-Länge auf ).

Schreibe ich dann JAVA-seitig beim KeyedDataQueue.write den Schlüssel mit 26 Zeichen und die Daten mit 100 Zeichen weg erhalte ich einen Fehler:

com.ibm.as400.access.AS400Exception: CPF2498 Ungültige Länge. Die Maximallänge bei Datenwarteschlange WSRQSDQ in ALEXTEST ist 100.
at com.ibm.as400.access.BaseDataQueueImplRemote.build Exception(BaseDataQueueImplRemote.java:386)
at com.ibm.as400.access.BaseDataQueueImplRemote.build Exception(BaseDataQueueImplRemote.java:456)
at com.ibm.as400.access.BaseDataQueueImplRemote.write (BaseDataQueueImplRemote.java:335)
at com.ibm.as400.access.KeyedDataQueue.write(KeyedDat aQueue.java:527)
at com.ibm.as400.access.KeyedDataQueue.write(KeyedDat aQueue.java:556)


Nur wenn ich Daten in Länge abzüglich Schlüssellänge wegschreibe erhalte ich keinen Fehler.

Dann sagt mir der QRCVDTAQ auch eine Datenlänge von 100, obwohl ich JAVA-seitig nur 74 geschrieben habe.

Unterschieldiche Verarbeitung?

System V7R1, JAVA 1.6.0 - Client seitig, JAVA 7 compile nach JAVA 6, JT400.