Learn it on Mainframe Path. Do it with MainframeKit.Learn on Mainframe Path ▸
MainframeKit

S306

Program fetch (LINK/LOAD/ATTACH/XCTL) failedSYSTEM ABEND

The system could not load a program for a LINK, LOAD, ATTACH or XCTL request. The reason code says why, including RACF program-protection refusals.

MOST LIKELY

Reason 30: the user is not on the access list of the program's RACF PROGRAM profile.

FIRST CHECK

Read the reason code in the abend message or dump before anything else.

TRY IT ▸

Record decoder

What it means

Abend 306 is raised when the system fails to bring a program into storage on request. The hexadecimal reason code that comes with it decides the real cause, so always read it first.

Several reasons are security related. Reason 30 means the user is not allowed to run a RACF-protected program in the current environment, and reason 34 means a program was started while a program-accessed data set was open and the program was not suitably protected or permitted. Other reasons are not about RACF at all, for example a z/OS UNIX external link whose target library is not APF-authorized (reason 0C, seen on older releases).

Typical causes

  • Reason 30: the user is not on the access list of the program's RACF PROGRAM profile.
  • Reason 30: a program that must run protected is combined with an unprotected program in the same address space.
  • Reason 34: a program was run while a program-accessed data set was open and the program or user/program pair was not allowed.
  • Reason 0C: a z/OS UNIX external link points to a module in a library that is not APF-authorized.
  • Reason 40: with FIPS signature checking, verification of a System SSL module failed after IBM's signing certificate expired (fixed by a PTF).

How to fix it

  1. Read the reason code in the abend message or dump before anything else.
  2. For reasons 30 and 34, ask your security administrator to review the PROGRAM profile and access list through the normal process.
  3. After the security team changes PROGRAM profiles, a SETROPTS WHEN(PROGRAM) REFRESH is needed for the change to take effect.
  4. For reason 0C, ask the systems programmer whether the target library should be in the APF list.
  5. Search IBM support for the abend and reason code if it began after maintenance.

Example

Illustrative only; names and values are invented.

IEA995I SYMPTOM DUMP OUTPUT
  SYSTEM COMPLETION CODE=306  REASON CODE=00000030
  ABEND IN PROGRAM PAYPGM1 STEP STEP010 JOB PAYJOB01