Discussion:
LE QuestionT
(too old to reply)
scott Ford
2017-06-06 14:05:32 UTC
Permalink
Raw Message
All:

I need some help understanding LE and Cobol. I ran our Cobol STC with RPT
options and STG options on, i see a large like 700K Heap size. My first
question is where does LE place the HEAP ( what Subpool ) ? Secondly, is
that HEAP storage freed anytime during the running of a STC written in
COBOL ? We do not use CEEGTST , etc ...

Regards,
--
*IDMWORKS *

Scott Ford

z/OS Dev.




“By elevating a friend or Collegue you elevate yourself, by demeaning a
friend or collegue you demean yourself”



www.idmworks.com

***@idmworks.com

Blog: www.idmworks.com/blog





*The information contained in this email message and any attachment may be
privileged, confidential, proprietary or otherwise protected from
disclosure. If the reader of this message is not the intended recipient,
you are hereby notified that any dissemination, distribution, copying or
use of this message and any attachment is strictly prohibited. If you have
received this message in error, please notify us immediately by replying to
the message and permanently delete it from your computer and destroy any
printout thereof.*

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Lizette Koehler
2017-06-06 14:24:59 UTC
Permalink
Raw Message
There a several presentations in SHARE.ORG for LE HEAP information. Perhaps they can be of help to you

Lizette
-----Original Message-----
Behalf Of scott Ford
Sent: Tuesday, June 06, 2017 7:06 AM
Subject: LE QuestionT
I need some help understanding LE and Cobol. I ran our Cobol STC with RPT
options and STG options on, i see a large like 700K Heap size. My first
question is where does LE place the HEAP ( what Subpool ) ? Secondly, is that
HEAP storage freed anytime during the running of a STC written in COBOL ? We
do not use CEEGTST , etc ...
Regards,
--
*IDMWORKS *
Scott Ford
z/OS Dev.
“By elevating a friend or Collegue you elevate yourself, by demeaning a
friend or collegue you demean yourself”
www.idmworks.com
Blog: www.idmworks.com/blog
*The information contained in this email message and any attachment may be
privileged, confidential, proprietary or otherwise protected from disclosure.
If the reader of this message is not the intended recipient, you are hereby
notified that any dissemination, distribution, copying or use of this message
and any attachment is strictly prohibited. If you have received this message
in error, please notify us immediately by replying to the message and
permanently delete it from your computer and destroy any printout thereof.*
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Charles Mills
2017-06-06 15:05:56 UTC
Permalink
Raw Message
In-line.

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of scott Ford
Sent: Tuesday, June 6, 2017 7:06 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: LE QuestionT
I need some help understanding LE and Cobol. I ran our Cobol STC with RPT options and STG options on, i see a large like 700K Heap size.
700K is not large these days LOL. I allocate 3MB on startup!
My first question is where does LE place the HEAP ( what Subpool ) ?
Don't know but should be in the LE books. Above the 16MB line. I have a feeling of subpool zero but that may just be an assumption on my part.
Secondly, is that HEAP storage freed anytime during the running of a STC written in COBOL ? We do not use CEEGTST , etc ...
You can control how that works, at least in C/C++. If you exhaust the heap it allocates more (and you can control the increment). You can control what happens if the heap contracts: is the storage freed, or kept around in case it is needed again, saving the overhead of another GETMAIN?

You can run a storage report at end of job to see if you have any leaks. You turn it on with a HEAPCHK statement in CEEOPTS DD. Makes things slow during testing.

CM

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
B***@T-ONLINE.DE
2017-06-07 06:46:03 UTC
Permalink
Raw Message
First allocation in subpool 1,
secondary allocations in subpool 2.
this is true for heap and Stack
allocation.

I remember a very useful IBM presentation
on this topic which is titled "stacks are simple,
heaps are Fun". you will find it using Google

hth

Kind regards

Bernd






--- Original-Nachricht ---
Von: Charles Mills
Betreff: Re: LE QuestionT
Datum: 06.06.2017, 17:06 Uhr
An: IBM-***@LISTSERV.UA.EDU





In-line.

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On
Behalf Of scott Ford
Sent: Tuesday, June 6, 2017 7:06 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: LE QuestionT
Post by scott Ford
I need some help understanding LE and Cobol. I ran our Cobol STC with RPT
options and STG options on, i see a large like 700K Heap size.

700K is not large these days LOL. I allocate 3MB on startup!
Post by scott Ford
My first question is where does LE place the HEAP ( what Subpool ) ?
Don't know but should be in the LE books. Above the 16MB line. I have a
feeling of subpool zero but that may just be an assumption on my part.
Post by scott Ford
Secondly, is that HEAP storage freed anytime during the running of a STC
written in COBOL ? We do not use CEEGTST , etc ...

You can control how that works, at least in C/C++. If you exhaust the heap
it allocates more (and you can control the increment). You can control what
happens if the heap contracts: is the storage freed, or kept around in case
it is needed again, saving the overhead of another GETMAIN?

You can run a storage report at end of job to see if you have any leaks.
You turn it on with a HEAPCHK statement in CEEOPTS DD. Makes things slow
during testing.

CM

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

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Tony Harminc
2017-06-07 15:18:26 UTC
Permalink
Raw Message
IIRC subpool 1 is for LE internals and subpool 2 for user heap and stack.
Makes sense so presumably a user-space storage overwrite wont corrupt LE so
it can shutdown cleanly.
Different subpools of user-key storage won't prevent overwrites. I
imagine it's to help with debugging, and perhaps to allow the entire
subpoool to be freed in one go even if the pointers are
lost/corrupted.

Tony H.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Charles Mills
2017-06-07 16:25:47 UTC
Permalink
Raw Message
I read that as perhaps "so a misguided user FREEMAIN won't foul up LE ..."

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Tony Harminc
Sent: Wednesday, June 7, 2017 8:19 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: AW: Re: LE QuestionT
IIRC subpool 1 is for LE internals and subpool 2 for user heap and stack.
Makes sense so presumably a user-space storage overwrite wont corrupt
LE so it can shutdown cleanly.
Different subpools of user-key storage won't prevent overwrites. I imagine it's to help with debugging, and perhaps to allow the entire subpoool to be freed in one go even if the pointers are lost/corrupted.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Peter Relson
2017-06-08 12:48:58 UTC
Permalink
Raw Message
My first question is where does LE place the HEAP ( what Subpool ) ?
And my initial response is a question: why would you care what subpool?
The subpool is almost certainly not a programming interface. You should
not write any code that depends on the subpool

Any presentation that describes the subpool likely does so to help you in
diagnosis situations, not in programming situations.
IIRC subpool 1 is for LE internals and subpool 2 for user heap and
stack. Makes sense so presumably a user-space storage overwrite wont
corrupt LE so it can shutdown cleanly.
Tony H's response was right on target. Using different user-region
subpools does nothing to help prevent overwrites or corruption.
It does help a bit with someone unintentionally freeing the wrong thing.
Some applications might choose unique subpools to accommodate a subpool
freemain.

Peter Relson
z/OS Core Technology Design


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Edward Gould
2017-06-08 16:14:31 UTC
Permalink
Raw Message
————————————SNIP———————————————————————————
Peter, good answer.
This reminds me a little of something long long ago. Maybe someone here can refresh (correct?) my memory.
From the time CICS came out the sysprogs were always seemingly fighting storage overlays (if memory serves me).
After 5-8 years?? CICS’s answer was to use different storage keys to isolate and prevent storage overlays.
Can someone correct my memory of this, please?

Ed
Tony H's response was right on target. Using different user-region
subpools does nothing to help prevent overwrites or corruption.
It does help a bit with someone unintentionally freeing the wrong thing.
Some applications might choose unique subpools to accommodate a subpool
freemain.
Peter Relson
z/OS Core Technology Design
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Anthony Thompson
2017-06-09 01:15:26 UTC
Permalink
Raw Message
STGPROT in the CICS SIT, telling CICS that various Dynamic Storage Areas should be allocated in CICS or user key storage. Also dependent parameters TRANISO, RENTPGM, TCTUAKEY, CWAKEY.

I think storage protection came in around CICS/ESA 3.3 (early 90's).

Ant.

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Edward Gould
Sent: Friday, 9 June 2017 1:35 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: LE QuestionT - now CICS
————————————SNIP———————————————————————————
Peter, good answer.
This reminds me a little of something long long ago. Maybe someone here can refresh (correct?) my memory.
From the time CICS came out the sysprogs were always seemingly fighting storage overlays (if memory serves me).
After 5-8 years?? CICS’s answer was to use different storage keys to isolate and prevent storage overlays.
Can someone correct my memory of this, please?

Ed
Tony H's response was right on target. Using different user-region
subpools does nothing to help prevent overwrites or corruption.
It does help a bit with someone unintentionally freeing the wrong thing.
Some applications might choose unique subpools to accommodate a
subpool freemain.
Peter Relson
z/OS Core Technology Design
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
scott Ford
2017-06-08 23:04:57 UTC
Permalink
Raw Message
Peter,

We write software using COBOL and HLASM and I had a situation where subpool
0 had orphaned blocks of storage and our STC was apparently in control.

I found out that a RMODE=24, AMODE=24 HLASM PGM doing disk I/O and called
by a STC has to do Freepool and after a close.
We were using RACF old macros ICHEINTY to perform extracts and they
defaulted to subpool=0 ..

Regards,
Scott
Post by Peter Relson
My first question is where does LE place the HEAP ( what Subpool ) ?
And my initial response is a question: why would you care what subpool?
The subpool is almost certainly not a programming interface. You should
not write any code that depends on the subpool
Any presentation that describes the subpool likely does so to help you in
diagnosis situations, not in programming situations.
IIRC subpool 1 is for LE internals and subpool 2 for user heap and
stack. Makes sense so presumably a user-space storage overwrite wont
corrupt LE so it can shutdown cleanly.
Tony H's response was right on target. Using different user-region
subpools does nothing to help prevent overwrites or corruption.
It does help a bit with someone unintentionally freeing the wrong thing.
Some applications might choose unique subpools to accommodate a subpool
freemain.
Peter Relson
z/OS Core Technology Design
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
Scott Ford
IDMWORKS
z/OS Development

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