[jboss-user] [Remoting] - Re: JBREM-786:

jahlborn do-not-reply at jboss.com
Mon Dec 10 14:31:14 EST 2007


hi,
sorry i haven't replied in a while.  i kind of got away from this for a bit.  anyway, we certainly have a mix of code.  just fyi, we are using jboss 4.0.5.GA in production, so my changes are built on top of the remoting version in that release, which i believe is actually JBossRemoting 1.4.3.

to respond to your question about the leaky connections, i believe we have that fix:  that is the change which extends the "synchronized(this)" block up around the clientpool updates in ServerThread.run, correct?

in our application, we have a high number of relatively quick remote calls happening on ~60 threads in each client app server.  Since we had ~10 client servers running ~60 threads all banging on the same remote server, we easily hit the 300 thread maximum in the server thread pool.  this means that new requests to the server can cause "evict()" to be called on the clientpool (in SocketServerInvoker).  This eviction will cause a socket to be closed after an in-flight call ends.  On the client side, this will cause a pooled socket to be fine for one call, and then throw an EOFException the next time it is used.  With the retry logic backported, it would seem highly unlikely that a single request would see 3 closed client sockets in a row (especially with the "flush" call before the last attempt).  However, when we fired up the system at full speed, we would see at least one of these complete failures per "job" (which could be ~100k remote calls to the remote server among all the client boxes).  

the flushConnectionPool() call on the last attempt was obviously an attempt to mitigate this problem, however it still does not gaurantee that the client will get a fresh connection on the next attempt, only makes it more likely.  apparently, in our application, this was not a good enough effort as we still saw the issue (albeit infrequently).  When i implemented the changes included in the patch, however, this problem stopped occurring at all.  

It seems clear, though, that this patch would be more appropriate for the 2.0 code base, not the 1.4.x code base (unless there is more backporting planned).

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

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




More information about the jboss-user mailing list