As a CICS SysProg, this makes me cringe. I would highly recommend rewriting
your program to conform to CICS standards, and use CICS to acquire the
storage for you. Take a look at the CICS prolog and epilog macros with the
DFHEISTG macro. These macros make this super simple and I would wager that
it wouldn't require much effort to rewrite your program with these macros.

Most importantly (like others have said), don't issue MVS SVC's while
running on the CICS QR TCB. You still cause the TCB to be delayed and
possibly cause the region to be inoperable.

On Wed, Mar 3, 2021, 6:40 PM Farley, Peter x23353 <
0000031df298a9da-dmarc-requ...@listserv.ua.edu> wrote:

> +1 to Binyamin's answer.  I have several assembler called subroutines that
> run in either CICS or batch but they are all LE enabled (CEEENTRY / CEETERM
> macros et. al.).
>
> LE is your friend here.  CICS automatically accommodates LE storage
> requests from CICS user storage so operation of the subroutines in CICS or
> batch is transparent to the subroutine.
>
> If they are really small assembler routines that can use the caller's RSA
> to save a few regs and use the rest for dynamic storage then you need no
> getmain or freemain at all.  If the subroutines are more complex and need
> full register save and restore then please seriously consider using LE
> services.
>
> If your callers are all COBOL (or other HLL) then you can (usually) safely
> assume you are already in an initialized LE environment.
>
> Performing OS getmain and freemain when you are running under CICS is
> fraught with danger and complexity, as Esme points out in her reply.  Don't
> do it unless you really, really, really need to, and if you still have to
> do it then you had better follow all the CICS rules extremely carefully.
>
> Peter
>
> -----Original Message-----
> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf
> Of Binyamin Dissen
> Sent: Wednesday, March 3, 2021 5:09 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Acquire Storage
>
> I would recommend going to LE and let it take care of things.
>
> You must consider whether you are using storage protection in which case
> you are running in key9.
>
> On Wed, 3 Mar 2021 21:30:04 +0000 "Savor, Thomas"
> <00000330b7631be3-dmarc-requ...@listserv.ua.edu> wrote:
>
> :>Ok, got a question for you CICS Assembler folks.....
> :>
> :>I have a CICS Assembler program that works fine....its Re-Entrant of
> course.
> :>Now I also have some Assembler Sub-programs that can run in Batch.
> :>And I want to add them to my Online Program.
> :>But...in order to be able to execute in Online it needs to also be
> re-entrant....which is fine for Batch, but Online not so much....
> :>Now in the sub-program, im executing a STORAGE OBTAIN for the Register
> SAVEAREA.
> :>But as soon as I try and store the first Register in this acquired
> storage area, Protection Exception - Abend  (I think it was a S0C4)
> :>Anyway, Is there a sub pool to properly acquire storage that makes Batch
> and Online Happy or is GETMAIN better or what is the proper way to acquire
> storage in both Worlds ??
>
> --
>
> This message and any attachments are intended only for the use of the
> addressee and may contain information that is privileged and confidential.
> If the reader of the message is not the intended recipient or an authorized
> representative of the intended recipient, you are hereby notified that any
> dissemination of this communication is strictly prohibited. If you have
> received this communication in error, please notify us immediately by
> e-mail and delete the message and any attachments from your system.
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to