ODBC connection error

Hello,

There is a problem connecting clients through ODBC.

"ERROR [08S01] [Cache ODBC][State : 08S01][Native Code 459]
Connection via cconnect failed: 
TCP connect() failed - exception satisfied select().
Reason: (10061, 0x274d) No connection could be made because the target machine actively refused it."

Error sometimes occurs. In cconsole.log there are only messages about high CPU usage.

ODBC and Cache version Cache for Windows (x86-64) 2013.1.4 (Build 801).

Any suggestions?

Answers

Did you check if you have enough licenses available (e.g. Portal -> View system dashboard -> Highest License Use)

You can also look at View Audit Database to see if there are any related messages

Maximum license usage is less than 100%

There are no connection errors in the audit log.

HTTP requests pass without problems

Hi @Alexei Konoferchuk ,

I had a similar issue in Caché 2012 on a Windows enviroment. I my case I got a different error code, but the same error description:

System.Data.Odbc.OdbcException (0x80131937): ERROR [08S01] [Cache ODBC][State : 08S01][Native Code 461] 
[F:\Matrix\MatrixDiagnosis\MatrixServico.exe] 
Falhou a conexão via cconnect: 
TCP connect() failed - exception satisfied select(). 
Reason: (10061, 0x274d) No connection could be made because the target machine actively refused it. 

Note that the Native Code 461 is a returned exception from the Intersytems ODBC driver, but the error message is thrown by Windows TCP. That means that we have to understand why this code is different for your scenario, but this Windows message has some known reasons:

  1. If Windows is up, but Caché service isn't;
  2. You reached one of Windows TCP limit (check this link for more discussion about);
  3. The CPU workload is too heavy and can't process the new TCP connection, resulting in a full TCP backlog (check this link for more);
  4. There are network issues, like a misconfigured virtual IP or a duplicate IP address that could make the ODBC request reach a wrong server and reach the case number one.

So you will have to understand if you a reaching one of those scenarios. If you have a high CPU usage, maybe you are possibily entering in the case number 3. I would check the CPU queue length (using Perfmon) to confirm. If you there are just workload peaks, then a Windows TCP tunning and a backlog extension in Caché could help you. If this is a common case, then you will have to check your CPU resources.

In the fourth case, you would have others ODBC errors before get this error... 

Sorry about my bad english! Good luck!