Subject | Re: [firebird-support] connection problem |
---|---|
Author | Helen Borrie |
Post date | 2005-01-19T01:18:21Z |
At 07:38 PM 18/01/2005 +0000, you wrote:
configuration error (it could be that the TCP/IP service isn't running,
either on the client or on the server - in the case of IBE, the
client). It could be also that the server can't find (or isn't allowed to
use) a database file at that host address. That will be the case if you
have the server running on one node and the database located on
another. (Firebird must connect to a database that's on a filesystem
directly - physically - controlled on the same node as the
server). Success with a local connection supposes that it is....
The first thing I would do is configure both the client and server to
recognise the static IP address of the server by name, in the HOSTS file on
each machine. Any legal ascii string is OK, as long as the server knows it
and all clients know. The easiest thing is to use the actual hostname that
the server is broadcasting. Let's suppose that name is linuxsvr1...
The entry is:
67.69.128.22 linuxsvr1 # Linux server for Firebird <-- that bit is just a
comment
On the Linux host you will find the hosts file at /etc/hosts. On the
Windows client, it's in C:\WINNT\system32\drivers\etc (slight variations at
the top of this tree depending on Windows version). If you don't find it
in Windows, just create a regular ascii textfile and name it "hosts". Add
your entry, press carriage return and save.
Next, you are almost certainly going to need to do the same with the node
address of the client. Linux is a lot more fussy about visitors than
Windows. So use the Windows hostname (you can find it by right-clicking on
the My Computer icon and inspecting the "Network identification" tab of the
property sheet). To get the node address that your NIC is broadcasting, go
into the applet for your LAN connection and work your way through the
properties till you find it in TCP/IP properties.
Once your win client is broadcasting its hostname, go back to the server
and test it with ping. If you get a response, open hosts.allow. Type in
the hostname of the client and save.
There might be other network misconfiguration too, but try that for starters.
./helen
>Hi,It's the TCP/ip error WSAEWOULDBLOCK. It's an indication of a TCP/IP
>
>I have a FB server running on Fedora Core 2. The server is runing OK
>and localy connections are fine, so is PHP functionality.
>User/password are also fine. However, when I set a connection string
>within IBExpert I get this output:
>
>Attempting to connect to:
>x.x.x.x:/opt/firebird/examples/employee.fdb
>
>
>-------- quote--------
>Connecting... Failed!
>------------------------------------
>Unsuccessful execution caused by a system error that precludes
>successful execution of subsequent statements.
>Unable to complete network request to host "67.69.128.22".
>Failed to establish a connection.
>unknown Win32 error 10060.
>----- end quote--------
>
>
>
>Another connection test, also using IBExpert shows this:
>
>
>----- quote-----------
>Attempt connecting to 67.69.128.22.
>Socket for connection obtained.
>
>Found service 'GDS_DB' at port '3050'
>Failed to connect to host '67.69.128.22',
>on port 3050. Error Num: 10035.
>
>TCP/IP Communication Test Failed!
>----- end quote--------
>
>Anybody has any ideas what may be wrong? Point me in the right
>direction?
configuration error (it could be that the TCP/IP service isn't running,
either on the client or on the server - in the case of IBE, the
client). It could be also that the server can't find (or isn't allowed to
use) a database file at that host address. That will be the case if you
have the server running on one node and the database located on
another. (Firebird must connect to a database that's on a filesystem
directly - physically - controlled on the same node as the
server). Success with a local connection supposes that it is....
The first thing I would do is configure both the client and server to
recognise the static IP address of the server by name, in the HOSTS file on
each machine. Any legal ascii string is OK, as long as the server knows it
and all clients know. The easiest thing is to use the actual hostname that
the server is broadcasting. Let's suppose that name is linuxsvr1...
The entry is:
67.69.128.22 linuxsvr1 # Linux server for Firebird <-- that bit is just a
comment
On the Linux host you will find the hosts file at /etc/hosts. On the
Windows client, it's in C:\WINNT\system32\drivers\etc (slight variations at
the top of this tree depending on Windows version). If you don't find it
in Windows, just create a regular ascii textfile and name it "hosts". Add
your entry, press carriage return and save.
Next, you are almost certainly going to need to do the same with the node
address of the client. Linux is a lot more fussy about visitors than
Windows. So use the Windows hostname (you can find it by right-clicking on
the My Computer icon and inspecting the "Network identification" tab of the
property sheet). To get the node address that your NIC is broadcasting, go
into the applet for your LAN connection and work your way through the
properties till you find it in TCP/IP properties.
Once your win client is broadcasting its hostname, go back to the server
and test it with ping. If you get a response, open hosts.allow. Type in
the hostname of the client and save.
There might be other network misconfiguration too, but try that for starters.
./helen