Carl's original posting was regarding MQSeries Messages greater than the 32k
field size limit, which led to the discussion about allocating greater than
the 16mb pointer size.

MQSeries V5R1 or higher supports message sizes up-to 100mb, but the standard
16mb pointer size means that the max is "harder" to achieve. 

However, by taking Scott's teraspace-enabled call and merging it with the MQ
code, it is possible to call the mq functions passing a pointer of close to

I took Scott's code and changed the number of occurrences of the ds to be
3199 x 32k, which gave me a message string of 104824832. This is 32k shy of
the full 100mb - I have found this works with MQ, but if I take it up to the
full 3200 x 32k mq blows with a size issue which may be due to MQ putting
message headers onto the string - still looking in to that one.

Anyways, as an exercise in large string manipulation across programs it's a
great start.

I have put the code on

Thanks to Scott for boosting me to that elusive 100mb message!



-----Original Message-----
From: Carl Galgano [mailto:cgalgano2@xxxxxxxxxxxxxxxxx] 
Sent: 25 March 2004 19:33
To: 'Midrange Systems Technical Discussion'
Cc: 'David George'
Subject: RE: Teraspace

>From my post on sending MQ message great than 32K, David George shared with
me via a private email how to handle terabyte space and provided a sample
of the code to do it.
Since I did not have the requirement for terabyte code, I did not save, the
attachment he sent me was RPG-ILE code.  I am copying Dave on this email so
perhaps he can post it here, or send it to you via a private email.

Carl J. Galgano
EDI Consulting Services, Inc.
600 Kennesaw Avenue, Suite 400
Marietta, GA  30060
(770) 422-2995 - voice
(419) 730-8212 - fax
AS400 EDI, Networking, E-Commerce and Communications Consulting and
Premium Ice Cream Brands shipped Overnight

Visit our website to subscribe to our FREE AS/400 Timesharing Service

-----Original Message-----
From: Scott Klement [mailto:klemscot@xxxxxxxxxxxx] 
Sent: Thursday, March 25, 2004 1:06 PM
To: Midrange Systems Technical Discussion
Subject: Re: Teraspace

Hi Zak,

> CRTRPGMOD and CHGMOD don't seem to have any way to change the storage 
> model to *TERASPACE. How do I do it?

There are two different things here:


This means that the program is able to work with memory allocated in
teraspace.  Pointers are allowed to address it, etc.  You can use the
TS_malloc() API and similar APIs to allocate & work with teraspace memory.

This is an "always on" feature in ILE RPG at V4R2 and later, in ILE CL at
V5R1 and later, etc.  ILE C can enable or disable this with the TERASPACE
option on the CRTCMOD command.


This means that the compiler uses teraspace for the all of the normal
variables in your program (as opposed to BASED variables that you allocate
the memory for yourself.)  Doing this would allow you to have, for example,
a data structure that's total size is larger than 16mb.

AFIAK, only ILE C supports the teraspace storage model.  You can enable it
with the STGMDL(*TERASPACE) option on the CRTCMOD command.


This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe,
or change list options,
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.