I have the IBM drivers installed, created a data source that successfully tests from SSRS front end.

Create a report from my machine which also has the drivers installed and the ODBC testing correctly.

I get the following error

ERROR [HY000] [Informix][Informix ODBC Driver][Informix]Unspecified System Error = -23101.

I run

Select * from sysmaster:informix.sysdbslocale

which returns en_US.819 for the database i want.

Run Setnet32 and set CLIENT_LOCALE and DB_LOCALE to en_US.819

The client/server vars in the ODBC setting are set the same also.

I'm not sure what else to try.

2 Answers 2


When I use an Informix command finderr, I get the output shown:

$ finderr -23101
-23101  Unable to load locale categories.

An invalid locale name was supplied for the locale initialization.
The environment variable specifying the locale category has a wrong

Check the value of the corresponding environment variable,
CLIENT_LOCALE or DB_LOCALE. If this error was encountered when using 
the "SET COLLATION" statement, check that the value passed to the 
statement is a valid locale. If this error was encountered when using
the "SET NO COLLATION" statement, check that the session's default 
locale file is still available. Also check if INFORMIXDIR points to
a valid directory where IBM Informix products are installed.  

If a client application receives this error when it requests a database
server connection, check that the client and database locales are
compatible. They are compatible if a valid locale exists on the server
computer with the name lg_tr.codeset@mod, where lg_tr (language and
territory) and mod (locale modifier) are from the CLIENT_LOCALE and
codeset is from the database locale (from the DB_LOCALE, if it is set,
or as stored in the database).


That's probably clear as mud, but 'unable to load locale categories' probably means that $INFORMIXDIR, which defaults to /usr/informix on Unix-like systems (and something like C:\Informix on Windows systems IIRC) is either not set correctly or is pointing somewhere invalid. In particular, locale categories are stored in $INFORMIXDIR/gls.

That's the easy part; the hard part is knowing what you need to set. Have you checked the SETNET32 setting? Have you checked the OBDC connection configuration? I believe SSRS is a Windows-based system, and I'm by no means a Windows expert, so there's a limit to what I can do to point you in the right direction. But having more detailed information about the error than 'unknown system error' may help you.

You could also look at the Informix manuals on the IBM Informix Information Center 12.10 web site.


Informix gets really cranky when it comes to the locales. If they're not set correctly then it will probably fail. I can't speak to your set up, but I had to change my code to use the client_locale and db_locale variables. Both needed to be set to en_us.57372, which as I understand it, is what tells Informix to use UTF8 encoding.

Setting your environment variables properly helps too. The PATH variable needs to contain a link to your local Informix driver installation folder (c:\informix, for example). It needs to be near the beginning of the list.

INFORMIXDIR = <Informix install folder, like in the path>
LD_LIBRARY_PATH = <Informix install folder>\lib;<Informix install folder>\lib\cli;<Informix install folder>\lib\esql

These last two should help the rest of the Informix tools in the installation folder start working properly if you wanted to try using them.

Once you've set the environment variables, don't forget to restart your computer so that they'll be applied when you go to try connecting.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.