S0C7 ABEND - Production Crisis Under Pressure
Table of Contents
Interview Question
"2:15 AM Monday. Claims processing batch ABENDs with S0C7 at Step 15 of 22.
Context:
- Batch window closes at 6 AM
- 25,000 claims waiting for payment processing (downstream steps)
- Step 15 calculates claim reserves using policyholder age and claim amount
- Same job ran successfully Friday night
- No code changes since Friday
- Input file format unchanged
Your SYSUDUMP shows:
- ABEND at statement COMPUTE WS-RESERVE = WS-AMT * WS-FACTOR
- WS-AMT is PIC S9(7)V99 COMP-3
- WS-FACTOR is PIC SV999 COMP-3
- Offset shows failing record is #8,347
You have 90 minutes to diagnose and fix. Walk me through your next steps."
What This Tests
- Systematic troubleshooting under time pressure
- Understanding of COMP-3 data exceptions
- Ability to isolate root cause quickly
- Production fix vs. permanent solution thinking
Good Answer Should Include
Immediate Actions (First 30 minutes):
1. Extract record #8,347 from input file using SORT or file editor
2. Examine WS-AMT and WS-FACTOR in hex - look for invalid packed decimal (sign nibble must be C, D, or F)
3. Check if WS-AMT or WS-FACTOR is initialized before COMPUTE
4. Review recent data source changes (even if format unchanged)
Root Cause Analysis:
5. Likely causes in priority order:
- Uninitialized field (WS-FACTOR not set for certain policy types)
- Invalid data in input (age field corrupt causing lookup failure)
- Array overflow in factor table lookup
- Vendor file corruption
Quick Fix (For Tonight):
6. Add defensive code: Use NUMVAL or ON SIZE ERROR
7. Skip problematic record and log to error file
8. Implement in emergency change and restart from Step 15
Permanent Fix (After Production):
9. Add input validation in earlier step
10. Implement data quality checks before COMPUTE
11. Update unit tests to cover boundary conditions
Red Flags
- ❌ Immediately blames "bad data" without examining dump
- ❌ Wants to rerun without fixing anything
- ❌ Doesn't know how to read packed decimal in hex
- ❌ Suggests "just initialize all fields" without understanding root cause
- ❌ No mention of error logging or reporting
Follow-Up Questions
Difficulty Level
Mid to Senior
Relevant Roles
Production Support, Developer, Application Analyst