View previous topic :: View next topic |
Author |
Message |
yadav2005 Intermediate
Joined: 10 Jan 2005 Posts: 348 Topics: 144
|
Posted: Fri Jun 27, 2008 10:55 am Post subject: Return code 4 while building alternate indexes |
|
|
Members,
I am doing the process as below:
a) Created the VSAM Files ,Return Code=0
b) Load the data into VSAM Files,Return Code=0
c) Created Alternate Indexes for the three VSAM Files,Return Code=0
d) When i Building the actual Alternate Indexes for VSAM Files i am getting ,Return Code=4
Can anybody help me with what are the possible causes of error which i can look at for why it is successful but still having Return Code = 4 which my understanding is a warning. |
|
Back to top |
|
|
kolusu Site Admin
Joined: 26 Nov 2002 Posts: 12375 Topics: 75 Location: San Jose
|
|
Back to top |
|
|
yadav2005 Intermediate
Joined: 10 Jan 2005 Posts: 348 Topics: 144
|
Posted: Fri Jun 27, 2008 11:54 am Post subject: |
|
|
Kolusu,
Thanks for the link and it is very informative.Can you please let me know what could be the possible causes of getting RC=4 and while defining the path and i using UPDATE and PATHENTRY. |
|
Back to top |
|
|
Nic Clouston Advanced
Joined: 01 Feb 2007 Posts: 1075 Topics: 7 Location: At Home
|
Posted: Fri Jun 27, 2008 12:02 pm Post subject: |
|
|
Looking at the manual, which I assume you have done, it infers that a message was issued to describe the error. _________________ Utility and Program control cards are NOT, repeat NOT, JCL. |
|
Back to top |
|
|
yadav2005 Intermediate
Joined: 10 Jan 2005 Posts: 348 Topics: 144
|
Posted: Fri Jun 27, 2008 1:18 pm Post subject: |
|
|
Thanks Nic & Kolusu,
I could make out the error by seeing at IDC Messages:
IDC1646I
IDC1653I
In my case:
IDC1646I nnnnn EXCESS PRIME {KEY|RBL} VALUES FOR AIX KEY key
Explanation: The specified key is the key of an alternate index record that was too short to contain all the prime key or relative block address (RBA) pointer values that occurred for that alternate index key.
One or more alternate index records too short to contain all the prime key or RBA pointers.
I had created an Alternate Index with RECORDSIZE(avg, max) both different , so my understanding is that if i give avg and max length same the problem will be solved.
Please can you let me know on this. |
|
Back to top |
|
|
kolusu Site Admin
Joined: 26 Nov 2002 Posts: 12375 Topics: 75 Location: San Jose
|
Posted: Fri Jun 27, 2008 2:33 pm Post subject: |
|
|
yadav2005,
RECORDSIZE parameter has nothing to do with your KEY. you need to use the parm KEYS to define the Alternate index key
Code: |
KEYS(length offset]64 0)
describes the alternate-key field in the base cluster's data record.
The key field of an alternate index is called an alternate key. The data record's alternate key can overlap or be contained entirely within another (alternate or prime) key field.
The sum of length plus offset cannot be greater than the length of the base cluster's data record.
When the base cluster's data record is allowed to span control intervals, the record's alternate-key field is within the record's first segment (that is, in the first control interval).
length offset
specifies the length of the alternate key (between 1 and 255), in bytes, and its displacement from the beginning of the base cluster's data record, in bytes.
|
Kolusu |
|
Back to top |
|
|
yadav2005 Intermediate
Joined: 10 Jan 2005 Posts: 348 Topics: 144
|
Posted: Sun Jun 29, 2008 9:16 am Post subject: |
|
|
Kolusu,
Thanks for the information.Let me tell what my problem is exactly:
a)I have a base cluster with key as 7 bytes with offset as 0 and Avg Record size and Max Record size are 200 bytes.
Code: |
KEYS(7 0)
RECORDSIZE(200 200)
|
b) I am creating 3 alternate indexes as below of which first one is:
Code: |
AIX1 KEYS(30 57)
RECORDSIZE(200 2000)
|
I am not able to understand here the AVG Recordsize is 200 bytes but Maximum Record Size is 2000.My understanding is that length of the AIX key is 30 bytes and it starts in position 57 in the base cluster and the Recordsize is calcuted as ( 5 + 30 + 7 ) = 42 bytes
Code: |
5 - Control Info
30 - length of AIX
7 - Primary Key
|
But why it is defined as RECORDSIZE(200 2000) not able to figure out and i guess it should be (42 42).Please let me know on this what could be the reason of having RECORDSIZE(200 2000) when the maximum Recordsize in the base cluster itself is 200 bytes why should we have 2000.
Similarly for :
Code: |
AIX2 KEYS(30 95)
RECORDSIZE(X Y)
AIX3 KEYS(30 125)
RECORDSIZE(X Y)
|
which is again defined the way for AIX1 with different values strange and the Creation of Indexes is successful.
c) Buliding Indexes for AIX1 , AIX2 , AIX3 , while building i am turning up with errors:
Code: |
IDC1646I : X EXCESS PRIME KEY VALUES FOR AIX KEY Y
X - SOME VALUE
Y - SOME HEXADECIMAL VALUE
IDC1653I : AIX1 / AIX2 / AIX3 BULIT WITH ERRORS
|
Even though the job is not abending but i get RC=4.Now my concern is remove the RC=4 and have RC=0 |
|
Back to top |
|
|
expat Intermediate
Joined: 01 Mar 2007 Posts: 475 Topics: 9 Location: Welsh Wales
|
Posted: Wed Jul 02, 2008 5:53 am Post subject: |
|
|
Have you tried to build the AIX's individually to see if it is only one AIX that gives the message. _________________ If it's true that we are here to help others,
then what exactly are the others here for ? |
|
Back to top |
|
|
|
|