Author |
Message
|
nab054371 |
Posted: Thu May 10, 2007 9:32 am Post subject: MQ V6.0 : MQRC = 2030 on segmentation |
|
|
Disciple
Joined: 15 Nov 2006 Posts: 173
|
Hi,
I am running into an issue when trying to segment message over 4 MB(5.2 MB message).
My JAVA application uses MQ API,sits on the same box as the message broker and writes to a local queue with following options:
qMessage = new MQMessage();
qMessage.messageFlags = MQC.MQMF_SEGMENTATION_ALLOWED;
qMessage.setVersion(MQC.MQMD_VERSION_2);
Now I am running into following error when reading the message back on the same box:
MQPUT failed: MQCC=2; MQRC=2030.
My options on a get are:
gmo.options = MQC.MQGMO_WAIT | MQC.MQGMO_FAIL_IF_QUIESCING | MQC.MQGMO_COMPLETE_MSG;
Looks like MQPUT fails when writing this message to a dynamic queue on the same box as the broker with 2030.
With segmenation,I am guessing I dont have to change MQXMSGLENGTH parameter on any of the queues?
MAXMSGLENGTH on the queue manager is 100MB.
thanks |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu May 10, 2007 9:40 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I'm confused.
You're getting a 2030 on your PUT, or your GET? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
nab054371 |
Posted: Thu May 10, 2007 9:45 am Post subject: |
|
|
Disciple
Joined: 15 Nov 2006 Posts: 173
|
sorry for the confusion. MQPUT(trying to write to dynamic queue) in the message flow fails with 2030 and my application reading fro this dynamic queue fails with 2033. |
|
Back to top |
|
 |
marcin.kasinski |
Posted: Thu May 10, 2007 9:49 am Post subject: |
|
|
Sentinel
Joined: 21 Dec 2004 Posts: 850 Location: Poland / Warsaw
|
Quote: |
2030 0x000007ee MQRC_MSG_TOO_BIG_FOR_Q
2033 0x000007f1 MQRC_NO_MSG_AVAILABLE
|
I hope it explains everything. _________________ Marcin |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu May 10, 2007 9:57 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Right, so the message never gets PUT because of the 2030, so it's not available to be GOT.
Are your messages persistent? If so you probably need to specify SYNCPOINT. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
nab054371 |
Posted: Thu May 10, 2007 10:00 am Post subject: |
|
|
Disciple
Joined: 15 Nov 2006 Posts: 173
|
No,the messages are not persistent. |
|
Back to top |
|
 |
nab054371 |
Posted: Fri May 11, 2007 2:30 am Post subject: |
|
|
Disciple
Joined: 15 Nov 2006 Posts: 173
|
|
Back to top |
|
 |
dgolding |
Posted: Fri May 11, 2007 2:51 am Post subject: |
|
|
 Yatiri
Joined: 16 May 2001 Posts: 668 Location: Switzerland
|
You say Max message length for the queue manager is 100Mb but what is it for the queue?
Code: |
dis q(<qname>) maxmsgl |
|
|
Back to top |
|
 |
marcin.kasinski |
Posted: Fri May 11, 2007 2:54 am Post subject: |
|
|
Sentinel
Joined: 21 Dec 2004 Posts: 850 Location: Poland / Warsaw
|
Maybe you should check channel max message size too. _________________ Marcin |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri May 11, 2007 3:47 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I believe it shouldn't matter what the queue MaxMsgLn is - as nab054371 is trying to get the qmgr to segment messages to FIT into the queue... _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
bruce2359 |
Posted: Fri May 11, 2007 5:15 am Post subject: |
|
|
Guest
|
Message segmentation is either explicitly done by the application (not the case here) OR by the queue manager when sending message segments from one qmgr to another qmgr via channels.
Are the two applications, the one that puts a message to the queue and the getting application, on different qmgrs? across channels?
Am I missing something? |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri May 11, 2007 5:23 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
nab054371 is trying to write code to have the qmgr segment messages when PUTTING.
When trying to do this, with the code shown, a 2030 is resulting.
It is only *slightly* possible, in my mind, that any channel MaxMsgLns would be involved. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
nab054371 |
Posted: Fri May 11, 2007 5:57 am Post subject: |
|
|
Disciple
Joined: 15 Nov 2006 Posts: 173
|
Thanks for your response guys.Turns out I could not get segmentation to work off of dynamic queue,I guess the model queue does not have options to enable segmentation.I was able to get it to work on one of our static queues. |
|
Back to top |
|
 |
bruce2359 |
Posted: Fri May 11, 2007 6:33 am Post subject: |
|
|
Guest
|
Check the QM (Queue Model) definition that the application opens. The QM has a max msg length attribute that must be as big as the message you intend to put to the resulting dynamic queue. |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri May 11, 2007 6:40 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
bruce2359 wrote: |
Check the QM (Queue Model) definition that the application opens. The QM has a max msg length attribute that must be as big as the message you intend to put to the resulting dynamic queue. |
nab054371 wrote: |
MAXMSGLENGTH on the queue manager is 100MB. |
_________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
|