This is a common, but quite cryptic error message. Finderr gives the following detail for IDS systems:
-908 Attempt to connect to database server (servername, conerr =connection-error-number, oserr=system-error-number) failed. The program or application is trying to access another data- base server but has failed. Note the server name in the current statement. Note also the connection error number and/or system error number that is shown in the message. The desired database server is unavailable, or the network is down or is congested. Ask your DBA and system administrator to verify that the server and network are operational. If the network is congested, use the environment variables INFORMIXCONTIME and INFORMIXCONRETRY to tune connection timing. See Chapter 4 in the Informix Guide to SQL: Reference for information on setting these environment variables.
This really doesn't tell you a lot about the problem. What the message says is that there's some problem with network connectivity. Most of the time the problem will be a difference in the listening ports in use by the client and the server. Check the sqlhosts files on each or use setnet on Windows systems and make sure that both client and server are using the same port numbers.
One common mistake is to not realize that the chosen service on the host for an instance does not change when it is changed in setnet. Actual use of the server does not start until you shut down the engine and restart it. The best procedure is to shut the server down, change the sqlhosts information, and then restart the engine.
If you're getting this error on IDS systems later than 7.10UD1, try using the actual port number rather than its name in setnet. If this works, there is a problem in the services file. Look for a conflict with an existing port number.
Of course, don't rule out the possibility that you're getting this error message and that it's telling exactly what's happening. You're having network problems. If you suspect this, try pinging the host system.
-931 Cannot locate servicename service/tcp service in /etc/services. The service servicename is not listed in the network configuration file /etc/services (UNIX) or (DOS). Check the $INFORMIXDIR/etc/sqlhosts file, and check that the service name for the desired server is correct. If so, contact your network administrator to find out why the service is not known. If you are using INFORMIX-OnLine for NetWare, check the file on the client for the required entries.
This is a somewhat more specific error message that indicates that the service name you entered in setnet is not found in the services file. If possible try switching the name with the actual service number in post IDS 7.10UD1 systems.
-951 User username is not known on the database server. The database server that you tried to access does not accept either your user ID, the login name that is specified for the desired server host in your ~/.netrc file, or the user name that is specified in the USER clause of a CONNECT statement. If you are explicitly specifying your user name in the ~/.netrc file or in a CONNECT statement, check that the name is correct. If you do not have a valid user ID on the server machine, see your system administrator. -956 Client client-name is not in /etc/hosts.equiv on the remote host. This operation cannot be completed because the specified remote machine does not recognize the name of the client machine (the local host, whose name the hostname command returns). Client names are normally recorded in the configuration file /etc/hosts.equiv. The rhosts file on the remote machine might also need modification. For more information on these files and the relation between them, try man rhosts on a UNIX system. See the remote host administrator to ensure that the client host name is specified in /etc/hosts.equiv file for the remote host.