Win a copy of Murach's Python Programming this week in the Jython/Python forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

java.net.SocketException: Too many open files  RSS feed

 
vikas byn
Ranch Hand
Posts: 80
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
at com.jcraft.jsch.Util.createSocket(Util.java:386)
at com.jcraft.jsch.Session.connect(Session.java:186)
at com.jcraft.jsch.Session.connect(Session.java:154)
----------

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.

Please suggest me what should i do?

 
Tim Moores
Saloon Keeper
Posts: 3512
77
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"Too many open files" is not a memory problem. 30000 open sockets will likely be a problem; are you really anticipating that many *simultaneous* connections?

You can increase the maximum number of open files using the "ulimit" command; it's a common thing to do on servers, although not that many.
 
Rob Spoor
Sheriff
Posts: 20895
81
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!