View previous topic :: View next topic |
Author |
Message |
chandhroo Beginner
Joined: 02 Dec 2002 Posts: 36 Topics: 13
|
Posted: Mon Dec 23, 2002 8:45 am Post subject: Duplicates in Alternate Index |
|
|
Could anyone please tell me, is there any parameter to limit the number of duplicates in alternative index? Actually I'm getting error saying that duplicates exceeds the limit in alternative index. I don't know how to fix this error.
--Chandru |
|
Back to top |
|
|
kolusu Site Admin
Joined: 26 Nov 2002 Posts: 12376 Topics: 75 Location: San Jose
|
Posted: Mon Dec 23, 2002 10:11 am Post subject: |
|
|
Chandhroo,
I don't think there is a limit for the duplicates on the alternate index.The no: of duplcates on alternate index depends on how the alternate index is defined.The parameter Recordsize determines the no: od duplicates on the alternate index.
RECORDSIZE(average maximum):specifies the average and maximum length, in bytes, of an alternate index record.
For a KSDS
Code: |
RECORD SIZE = 5 + ALTERNATE KEY LENGTH + ( n * PRIME KEY LENGTH )
|
where 'n' is the number of duplicates
For an ESDS:
Code: |
RECORD SIZE = 5 + ALTERNATE KEY LENGTH + ( n * 4 )
|
Assuming there can be a maximum of 50 duplicates,for a ksds with Prime Key length = 10 and ALT Key length = 20,RECORDSIZE could be defined as RECORDSIZE (275 525).
Using the above formula we have:
AVG rec length = 5 + 20 + (25 * 10) = 275 (assuming an average of 25 duplicates)
MAX rec length = 5 + 20 + (50 * 10) = 525 (assuming 50 duplicates)
So check the alternate index definition and calculate it accordingly
Hope this helps...
cheers
kolusu |
|
Back to top |
|
|
chandhroo Beginner
Joined: 02 Dec 2002 Posts: 36 Topics: 13
|
Posted: Tue Dec 24, 2002 6:00 am Post subject: |
|
|
Kolusu,
It's very excellent to see your response. It's really very useful. However in my case record size is not used when defining AIX, BUFFERSPACE is used, could you please tell me how its releated to record size and duplicates. Please see my AIX define step.
Code: |
DEFINE AIX -
(NAME(&COAV..AIX4) -
RELATE (&COAV..C9999) -
KEYS (1 45) -
FOR(9999) -
TRK(2 1) -
IMBED -
REPLICATE -
SHAREOPTIONS (3 3) -
SPEED -
NONUNIQUEKEY -
BUFFERSPACE (32768)) -
DATA -
(NAME(&COAV..AIX4.DATA) -
CISZ(4096)) -
INDEX -
(NAME(&COAV..AIX4.INDEX) -
CISZ(2048))
DEF PATH -
(NAME(&COAV..PATH4) -
PENT(&COAV..AIX4) UPDATE)
|
--Chandru |
|
Back to top |
|
|
Mike Tebb Beginner
Joined: 02 Dec 2002 Posts: 20 Topics: 0 Location: Yorkshire, England
|
Posted: Tue Dec 24, 2002 9:32 am Post subject: |
|
|
Bufferspace is nothing to do with your recordsize.
As you have not specified a recordsize I believe you should get a default
maximum of 32600 (spanned) or 4089 (non-spanned). The default is spanned so you should get 32600 (display the attributes using FILEAID or IDCAMS to check this).
If your record size is 32600 then it would suggest that you have a lot of duplicate alternate indexes and maybe you should review the data used for that alternate key. _________________ Cheers - Mike |
|
Back to top |
|
|
chandhroo Beginner
Joined: 02 Dec 2002 Posts: 36 Topics: 13
|
Posted: Wed Jan 08, 2003 11:46 am Post subject: |
|
|
Thanks Mike,
Could you please me is there any limitation in the record size parameter. Im getting error as below.
IGD17103I CATALOG ERROR WHILE DEFINING VSAM DATA SET BDV4LB.RAJ.VSAM.CAS.COA.NCHO.AIX1
RETURN CODE IS 96 REASON CODE IS 4 IGG0CLEQ
IGD17219I UNABLE TO CONTINUE DEFINE OF DATA SET BDV4LB.RAJ.VSAM.CAS.COA.NCHO.AIX1
IDC3014I CATALOG ERROR
IDC3009I ** VSAM CATALOG RETURN CODE IS 96 - REASON CODE IS IGG0CLEQ-4
See below the statement:
Code: |
DEFINE AIX -
(NAME(BDV4LB.RAJ.VSAM.CAS.COA.NCHO.AIX1) -
RELATE (BDV4LB.RAJ.VSAM.CAS.COA.NCHO.C9999) -
KEYS (5 0) -
RECSZ(58760, 58760) -
FOR(9999) -
TRK(2 1) -
IMBED -
REPLICATE -
SHAREOPTIONS (3 3) -
SPEED -
NONUNIQUEKEY -
BUFFERSPACE (32768)) -
DATA -
(NAME(BDV4LB.RAJ.VSAM.CAS.COA.NCHO.AIX1.DATA) -
CISZ(4096)) -
INDEX -
(NAME(BDV4LB.RAJ.VSAM.CAS.COA.NCHO.AIX1.INDEX) -
CISZ(2048))
|
|
|
Back to top |
|
|
kolusu Site Admin
Joined: 26 Nov 2002 Posts: 12376 Topics: 75 Location: San Jose
|
Posted: Wed Jan 08, 2003 5:05 pm Post subject: |
|
|
Chandroo,
can you post your cluseter definition also.
Thanks
Kolusu |
|
Back to top |
|
|
Mike Tebb Beginner
Joined: 02 Dec 2002 Posts: 20 Topics: 0 Location: Yorkshire, England
|
Posted: Thu Jan 09, 2003 3:33 am Post subject: |
|
|
Change your TRK parameter to CYL. _________________ Cheers - Mike |
|
Back to top |
|
|
chandhroo Beginner
Joined: 02 Dec 2002 Posts: 36 Topics: 13
|
Posted: Fri Jan 10, 2003 8:13 am Post subject: |
|
|
Kolusu,
Please find cluster definition:
' DEFINE CLUSTER - ',
' (NAME(&VSAMOUT..C9999) - ',
' CYL(10 1) - ',
' FOR (9999) - ',
' RECSZ (80 80) - ',
' KEYS (47 0) - ',
' IMBED - ',
' FREESPACE (22 10) - ',
' REPLICATE - ',
' SPEED - ',
' BUFFERSPACE (87920) - ',
' SHAREOPTIONS (3 3)) - ',
' DATA - ',
' (NAME(&VSAMOUT..DATA) - ',
' CISZ(4096)) - ',
' INDEX - ',
' (NAME(&VSAMOUT..INDEX) - ',
' CISZ(2048)) ',
' REPRO INFILE(QSAMIN) - ',
' ODS(&VSAMOUT..C9999) ', |
|
Back to top |
|
|
chandhroo Beginner
Joined: 02 Dec 2002 Posts: 36 Topics: 13
|
Posted: Fri Jan 10, 2003 8:17 am Post subject: |
|
|
Could you please tell me is there any way to find out number of duplicates. For example in my case, i would to display some information if the number duplicates is greater than 1000. Thanks in advance.
Chandru |
|
Back to top |
|
|
|
|