|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
How to write more than 32767 characters to an MQ via PL/1?? |
« View previous topic :: View next topic » |
Author |
Message
|
kandababu |
Posted: Tue Sep 13, 2011 11:46 pm Post subject: How to write more than 32767 characters to an MQ via PL/1?? |
|
|
Newbie
Joined: 13 Sep 2011 Posts: 1
|
We use MQPUT and MQPUT1 statements for writing Messages to MQ via PL/1 CICS program.
Requirement is to write a message with data more than 32767 characters as a single message. Challenge is that in PL/1 we have a restriction that we can store only 32767 characters. I tried sending data to MQPUT via Based Structure / Array / Pointer but it doesn't work.
MQPUT is declared as an External Assemble entry and argument to receive message data is declared as *.
Can anyone share your thoughts on this. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Sep 14, 2011 12:27 am Post subject: Re: How to write more than 32767 characters to an MQ via PL/ |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
kandababu wrote: |
We use MQPUT and MQPUT1 statements for writing Messages to MQ via PL/1 CICS program.
Requirement is to write a message with data more than 32767 characters as a single message. Challenge is that in PL/1 we have a restriction that we can store only 32767 characters. I tried sending data to MQPUT via Based Structure / Array / Pointer but it doesn't work.
MQPUT is declared as an External Assemble entry and argument to receive message data is declared as *.
Can anyone share your thoughts on this. |
I hope that someone with knowledge of PL/1 can be of better help. As is I can only speculate that '*' means a pointer in memory. So now you need to find a way to build a memory area, addressable by a pointer, that can hold more than the afore mentioned number of characters / bytes.
I figure these links might be of some help
http://www.csimn.com/CSI_pages/PLI_2.html
http://books.google.com/books?id=l_xpKuyMYaMC&pg=PA423&lpg=PA423&dq=memory+pointers+in+pl/1&source=bl&ots=_-gdI8_leA&sig=kFWL0-pnZ15psiA0cqVEeVyVi8s&hl=en
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Sep 14, 2011 3:30 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
If it is not possible to construct a single memory buffer that is large enough for what you need, then you can look at using message segmentation to create a set of messages, each 32767 long, that the receiving application can treat as a single message.
Provided PL/1 supports segmentation. |
|
Back to top |
|
 |
Vitor |
Posted: Wed Sep 14, 2011 4:09 am Post subject: Re: How to write more than 32767 characters to an MQ via PL/ |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
kandababu wrote: |
We use MQPUT and MQPUT1 statements for writing Messages to MQ via PL/1 CICS program. |
PL/1? Still? I was writing that in 198n, when I still had hair & was new to legal drinking. I thought Count Cobol killed it years ago....
kandababu wrote: |
Requirement is to write a message with data more than 32767 characters as a single message. |
Are you using the CICS bridge? IIRC that puts data in the COMMAREA hence the 32k limit.
kandababu wrote: |
Challenge is that in PL/1 we have a restriction that we can store only 32767 characters. |
I don't remember PL/1 having a size limit, hence my question about CICS.
kandababu wrote: |
I tried sending data to MQPUT via Based Structure / Array / Pointer but it doesn't work. |
No, it wouldn't.
kandababu wrote: |
Can anyone share your thoughts on this. |
You need to be thinking about sending message segments. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
bruce2359 |
Posted: Wed Sep 14, 2011 5:29 am Post subject: Re: How to write more than 32767 characters to an MQ via PL/ |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Vitor wrote: |
I don't remember PL/1 having a size limit, hence my question about CICS.
|
If memory serves, the 32k limit is an IBM compiler limitation, not a PL/I language limitation. _________________ 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 |
|
 |
Vitor |
Posted: Wed Sep 14, 2011 5:41 am Post subject: Re: How to write more than 32767 characters to an MQ via PL/ |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
bruce2359 wrote: |
Vitor wrote: |
I don't remember PL/1 having a size limit, hence my question about CICS.
|
If memory serves, the 32k limit is an IBM compiler limitation, not a PL/I language limitation. |
I shudder to think who's compiler I was using back then. I know it ran on MVS and before that, DOS (and all on System360/System370 hardware) but it's all so fuzzy now....
 _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
bruce2359 |
Posted: Wed Sep 14, 2011 5:57 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
I was using IBMs PL/I compiler way back then, but don't recall ever rubbing up against the 32k limit - as I did with COBOLs 32k limit. But, like you, it's all a blur. _________________ 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 |
|
 |
LuisFer |
Posted: Sat Sep 17, 2011 2:04 am Post subject: Re: How to write more than 32767 characters to an MQ via PL/ |
|
|
 Partisan
Joined: 17 Aug 2002 Posts: 302
|
kandababu wrote: |
We use MQPUT and MQPUT1 statements for writing Messages to MQ via PL/1 CICS program.
Requirement is to write a message with data more than 32767 characters as a single message. Challenge is that in PL/1 we have a restriction that we can store only 32767 characters. I tried sending data to MQPUT via Based Structure / Array / Pointer but it doesn't work.
MQPUT is declared as an External Assemble entry and argument to receive message data is declared as *.
Can anyone share your thoughts on this. |
I suppose that this one works for a single 64Kb MQ message ......
Code: |
DCL 1 MENSAJE,
2 MSJ2(2) CHAR(32767) INIT((2)(32767)' ');
CALL MQPUT(HCONN,HOBJPUT,MSGDESCPUT,PUTMSGO,BFERLEN,MENSAJE,
COMPCOD,REASON); |
|
|
Back to top |
|
 |
cicsprog |
Posted: Tue Sep 20, 2011 10:03 am Post subject: |
|
|
Partisan
Joined: 27 Jan 2002 Posts: 347
|
How about write a subroutine your PL/I can call in a different language, C, ASM, or COBOL to handle the message > than 32k. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|