Hi,
I have been having issues with slow client reading messages sent. I
decided to close the session each time I have a WriteTimout exception
for a session.
So I close the IoSession.close() in the exceptionCaught method from
IOHandler, but the session does not closed immediately and hang around
for 10-15 more minutes.
Am I missing something here ?
Th
public void exceptionCaught(IoSession session, Throwable e) throws Exception
{
Integer key = (Integer) session.getAttribute("key");
String user = (String) session.getAttribute("user");
int pendingWrite = session.getScheduledWriteRequests();
if (e instanceof IllegalStateException)
s_log.log(Level.WARNING,m_id + " - pendingWrite " +
pendingWrite, e.getMessage());
else
s_log.log(Level.WARNING, m_id + " - pendingWrite " +
pendingWrite + " error handling message for session (" + key + "/" +
user + ")", e);
int idL = m_loging.getAndIncrement();
if(e instanceof WriteTimeoutException)
{
s_log.warning("WriteTimeoutException " + idL);
}
if (e instanceof IOException)
{
s_log.warning("Force closing session because of IO
exception " + idL);
session.setAttribute("close_reason", e.toString());
session.close();
}
}
Feb 16 16:49:49 monitor monitor: [09.02.16 16:49:49:912 SessionManager
pool-1-thread-72] WARNING: zodiac - pendingWrite 504 error handling
message for session (6/rrossier)
Feb 16 16:49:49 monitor monitor:
org.apache.mina.common.WriteTimeoutException
Feb 16 16:49:49 monitor monitor: at
org.apache.mina.transport.socket.nio.SocketIoProcessor.notifyWriteTimeout(SocketIoProcessor.java:299)
Feb 16 16:49:49 monitor monitor: at
org.apache.mina.transport.socket.nio.SocketIoProcessor.notifyIdleness(SocketIoProcessor.java:280)
Feb 16 16:49:49 monitor monitor: at
org.apache.mina.transport.socket.nio.SocketIoProcessor.notifyIdleness(SocketIoProcessor.java:260)
Feb 16 16:49:49 monitor monitor: at
org.apache.mina.transport.socket.nio.SocketIoProcessor.access$700(SocketIoProcessor.java:45)
Feb 16 16:49:49 monitor monitor: at
org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:490)
Feb 16 16:49:49 monitor monitor: at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
Feb 16 16:49:38 monitor monitor: [09.02.16 16:49:38:902 SessionManager
pool-1-thread-70] WARNING: WriteTimeoutException 2353
Feb 16 16:49:38 monitor monitor: [09.02.16 16:49:38:902 SessionManager
pool-1-thread-70] WARNING: Force closing session because of IO
exception 2353
Feb 16 16:49:49 monitor monitor: at java.lang.Thread.run(Unknown Source)