成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate用MySQL數(shù)據(jù)庫時鏈接關(guān)閉異常的表現(xiàn)

數(shù)據(jù)庫 MySQL
以下的相關(guān)內(nèi)容就是對Hibernate用MySQL數(shù)據(jù)庫時鏈接關(guān)閉異常的實際解決方案 的描述,望會給你帶來一些幫助在此方面。

我們今天主要描述Hibernate用MySQL數(shù)據(jù)庫時鏈接關(guān)閉異常的實際解決方案,愿在你學習Hibernate用MySQL數(shù)據(jù)庫時鏈接關(guān)閉異常的實際解決方案中以起到拋磚引玉的作用,以下就是文章的詳細內(nèi)容介紹,望大家借鑒。

在一個項目中,客戶要求除操作系統(tǒng)外全部使用免費軟件,因此我使用了MySQL 4.0作為MySQL數(shù)據(jù)庫服務(wù)器,其JDBC驅(qū)動為3.0.9版本,在給客戶安裝后調(diào)試一切正常。可是到了第二天,只要一登錄就提示“No operations allowed after connection closed”異常,顯示在瀏覽器上。在經(jīng)過一番檢查后我發(fā)現(xiàn),在這種情況下只要重新啟動Tomcat就恢復正常,然而到了第二天問題依舊。

在網(wǎng)上查找一下,原來MySQL在經(jīng)過8小時不使用后會自動關(guān)閉已打開的連接,摘錄原文如下:

5.4. I have a servlet/application that works fine for a day, and then stops working overnight

MySQL closes connections after 8 hours of inactivity. You either need to use a connection pool that handles stale connections or use the "autoReconnect" parameter (see "Developing Applications with MySQL Connector/J").

Also, you should be catching SQLExceptions in your application and dealing with them, rather than propagating them all the way until your application exits, this is just good programming practice. MySQL Connector/J will set the SQLState (see java.sql.SQLException.getSQLState() in your APIDOCS) to "08S01" when it encounters network-connectivity issues during the processing of a query. Your application code should then attempt to re-connect to MySQL at this point.
 

在客戶那邊,晚上時間是不會有人使用這個系統(tǒng)的,就造成了系統(tǒng)中原先沒有考慮到的這個情況。

為此我試驗了三種方法:

1、在MySQL數(shù)據(jù)庫的url中加入autoReconnect=true

2、在每次調(diào)用getSession()方法時判斷session.isClosed()是否為真,若為真則調(diào)用session.reconnect();

3、在經(jīng)過兩天,事實證明前兩種方法都不起作用的情況下,我在這個頁面找到了第三種方法,即不使用Hibernate內(nèi)置的連接池(Hibernate強烈推薦不使用但我以前一直在用),改用C3P0連接池,這個連接池會自動處理MySQL數(shù)據(jù)庫連接被關(guān)閉的情況。要使用C3P0很簡單,先從Hibernate里把c3p0-0.8.3.jar復制到項目的lib目錄中,再在hibernate.properties里去掉hibernate.c3p0開頭的那些屬性的注釋(使用缺省值或自己需要的數(shù)值),這樣Hibernate就會自動使用C3P0代替內(nèi)置的連接池了。到目前為止前面的問題沒有再出現(xiàn)過。

以前對Hibernate警告不要使用內(nèi)置連接池作產(chǎn)品用途沒有太放在心上,這次是一個教訓,所以不論從穩(wěn)定還是性能的考慮,都應(yīng)該選擇相對更加成熟的連接池。

update:除了連接池的原因,原先寫的HibernateDAO類也有問題,在有些情況下一個session會被多個請求反復使用,現(xiàn)在已改正。另外,c3p0這個名字不是星球大戰(zhàn)里那個機器人么?

【編輯推薦】

  1. 如何實現(xiàn)MySQL鎖的優(yōu)化
  2. MySQL heap使用大匯總
  3. 如何用PHP來實現(xiàn)MySQL備份?
  4. MySQL轉(zhuǎn)義字符的實際應(yīng)用
  5. MySQL常用技巧都包括哪些?
責任編輯:佚名 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-04-07 09:40:57

DataReader鏈接關(guān)閉

2010-06-13 10:46:52

MySQL 數(shù)據(jù)庫

2010-05-11 18:23:31

MySQL數(shù)據(jù)庫分區(qū)

2011-04-07 15:47:28

MySQL數(shù)據(jù)庫

2009-09-28 13:29:41

加載過程Hibernate訪問

2009-06-02 14:36:28

HibernateMySQLEclipse

2010-06-17 13:34:47

SQL Server數(shù)

2011-07-12 16:41:14

mysql處理異常

2009-09-24 14:12:22

Hibernate數(shù)據(jù)

2009-09-25 13:18:15

Hibernate數(shù)據(jù)

2010-04-14 17:29:33

Oracle數(shù)據(jù)庫

2010-09-29 08:52:34

MySQL

2019-11-23 17:10:58

MySQL數(shù)據(jù)庫default

2010-06-01 10:58:57

MySQL數(shù)據(jù)庫

2009-06-24 07:58:52

Hibernate多數(shù)

2019-07-05 11:20:31

PythonMySQL數(shù)據(jù)庫

2015-06-08 13:48:15

數(shù)據(jù)庫數(shù)據(jù)完整性約束表現(xiàn)

2011-05-26 14:43:49

ORACLE數(shù)據(jù)庫異常處理

2010-05-20 14:52:42

MySQL數(shù)據(jù)庫

2011-08-05 14:02:17

MySQL數(shù)據(jù)庫異常處理
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品高| 午夜久久久久久久久久一区二区 | 亚洲精品久久久久久首妖 | 69热视频在线观看 | 99国内精品久久久久久久 | 欧美成人在线网站 | 91在线精品视频 | 亚洲久久一区 | 亚洲免费人成在线视频观看 | 国产成人免费视频网站高清观看视频 | 天天精品综合 | 天天干天天插 | 久久久激情视频 | 成人黄页在线观看 | 亚洲一区二区三区四区五区午夜 | 免费能直接在线观看黄的视频 | 男人的天堂久久 | 伊人一二三| 欧美视频在线观看 | 99视频免费| 色就干 | 伊人春色在线观看 | 成年女人免费v片 | 国产精品永久 | 亚洲一区二区三区欧美 | 国产欧美精品一区二区三区 | 在线免费观看成年人视频 | 草久在线 | 国产成人一区在线 | 亚洲第一视频 | 国产精品毛片在线 | 不卡一二区 | 欧美一区二区三区在线看 | 国偷自产av一区二区三区 | 超碰精品在线 | 亚洲欧美在线一区 | 国产在线色 | 日韩和的一区二区 | 中文字幕电影在线观看 | 久久性色 | 国产乱人伦精品一区二区 |