質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

2回答

6733閲覧

mysql connection time outの問題

anonymous001

総合スコア96

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2015/01/23 01:26

-java7
-tomcat7
-mybatis(ORM)
でwebサービスを開発しております。
予期せぬタイミングでMysqlのコネクションが切れて、ログアウト状態になり困っています。
その際にサーバーログを見てみると以下の様なエラーメッセージが出力されていました。

lang

1 2015 10:03:49 org.apache.ibatis.datasource.pooled.PooledDataSource warn 2 WARN: Execution of ping query 'SELECT 1' failed: Communications link failure 3 4 The last packet successfully received from the server was 30,572,290 milliseconds ago. The last packet sent successfully to the server was 1 milliseconds ago. 5 org.apache.ibatis.exceptions.PersistenceException: 6 ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 36,001,604 milliseconds ago. The last packet sent successfully to the server was 36,001,633 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. 7 ### The error may exist in sql.xml 8 ### The error may involve com.xxx.isRegistered-Inline 9 ### The error occurred while setting parameters 10 ### SQL: [query for login]; 11 ### Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 36,001,604 milliseconds ago. The last packet sent successfully to the server was 36,001,633 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.

mysqlの設定はすべてデフォルトなのでタイムアウトの時間はinteractive_timeout:28800(8時間)です。
8時間以内にアクセスしても一旦ログアウトされる現象がたびたび起きています。
poolPingQueryはMysqlのコネクションプールがアクティブかどうかを毎回測り,アクティブじゃなければ
このクエリによってアクティブにするような認識なのですが、以下のconfig設定でなにが悪いのかご教示ください。
エラーメッセージに書かれているautoReconnect=trueを接続URLの末尾にたしてもダメでした

config.xml

lang

1 <transactionManager type="JDBC" /> 2 <dataSource type="POOLED"> 3 <property name="driver" value="com.mysql.jdbc.Driver" /> 4 <property name="url" value="jdbc:mysql://localhost:3306/xxxxdb" /> 5 <property name="username" value="xxxxxxx" /> 6 <property name="password" value="xxxxxxx" /> 7 <property name="poolPingEnabled" value="true" /> 8 <property name="poolPingQuery" value="SELECT 1 " /> 9 </dataSource> 10 </environment>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

投稿2015/01/23 02:09

ipadcaron

総合スコア1693

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

poolPingConnectionsNotUsedFor – poolPingQuery が実行されるまでの時間を設定します。 データベース接続がタイムアウトするまでの時間に合わせて設定することで、必要以上に ping クエリが実行されるのを防ぎます。 デフォルト: 0(poolPingEnabled が true の場合、すべての接続に対して毎回 ping が実行されます)

MyBatis - MyBatis 3 | 設定
実際には試せていませんが、解説を読む限りpoolPingConnectionsNotUsedForの設定が必要なのかもしれません。

投稿2015/01/23 01:57

sho_cs

総合スコア3541

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問