Author |
Message
|
smp |
Posted: Thu Oct 15, 2009 6:10 am Post subject: Getting 2195 + 2009 putting more than 97703 chars into queue |
|
|
Newbie
Joined: 15 Oct 2009 Posts: 4
|
Hello everyone,
I am getting an 2195 + 2009 error, if I write more than 97703 chars into a queue.
Code: |
MQJE001: MQException aufgetreten: Beendigungscode 2, Ursache 2195
MQJE007: E/A-Fehler beim Lesen von Nachrichtendaten
Error occured during API call - reason code0
MQJE001: MQException aufgetreten: Beendigungscode 2, Ursache 2009
MQJE003: E/A-Fehler bei šbertragung des Nachrichtenpuffers
MQJE001: Beendigungscode 2, Ursache 2009
MQJE001: MQException aufgetreten: Beendigungscode 2, Ursache 2009
MQJE003: E/A-Fehler bei šbertragung des Nachrichtenpuffers
MQJE001: Beendigungscode 2, Ursache 2009
MQJE001: MQException aufgetreten: Beendigungscode 2, Ursache 2009
MQJE003: E/A-Fehler bei šbertragung des Nachrichtenpuffers
MQJE001: Beendigungscode 2, Ursache 2009
MQJE001: MQException aufgetreten: Beendigungscode 2, Ursache 2009
MQJE003: E/A-Fehler bei šbertragung des Nachrichtenpuffers
MQJE001: Beendigungscode 2, Ursache 2009
MQJE001: MQException aufgetreten: Beendigungscode 2, Ursache 2009
MQJE003: E/A-Fehler bei šbertragung des Nachrichtenpuffers
MQJE001: MQException aufgetreten: Beendigungscode 2, Ursache 2009
MQJE003: E/A-Fehler bei šbertragung des Nachrichtenpuffers
MQJE001: Beendigungscode 2, Ursache 2009
com.ibm.mq.MQException: MQJE001: Beendigungscode 2, Ursache 2009
at com.ibm.mq.MQManagedObject.close(MQManagedObject.java:400)
at com.ibm.mq.MQQueue.close(MQQueue.java:1720)
|
@ MQQueue.put(MQMessage, MQPutMessageOptions)
I am just reading the String content from a file via FileReader/BufferedReader.
If there are only <= 97702 then it works fine and no exception will be thrown.
I run this directly from the Eclipse IDE (WinXP). |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Oct 15, 2009 6:43 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Open a PMR  _________________ MQ & Broker admin |
|
Back to top |
|
 |
smp |
Posted: Fri Oct 16, 2009 12:43 am Post subject: |
|
|
Newbie
Joined: 15 Oct 2009 Posts: 4
|
Is there a possibility to get the sources from a certain mq-class (MQMessage)?
If I change MQMessage.writeString(String msg) with MQMessage.writeChar(String msg) it works.
I dont know what, but something is really strange.
In my opinion there are differences in the internal handling with the message. Maybe the use of an enclosed buffer. |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Oct 16, 2009 4:43 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
smp wrote: |
Is there a possibility to get the sources from a certain mq-class (MQMessage)? |
no.
smp wrote: |
If I change MQMessage.writeString(String msg) with MQMessage.writeChar(String msg) it works. |
And, so now it works.
smp wrote: |
I dont know what, but something is really strange.
In my opinion there are differences in the internal handling with the message. Maybe the use of an enclosed buffer. |
Either this is documented or it isn't. Did you look?
What is the maxmsgln of the queue? Is it possilble that it's smaller than 195404 bytes? Is it possible that writeString performs character conversion and writeChar doesn't? That should be documented. |
|
Back to top |
|
 |
bruce2359 |
Posted: Fri Oct 16, 2009 5:28 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Quote: |
What is the maxmsgln of the queue? |
A message consists of your application data and the MQMD (and properties), so queue maxmsglength must be large enough to accommodate all of this. _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
smp |
Posted: Tue Oct 20, 2009 12:25 am Post subject: |
|
|
Newbie
Joined: 15 Oct 2009 Posts: 4
|
I found out new experiences:
If I generate a String with a length of:
- 97702: no exception will be thrown
- 97703 - 97730: an excpetion will be thrown
- 97731: no exception will be thrown
and no characterSet will be set (= standard 819 is used) ->
Code: |
MQQueue queue = QManagager.accessQueue(...)
MQMessage message = new MQMessage();
message.writeString(myGeneratedString);
queue.put(message, MQPutMessageOptions);
|
If I use writeChars instead of writeString it works in the 97703 - 97730 range too. |
|
Back to top |
|
 |
smp |
Posted: Tue Oct 20, 2009 12:52 am Post subject: |
|
|
Newbie
Joined: 15 Oct 2009 Posts: 4
|
Okay I think this bug has been removed before.
I changed my MQSeries libs and now it seems to work.
Where can I get the newest lib?-> com.ibm.mq-x.x.jar + connector.jar |
|
Back to top |
|
 |
PeterPotkay |
Posted: Tue Oct 20, 2009 3:57 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Download the latest MQ Client Support Pack from IBM's website. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
gbaddeley |
Posted: Tue Oct 20, 2009 2:25 pm Post subject: |
|
|
 Jedi Knight
Joined: 25 Mar 2003 Posts: 2538 Location: Melbourne, Australia
|
bruce2359 wrote: |
Quote: |
What is the maxmsgln of the queue? |
A message consists of your application data and the MQMD (and properties), so queue maxmsglength must be large enough to accommodate all of this. |
maxmsgln includes the message data and properties, but NOT the message descriptor (MQMD) of the message.
Message data can include embedded standard MQ headers, like MQDLH and MQXQH. These can also include a copy of the MQMD from the original message. _________________ Glenn |
|
Back to top |
|
 |
|