Database Error Messages

Release
toggle
  • 23ai
  • 21c
  • 19c
Updated
Jun 24, 2024

TNS-12170

Cannot connect. timeout_type timeout of timeout for host_port. (CONNECTION_ID=connection_id)
  • timeout_type: The timeout type (for example, TCP, OUTBOUND_CONNECT, RECEIVE).
  • timeout: The timeout value.
  • host_port: The host and port that cannot be connected to.
  • connection_id: The connection ID.

Cause

The connection request cannot be completed within the allotted time interval. This may be a result of network or system delays, a firewall not allowing the connection, no network connectivity between client and server, or it may indicate a denial of service attack on the database server.


Action

The message indicates whether there is a transmission control protocol (TCP) connect timeout, an Outbound connect timeout, or a Receive timeout.

  • Ensure that there is network connectivity between client and server, and that the destination is reachable.
  • Ensure that there is no firewall in place between client and server. If there is, disable the firewall or configure it to allow the network traffic.
  • If the error occurred in your application, then:
  • Set CONNECT_TIMEOUT or TRANSPORT_CONNECT_TIMEOUT to a larger value if they are used in an Easy Connect or tnsnames.ora connection string. Or, set one or all of the parameters SQLNET.OUTBOUND_CONNECT_TIMEOUT, SQLNET.RECV_TIMEOUT, or TCP.CONNECT_TIMEOUT in the client sqlnet.ora file to a larger value. The connection string parameters have higher precedence than the corresponding sqlnet.ora parameters.
  • In languages that support programmatic driver settings, adjust the settings equivalent to the previously mentioned timeouts. For example, with JDBC, adjust oracle.net.OUTBOUND_CONNECT_TIMEOUT, oracle.net.CONNECT_TIMEOUT, or use setLoginTimeout(). With Python python-oracledb, adjust the TcpConnectTimeout parameter when calling connect() or create_pool().
  • If the error occurred in the database alert log file, then set one or both of the parameters, SQLNET.INBOUND_CONNECT_TIMEOUT or SQLNET.RECV_TIMEOUT, in the database sqlnet.ora file to a larger value.
  • If a malicious client is suspected, then use the database alert log to identify the source address and then restrict access.
  • Use the CONNECTION_ID value to track this connection attempt in trace files for further diagnosis.