AcuConnect depends on the ability to pass an open socket descriptor to the runtime for the client to communicate with the server. Some UNIX shells don't pass all file descriptors to a child process. You may be experiencing such a problem if users can sometimes connect to the server, but other times can no longer connect, even though there are sufficient licenses.

If you detect such problems, look for a line in the server runtime error file that shows what descriptor the socket is using, as in the example below:

Runtime version 9.0.0
Configuration file = 'config'
Thin client socket uses descriptor 6
Loading map file
Unable to open TC-MAP-FILE '', error 0
Try loading 'testit.acu'...
testit.acu loaded 

Set the AGS_BAD_SOCKET variable to this socket descriptor to alleviate the problem. You can set this variable multiple times, once for each bad descriptor that you detect. Each time you set it, however, you should set it to a single value. For example, if you find that descriptors "18" and "62" are causing problems, you can add the following two lines to the runtime configuration file:

Note: If the socket descriptor is in use at the time you attempt to set it, you will not be able to use the -config option of acurcl.

Also, note that there is a chance that the setting will fail when using -config. You can determine whether this setting had any effect by looking at the error file. You will see a line something like:

7431977 - CONFIG request - SET AGS_BAD_SOCKET to n
Set parameter 'AGS_BAD_SOCKET' to n

Instead of n, you will see the value you are trying to set. The most important line is the second. If you don’t see that line, it means that acurcl has that descriptor value open for some other purpose (perhaps another client is trying and failing to connect). You should continue trying until you get the setting.