In my application, that deployed at linux, i need to open 30000-40000 sockets on virtual interfaces using threads.
I will get that exception after some time
com.jcraft.jsch.JSchException: java.net.SocketException: Too many open files
I tried many system configuration like sysctl, ulimit and I also tried some java option like -Xms1024m -Xmx4096m -XX:MaxPermSize=2048m -XX:ThreadStackSize=4000
but i never get rid of that exceptions.
This exception has great impact on my application.
If you really need 30,000 concurrent connections that sure is going to be one heck of a server. If you don't need them concurrently but overall, the problem may be you forgetting to close all connections when you're done with them.