ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » Mainframe, CICS, TXSeries » How to write more than 32767 characters to an MQ via PL/1??

Post new topic  Reply to topic
 How to write more than 32767 characters to an MQ via PL/1?? « View previous topic :: View next topic » 
Author Message
kandababu
PostPosted: Tue Sep 13, 2011 11:46 pm    Post subject: How to write more than 32767 characters to an MQ via PL/1?? Reply with quote

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
View user's profile Send private message
fjb_saper
PostPosted: Wed Sep 14, 2011 12:27 am    Post subject: Re: How to write more than 32767 characters to an MQ via PL/ Reply with quote

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
View user's profile Send private message Send e-mail
mqjeff
PostPosted: Wed Sep 14, 2011 3:30 am    Post subject: Reply with quote

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
View user's profile Send private message
Vitor
PostPosted: Wed Sep 14, 2011 4:09 am    Post subject: Re: How to write more than 32767 characters to an MQ via PL/ Reply with quote

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
View user's profile Send private message
bruce2359
PostPosted: Wed Sep 14, 2011 5:29 am    Post subject: Re: How to write more than 32767 characters to an MQ via PL/ Reply with quote

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
View user's profile Send private message
Vitor
PostPosted: Wed Sep 14, 2011 5:41 am    Post subject: Re: How to write more than 32767 characters to an MQ via PL/ Reply with quote

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
View user's profile Send private message
bruce2359
PostPosted: Wed Sep 14, 2011 5:57 am    Post subject: Reply with quote

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
View user's profile Send private message
LuisFer
PostPosted: Sat Sep 17, 2011 2:04 am    Post subject: Re: How to write more than 32767 characters to an MQ via PL/ Reply with quote

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
View user's profile Send private message
cicsprog
PostPosted: Tue Sep 20, 2011 10:03 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Mainframe, CICS, TXSeries » How to write more than 32767 characters to an MQ via PL/1??
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.