Informix Error -23104: Error opening required code-set conversion object file.
Cause and resolution
Error opening required code-set conversion object file.
No object code-set conversion (definition) file exists for the two given code sets. The environment variables DB_LOCALE or CLIENT_LOCALE might have been set to the wrong value, which caused an error condition to be generated. The files might also be missing, or the information that they contain might be garbled. Check the value of the environment variable CLIENT_LOCALE or DB_LOCALE. The object conversion files usually have the .cvo extension.
When accessing via drda protocol, this error may also mean that the client application is trying to bind a value which is in a different encoding than database locale. Set environment variable GL_USEGLU=1 prior to bringing up the server to initialize the appropriate converters required to handle the codeset conversions. (for example, when using setCharacterStream() interface to bind the LOB data through JCC, the input data may come with double byte encoding and may mismatch with DB_LOCALE)
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-23104 fires when no object code-set conversion (.cvo) definition file exists for the
two given code sets — per the official guidance.
DB_LOCALE/CLIENT_LOCALEset to the wrong value, per the official guidance — the first named case.- The
.cvoconversion file missing or corrupted, per the official guidance — the second named case. - A DRDA-protocol client binding a value in a different encoding than the database
locale, per the official guidance — the third named case, e.g. double-byte-encoded
LOB data bound via JCC's
setCharacterStream()mismatchingDB_LOCALE.
Solutions / Resolution
- Check the
CLIENT_LOCALE/DB_LOCALEvalues, per the official guidance. - Check that the
.cvoconversion files are present and not corrupted, per the official guidance. - For DRDA-protocol mismatches, set
GL_USEGLU=1before starting the server to initialize the appropriate converters, per the official guidance.
Examples
Setting GL_USEGLU for DRDA codeset mismatches
$ export GL_USEGLU=1
Diagnostic Checks
- Check
CLIENT_LOCALE/DB_LOCALE, confirm the.cvofiles exist and are intact, and setGL_USEGLU=1if this occurs over DRDA.
Related Errors / Related Topics
- -23103 — "Code-set conversion function failed due to an illegal sequence or invalid value." A related code-set conversion error, on the input data's content rather than a missing conversion definition file.
The required code-set conversion object file couldn't be opened — check locale
environment variables and .cvo file integrity.