I have added in MSSQL linked server to Progress v9.1C database using such commands: EXEC sp_addlinkedserver @server = 'SAF', @srvproduct = '', @provider = 'MSDASQL', @datasrc = 'SaFmer' EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'SAF',@useself=N'False',@locallogin=NULL,@rmtuser=N'root',@rmtpassword='root_pass'
Connection works fine, I can retrieve and update data. We start running our application, written in VB.NET, which does all work using that linked server. Everything works fine, for a while. Then in random time spans, I start getting error:
An error occurred while preparing the query "SELECT bla bla bla ..." for execution against OLE DB provider "MSDASQL" for linked server "SAF". OLE DB provider "MSDASQL" for linked server "SAF" returned message "[MERANT][ODBC PROGRESS driver][PROGRESS]Server not reachable or possible RPC error"
After few minutes of these errors program "fixes itself", works few minutes fine and again goes back to error messages.
maybe anybody experienced this kind of behaviour and could recommend where start looking for problem or some kind of workaround?
its a problem of incompatibility of SQL Server with the ODBC Drivers provided for the Progress . I would recommed to contact the Provider for the Progress ODBC Driver for further information.
Which SP level does 9.1C has? What OS is the database running on? There where many issues with Progress 9.1C and SQL. This is a very old version of Progress. Upgrade to at least 9.1E04 would help already a lot. Do you know if there are any errors in the DB log from the Progress database. If you get error 3735 and 2526 then it is a problem which should be fixed in in on e of the following 9.1C servicepacks: depending on OS: Compaq Tru64      - 9.1C04 HP-UX 11 64-Bit   - 9.1C01 HP-UX 11          - 9.1C02 IBM AIX           - 9.1C02 RedHat Linux      - 9.1C01 Sun Solaris       - 9.1C02 Sun Solaris Intel - 9.1C03 Unix V.4          - 9.1C04 Win 32            - 9.1C03
Does it help changing the default isolation level to anything but "read uncommitted"?