After about 3 days of trying, I am unable to create a linked server from SQL Server 2016 to Informix 11.5. I haven't tried this with other versions (2008R2, etc) since I wanted to set up the connection in a test environment first.
What I have Done
- Installed the latest Informix OLE DB Driver on the SQL Server host machine
- Configured a System DSN for the IBM Informix ODBC Driver Setup
- Tested the connectivity of the DSN settings (test is good) after changing the locale settings so the client and server match, and server is correct.
- Attempted to create the linked server in two ways below.
- Googled and read everything I could to resolve this without success.
1) Using IBM Informix instructions with OLE DB Provider in which I get the following error (regardless if I use a DNS in provider string):
Cannot initialize the data source object of OLE DB provider "Ifxoledbc" for linked server "UCCX". OLE DB provider "Ifxoledbc" for linked server "UCCX" returned messazge "EIX000: (-23197)" Database locale information mismatch" (Microsoft SQL Server, Error: 7303)
The DB Locale is en_US.57372
2) Using Microsoft OLE DB Provider for SQL Server as explained in this blog which returns the error:
Named Pipes Provider: Coould not open a connection to SQL Server. OLE DB provider SQLNCLI11 for linked server UCCX returned message "Login timeout expired" OLE DB provider SQLNCLI11 for linked server UCCX retunred a message "A network-related or instance-specific error has occured while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. SQLNCLI11 for linked server UCCX returned message "Invalid connection string attribute"
I have very little experience with Informix which should be apparent and this isn't a local installation, it's a Cisco instance as you probably gleaned from the blogs I was using. Any advice would be appreciated.
ServerName -> Server Objects -> Linked Servers -> Providers
? If you cannot see the provider, you may need to restart the instance. Alternatively, you may have an odd driver install that is user-specific and not server wide, in which case you may need to install it as the same user running SQL.Client_Locale=en_us.8859-1
in the connection string (via ConnectionStrings.com) would work? I'm grasping at straws on this though... sorry