Error -908 on network connection (IDS 7.30)
Posted in 1999
Hello everybody,
I have an (obviously quite common) problem with connecting from a
client (for test purposes ILogin Demo) to an Informix Dynamic Server
7.30 database server. Here is my configuration:
Server side:
Linux (SuSE 6.1 with Kernel 2.2.10)
hostname: bassin.hec.de
IP-address: 192.168.0.229
uname -a:
Linux bassin 2.2.10 #4 Thu Oct 7 09:50:15 MEST 1999 i586 unknown
$INFORMIXDIR=/opt/informix
$INFORMIXSERVER=bassin
sqlhosts file (/opt/informix/etc/sqlhosts):
bassin onsoctcp bassin idstcp
bassin2 onipcshm bassin idstcp
onconfig file (/opt/informix/etc/onconfig, extraction):
[...]
SERVERNUM 0
DBSERVERNAME bassin
DBSERVERALIASES bassin2
NETTYPE onsoctcp,1,20,NET
DEADLOCK_TIMEOUT 60
RESIDENT 0
[...]
/etc/hosts.equiv file:
MEA.hec.de
192.168.0.101
/etc/services file (extraction):
[...]
idstcp 1526/tcp
.rhosts file of user mea (~mea/.rhosts):
MEA.hec.de
192.168.0.101
bassin.hec.de
client side:
Hostname: MEA.hec.de
IP-dddress: 192.168.0.101
Windows NT 4.0 Service Pack 4
Informix Client SDK Version 2.30 tc1.1 for intel pentium nt 4.0.
(I installed the whole package, including the two ODBC-drivers
Informix 3.30.00.10139 32 BIT and INTERSOLV 3.11.00.21 32 BIT
INFORMIX 9).
Setnet32 Settings:
-Environment:
INFORMIXDIR=d:\\programme\\informix\\sdk
INFORMIXSERVER=bassin All other entries are left blank.
-Server Information:
Informix Server: bassin
HostName: bassin.hec.de
Protocolname: onsoctcp
Service Name: idstcp
Options: (left blank)
-Host Information
Current Host: bassin
User Name: mea
Password Option: Password
Password: My correct password that I won't post here ;-)
Registry entries:
HKEY_LOCAL_MACHINE/Software/Informix/SqlHosts/bassin:
-HOST "bassin"
-PROTOCOL "onsoctcp"
-SERVICE "idstcp"
HKEY_CURRENT_USER/Software/Informix/Environment:
-DBANSIWARN "n"
-DELIMIDENT "n"
-INFORMIXDIR "d:\\Programme\\Informix\\sdk"
-INFORMIXSERVER "bassin"
Services file (C:\\WINNT\\System32\\drivers\\etc, extraction):
[...]
idstcp 1526/tcp
[...]
There is no sqlhost or onconfig file on the client.
The network connection between both computers works fine. On the
server side, I can do ping MEA or ping MEA.hec.de:
PING MEA.hec.de (192.168.0.101): 56 data bytes
64 bytes from 192.168.0.101: icmp_seq=0 ttl=128 time=0.556 ms
64 bytes from 192.168.0.101: icmp_seq=1 ttl=128 time=0.382 ms
64 bytes from 192.168.0.101: icmp_seq=2 ttl=128 time=0.387 ms
--- MEA.hec.de ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.382/0.441/0.556 ms
The same thing works the other way around:
PING wird ausgef'hrt f'r bassin [192.168.0.229] mit 32 Bytes Daten:
Antwort von 192.168.0.229: Bytes=32 Zeit<10ms TTL=255
Antwort von 192.168.0.229: Bytes=32 Zeit<10ms TTL=255
Antwort von 192.168.0.229: Bytes=32 Zeit<10ms TTL=255
Antwort von 192.168.0.229: Bytes=32 Zeit<10ms TTL=255
I first made a test with the dbaccess tool on the linux host to
determine if the database server works correctly, and found out that it
works fine. I started dbaccess as user "mea", select
Connection/Connect, pressed enter to select the first database
(bassin), entered my user name ("mea") and my password and after a few
seconds, I got the choice of available databases on the server. So I
could e.g. choose "store7@bassin" and everything was fine. To be sure
the connection was made via tcp/ip sockects, I watched the socket ports
using netstat -tuonc. Here I could observe the following behaviour:
1. Before the connection was established, I got the output:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
Timer
tcp 0 0 127.0.0.2:1526 127.0.0.2:1101 CLOSE
on2 (2.04/0/7)
tcp 0 130 192.168.0.229:23 192.168.0.101:1043 ESTABLISHED
on1 (0.36/0/0)
tcp 0 0 192.168.0.229:23 192.168.0.101:1042 ESTABLISHED
off (0.00/0/0)
[The first entry shows the state of the Informix server (the other two
entries are probably my two telnet sessions on the linux host)]
2. After starting dbaccess, the output changed to:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
Timer
tcp 0 0 127.0.0.2:1526 127.0.0.2:1102 ESTABLISHED
off (0.00/0/0)
tcp 0 0 127.0.0.2:1102 127.0.0.2:1526 ESTABLISHED
off (0.00/0/0)
tcp 0 130 192.168.0.229:23 192.168.0.101:1043 ESTABLISHED
on1 (0.40/0/0)
tcp 0 0 192.168.0.229:23 192.168.0.101:1042 ESTABLISHED
off (0.00/0/0)
[As one can see, the connection has been properly established using
tcp sockets.]
3. After disconnecting, the state changed again to:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
Timer
tcp 0 0 127.0.0.2:1526 127.0.0.2:1102 CLOSE
on2 (1.44/0/7)
tcp 0 0 127.0.0.2:1102 127.0.0.2:1526 TIME_WAIT
unkn-3 (7.50/0/0)
tcp 0 130 192.168.0.229:23 192.168.0.101:1043 ESTABLISHED
on1 (0.38/0/0)
tcp 0 0 192.168.0.229:23 192.168.0.101:1042 ESTABLISHED
off (0.00/0/0)
And after a timeout, the second entry disappeard, so that a state
similar to that before the connection was reached.
As you can see, the database server generally accepts connections (at
least from the local host). Unfortunately I do not have a second Linux
box to test a real (non-loopback) network connection using dbaccess.
However, I have an NT box with the Informix Client SDK installed on it.
So I can use the ILogin Demo to test the connection. But this does not
work. I started the ILogin Demo and selected "Run" in the file menu.
First, I left the configuration dialogue, that appeared after selecting
"Run", unchanged (i.e. Server is "bassin" and Stores Database is
"stores7"). As a result, after approx. 80 seconds, a message box with
the following text appeared:
Database: Sqlcode = -908
Refer to Informix Find Error utility or
Informix Error Messages manual for
more details on this error number.
The same behaviour can be observerd if I fully specify the connection
in the configuration dialog of the "Run" menu item:
-Server: bassin
-Hostname: bassin.hec.de
-Servicename: idstcp
-Protocolname: onsoctcp
-Username: mea
-password: My password, typed correctly.
-Stores Database: stores7
All the time while ILogin Demo tried to establish the connection, I
watched the socket ports on the server. There was