When running an IDCAMS DEFINE ALIAS job with the SYMBOLICRELATE parameter, the job fails with the following ACF2 messages:
ACF99913 ACF2 VIOLATION-08,05,A123456,,USER01.&TSTCHAR..TSTALIAS,N/A
ACF99058 INVALID DSN USER01.&TSTCHAR..TSTALIAS OR LIB SYS1.LINKLIB
ACF95913 -AMS/CATALOG FUNCTION SUPPRESSED; AUTHORIZATION IS REQUIRED.
What is causing these errors?
ACF2 has it's own catalog validation intercept which performs additional validation that in some cases are not performed by MVS catalog processing. One of those cases for additional validation includes control over the RELATE or SYMBOLICRELATE values when performing an IDCAMS DEFINE ALIAS.
At the time of the DEFINE ALIAS processing, ACF2 makes a call to MVS symbolic translation services to convert the symbolic and then performs a dataset access check to verify the user has access to the translated dataset name. If the symbolic is not defined in MVS, there is not a way for ACF2 to translate it, so ACF2 will then treat the symbolic as a literal when performing the dataset validation.
ACF2 dataset name validation requires that all dataset name index levels are 8 characters or less and there must be data between periods in the dataset name.
If the user running the DEFINE job has SECURITY or NON-CNCL access or has a PREFIX in the LID record that matches the high-level qualifier of the dataset, this check does not pose a problem because even if the dataset access check fails, access is still granted due to being a privileged user and the DEFINE job will complete successfully.
If the user does not have special privileges within ACF2, the syntax used in the DEFINE ALIAS job will need to conform to these rules:
If the symbolic is not defined in MVS IEASYMxx:
If the symbolic is defined in MVS IEASYMxx:
Details of the IEASYMxx parmlib member where symbolics are defined using the SYMDEF statement can be found in the IBM documentation here:
Note that to make changes to this member effective, a /SETLOAD xx,IEASYM console command will need to be issued to refresh the member.
To view current symbolics, a /D SYMBOLS console command can be issued.