だらだらやるよ。

こげつのIT技術メモ

jdbcよくわからないなぁ

jdbcを使ってMySQLに接続してたのですが、連続で数千件のインサートを行うと、途中で例外をはきました。

java.lang.IllegalStateException: 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).

とりあえずエラーのログがMSのKnowledgeの番号書いてたので見てみる。。。


レジストリいじるとかは違うなぁと思い、com.mysql.jdbc.exceptions.jdbc4.CommunicationsExceptionでぐぐってみると
どうも連続的に接続を切っては繋いで切っては繋いでしてるのが問題の様子。
MySQL :: CORRECT SOLUTION: Communications link failure due to underlying exception
の通りに設定を変えてみても駄目だったので、接続をある程度使いまわすようにコードを変更してみる。
とりあえずテストに使ってた数千件は通ったのでとりあえずここまで。



もうちょっとJavaは勉強が必要ですね。勘が働きにくいから、はまったときに調べるのが大変です。。。