Informix Error -9793: User Defined Routine (<routine-name>) module load failed. </routine-name>
Cause and resolution
User Defined Routine (<routine-name>) module load failed. </routine-name>
The following error message appears in the log:
ERROR: Loading Module <module-name> </module-name>
A bad external name, missing file, or wrong permissions might cause this error. Log message <log-message-number> contains the UNIX error number encountered and the actual module name being used. For the C language on UNIX, the following log message might appear: </log-message-number>
<error-number>: C Language Module <module-name> can't load <error-string> </error-string></module-name></error-number>
In the log message, <error-number> is the current UNIX error number, <module-name> is the module name from the catalog, and <error-string> is the dlerror() explanation. </error-string></module-name></error-number>
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-9793 fires when the module backing a UDR fails to load — per the official guidance;
logged as ERROR: Loading Module <module-name>.
- A bad external name, per the official guidance — the first named cause.
- A missing file, per the official guidance — the second named cause.
- Wrong permissions on the module file, per the official guidance — the third named cause.
Solutions / Resolution
- Check the accompanying log message for the UNIX error number and actual module
name, per the official guidance — for C on UNIX, a message like
<error-number>: C Language Module <module-name> can't load <error-string>gives thedlerror()explanation. - Correct the external name, restore the missing file, or fix its permissions, consistent with the named causes.
Examples
Checking the module file
$ ls -l /path/to/module.so
Diagnostic Checks
- Check the log's UNIX error number and
dlerror()string, and verify the module file's path, existence, and permissions.
Related Errors / Related Topics
- -9792 — "User-defined-routine language initialization failed." A related module- loading error, on the language's own initialization rather than a specific routine's module.
- -9794 — "User-defined-routine load failed." A related loading error, on the routine symbol not being found within an already-loaded module.
A UDR's backing module failed to load — check the log's dlerror() string and verify the
module's path, existence, and permissions.