2012-04-05 12 views
0

Javaを使用して1000のサーバーソケットを作成する必要があります。 600から700のソケットを作成する間のどこかでこのエラーが発生します:Windows XP SP3 TCP/IPバッファースペースがありません

05.04.2012 10:23:57 java.net.SocketException: No buffer space available (maximum connections reached?): listen at sun.nio.ch.ServerSocketChannelImpl.listen(Native Method) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:127) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:52) at channelserver.NIOAppServer.initSelector(NIOAppServer.java:40) at channelserver.NIOAppServer.(NIOAppServer.java:27) at channelserver.NIOServer.main(NIOServer.java:433) at channelserver.NIOServer.main(NIOServer.java:438)

その後、コンピュータが再起動します。 MaxUserPort = 65534とMaxFreeTcbs = 2000のレジストリ設定を編集しようとしましたが、それは役に立たなかった。 他に何ができますか? http://serverfault.comで誰かがそれはJDBCに関連しているかもしれないと私に言いましたが、DBに一度だけ接続します。私はSQLiteを使用します。 提案がありますか?

答えて

0

誰かがこの問題に直面することもあります。
最後に、WinXPの問題だと私には思われました。私はより多くのRAMで同じコードを試しました - 結果は同じでした。しかし、私がWin7で試してみたところ、1200個のソケットでもすべてが正常に機能しました。
したがって、WinXPはそのようなタスクには適していません。

0

Windows XPの場合、このルールを破るために半開き接続に制限がありますが、tcpip.sysドライバにパ​​ッチを当てる必要はありますが、Windows Vista/7のような最新のOSを使用すると制限がありません。

+0

私はそれについて読んだことがあります。私は10の接続の電流制限がありますが、依然として約300のクライアント/サーバ接続を処理することができます。それが原因だとは思わない – Natalia

関連する問題