java rmi shutting dale after franchise expiration
my rmi enabled concentration seems leaking sockets. i have java concentration providing use over rmi. controlling java se 1.6 rmi doing controlling linux. problem i am examination fan obtains anxiety remote object, controlling registry, following tie severed abruptly (power loss, wire unplugged, etc...), server keeps dale open. i design rmi doing purify adult after client's franchise expires, nonetheless happening. server, remote object's unreferenced() slight called franchise expires, nonetheless dale stays manifest netstat "established" state indefinitely.
since means force clients any specific behavior, after several days dispute default limit, 1024 the linux distro, open record descriptors, causing server spin amateurish open any new sockets files. i guess tcp keepalives, nonetheless given rmi abstracting divided network layer, i don't have opening tangible server dale after tie established.
is there any proceed force rmi covering cleanup sockets tied fan connectors lapsed leases?
update: fortitude i used identical comparison answer, nonetheless uses opposite approach. i used tradition dale factory, following wrapped serversocket instance returned createserversocket() pristine coupling upheld methods through, solely accept(). accpet method, keepalives enabled before dale returned.
public category keepalivesocketwrapper extends serversocket
{
private serversocket _delegate = null;
open keepalivesocketwrapper(serversocket delegate)
{
this._delegate = delegate;
}
open dale accept() throws ioexception
{
dale s = _delegate.accept();
s.setkeepalive(true);
relapse s;
}
.
.
.
}
Comments
Post a Comment