IDMS

  • 1.  Re:Re: Get storage

    Posted Jul 23, 2009 06:25 AM
    It may come to that. I'm not sure my assembler skills are up to it
    though.
    :-)

    We have a situation here where user programs need to pass XML to and
    from
    some common routines. The size of the XML can vary from a few hundred
    bytes
    to infininitely large. We are currently using a work record for this
    purpose, which is the defined as the 32K (the maximum work record size).
    This is unsatisfactory for a couple of reasons:
    - All of the user programs have to allocate the 32K in their working
    storage which wastes a lot of space in many cases.
    - 32K is not enough in other cases. Some XML documents are so large
    that
    it's not practical to try to fit them into pre-defined program storage.

    The XML parse and generate commands need to work on the entire XML
    document
    at once. So we can't break it up into pieces, which rules out scratch
    and
    queue records. Plus we need to keep it fairly simple, so as not put an
    undue burden on the programmers.


    With a pointer and a length, you can define the storage field as one
    byte in
    the linkage section, and manipulate the data using offsets. This works
    great with the XML parse command. I have done something similar in
    CICS,
    but I had access to the pointer and length values there. I don't here.

    I think an assembler program may be the only option. Other suggestions
    will
    be more than welcome!