-
DTAQ MAXLEN und KEY bei KeyedDataQueueEntry.write
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.
-
In der Dokumentation ist das nicht ausdrücklich festgelegt.
Allerdings finde ich die Frage eigentlich nicht relevant.
Ein Eintrag kann bis 32KB lang sein, die DTAQ kann 16MB oder 2GB groß werden.
Die Länge eines Eintrages ist variabel und kann zwischen 0 und X liegen.
Die Länge des Keys sollte immer der erstellten Länge entsprechen da laut Doku sonst unerwartete Ergebnisse auftreten könnten.
-
Hallo Herr Fuerchau!
ja, eigentlich bin ich von ausgegangen, daß der Schlüsselteil und der Datenteil zwei getrennte Bereiche sind.
Beim QSNDDTAQ und beim QRCVDTAQ native-seitig ist das wohl so.
Beim Senden in die Data Queue via o.g. Java-Klasse muß der Datenteil wohl um die Schlüssellänge verkürzt werden, sonst kommt es zu o.g. Exception.
Möglicherweise ein Fehler in der Implementierung - muß man wohl mit leben.
Ich debugge mir aber nochmals den Code durch, ob noch irgendetwas falsch ist...
Trotzdem danke für den Hinweis.
-
eigentlich bin ich von ausgegangen, daß der Schlüsselteil und der Datenteil zwei getrennte Bereiche sind
Das ist ja auch so. Wie schreibst Du denn Java-seitig in die Dataqueue? Poste doch mal etwas Code.
Es sollte so ungefähr aussehen:
dq.write(byteKey, byteData);
Sowohl byteKey als auch byteData sind bei mir byte-Arrays.
Gruß,
KM
-
Ich melde mich nochmals dazu, hatte leider keine Zeit, das nochmals anzugehen.
Danke erstmals für die Infos.
Similar Threads
-
By woy in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 26-03-15, 08:49
-
By Scholli2000 in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 26-05-14, 13:10
-
By Bodo Roggenkamp in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 10-04-08, 12:11
-
By Thomas Holst in forum NEWSboard load'n'go
Antworten: 0
Letzter Beitrag: 05-03-02, 16:03
-
By Andreas Herzfeldt in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 22-02-02, 11:00
Tags for this Thread
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