Question & Answer
Question
Why am I receiving the following DFHSO0001 message when starting up one of my CICS Transaction Server for z/OS (CICS TS) regions?
DFHSO0001 applid An abend (code 0C4/AKEX) has occurred
at offset X'265C' in module DFHSOIS.
SYMPTOMS: PIDS/5655Y0400 LVLS/690 MS/DFHSO0001 RIDS/DFHSOIS
PTFS/UI32899 AB/S00C4 AB/UAKEX ADRS/0000265C
Answer
The failing instruction in the dump at offset 2658 in DFHSOIS (PTF level UI32899) is 00265896045018 or when looking at the listing of DFHSOIS the instruction:
OI PRLICICS(@05),B'00000100'
Register 5 (R5) is 00000000_00000000 which is bad. Therefore, the abend0C4 occurred. R5 is from R2 + 18. The TCB address and STCB address contain valid addresses, but OTCB address contains all zeroes. The problem is that the SO TCB does not appear to be dubbed as an OMVS process and so does not have an OTCB.
Looking into the same dump from UNIX System Services (USS) perspective, you can see that a dub had just failed on the TCB that took the abend0C4. The dub is failing because the number of processes for this userid (UID) has been exceeded. To do this, you need to look for 'DUB Exit' trace and verify that +10 into that CTRACE entry contains FFFFFFFF , +14 contains 0000009C and +18 contains 0B250012.
You can enter the following command from IPCS option 6) to find the Return Value, Return Code, and Reason Code:
IP CTRACE COMP(SYSOMVS) LOCAL FULL ASIDLIST(X'yyy') OPTIONS((KERNINFO))
The Return Value is at +10, the Return Code is at +14, and the Reason Code is at +18.
For example, the following shows a partial of the command result:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
COMPONENT TRACE FULL FORMAT
COMP(SYSOMVS)
OPTIONS((KERNINFO))
FCN...NOOP SYSCALL...NOOP PID...00000000 MODULE...BPXPRIN1
**** 12/11/2016
SYSNAME MNEMONIC ENTRY ID TIME STAMP DESCRIPTION
------- -------- -------- --------------- -------------
MVSA PROCESS 0B0B005B 01:31:32.445664 DUB EXIT
ASID..00E2 USERID....xxxxxxxx STACK@....7F565000
TCB...009B3B88 EUID......00000000 PID.......00000000
+0000 8040D700 00400000 00000000 00000000 FFFFFFFF 0000009C 0B250012 | . P.. ...................... |
FCN...NOOP SYSCALL...NOOP PID...00000000 MODULE...BPXPRIN1
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
OMVS CTRACE buffers show the dub is failing with RC9C RSN0B250012. To determine the meaning of reason codes for z/OS UNIX and zSeries File System (zFS), see BPXMTEXT for z/OS UNIX reason codes for the details.
From TSO, enter TSO BPXMTEXT xxxxxxxx, where xxxxxxxx is the reason code. For example: To find the meaning of RSN=0B250012 from TSO, enter:
TSO BPXMTEXT 0B250012
You will get these results:
JRMaxChild: The maximum number of processes for this user ID has been exceeded
Action: Ask the system programmer or system administrator to increase the
MAXPROCUSER parameter of the BPXPRMxx parmlib member.
Under that same UID, you need review the number of processes started under that UID, and compare them to either the BPXPRMxx MAXPROCUSER value, or PROCUSERMAX if the value is being overridden by the process's OMVS segment. This can be queried using command:
LU userid OMVS(PROCUSERMAX(nnnn))
If the problem does recur, you will need to get a dump of OMVS and its dataspaces by specifying the following MVS dump options:
DSPNAME=('OMVS'.SYS*,'OMVS'.BPX*),JOBLIST=(OMVS)
To figure out the number of active processes in this ASID, using the OMVS dump, enter command:
IP OMVSDATA SUMMARY
and then search for the target ASID in the ASID column.
You will also need review your limits and make sure they are reasonable by entering the following command:
D OMVS, LIMITS
If you do not see MAXPROCUSER listed in your D OMVS,LIMITS output , then you do not have it set. The default value is 25. It can also be overridden on a per-process basis, where you have to query it by entering the following TSO LU command:
LU userid OMVS(PROCUSERMAX(nnnn))
In summary, you need to determine how many processes you generally would expect to see under that started tasks and whether that was an anomaly (and if so, why there were too many processes started by one of those jobs). Sometimes the jobs are in fact behaving fine and just require a revisiting of the initial values set.
Sharon Yang
IBM CICS L2 Support
Product Synonym
CICS/TS CICSTS CICS TS CICS Transaction Server
Was this topic helpful?
Document Information
Modified date:
27 January 2017
UID
dwa1339425