D
daniel.tietze
Hi.
I'm having a potential problem at a customer site which
has me completely baffled and with which I could do with
some help.
I've written and deployed at the customer site an Client/
Server application, developed using RMI. The problem occurs
on the server side.
I've implemented my own SocketFactory and am restricting
the sockets to ports 8091 and 8091 - through the SocketFactory
and through the constructor of java.rmi.server.UnicastRemoteObject.
The server is waiting for incoming commections. The DGC
regularly does maintenance and garbage collection, triggering
my SocketFactory. Server machine is Windows 2000. The server
machine has local server ports 8090 and 8091 in LISTENING
state (on 0.0.0.0:8090 and 0.0.0.0:8091).
The server, machine A, is waiting for incoming connections from
the client application, on machine B, which is not running. On the
same network segment are machines C, D and E (all Linux machines),
on which NONE of my software is running, and which should have
NOTHING to do with my system. These machines are communicating
amongst themselves, but not with machine A.
The customer claims (I'm not on-site, so I can't check), that
after a random time of running my server application 24/7 (the
first time after about a week, the second time after only 3 hours),
machines C, D and E were no longer able to exchange data. As soon
as my server application on machine A is aborted, systems C,
D and E are again able to exchange data - immediately.
What I don't understand is:
How is it possible, that an RMI server application, which
has opened sockets, accept()s them, has the open sockets
in LISTENING state, but is not actively sending data,
IN ANY WAY influences the traffic on the rest of the subnet?
Do opened Sockets in the accept() state send ANY form of
traffic over the network?
Is there any way I can influence other machines on the
network, simply by opening a bunch of inbound sockets? To
the best of my understanding of networks and TCP/IP there
should be no way to do that. Or am I wrong?
Again, I'd appreciate any help or pointer or even wild
theory related to this problem.
Thanks,
Daniel
I'm having a potential problem at a customer site which
has me completely baffled and with which I could do with
some help.
I've written and deployed at the customer site an Client/
Server application, developed using RMI. The problem occurs
on the server side.
I've implemented my own SocketFactory and am restricting
the sockets to ports 8091 and 8091 - through the SocketFactory
and through the constructor of java.rmi.server.UnicastRemoteObject.
The server is waiting for incoming commections. The DGC
regularly does maintenance and garbage collection, triggering
my SocketFactory. Server machine is Windows 2000. The server
machine has local server ports 8090 and 8091 in LISTENING
state (on 0.0.0.0:8090 and 0.0.0.0:8091).
The server, machine A, is waiting for incoming connections from
the client application, on machine B, which is not running. On the
same network segment are machines C, D and E (all Linux machines),
on which NONE of my software is running, and which should have
NOTHING to do with my system. These machines are communicating
amongst themselves, but not with machine A.
The customer claims (I'm not on-site, so I can't check), that
after a random time of running my server application 24/7 (the
first time after about a week, the second time after only 3 hours),
machines C, D and E were no longer able to exchange data. As soon
as my server application on machine A is aborted, systems C,
D and E are again able to exchange data - immediately.
What I don't understand is:
How is it possible, that an RMI server application, which
has opened sockets, accept()s them, has the open sockets
in LISTENING state, but is not actively sending data,
IN ANY WAY influences the traffic on the rest of the subnet?
Do opened Sockets in the accept() state send ANY form of
traffic over the network?
Is there any way I can influence other machines on the
network, simply by opening a bunch of inbound sockets? To
the best of my understanding of networks and TCP/IP there
should be no way to do that. Or am I wrong?
Again, I'd appreciate any help or pointer or even wild
theory related to this problem.
Thanks,
Daniel