Problem: On the AIX operating system, COBOL programs triggered by JCL jobs in Enterprise Server were abending with RTS error 105, or freezing and not running. RTS 105 means a memory allocation error. The COBOL programs themselves were not attempting to allocate memory using CBL_ALLOC_MEM and/or malloc(). In an attempt to solve the error, the end-user had modified the EXEC statement, adding the REGION= parameter, which can override the default amount of storage space (in kilobytes or megabytes) the system allocates to a particular job or job step. They had tried REGION= values of 0M, 128M, and 1024M, but this did not fix the error. Solution: It turned out the AIX ulimit was limiting the amount of memory for the cassi process (i.e. the SEP). To diagnose this: Use "ps -ef | grep cassi32" at an AIX command prompt to reveal the running cassi32 processes (if running in 64-bit mode, grep for cassi64). The first column in this output reveals the AIX user who owns these processes. This user probably matches the Default Process User-ID, as configured in the Enterpriser Server Administration web page for each region. Log into the system as this particular AIX user. Then at the command prompt, enter: ulimit -a Pay particular attention to the value for memory(kbytes) in the ulimit -a output. The value may be set too low. As an experiment to determine whether ulimit values are the cause of the problem, try changing the "data", "rss", and "stack" settings to -1 i.e. unlimited, as follows: Using root permissions, edit the file /etc/security/limits and modify the values appearing under the header named "default:" default: data = -1 rss = -1 stack = -1 For changes to the /etc/security/limits file to take effect, the user must log out of the current login session and log back in. After logging back in, check the output of "ulimit -a" to verify that the changes did take effect. For the changes to affect cassi processes, the regions must be stopped then re-started. The AIX system does not need to be re-booted. If setting these limits to -1 i.e. unlimited does make the RTS 105 error go away, and/or stops the programs from freezing, then you know the ulimit was the original problem. In that case, you may not want to leave the settings at "unlimited". Experiment with different ulimit values until you find values generously high enough to allow the programs to run, but still less than "unlimited".
↧