The only message on this topic I found is from March of this year:
It could be that you are seeing an exhaustion of the number of sockets available. If the clients connect, do a transaction and then disconnect then you will be recycling a lot of sockets. A socket is not immediately reusable, it has to sit in the TIME_WAIT state for a period before it becomes free for reuse.
Check the setting for the duration of TIME_WAIT, it should be about 60 seconds.
Increase the number of sockets available.
Check that your clients are closing the sockets properly after use.
Setting the TIME_WAIT value in the registry to 30 s seemed to leave more of the packets in CLOSE_WAIT instead of TIME_WAIT, but didn't prevent socket exhaustion.
I know these are newbie questions, but could someone explain two things to me:
(a) What does it mean, "check that your clients are closing the sockets properly after use"? Isn't it the responsibility of the XML-RPC library to close the sockets? I wouldn't even know *how* to fail to close the sockets, since I'm not opening them - all I do is call the "execute" method. But surely this couldn't be a bug in the library, could it?
(b) Where does one go to increase the number of sockets available? Is this done in the registry? the xml-rpc library? someplace else?
- dam
