Hi Luc,
The same bug has been reported recently and I am trying to find a
cause of the problem. Could you use the latest snapshot just to make
sure if this bug has gone?
thanks in advance,
Trustin
On Jan 17, 2008 2:58 AM, Luc Willems <[EMAIL PROTECTED]> wrote:
>
> Hello all,
>
> i'm working on a load generator tool for simulating client access to a server
> with a XML/HTTP based protocol.
>
> this basicly means that we have "MANY" clients connections (5000 and more )
> to a J2EE server connected and exchanging a lot of XML documents at a ratio
> of
> 500 HTTP request per sec. So each client send a request at 10 seconds of
> more (with more clients) the client code is based on MINA 2.0 prerelease of
> 28/12 .
>
> The J2EE server has a overload protection system that basicly closes the
> connection when a overload situation occures.
> connections are closed with HTTP 503 error (service unavailable)
>
> as part of "auto test recovery" , the client will wait a short time (few
> seconds) and than try again.
>
> No here starts the problem. When a HTTP error occurse , the connection is
> closed by the client. next time ,>10 seconds later , a new connection is
> requested from a connection factory class. this factory looks basicly like
> this :
>
> public IoSession getConnection(SessionInitializer handler) throws
> ConnectException {
> cf=connector.connect(host,port,handler) ;
> cf.awaitUninterruptibly(40sec)
> if (! cf.isconnected() ) {
> cf.cancel()
> throw new ConnectException("timeout connection");
> }
> return cf.getSession()
> }
>
> connector as setConnectTimeout() set to 30 seconds, my clientcode (the
> handler) implements the IoHandler interface and log all IoEvents.
>
> when i reconnect to the server, i get the sessionCreated(IoSession session)
> & sessionOpened(IoSession session)
> but the ConnectFuture cf doesn't return a valid isConnected() or IoSession.
> it only times-out at 40 seconds and the ConnectException is thrown.
>
> Validating the connections with ethereal shows that the connection is created
> but never
> used (because ConnectException cause the client to go to sleep for awhile and
> than retry).
>
> the connecting thread will block "forever" when i replace the
> cf.awaitUninterruptibly() with cf.await() :-(
>
> somehow, the connection is not notified to the connectFuture.
> in my logfile i can see that connection was established in very short time (<
> 1sec)
>
>
> luc
>
>
>
>
>
--
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6