« Eclipse コンパイル時の警告を無視する方法 (都度更新) | トップページ | JFreeChartを使用したサンプルプログラム2 (機能追加) »

2011年2月23日 (水)

Mysql + Java で CommunicationsException が発生

MySQL+Javaのローカル環境で負荷をかけたところ下記のエラーが発生

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The driver was unable to create a connection due to an inability to establish the client portion of a socket.

This is usually caused by a limit on the number of sockets imposed by the operating system. This limit is usually configurable.

For Unix-based platforms, see the manual page for the 'ulimit' command. Kernel or system reconfiguration may also be required.

For Windows-based platforms, see Microsoft Knowledge Base Article 196271 (Q196271).
    at sun.reflect.GeneratedConstructorAccessor16.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1118)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:343)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2308)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:774)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
    at sun.reflect.GeneratedConstructorAccessor12.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
       :

色々なサイトを見ていると、下記のサイトを発見

5000 を超える番号の TCP ポートから接続しようとすると 'WSAENOBUFS (10055)' エラーが表示される
http://support.microsoft.com/kb/196271/ja

実際に「netstat」コマンドを実行し、
番号を確認したところ、5000になると同じ事象が発生していたため、
同様の事象であることを確認

上記サイトに書かれた通りにレジストリを変更したところ、エラーは発生しなくなった・・・

« Eclipse コンパイル時の警告を無視する方法 (都度更新) | トップページ | JFreeChartを使用したサンプルプログラム2 (機能追加) »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/153605/50951022

この記事へのトラックバック一覧です: Mysql + Java で CommunicationsException が発生:

« Eclipse コンパイル時の警告を無視する方法 (都度更新) | トップページ | JFreeChartを使用したサンプルプログラム2 (機能追加) »