On 17/04/2008, Trygve Hardersen <[EMAIL PROTECTED]> wrote:
>
>
>
> On 17/04/2008, Kevan Miller <[EMAIL PROTECTED]> wrote:
>
>
Hopefully, increasing MaxUserPorts (e.g. 65534) and decreasing
> > TcpTimedWaitDelay (e.g. 30)will fix your problem.
> >
> > If not, then I also recall a problem where Windows would assign the same
> > dynamic port address to 2 (or more) newly created sockets. It was then a
> > race to see which one would be activated first and the other one would get a
> > bind failure. Not sure there's anything we can do about that...
> >
> --kevan
> >
> >
> I'll do some tests on different platforms and settings and see what I
> find. Many thanks for your help!
>
> Trygve
>
Sweet, this solved the problem. I set MaxUserPorts to 20.000 and
TcpTimedWaitDelay to 30, and I'm able to run the 10.000 request BankClient
test with 10 concurrent threads without seeing the error.
I am however occationally seeing an error, both in single and multi threaded
mode:
javax.naming.NamingException: Cannot lookup '/BankManagerFacadeBeanRemote'.
[Root exception is java.rmi.RemoteException: Cannot read the response from
the server (OEJP/3.0) : null; nested exception is:
java.io.EOFException]
at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:240)
at javax.naming.InitialContext.lookup(Unknown Source)
at
BankClientScalabilityTest$BankClientTest.call(BankClientScalabilityTest.java:104)
at
BankClientScalabilityTest$BankClientTest.call(BankClientScalabilityTest.java:1)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.rmi.RemoteException: Cannot read the response from the
server (OEJP/3.0) : null; nested exception is:
java.io.EOFException
at org.apache.openejb.client.Client.processRequest(Client.java:172)
at org.apache.openejb.client.Client.request(Client.java:42)
at org.apache.openejb.client.JNDIContext.request(JNDIContext.java:87)
at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:234)
... 8 more
Caused by: java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown
Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at
org.apache.openejb.client.EJBMetaDataImpl.readExternal(EJBMetaDataImpl.java:177)
at java.io.ObjectInputStream.readExternalData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at
org.apache.openejb.client.JNDIResponse.readExternal(JNDIResponse.java:79)
at org.apache.openejb.client.Client.processRequest(Client.java:167)
... 11 more
It does not happen on every test, but sometimes (less than 0.01% of
requests). I can live with that.
Trygve