Informix Error -9794: User-defined-routine load failed.
Cause and resolution
User-defined-routine load failed.
The following error message appears in the log:
Loading Routine routine_name procid = process_ID_number
The routine routine_name is not found in the module, possibly because of a bad external name or the wrong module. The log message log_message_number is probably -1, and error_message_string is the database routine name as opposed to the symbol that was not found.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-9794 fires when the routine itself isn't found within an already-loaded module — per the
official guidance; logged as Loading Routine routine_name procid = process_ID_number.
- A bad external name, per the official guidance — the first named cause.
- The wrong module named for the routine, per the official guidance — the second named cause; the log's message number is typically -1, and the error string is the database routine name (not the missing symbol).
Solutions / Resolution
- Correct the routine's external name or the module it's registered against, per the official guidance's implication.
Examples
Checking a routine's external name
SELECT specname, f_executetype FROM sysprocedures WHERE procname = 'my_routine';
Diagnostic Checks
- Check
online.logfor the routine name and process ID, and verify the routine's external name matches an actual symbol in the module.
Related Errors / Related Topics
- -9793 — "User Defined Routine (
) module load failed." A related loading error, on the module itself failing to load rather than a routine symbol not being found within it.
The routine's symbol wasn't found within its module — correct the external name or the registered module.