Informix Error -409
-409 Sqlexec was not found or was not executable by the current user.
Your application contacts the database server process while it starts up. This action uses the value in the SQLEXEC environment variable (for database server versions prior to 6.0); it should point to one of two executable files: sqlexec for IBM Informix SE or sqlturbo for IBM Informix OnLine (versions prior to 6.0). Ordinarily these files will reside in the lib subdirectory of the directory that the INFORMIXDIR environment variable names. Check that your SQLEXEC environment variable is set up properly and that your account has access to these directories and files.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-409 fires at application startup, before a real connection is even established: the SQLEXEC
environment variable is supposed to reference an executable file (sqlexec for Informix SE, or
sqlturbo for Informix OnLine on versions prior to 6.0), typically located under
$INFORMIXDIR/lib, and either that file doesn't exist at the referenced path or the current OS
user lacks execute permission on it.
SQLEXECpointing to a path where the executable doesn't actually exist — a stale or incorrect environment variable.- The executable exists, but the current OS user lacks execute permission on it.
INFORMIXDIRitself misconfigured, indirectly causingSQLEXEC(if derived from it) to point somewhere invalid.- An incomplete or corrupted Informix installation, missing the expected executable entirely.
Solutions / Resolution
- Verify
SQLEXECis set correctly, per the official guidance, and points to the actualsqlexec/sqlturboexecutable under$INFORMIXDIR/lib. - Check file permissions on the executable and confirm the current OS user has execute access.
- Verify
INFORMIXDIRitself is correctly set ifSQLEXECis derived from it. - If the executable is genuinely missing, verify the Informix installation's completeness and reinstall if necessary.
Examples
Checking SQLEXEC and file permissions
echo $SQLEXEC
ls -la $SQLEXEC
-- confirm the file exists at that path and the current user
-- has execute permission on it
Checking INFORMIXDIR as the underlying source
echo $INFORMIXDIR
ls $INFORMIXDIR/lib/sqlexec $INFORMIXDIR/lib/sqlturbo 2>/dev/null
-- confirm the expected executable actually exists here
Diagnostic Checks
- Check the
SQLEXECenvironment variable's value. - Confirm the referenced file exists and is executable by the current user.
- Check
INFORMIXDIRifSQLEXECis derived from it. - Verify installation completeness if the file is genuinely missing.
Related Errors / Related Topics
- -368 — "Incompatible sqlexec module." A related
SQLEXEC-configuration error, about version compatibility once the module is found, rather than the module being missing or inaccessible entirely. - -369 — "Invalid serial number. Consult your installation instructions." Another related installation/environment-configuration error in the same general startup-failure family.
Check SQLEXEC's value, the target file's existence, and its execute permissions in that order —
this is an environment/installation-configuration issue, not a SQL problem.