You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by Trustin Lee <tr...@gmail.com> on 2007/11/06 06:03:47 UTC

When is WriteTimeoutException thrown? (Was: Re: WriteTimeoutException immediately following write)

On 11/5/07, Seth Pollack <se...@pollackphoto.com> wrote:
> > Whenever something is
> > written, lastWriteTime is updated automatically, and
> > WriteTimeoutException is raised only when lastWriteTime has not been
> > updated for a certain amount of time.  Looking into
> > SocketIoProcessor.java, it attempts to write first (i.e. doFlush())
> > and then check timeout (i.e. notifyIdleness()).
>
> I have a related question.
>
> Is it possible to ever get a WriteTimeoutException because of something
> moving very slowly on the writing app side, or can this only be caused by
> the receiving app side moving slowly (i.e. not accepting any bytes for more
> than the writeTimeout period)? In the code I saw the comment "// Kernel
> buffer is full" in the case where there are bytes to write that can't be
> written. What are the possible causes of this condition?

It can be caused by both side.  WriteTimeoutException is thrown when

* there's any WriteRequest in the session queue
* and lastWriteTime is too old.  (both conditions should be met.)

HTH,
Trustin
-- 
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6