Informix Error -27001: Read error occurred during connection attempt.
Cause and resolution
Read error occurred during connection attempt.
This error can occur on either the client or database server side.
When you encounter this error on the client side, it indicates that a network I/O error occurred when the client tried to connect to a database server. Probably the connection attempt timed out because the database server or the network was very busy, too many clients were attempting to connect to the database server simultaneously, or the database server was taken off-line during the connection attempt.
If you are using IBM Informix Dynamic Server, IBM Informix Universal Server, or IBM Informix OnLine Dynamic Server, verify that the database server is still online. If you are using IBM Informix SE, verify that the sqlexecd daemon for the database server is still running. Use either or both of the environment variables INFORMIXCONTIME and INFORMIXCONRETRY on the client side to increase the connection time and number of retry attempts.
When you encounter this error on the database server side, it is a warning that a network I/O error is detected while the database server is accepting a connection request from a client. This error usually occurs when the database server or the network is very busy or when too many clients are trying to connect to the database server at once. The database server might be taking so long to respond to a client that the client's connection request timed out before the connection is complete. Or possibly a client terminated its connection attempt before the connection is completely established.
If this error is seen only occasionally in the server message log, it is just a warning. No corrective action is required on the server side.
If this error occurs frequently on a database server that runs on a host with multiple processors, you might want to tune the database server by increasing the number of poll threads and/or listener threads.
Common causes and solutions for the error
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-27001 fires when a network I/O error occurs during a connection attempt — per the official guidance, this can occur on either the client or server side.
-
On the client side: the connection attempt timed out, per the official guidance — because the server or network was busy, too many clients connected simultaneously, or the server was taken offline mid-attempt.
-
On the server side: a network I/O error accepting the connection request, per the official guidance — because the server/network was busy and the client's connection request timed out or was terminated before completing. The following causes are additional troubleshooting knowledge, not drawn from oninit.com's own official text above, so they aren't tagged "per the official guidance":
-
Stale connectivity files left behind in
$INFORMIXTMP— files of the formVP.server_name.0100a, one perINFORMIXSERVER-named TCP connection, that were never cleaned up. -
The
ONCONFIGNETTYPEparameter's VP class set toCPUinstead ofNET— seen widely with TCP network connections. -
An operating-system resource limit reached — kernel parameters such as
NOFILES,SEMMNU,NFILES,MAXFILES,MAXFILE_LIM(exact names vary by Unix platform). -
A network problem — a busy network or lost packets.
-
Intermittently failing network hardware (NIC, cabling, router).
Solutions / Resolution
-
On IBM Informix Dynamic Server/Universal Server/OnLine Dynamic Server, verify the server is online, per the official guidance.
-
On IBM Informix SE, verify the
sqlexecddaemon is running, per the official guidance. -
Use
INFORMIXCONTIME/INFORMIXCONRETRYon the client to increase the connection timeout and retry count, per the official guidance. -
If this error appears only occasionally in the server message log, no corrective action is needed on the server side — it's just a warning, per the official guidance.
-
If this error occurs frequently on a multi-processor host, tune the server by increasing the number of poll threads and/or listener threads, per the official guidance. The remaining items are likewise additional troubleshooting knowledge, not from oninit.com's own official text:
-
Stop the database server, remove the stale
VP.server_name.0100afiles from$INFORMIXTMP, and restart the server. -
Change the
NETTYPEconfiguration parameter's VP class fromCPUtoNET, as a workaround. -
Check and, if needed, increase the relevant kernel resource-limit parameters for the Unix platform in use.
-
Monitor the network for congestion or packet loss, and alleviate it.
-
Inspect network hardware (NIC, cabling, router) for intermittent failures.
Examples
Removing stale connectivity files
$ onmode -ky # stop the database server
$ rm $INFORMIXTMP/VP.myserver.* # remove stale connectivity files
$ oninit # restart the database server
Checking the NETTYPE VP class setting
# In $ONCONFIG — before (wrong: CPU class for a TCP connection type)
NETTYPE ontlitcp,1,50,CPU
# After (workaround: NET class)
NETTYPE ontlitcp,1,50,NET
Diagnostic Checks
- Check the server's online status (or
sqlexecd's), and the client/server network load, adjustingINFORMIXCONTIME/INFORMIXCONRETRYif timeouts are frequent. - Check
$INFORMIXTMPfor staleVP.server_name.0100afiles, and clear them via a server stop/restart if found. - Check the
ONCONFIGNETTYPEline's VP class, and confirm it'sNET, notCPU, for TCP connection types. - Check relevant OS kernel resource limits (open-file, semaphore, and similar limits) against the platform's documented requirements.
- Check for network congestion, packet loss, or intermittent hardware failures on the path between client and server.
Related Errors / Related Topics
No closely related error codes are cross-referenced for -27001 in this set yet.
A network I/O error occurred connecting, on either the client or server side — check
server/daemon status, $INFORMIXTMP for stale connectivity files, the NETTYPE VP class,
OS resource limits, and network/hardware health.