[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: Messages are lost on Queue?

jmesnil do-not-reply at jboss.com
Fri Feb 20 11:46:21 EST 2009


an update about this issue (using trunk r5910).

1. ant runServer
2. ant perfListener -Ddrain.queue=false 
3. Ctl+C the perfListener task

=> on the server side, a RemotingServiceImpl.connectionDestroyed() is triggered
   * the connection is removed from RemotingServiceImpl connections collection
  * connection.destroy() is called => this won't call the listeners on the connection (no clean up)

Since the connection has been removed from the connections collection, the FailedConnectionTask will never check if it has expired, it won't call fail() on the connection which is the place where the associated resources are cleaned-up.

in short, the server will never clean up things when the client is Ctl+C.


A fix would be to keep the connection in the connections when RemotingServiceImpl.connectionDestroy() is called and let the FailedConnectionTask a chance to clean up  after that.

One thing I don't understand: why is a connection detected as failed by the ConnectionFailedTask not removed from the connections?
 

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4211888#4211888

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4211888



More information about the jboss-dev-forums mailing list