How to resolve the soc4 & soc7
other than following answers.
Soc4 can resolved using mispleed dd name and dd name is not
matching with file
and soc7 check the sysdump and copy the offest address then
correct it in the program.
Answers were Sorted based on User's Feedback
Answer / baskar
S0C4 occurs mainly due to protection exception. It means
when you trying to move a larger variable to a small
variable. Whereas S0C7 is data exception. It occurs when
you try to move a non numeric value to a Numeric variable.
| Is This Answer Correct ? | 109 Yes | 17 No |
Answer / sandeep
S0C4 occurs mainly due to protection exception. It means
when you are using subcripts for example my subsripts range
is 11 but I am trying 12 & your compiler option is ssrange
you got soc4 error.
| Is This Answer Correct ? | 57 Yes | 6 No |
Answer / sujan
Possible causes for the Abend SOC4 include:
1. Invalid address was referenced due to subscript error or
bad parameter passed
2. If we are moving a group move, then the receiving record
variable lenght is defined incorrectly, like the target
field size is less than the moving field size.
4. In Files, if we are trying to read or write a file which
was not open, then we can get SOC4.
5. Tried to goback in the SORT output procedure.
| Is This Answer Correct ? | 38 Yes | 4 No |
Answer / amit tomer
to resolve soc7, go to spool, check sysdump and copy offset
value,than come to jcl,in command line type F Offset value
then press f5 ,u will get location where the error, then
correct it..
| Is This Answer Correct ? | 26 Yes | 6 No |
Answer / arun singh
GEnerelly soc-7 occours due to data mismatch it means if u
are placing numeric data in alphabetic field. It can be
resolved by coading PARM=TEST(SYM)
and you will get the local variable whose value you have
given wrong.
| Is This Answer Correct ? | 16 Yes | 8 No |
Answer / vinutna koritala
soc4 error occurs due to invalid address or out of
subscript.i.e trying to read dataset which is in not open.
or
when read command is read againist empty vsam dataset.
how to ignore out of subscript errors?
write logic:pgm=IGYCRCTL
pgm=IEWL/HEWL,PARM=(SSRANGE,NONSSRANGE)are compiler options
which must be coaded in parm parameter.
soc7 error occurs in the foll situations.
moving data from alphanumeric to editing characters.
moving data from editing characters to alpha numeric data
type.
involve alphanumeric datatypes in arthemetic operations.
| Is This Answer Correct ? | 11 Yes | 6 No |
Answer / vasantha
resolving soc7.... ans mentioned above is one of the
correct ways...
but let me know how to resolve soc7 when offset address
includes hexadecimal values...
i have followed the same way... but not able to find the
exact location..
Pls help me out..
| Is This Answer Correct ? | 6 Yes | 2 No |
Answer / sainath
whenever sco4 error occurs there are two types are reasons
are there.......
1)Array in subscript size we are assign 5bytes of memory.we
are giving 6bytes of memory on that time soc04 error come.
2)in file concept file record length is 80.when ps record
length is not equal to 80,soc04 error will come.
so plz check out ps & file reclength.
| Is This Answer Correct ? | 5 Yes | 3 No |
Answer / maruthi
Please refer to
mainframe-faqs.blogspot.com/.../soc7-screen-shots-edited.html
| Is This Answer Correct ? | 3 Yes | 2 No |
What do you understand by psb and acb?
IDENTIFICATION DIVISION. PROGRAM-ID. UPDT. AUTHOR.anbu. DATE-WRITTEN. AUG 13. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT CMSTR ASSIGN TO CINP1 ORGANIZATION IS INDEXED ACCESS IS SEQUENTIAL RECORD KEY CM2-KEY FILE STATUS IS WS-CMSTR-FST. SELECT CTAB ASSIGN TO CINP2 ORGANIZATION IS ACCESS IS SEQUENTIAL RECORD KEY VSAM-WHSE- KEY FILE STATUS IS WS-CTAB- FST. DATA DIVISION. FILE SECTION. FD CMSTR. COPY RXCYFC20. FD CTAB. COPY AITYWHSE. ************************************************************ ****** *** WORKING STORAGE VARIABLES *** ************************************************************ ****** WORKING-STORAGE SECTION. 01 WS- VARIABLES. 05 WS-EB PIC X(02) VALUE ZEROES. 05 WS-DIV PIC 9(03) VALUE ZEROES. 05 WS-CMF-RECS-REWRITTEN PIC 9(01) VALUE ZERO. *** FILE STATUS VARIABLES *** 05 WS- FILESTATUS. 10 WS-CMSTR-FST PIC 9(02) VALUE ZEROES. 10 WS-CTAB-FST PIC 9(02) VALUE ZEROES. *** END OF FILE VARIABLES *** 05 WS-CMSTR-EOF PIC X(01) VALUE 'N'. 88 WS-CMSTR-EOF-YES VALUE 'Y'. 88 WS-CMSTR-EOF-NO VALUE 'N'. 05 WS-CTAB-EOF PIC X(01) VALUE 'N'. 88 WS-CTAB-EOF-YES VALUE 'Y'. 88 WS-CTAB-EOF-NO VALUE 'N'. **** ERROR VARIABLES **** 05 WC-ABEND-900 PIC 9(03) VALUE 900. 05 WE-ERR-CODE PIC 9(02) VALUE ZEROES. 05 WE-ABEND-CODE PIC 9(03) VALUE ZEROES. ************************************************************ **** ********* PROCEDURE DIVISON ********** ************************************************************ **** PROCEDURE DIVISION. 0000- BEGIN. PERFORM 1000-INITIALISE THRU 1000- EXIT. PERFORM 2000-PROCESS THRU 2000- EXIT UNTIL WS-CMSTR-EOF- YES. DISPLAY 'WS-CMF-RECS-REWRITTEN :' WS-CMF-RECS- REWRITTEN. PERFORM 5000-CLOSE THRU 5000- EXIT. GOBACK. 0000- EXIT. EXIT. 1000- INITIALISE. OPEN I-O CMSTR. EVALUATE WS-CMSTR- FST WHEN 00 WHEN 97 CONTINUE WHEN OTHER DISPLAY 'ERROR IN READING INPUT FILE: ' DISPLAY WS-CMSTR-FST MOVE WS-CMSTR-FST TO WE-ERR-CODE PERFORM 9999-ABEND-PARA THRU 9999-EXIT END-EVALUATE. OPEN INPUT CTAB. EVALUATE WS-CTAB-FST WHEN 00 WHEN 97 CONTINUE WHEN OTHER DISPLAY 'ERROR IN READING INPUT FILE: ' DISPLAY WS-CTAB-FST MOVE WS-CTAB-FST TO WE-ERR-CODE PERFORM 9999-ABEND-PARA THRU 9999-EXIT END-EVALUATE. 1000-EXIT. EXIT. 2000-PROCESS. READ CMSTR. EVALUATE WS-CMSTR-FST WHEN 00 CONTINUE WHEN 10 SET WS-CMSTR-EOF-YES TO TRUE GO TO 2000-EXIT WHEN OTHER DISPLAY 'ERROR IN READING INPUT FILE: ' DISPLAY WS-CMSTR-FST MOVE WS-CMSTR-FST TO WE-ERR-CODE PERFORM 9999-ABEND-PARA THRU 9999-EXIT END-EVALUATE IF CM2-RECORD-TYPE-SOLD-TO MOVE CM2-ENTERING-BRANCH TO WS-EB PERFORM 3000-READ THRU 3000-EXIT UNTIL WS-CTAB-EOF-YES END-IF. 2000-EXIT. EXIT. 3000-READ. MOVE WS-EB TO VSAM-WHSE-CD. MOVE 'WHSE' TO VSAM-WHSE-ID. READ CTAB. EVALUATE WS-CTAB-FST WHEN 00 MOVE WHSE-DIV-CODE TO WS-DIV PERFORM 4000-REWRITE-CMF THRU 4000-EXIT WHEN 10 SET WS-CTAB-EOF-YES TO TRUE GO TO 3000-EXIT WHEN OTHER DISPLAY 'ERROR IN READING TABLE FILE: ' DISPLAY WS-CTAB-FST MOVE WS-CTAB-FST TO WE-ERR-CODE PERFORM 9999-ABEND-PARA THRU 9999-EXIT END- EVALUATE. 3000- EXIT. EXIT. 4000-REWRITE- CMF. IF WS-DIV = 250 OR 252 MOVE 'F' TO CM2-FREIGHT- TYPE MOVE 1 TO CM2-FREIGHT-THRESHOLD- AMT ADD +1 TO WS-CMF-RECS- REWRITTEN REWRITE CM2-SOLD-TO- RECORD DISPLAY 'RECORD UPDATED' END- IF. * EVALUATE WS-CMSTR- FST * WHEN 00 * CONTINUE * WHEN OTHER * DISPLAY 'FILE NOT UPDATED' * DISPLAY WS-CMSTR- FST * MOVE WS-CMSTR-FST TO WE-ERR-CODE * PERFORM 9999-ABEND-PARA THRU 9999-EXIT * GO TO 4000-EXIT * END-EVALUATE. 4000-EXIT. EXIT. 5000-CLOSE. CLOSE CMSTR CTAB. 5000-EXIT. EXIT. 9999-ABEND-PARA. COMPUTE WE-ABEND-CODE = WC-ABEND-900 + WE-ERR-CODE CALL 'ILBOABN0' USING WE-ABEND-CODE GO TO 5000-CLOSE. 9999-EXIT. EXIT. 5000-CLOSE. CLOSE CMSTR CTAB. 5000-EXIT. EXIT. 9999-ABEND-PARA. COMPUTE WE-ABEND-CODE = WC-ABEND-900 + WE-ERR-CODE CALL 'ILBOABN0' USING WE-ABEND-CODE GO TO 5000-CLOSE. 9999-EXIT. EXIT. //this program is giving maxcc=0, but not updating..
If we use GO BACK instead of STOP RUN in cobol?
what r the types of perform statement
How to read a 100 record from a file through cobol?
Is it possible that the redefines clause has different picture clauses compared to the one it redefined?
what are the utilities for load and unload the DB2 tables
I have program P1 which calls file F1 which has 100 records and following structure 001 .................. 002 .................. 003 .................. 098 .................... 099 ................... 100 .................... Now I want to read these files and write these records in file F2 in following manner. 001 ...... 051 ..... 002 ...... 052 ..... 003 ...... 053 ..... .......... ....... .......... ....... .......... ....... 048 ........ 098 ...... 049 .......... 099 ....... 050 .... 100 ......
i WANT ALL ERROR codes IN CICS and DB2
here is my requirement A1 is alphanumeric with value 'A1B2C3D4' as defined below 05 A1 PIC X(8) VALUE IS 'A1B2C3D4' but i need to have A2,A3 as ABCD & 1234 repectively...... A2 = ABCD A3 = 1234 Can you please explain me what are the different ways to do it?
How can we pass data from cobol to JCl?
When the working storage variables get allocated? a.At Compile time b.At starting of the run time c.At end of the run time. d.None of these