Subject Re: [ib-support] Re: Failed to establish a secondary connection for event processing
Author Markus Ostenried
At 20:53 Tuesday, 29.04.2003 +0200, Aage wrote:
>On Mon, 28 Apr 2003 20:27:42 +0000 (UTC), Markus Ostenried wrote:
> >...
> > What puzzles me really is that my partner says that our application once
> > ran fine on both of the customer's computers. So I assume the customer
> > has changed something (of course he denies...) but we can't find out
> > what.
> >
> > The customer has two computers, both running WinXP Pro, no firewall
> > software running, connections to the database always use TCP/IP, Firebird
> > ... ...
>
>Doesn't WinXP include a firewall ?

Yes, it does. On WinXP Home the defaut setting is enabled and on WinXP Pro
it is disabled. On the two machines I'm talking about there is definitely
NO firewall software running, all TCP/IP filtering is turned off and in
Internet Explorer the Security Setting Levels for both Internet and LAN are
set to Low.
When there is no application running that uses Firebird then "netstat -a"
on the client shows no active connections, on the server it shows Firebird
listening on port 3050.

I then did some testing with IB_SQL.exe to make sure the problem is not in
our application:
- start IB_SQL.exe on machine "PC2" (Firebird is running on "PC1")
- in the connection tab I enter Path = "PC1:C:\some.fdb" (TCP/IP connection
string)
- click Connect button
--> everything fine so far
- then open the Events dialog
- in the left memo I enter "blabla"
- and click the Register button
--> ibserver.exe on PC1 uses 99% CPU and after a few seconds IB_SQL shows
an error dialog with " Failed to establish a secondary connection for event
processing"

After I had shutdown and restarted ibserver.exe and IB_SQL.exe I repeated
the above steps except that for the connection string I entered
"\\PC1\C:\some.fdb"
---> connecting worked fine, event registering and unregistering, too

BUT: On the server machine PC1 I *can* use the TCP/IP connection string.
IOW registering events while using a TCP/IP connection works only if the
client sits on the same machine as the ibserver.exe does. Why?
Note: The problem is not finding the server machine (setting up hosts file,
configuring IP adresses etc.) or configuring/disabling a firewall. Simply
ibserver.exe can't make a connection for event processing to the client
(gds32.dll I assume) if it's located on a different machine.

I just tested this on my computer at home running IB_SQL inside a VMware
virtual machine: I cannot register events via TCP/IP when connecting to
ibserver on the host operating system but it works fine when connecting to
an ibserver.exe inside the virtual machine.

I also searched the archives of this group and of IBObjects mailing list
but although every few months someone has the exact same problem I couldn't
find any solution for this. So, is it a known issue that events don't work
with remote TCP/IP connections? I always thought this was the recommened
protocoll but it seems we have to use NetBIOS (or is it NetBEUI?) to have
working database events.

If there is someone who expected the same difficulties I'd like to hear
some comments on this.

Thanks,
Markus