View previous topic :: View next topic
|
Author |
Message |
deepaannjohn
New User
Joined: 23 Feb 2006 Posts: 19 Location: Bangalore
|
|
|
|
Hi,
Can some one enlight me on how CICS decides the memory needed to be allocated to a program?
The program is coded according to CICS 3.1 standards and I am using channels and containers?
The WS variables come up to 38KB. The total memory used as can be seen from the trace is 254 Kb.
My guess is that apart from WS memory, the memory allocated for program execution will include the total size of the channel.
But iw as surprised to see that with even when i tested with different data, the memory allocated remained constant which is 254 Kb.
Please help. |
|
Back to top |
|
|
Earl Haigh
Active User
Joined: 25 Jul 2006 Posts: 475
|
|
|
|
channels, containers, storage getmains, etc. are outisde of the program code memory size.
why are you concerned with this ? are you having short on storage
conditions in CICS region? |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
Quote: |
My guess is that apart from WS memory, the memory allocated for program execution will include the total size of the channel. |
Do you have some basis for this guess other than sheer speculation? What does CEMT I PROG(????????) show you -- perhaps something about 260,096 bytes? And when you say
Quote: |
Can some one enlight me on how CICS decides the memory needed to be allocated to a program? |
do you mean just the program executable memory, or other things -- many of which, as Earl points out, will not be part of the program memory? |
|
Back to top |
|
|
deepaannjohn
New User
Joined: 23 Feb 2006 Posts: 19 Location: Bangalore
|
|
|
|
Hi,
I am using the 'trace' facility in omegamon xe to see the finer details of my program execution. i have the option of seeing the getmain issued by cics for a particular program in 'trace'.
Copy pasting that below:
│ EXECIN │ BNSPXXXX│FFFFFF│ GETMAIN │ 259528
│ EXECOUT│ BNSPXXXX│FFFFFF│ GETMAIN │2701C478
Here BNSPXXXX is my program name and cics tried to do a getmain for 259528 memory.
The concern from the CICS consultant is that 254K for one single Getmain is huge.
I need to bring this figure down.
So i am trying to figure out how cics determines this figure and accordingly i need to perform some memory tuning.
FYI, my program does not issue any getmain, its done by cics on behalf of my program.
[/quote] |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
Does your program parse xml?
What sort of things does the program do (database, vsam, panel(s), mq, other service)?
What is going on in the code immediately before the getmain? |
|
Back to top |
|
|
deepaannjohn
New User
Joined: 23 Feb 2006 Posts: 19 Location: Bangalore
|
|
|
|
Hi,
The program does not parse any XML. There is no MQ. Its having a bit heavy application logic. And the WS memory is ~38KB.
the program does not issue a get main instea cics does it on behalf of the program. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
Perhaps you should go back to the CICS consultant and discuss the program with that person. We have programs in our CICS regions that regularly go over 1 million bytes of storage used according to Mainview; unless you start getting Short-On-Storage messages in the CICS region I wouldn't want to spend much time investigating the memory usage of a single program. And even if the messages start to show up, you need to determine whether the memory this program is using is from the storage pool that is going short on storage. |
|
Back to top |
|
|
Earl Haigh
Active User
Joined: 25 Jul 2006 Posts: 475
|
|
|
|
how large are your channels/containers ? |
|
Back to top |
|
|
deepaannjohn
New User
Joined: 23 Feb 2006 Posts: 19 Location: Bangalore
|
|
|
|
Hi Earl,
The memory in channel is 107702 k |
|
Back to top |
|
|
Earl Haigh
Active User
Joined: 25 Jul 2006 Posts: 475
|
|
|
|
ask your cics consultant when does cics system acquire the large piece
of memory on behalf of your program. |
|
Back to top |
|
|
pankaj_kulkarni111
New User
Joined: 17 Aug 2006 Posts: 13 Location: Pune
|
|
|
|
1. Do you access mainview from your TSO? Mainview is a admin tool used for DB2, IMS, CICS etc..
2. If yes, you can check the memory used by each transaction but my dear you need to watch that happening few times and then you can decide on the memory usage for specific transaction
3. I don't think you can control the memory allocated to any specific program. instead the memory is allocated to a CICS region in which your programs are running.
4. For example, CTSUT1 is your CICS region, then you can just check that CICS region in SDSF DA and from REGION=*** , you can come to know the memory allocated to that CICS region.
5. If your CICS man think that 254K for one single Getmain is huge, then ask him to reduce the memory and see performance for a couple of days, though it's risky if its production region |
|
Back to top |
|
|
|