Skip to main content

How to Solve SOC7 Abend - with screen shots

Below process helps to find out the statement, caused the SOC7 error.

Check the Sysout of RUNJCL. This shows the error statement and lists offset value

Take the Offset Value 000003C0

Got to respective Compilation Job listing, check the sysprint

Search for the offset value 0003C0 (delete +00 -- initial 3 letters of Offset value and search for it) check below 2 screen shots

This Offset value is listed under line no 0045 – which refers to Move statement.

Take this no. 045 and find for it in same sysprint. This points to the exact statement, caused SOC7

This 045 pints to the Move statement 1526, this is the exact line in the program

  • Check for the above line no. In source program. This points to the statement highlighted below.
  • Check the statement, variable check-4, which is added to check-6. These are having different Picture clause.
  • check-4 is alfhanumaric, holding some junk data, when this data is moved to Chcek-6 variable(of comp-3) creates SOC7 error.
  • This is just an example to explain one cause for Soc7 error and how to find the rootcause statement.

Method - 2 .

If abend-aid is available, check the same.

This will directly provides the error statement and line no.


seenu said…
excellent sir. for the last 2 months i am searching for explanation of how to solve soc7 error. at last i found bcoz of u. thank you sir.
Amjith said…
This is really fantastic. !!!!......... But can you tell me when a job ran for several years and it abended because of SOC7 and how can I find the Record and field that causing the issue ? can you email the same to ?
Tumu's said…

The explanation is very good but in my sysprint i dont see this code. do i need to change any options.
infocrossing said…
Very Clear explanation.
Arunam said…
Offset Code will be listed in SYSPRINT, if and only if you compilation option XREF/LIST.
awsome explaination..
deepthi said…
its very clear.. superb explanation with screenshots..
Jay said…
Excellent visual treat to us. Thank you
Anonymous said…
Great work..
Go Further......
Modak said…
Nicely explained...Thanks a lot for this great post...:-)
Anonymous said…
Thanks a lot for this great post...:-)

Anonymous said…
am unable to see screenshots
V. Nalini said…
i'm unable to the screen shots
can u plz post those screen shot once
Anonymous said…
m unable to see the screen shots.. :(
Anonymous said…
m unable to see the screen shots.. :(
lee woo said…
Big shots are only little shots who keep shooting. See the link below for more info.

Leslie Lim said…
I love this post, and I was absolutely thrilled to see the other links that you published that go along with this topic. Thank you for sharing your thoughts. I am happy to be a new follower. :)


Popular posts from this blog


In DB2, the columns defined as NULL needs to be handled carefully else it will throw null exception error, in order to over come this error data type can be handled by using null indicator.
NULL is stored using a special one-byte null indicator that is "attached" to every nullable column. If the column is set to NULL, then the indicator field is used to record this. Using NULL will never save space in a DB2 database design - in fact, it will always add an extra byte for every column that can be NULL. The byte is used whether or not the column is actually set to NULL. The indicator variable is transparent to an end userConsider below Table :
Note :: Unless you specify NOT NULL, the default is to allow for NULLIn above table SN and SNAME columns holds null values by default, in order to handle these null variables we need to have NULL-INDICATORS declares in the Program as

DB2 Utilities and Commands (helpful for DB2 Certification)

• Utilities
– Image Copy
– CDB SuperCopy
– Quiesce
– Load
– CDB SuperLoad
– Check
– CDB SuperUnload
– Recover
– CDB SuperRestore
– Reorg
– CDB SuperReorg
– Runstats
– Report Recovery
– Repair

• Commands
– Display/Stop/Start Database
– Display/Term Utility

DB2 Logging

• DB2 Logs
– A ‘journal’ of all activity for a subsystem
– Undo/redo records for table updates
– Each event in the log is identified by its RBA(relative byte address)
– RBA denotes a point in time: the greater the RBA, the later in time the event occurred
– Data Sharing - LRSNs along with RBAs

– Some events:
• Full image copy
• Quiesce
• Load

Data Sharing

• Benefits of Data Sharing
– High availability
– Workload balancing
– Sysplex parallelism
– Better use of resources

Backing Up Tables

• Image Copy
– Backup for DB2 table spaces
– Can also copy index spaces
– Can perform full (all data) or incremental (changed data) copies
– Can prevent or allow updates by others during copy

• CDB SuperCopy
– Faster method of creating stan…