Subject RE: [IB-Java] Re: problems with connections in v1.6
Author Peter Wilkinson
I've been playing more with this and still run into the same problem.

I can reproduce the problem at will but just doing the following:
(testing done on both Redhat Linux 6.2 and Win2000)

1. Run Torsten's Tester code with 20 threads from one prompt.
2. From another prompt try and connect with isql, for me every time and with
different JVM's running the tester code, isql will block for 10-15 seconds
waiting for a connection. Queries run at normal speed once connected.

Also a long disconnect delay is seen when I do the following:
1. start isql at one prompt
2. start the tester code from the second
3. try and disconnect the isql session, I get a 10-15 second delay.

However if I try the same test with a shell script to simulate the tester
code using isql session I see very similar behaviour. It appears this is not
in Interclient or Interserver but in Interbase itself.

Does anyone know how Interbase deals with lots of connections (20 isn't
really lots though) as the ibserver process never takes more than 5% CPU
while these tests are running yet the connections and disconnections seem to
be blocked.

Am I missing something in tuning Interbase??? I've looked through the docs
but can't find anything that references this kind of situation. I'll ask one
of the other Interbase lists help for this as well but hopefully someone can
tell me I'm doing something stupid and the issue is just tuning Interbase in
some way.

Thanks for your help so far on this,
PeterW.

-----Original Message-----
From: Torsten Welches [mailto:torsten.welches@...]
Sent: Thursday, 10 August 2000 6:18 PM
To: IB-Java@egroups.com
Subject: [IB-Java] Re: problems with connections in v1.6

--- In IB-Java@egroups.com, "Shaunak Mistry" <smistry@i...> wrote:
> Peter Wilkinson wrote:
> >
> > Hi,
> > I'm trying to debug a strange situation when using the following:
> > JRun Servlet Engine 3 with a pool of connections -> Interclient
1.6 ->
> > Interbase SuperServer 6 all on the same machine and all running
on Linux
> > (I've tried Sun's JDK and IBM JDK both v1.3)
>
> Peter,
>
> Interclient 1.6 has been certified with JDK 1.2 not 1.3. Have you
> tried it with JDK 1.2?
<snip>
> If this is happening with JDK 1.2 then it should be a bug in IC.

I doubt that this is a 1.2 vs. 1.3 problem. There's nothing
new/changed in 1.3 I could think of that would cause problems like
the described. In fact IC16 does not even use any JDK 1.3 or 1.2
features, not even 1.1! I guess you could still compile IC16 under
JDK 1.0, that's why so many deprecations show up under 1.1 and higher.

Having said that I also doubt that it is a bug in IC itself. Since
InterClient does not talk to the Interbase server directly it is not
likely that it can lock it up. IMO InterServer would be a more likely
candidate.
If it would be a JRun/InterClient threading problem (e.g. deadlock)
JRun and the affected InterClient connection would lock, but why
would Interbase?

BTW - InterServer (I'm under NT) spawns a whole new NT-Process
(rather then only a new thread as I had expected) for each
InterClient connection. Why is that?

Here's a test to do multi-threaded InterClient connections to
InterServer. I did not have any problems, even with a bigger number
(say 50) of concurrent connections. Maybe you can use it for your
debugging, Peter. I run it both under 1.2.2 and 1.3

Regards,
Torsten