ACF89001 VSAM I/O ERROR - RTN: ACF04RSC DISP: 129A RET: 8 FDBK: 108
search cancel

ACF89001 VSAM I/O ERROR - RTN: ACF04RSC DISP: 129A RET: 8 FDBK: 108

book

Article ID: 402246

calendar_today

Updated On:

Products

ACF2 - z/OS

Issue/Introduction

The following error happens when using Dynamic compilation or ACFNRULE. It occurs when the number of rows in the rule exceeds a certain threshold.  

RULESET EXCEEDS 4K, DYNAMIC COMPILE OPTION ENABLED, RULELONG COMPILER  NOW IN EFFECT                                                       
                                                                     
TOTAL RECORD LENGTH= 19374 BYTES, 60 PERCENT UTILIZED                
ACF89001 VSAM I/O ERROR - RTN: ACF04RSC DISP: 129A RET: 8 FDBK: 108  
ACFFE001 SVCA-I/O DUMP IN PROGRESS                                   
ACFFE002 SVCA-I/O DUMP COMPLETED                                     
ERROR DURING PROCESSING  

 

Environment

Product: ACF2

Resolution

The code of 108 from your error indicates the record exceeded the allowed size. When RULELONG is specified in the GSO RULEOPTS record, ACF2 will think it can go up to 32k in length, but if your VSAM file is not this large then you will run into the VSAM error you are receiving.

The way to resolve this is either to expand the ACF2 INFOSTG database to accommodate a 32k rule, use NEXTKEYs, or a simple way is to delete any obsolete rule entries that your team created over the years.

Issue a LISTCAT command for your INFOSTG database:

LISTCAT ENT('dsn') ALL

Review the output and look for MAXLRECL, as this will show your rules are capped at that length.

Your rule size reached 19374 bytes from message TOTAL RECORD LENGTH= 19374 BYTES, 60 PERCENT UTILIZED                

So it is too large to fit in the record size of your VSAM if your MAXLRECL is length is smaller.

If you want to write rules at a maximum of 32K in length, then you will need to expand the MAXLRECL of the VSAM to 32760. Please see Expand Rule Sets Using RULELONG for the procedure on how to do this. Note that the procedure does require a stop and restart of ACF2.

If your VSAM database is quite old and has several hundred CI splits, you may want to consider Reorganising the databases anyway. Even though that is not the cause of your issue, it would help with the overall hygiene of your VSAM database.