IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

VSAM - AIX - RECORD LENGTH


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
manojkumar.sesuraj

New User


Joined: 15 Apr 2009
Posts: 43
Location: Mumbai

PostPosted: Thu Jun 25, 2009 11:09 am
Reply with quote

Hi,
I have a VSAM file with RECSZ (80 80). I defined the AIX file with using the same VSAM file. And, the RECSZ of the AIX is RECSZ (3338,99015). While running my JCL, I got S806 due to the RECSZ in AIX. So, my IDCAMS step returned RC 0012.
Here is my calculation for the Max Rec Length,

= 5 + (size of alternate key) + (size of primary key * max number of duplicates)
= 5 + 9 + (33 * 23260)
= 767594

But, the Max. length of AIX RECSIZE = 767750 icon_wink.gif

So, my AIX record length is exceeded the limit. I have tried with the maximum RECSZ limit. But, again I got the same S806 abend. Can anybody tell me how to resolve this issue?
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Thu Jun 25, 2009 11:34 am
Reply with quote

Quote:
I got S806 due to the RECSZ in AIX

And this is due to the size of the AIX.
May I suggest that you carefully read the description of an S806 abend.

I have done your research for you - see below - .
Quote:

806

Explanation: The supervisor, or the Supervisor Call (SVC) for the BLDL (build a directory entry list) macro, detected an error during the processing of a LINK(X), XCTL(X), ATTACH(X), or LOAD macro with the EP (entry point) or EPLOC (EP location (address)) operand.
The reason code in register 15 identifies the error:

Code Explanation

04
The system could not find the module, whose entry point is the value of the EP or EPLOC operand, in the indicated library (private library, job library, or link library). This situation can occur when LSEARCH=YES is specified on the macro and the limited library search fails to locate the module. For an alias name, ensure that the entry point attributes match that of the load module which was previously loaded (that is, authorization, RMODE, entry point displacement).

08
An uncorrectable I/O error occurred when the BLDL control program routine attempted to search the directory of the library that contained the program whose entry point was specified in the EP or EPLOC operand. This can occur if the specified library is an uninitialized partitioned data set (PDS).
An incorrect data extent block (DEB) has been detected by the BLDL control program. The DEB was built in other than protect key 0 through 7.


0C
The supervisor attempted to search a library for the program that the EP or EPLOC operand specifies and found that the library data control block (DCB) is not open.

10
A program issued a LOAD macro with the explicit load option, but there is no DCB parameter. For explicit loads, the program must supply the DCB parameter with the macro because the system searches for the module that the LOAD specifies only in the library that the DCB parameter specifies.

14
The system could not find the module, whose entry point is the value of an EP or EPLOC operand of a XCTL(X) macro, in the link pack area (LPA), which is where the module must be when the module is requested by an SVC routine.

18
An SVC routine issued a XCTL(X) macro for a module. The system tried to search the link pack area directory to find the module, but the directory had not as yet been built.

1C
The data control block (DCB), included as part of a LINK(X), LOAD, XCTL(X), or ATTACH(X) macro is incorrect.

2C
Internal error.


System Action: The system issues a message depending on the reason code accompanying the abend:

Code Message

04
CSV003I

08
CSV004I

0C
CSV005I

10
CSV007I

14
CSV008I

18
CSV006I

1C
CSV021I


The system issues an ABEND dump.
Application Programmer Response: If the reason code is X'04', this is probably a user error. Make sure that the requesting program was not incorrectly modified. Make sure that the source library was indicated correctly and that the indicated library does contain the requested program. For an alias name, make sure the alias attributes match the attributes of the load module which was already loaded; check the library authorization, RMODE, and alias entry point displacement). Also, check that there are no duplicate aliases or related primary module names in the library concatenation. MVS expects that all module names, and aliases, are unique across every library. Correct the error, and run the job step again.

If the reason code is X'14' or X'18', report this completion code to the system programmer.

If the reason code is X'0C' or a X'1C', it is a probable user error. Make sure that the DCB for the library is valid and open. Correct the error and run the job step again.

System Programmer Response: For reason code X'08', resubmit the job. Then have the operator enter a START GTF command specifying tape output, MODE=EXT and TIME=YES. Have the operator reply TRACE=IO in response to message AHL100A.

Format the output with the IPCS GTFTRACE subcommand.

If the error recurs and the program is not in error, see the system programmer response for messages in the job log.

For reason code X'2C' or if the problem persists, search problem reporting data bases for a fix for the problem. If no fix exists, contact the IBM Support Center. Provide the ABEND dump and the source program listing for the job.

Source: Contents supervision (CSV)
Back to top
View user's profile Send private message
manojkumar.sesuraj

New User


Joined: 15 Apr 2009
Posts: 43
Location: Mumbai

PostPosted: Thu Jun 25, 2009 12:31 pm
Reply with quote

Thanks a lot EXPAT for spending your time on this...

Sorry for the confusion on S806. In my JCL, I returned S806 if any of my prior steps RC > 04. icon_cry.gif

Here, I got the COBOL return code was 16. And, the SYSOUT says that,
"F88XREF WRITE:FAILED. FILE STATUS IS 44"

The return code 44 is - A BOUNADRY VIOLATION DUE TO ATTEMPT TO WRITE A RECORD OF IMPROPER LENGTH.

I have already mentioned that I have used Maximum RECSZ in my AIX. But, still I have faced the same issue. Any ideas... icon_idea.gif
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Thu Jun 25, 2009 3:40 pm
Reply with quote

Quote:
Sorry for the confusion on S806. In my JCL, I returned S806 if any of my prior steps RC > 04.
Can you please share your (magic) JCL?
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Thu Jun 25, 2009 3:46 pm
Reply with quote

Anuj, I assume this is one of those cause an abend tricks when a return code is unfavourable. e.g. if RC=4 then run a nonexistant program to cause an abend.
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Thu Jun 25, 2009 5:03 pm
Reply with quote

Hi Expat,

Never seen such a trick in my small experience -- but why do one like to abend while RC=4 can be very well handled in some other suitable manner, isn't it?
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Thu Jun 25, 2009 5:18 pm
Reply with quote

I'm confused. Why not define your AIX file with RECSZ(3338,767750)? Wouldn't that get rid of your problem?
Back to top
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Thu Jun 25, 2009 5:24 pm
Reply with quote

Anuj,

in the old days we either branched to x'00000000' or divided by zero or CALLed a non-existant module to cause a dump.

newer technology (since the 80's) there are abend modules with dump options supplied by IBM.
Back to top
View user's profile Send private message
manojkumar.sesuraj

New User


Joined: 15 Apr 2009
Posts: 43
Location: Mumbai

PostPosted: Thu Jun 25, 2009 6:32 pm
Reply with quote

Hey Anuj,
Please look at the following magic (JCL) code for RC > 4,

//********************************************************************
//*
//*------- NOTE ----- NOTE ------- NOTE ------ NOTE ---- NOTE -------
//*
//* THIS STEP WILL FORCE AN 806 ABEND, WHICH WILL PROMPT OPERATIONS
//* TO CALL AN ANALYST. STEP WILL EXECUTE IF STEP JOB GETS CC > 04.
//*
//********************************************************************
//*
//TESTRC0 IF (RC GT 4) THEN
//*
//STEP999 EXEC PGM=PKILL
//*
//SYSUT1 DD DUMMY,DCB=BLKSIZE=80
//SYSUT2 DD DUMMY,DCB=BLKSIZE=80
//*
//SYSIN DD DUMMY,DCB=BLKSIZE=80
//*
//SYSPRINT DD SYSOUT=*
//*
// ELSE
// ENDIF
//*
//TESTRC1 IF ABEND=TRUE THEN
//*
//********************************************************************
//* SEND A PHONE TEXT MESSAGE TO THE GRID ON-CALL ANALYST INDICATING *
//* A PRODUCTION ON-CALL ABENDED. *
//********************************************************************
//*
//MAILABND EXEC PGM=IEBGENER
//SYSIN DD DUMMY
//*
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Thu Jun 25, 2009 6:49 pm
Reply with quote

please when posting post significant material

Quote:
Please look at the following magic (JCL) code for RC > 4,

Code:
//********************************************************************
//*
//*------- NOTE ----- NOTE ------- NOTE ------ NOTE ---- NOTE -------
//*
//* THIS STEP WILL FORCE AN 806 ABEND, WHICH WILL PROMPT OPERATIONS
//* TO CALL AN ANALYST. STEP WILL EXECUTE IF STEP JOB GETS CC > 04.
//*
//********************************************************************
//*
//TESTRC0 IF (RC GT 4) THEN
//*
//STEP999 EXEC PGM=PKILL
//*
//SYSUT1 DD DUMMY,DCB=BLKSIZE=80
//SYSUT2 DD DUMMY,DCB=BLKSIZE=80
//*
//SYSIN DD DUMMY,DCB=BLKSIZE=80
//*
//SYSPRINT DD SYSOUT=*
//*
// ELSE
// ENDIF
//*
//TESTRC1 IF ABEND=TRUE THEN
//*
//********************************************************************
//* SEND A PHONE TEXT MESSAGE TO THE GRID ON-CALL ANALYST INDICATING *
//* A PRODUCTION ON-CALL ABENDED. *
//********************************************************************
//*
//MAILABND EXEC PGM=IEBGENER
//SYSIN DD DUMMY
//*


there is no magic there, just a useless waste of resources
why not simply use
Code:
//TESTRC0 IF (RC GT 4) THEN
//*
//********************************************************************
//* SEND A PHONE TEXT MESSAGE TO THE GRID ON-CALL ANALYST INDICATING *
//* A PRODUCTION ON-CALL ABENDED. *
//********************************************************************
//*
//MAILABND EXEC PGM=IEBGENER
//SYSIN DD DUMMY
//*
...
...
...
// ELSE
...
...
...
// ENDIF

disregard Your comments just follow the logic

usually in IBM installation samples ( things might have changed lately )
the standard program name for an 806 abend was EXPCT806 ( EXPECT 806 )

PKILL looks like a uss commanf
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Thu Jun 25, 2009 7:34 pm
Reply with quote

Thanks Dick, I still need to investigate on those lines, kind of intresting to know more about throwing S806 for RC=4, how good this bargain is?
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Thu Jun 25, 2009 7:47 pm
Reply with quote

Quote:
how good this bargain is?

useless icon_cool.gif why not act directly on the RC4 ?? ( repeat on )
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Fri Jun 26, 2009 1:24 am
Reply with quote

Hello,

Quote:
kind of intresting to know more about throwing S806 for RC=4, how good this bargain is?
It is a rather terrible bargain. . .

Some sites really, really want an abend rather than merely handling some return code. For this very reason the User Abend is available (rather than forcing some meaningless abend (0cb, 806, etc). When done well, there is a list of user abend codes and what caused them (i.e. a U1212 might be "Customer not on file", a U2000 might be "Invalid start date in parameter", and so on. There would also be a little program that would be executed that received which abend code to issue via the parm (i.e. //ABENDER EXEC PGM=ABENDER,PARM='1212').

Most of the places i've been lately are less insistent on an abend as the scheduling software handles problem situations more elegantly.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts Store the data for fixed length COBOL Programming 1
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts PARSE Syntax for not fix length word ... JCL & VSAM 7
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
No new posts Access to non cataloged VSAM file JCL & VSAM 18
Search our Forums:

Back to Top