<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

    com.mysql.jdbc.CommunicationsException: The last packet successfully received from the server was58129 seconds ago.The last packet sent successfully to the server was 58129 seconds ago, which 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超時設置的問題
    如果連接閑置8小時 (8小時內沒有進行數據庫操作), mysql就會自動斷開連接, 要重啟tomcat.

     

     

    解決辦法:

     

     

        一種. 如果不用hibernate的話, 則在 connection url中加參數: autoReconnect=true

    jdbc.url=jdbc:mysql://ipaddress:3306/database?autoReconnect=true&amp;autoReconnectForPools=true

     


        二種。用hibernate的話, 加如下屬性:
            <property name="connection.autoReconnect">true</property>
            <property name="connection.autoReconnectForPools">true</property>
            <property name="connection.is-connection-validation-required">true</property>

     


        三。要是還用c3p0連接池:
            <property name="hibernate.c3p0.acquire_increment">1</property>
            <property name="hibernate.c3p0.idle_test_period">0</property>
            <property name="hibernate.c3p0.timeout">0</property>
            <property name="hibernate.c3p0.validate">true</property>

     

     

     四。最不好的解決方案

     

    使用Connector/J連接MySQL數據庫,程序運行較長時間后就會報以下錯誤:

    Communications link failure,The last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was ***  millisecond ago。

    其中錯誤還會提示你修改wait_timeout或是使用Connector/J的autoReconnect屬性避免該錯誤。

    后來查了一些資料,才發現遇到這個問題的人還真不少,大部分都是使用連接池方式時才會出現這個問題,短連接應該很難出現這個問題。這個問題的原因:

    MySQL服務器默認的“wait_timeout”是28800秒即8小時,意味著如果一個連接的空閑時間超過8個小時,MySQL將自動斷開該連接,而連接池卻認為該連接還是有效的(因為并未校驗連接的有效性),當應用申請使用該連接時,就會導致上面的報錯。

    1.按照錯誤的提示,可以在JDBC URL中使用autoReconnect屬性,實際測試時使用了autoReconnect=true& failOverReadOnly=false,不過并未起作用,使用的是5.1版本,可能真像網上所說的只對4之前的版本有效。

    2.沒辦法,只能修改MySQL的參數了,wait_timeout最大為31536000即1年,在my.cnf中加入:

    [mysqld]

    wait_timeout=31536000

    interactive_timeout=31536000

    重啟生效,需要同時修改這兩個參數
    posted on 2012-11-06 16:29 ivaneeo 閱讀(4076) 評論(0)  編輯  收藏 所屬分類: bi(商務智能)
    主站蜘蛛池模板: 亚洲国产成人影院播放| 免费在线观看亚洲| 久久久无码精品亚洲日韩蜜臀浪潮| 日本一区二区三区在线视频观看免费| 成人毛片18岁女人毛片免费看| 亚洲 欧洲 自拍 另类 校园| 手机在线毛片免费播放| 亚洲中文字幕久久精品蜜桃| 午夜一区二区免费视频| 美女视频黄频a免费大全视频| 又黄又爽一线毛片免费观看| 又粗又长又爽又长黄免费视频| JLZZJLZZ亚洲乱熟无码| 91福利免费网站在线观看| 亚洲av无码不卡| 亚洲毛片免费视频| 亚洲精品美女久久久久久久| 国产成人青青热久免费精品| 一个人晚上在线观看的免费视频| 亚洲日韩欧洲无码av夜夜摸| 蜜桃成人无码区免费视频网站| 亚洲欧洲日产v特级毛片| 女人18一级毛片免费观看| 色费女人18女人毛片免费视频| 亚洲伊人色欲综合网| 99精品一区二区免费视频| 日韩亚洲产在线观看| 亚洲精品国产高清不卡在线| 国产一级淫片a免费播放口| 亚洲天堂一区二区三区四区| 国产精品免费看久久久久| 你懂的在线免费观看| 亚洲一卡2卡3卡4卡国产网站| 免费乱码中文字幕网站| 国产精品网站在线观看免费传媒| 亚洲一区二区三区免费视频| 亚洲国产高清精品线久久| 全部免费毛片在线播放| 亚洲a∨国产av综合av下载 | 亚洲国产成人久久综合区| 日本免费人成视频在线观看|