Re:Get storage

Discussion created by ca.portal.admin on Jul 22, 2009
Thanks to Tommy's and Peter's suggestion, I am now getting a clean compile. But I don't seem to be getting a valid pointer back at run time. Can anyone provide a way to convert the pointer to a displayable format? Or better yet, some sample code that uses the pointer parameter for ""get scratch""?

I wish the storage interface had separate ""get"" and ""put"" commands, like the scratch and queue interfaces do. I am having some difficulty determining which parameters apply to which situation.
IDMS Public Discussion Forum


Re: Get storage
"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 s=
ome 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 purp=
ose, 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 stor=
age 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 un=
due burden on the programmers.

With a pointer and a length, you can define the storage field as one byte i=
n the linkage section, and manipulate the data using offsets. This works g=
reat with the XML parse command. I have done something similar in CICS, bu=
t 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 wil=
l be more than welcome!