Dynamic memory in standard COBOL; using large data fields



My review of available literature seems to indicate that COBOL-85 does
not support the notion of dynamic memory. That is, there is no standard
malloc or calloc style keywords or calls I can make to allocate and grow
a hunk of memory for an application.

I've got a simple buffer I want to be able to hold a significant amount
of data if necessary (say, 64k) but is often asked to just hold a few
hundred bytes.

I've seen that the latest ANSI/ISO standard for COBOL has the notion of
a pointer into a reserved chunk of memory, and obviously I could
implement my own "heap" for the whole program. The program is pretty
simple, though, so the only heap I might use is the fixed size of the
field anyway.

I'm just a bit concerned that my app (though short-running) grabs such a
large chunk of memory that it only uses a fraction of normally. I'm
also sort of stuck with passing the data (what I call a response) in a
data field (and not, for example, in file) because my app is a bit of
glue between a Java server and something else.

That "something else" is up to the customer, and I've provided a
copybook for them to get at the response via procedures in the glue app.
The notion is to provide controlled access to our Java server from
COBOL applications.

In retrospect I suppose I _can_ write out to a short-live "file" of some
manner, and pass a "handle" or reference to that file. Would this be
the correct COBOL way for such an application? I know nothing of files
on mainframes, but I'm a pretty smart guy and can figure this stuff out.

My main concern is that I want to ensure that the same code will work
fairly easily with a number of mainframe environments. Right now we
target OS/390 on zOS, but conceivably we could end up supporting almost
any COBOL-enabled system.

Thanks.

-- cm
.



Relevant Pages

  • Re: Dynamic memory in standard COBOL; using large data fields
    ... > My review of available literature seems to indicate that COBOL-85 does ... > not support the notion of dynamic memory. ... > allocate and grow a hunk of memory for an application. ... If you start using dynamic memory and pointers, ...
    (comp.lang.cobol)
  • Help me find out what memory sticks I use
    ... I think that my webserver needs more memory. ... DMI type 0, 20 bytes. ... ESCD support is available ... Internal Connector Type: None ...
    (comp.os.linux.misc)
  • Re: 2.6.23-rc1-mm2
    ... Zone PFN ranges: ... That doesn't make a whole pile of sense unless the memory map ... MSFT 97) ... # CPU idle PM support ...
    (Linux-Kernel)
  • Kernel 2.6.21.3 does not work with 8GB of RAM on Intel 965WH motherboards.
    ... When I use 8GB of memory on my x86_64 system, ... 4096 and blank "" to let the kernel use all 8GB of memory. ... # Linux kernel version: 2.6.21.3 ... # ACPI Support ...
    (Linux-Kernel)
  • Re: 2.6.13-mm3
    ... cache `size-32': double free, or memory outside object was overwritten ... slab error in cache_free_debugcheck: cache `size-32': double free, ... # ACPI Support ...
    (Linux-Kernel)