Return Codes

When the IFAUSAGE macro returns control to your program, GPR 15 (and retcode if you coded RETCODE) contains the return code. Table 1 lists the possible values.

Table 1. Return codes for the IFAUSAGE macro
Return Code (in decimal) Meaning and Action
00 Meaning: IFAUSAGE completed successfully.

Action: None.

04 Meaning: The error is due to one of the following conditions:
  • DOMAIN - Another product has already registered for the domain you specified on the DOMAIN parameter. IFAUSAGE records the data for each product.

    Action: None necessary. However, you may receive duplicate data for each product.

  • FORMAT - The data format you specified on the FORMAT parameter of REQUEST=FUNCTIONDATA does not match the format specified by a previous caller. All subsequent invocations of REQUEST=FUNCTIONDATA must specify the same data format as the first caller.

    Action: Check usage records or read SMF type 89 records to identify the specified data format. Ensure that you specify the same format on the FORMAT parameter on any subsequent invocations of REQUEST=FUNCTIONDATA.

  • STATUS - You specified REQUEST=STATUS, but the installation is not collecting SMF record 89.

    Action: Ensure that the installation intends to collect type 89 records. If it does not, do not issue IFAUSAGE. If the installation does intend to collect type 89 records, check with your installation programmer that the record type is specified on the SMFPRMxx parmlib member.

08 Meaning:
  • REGISTER – IFAUSAGE could not process more than two problem state program invocations of REQUEST=REGISTER for a domain.

    Action: Do not specify REQUEST=REGISTER more than two times for any specific domain.

  • DEREGISTER – You specified REQUEST=DEREGISTER for a product that has not first specified REQUEST=REGISTER.

    Action: Issue IFAUSAGE with the REQUEST=REGISTER parameter to identify the product to the system for usage data collection.

  • FUNCTIONBEGIN – You specified REQUEST=FUNCTIONBEGIN for a product that has not first specified REQUEST=REGISTER.

    Action: Issue IFAUSAGE with the REQUEST=REGISTER parameter to identify the product to the system for usage data collection.

  • FUNCTIONDATA – You specified REQUEST=FUNCTIONDATA without first identifying the start of the function with REQUEST=FUNCTIONBEGIN.

    Action: Issue IFAUSAGE with the REQUEST=FUNCTIONBEGIN parameter to identify the function to the system for usage data collection.

  • FUNCTIONEND – You specified REQUEST=FUNCTIONEND without first specifying REQUEST=FUNCTIONBEGIN.

    Action: Issue IFAUSAGE with the REQUEST=FUNCTIONBEGIN parameter to identify the function to the system for usage data collection.

Note: This return code also results if you make a mistake in coding PRODOWNER, PRODNAME, PROVERS, PRODQUAL or PRODID and what you code for them on REQUEST=DEREGISTER, FUNCTIONBEGIN, FUNCTIONDATA, or FUNCTIONEND does not match what you coded on REQUEST=REGISTER.
12 Meaning: You specified a token on the PRTOKEN parameter that the system cannot identify.
Action: Check your specification on the PRTOKEN parameter, ensuring that it is the same token returned by the REQUEST=REGISTER invocation. Also check that you received a return code of 0 when REQUEST=REGISTER completed.
  • You specified a token on the PRTOKEN parameter that the system cannot identify, which implies that you specified REQUEST=DEREGISTER for a product that has not first specified REQUEST=REGISTER.

    Action: Issue IFAUSAGE with the REQUEST=REGISTER parameter to identify the product to the system for usage data collection.

  • You specified a token on the PRTOKEN parameter that the system cannot identify, which implies that you specified REQUEST=FUNCTIONBEGIN for a product that has not first specified REQUEST=REGISTER.

    Action: Issue IFAUSAGE with the REQUEST=REGISTER parameter to identify the product to the system for usage data collection.

  • You specified a token on the PRTOKEN parameter that the system cannot identify, which implies that you specified REQUEST=FUNCTIONDATA without first identifying the start of the function with REQUEST=FUNCTIONBEGIN.

    Action: Issue IFAUSAGE with the REQUEST=FUNCTIONBEGIN parameter to identify the function to the system for usage data collection.

  • You specified a token on the PRTOKEN parameter that the system cannot identify, which implies that you specified REQUEST=FUNCTIONEND without first specifying REQUEST=FUNCTIONBEGIN.

    Action: Issue IFAUSAGE with the REQUEST=FUNCTIONBEGIN parameter to identify the function to the system for usage data collection.

16 Meaning: IFAUSAGE cannot complete processing because SMF usage processing is not available on the system.

Action: Do not issue IFAUSAGE.

20 Meaning: The error is due to one of the following conditions:
  • DEREGISTER – IFAUSAGE could not process a problem state invocation of REQUEST=DEREGISTER.

    Action: Change the problem state invocation to a supervisor state invocation.

  • FUNCTIONBEGIN – IFAUSAGE could not process a problem state invocation of REQUEST=FUNCTIONBEGIN.

    Action: Change the problem state invocation to a supervisor state invocation.

  • FUNCTIONDATA – IFAUSAGE could not process a problem state invocation of REQUEST=FUNCTIONDATA.

    Action: Change the problem state invocation to a supervisor state invocation.

  • FUNCTIONEND – IFAUSAGE could not process a problem state invocation of REQUEST=FUNCTIONEND.

    Action: Change the problem state invocation to a supervisor state invocation.

  • Otherwise, an internal error was detected. Record the return code and contact the appropriate IBM® support personnel.