Hey
I found the problem: when a proxy was sent back to the server it
registered the embedded container stub with RMI, which then wanted to
send a DGC call to it. For some reason it did not try to reuse
connections (that much, a connection could be reused 10 times, and then
a new one was created), so new connections were created A LOT. This led
to OutOfMemory exceptions after awhile, and also lousy performance.
I have made one workaround, which is to set the container reference in
the proxy to null if isLocal() is false. When it is deserialized it is
*hoped* that isLocal will be true so that it will regain a container
reference locally. This will of course only work if references are being
sent back and forth between a client and a server. Sending proxies
between clients will fail. Hopefully this is not something one would
commonly do though.
So, now the nr of RMI threads/connections have reduced quite a bit and
is happily tugging along at 2 (one for test client calls, and one for
remote DGC).
However, the calls are stiiillll sllooowww... and -Xprof only says that
it is socketRead/Write that takes time. Perhaps the proxy state is too
big. I don't know.
I'll keep investigating this.
/Rickard
--
Rickard �berg
@home: +46 13 177937
Email: [EMAIL PROTECTED]
http://www.telkel.com
http://www.jboss.org
http://www.dreambean.com