17 1月, 2008

(
0)

(
0)

(
0)

(
0)
Total: 0

MySQLは、これまでBenchmark、Index、IVP、Intel、SAPから3900万ドルを調達しており、IPOを目指しているらしいというのは、風の噂で周知の事実であったが、1/16にSun MicrosystemsがMySQLを10億ドルで買収したことが明らかになった。
個人的には、MySQL Clusterの開発が加速されるとうれしいです。有償でもいいから、便利な管理ツールとかもリリースされるといいなぁ。
20 7月, 2007

(
3)

(
0)

(
0)

(
0)
Total: 3
そういえばJDBCで長時間放置しているとコネクションが切れる問題を解決したのをスッカリ忘れていました。
MySQLは8時間通信が無いと、コネクションを切るそうなのですが、JDBCの設定でautoReconnect=trueを設定しておけば問題無いハズなのですが、今回はなぜかautoReconnect=trueの設定をしても再接続されずに3日ほどドツボにハマッておりましたが、結局プログラムで例外をキャッチしてリトライさせる方法で解決しました。
—–2009/04/28追記—–
ConnectionPoolingを利用している場合、以下の設定もご確認下さい。
autoReconnectForPools=true
JDBCが3.2系の場合、以下のプロパティをtrueにする必要があります。3.3系からはautoReconnectの機能が削除されています。
enableDeprecatedAutoreconnect=true
MySQL公式リファレンス:Connector/J の Driver/Datasource クラス名、URL シンタックス、および構成プロパティ
26 6月, 2007

(
1)

(
0)

(
0)

(
0)
Total: 1
最近作成したプログラムで、一晩放置するとなぜか、コネクションが切れるという問題が発生。サーバを構築したのが私ではないので、どこか設定に問題があるのだろうが、ちと調査が大変だ。
→解決方法
— Check the SQL Statement (preparation failed).
— Cause: java.sql.SQLException: No operations allowed after connection closed.Connection
was implicitly closed due to underlying exception/error:
** BEGIN NESTED EXCEPTION **
com.mysql.jdbc.CommunicationsException
MESSAGE: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.io.EOFException
STACKTRACE:
java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1905)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2351)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2862)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2988)
at com.mysql.jdbc.Connection.rollbackNoChecks(Connection.java:4837)
at com.mysql.jdbc.Connection.rollback(Connection.java:4734)
at com.ibatis.common.jdbc.SimpleDataSource.popConnection(SimpleDataSource.java:629)
at com.ibatis.common.jdbc.SimpleDataSource.getConnection(SimpleDataSource.java:222)
at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTransaction.java:48)
at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:89)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:565)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:540)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:84)
at com.ibatis.dao.client.template.SqlMapDaoTemplate.queryForObject(SqlMapDaoTemplate.java:223)
at com.soba_project.webapi.registration.sqlmapdao.TrialInterimUserInfoSqlMapDao.getUserInfoByEmail(TrialInterimUserInfoSqlMapDao.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.ibatis.dao.engine.impl.DaoProxy.invoke(DaoProxy.java:72)
at $Proxy10.getUserInfoByEmail(Unknown Source)
at com.soba_project.webapi.registration.service.TrialInterimRegistrationService.getUserInfoByEmail(TrialInterimRegistrationService.java:55)
at com.soba_project.webapi.InterimRegistrationServlet.servletTrialInterimRegistration(InterimRegistrationServlet.java:412)
at com.soba_project.webapi.InterimRegistrationServlet.doGet(InterimRegistrationServlet.java:138)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
** END NESTED EXCEPTION **
Last packet sent to the server was 1 ms ago.
STACKTRACE:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
autoReconnectForPools
http://dev.mysql.com/doc/refman/5.1/ja/connector-j-reference-configuration-properties.html