作者sarah7 (Apple♪)
看板java
標題[問題] JAVA 連結 mySQL 錯誤
時間Tue Jul 19 15:57:24 2011
小妹我最近在跑一個實驗,需要每 5 秒把每一筆資料存入資料庫,
但是實驗跑了一天左右,就會出現下列錯誤訊息:
InsertDB Exception:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:
No operations allowed after connection closed.Connection was implicitly
closed by the driver.
資料庫的環境是:windows7, Apache 2.2.8, PHP 5.2.6, MySQL 5.0.51b
JAVA程式環境是:windowsXP, jdk1.6.0_22, Eclipse
我的 java code 大概是這樣寫的:
============================================
jdbcmysql database = new jdbcmysql();
while(true){
database.insertTable();
}
public void insertTable(){
try{
pst=con.prepareStatement();
pst.setInt();
pst.executeUpdate();
}
catch(SQLexception e){
System.out.println();
}
finally{
Close();
}
}
============================================
由上述錯誤訊息來看,我覺得應該是類似 timeout 之類的問題,
但是我去 google 了一下,發現都不是我所遇到的問題,
所以只好來這邊求助了,希望版上大大們可以指點一下,謝謝 m( _ _ )m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.78.146
→ calais007:code用java寫的為什麼裝php和apache阿?java是run在哪? 07/19 16:26
※ 編輯: sarah7 來自: 140.114.78.146 (07/19 16:42)
→ sarah7:感謝樓上大大提醒,我把環境加到內文了。 07/19 16:42
→ calais007:所以java是當一般的AP run在windows?不是run在tomcat? 07/19 16:43
→ sarah7:是的, 是 run 在 windows 07/19 16:44
→ calais007:如果connection不斷的用,不需要每次做完就close掉吧 07/19 16:50
→ sarah7:所以只要不 close 就可以了嗎? 我試試看好了~ 謝謝 07/19 17:19
→ calais007:你也要確定你不會每次都會在create一個新的 07/19 17:34
→ sarah7:create 一個新的? 是說 close 完以後要 create 一個新的? 07/19 17:48
→ james732:如果你沒有close()的話,就不要create新的,重覆使用就好 07/19 17:49
→ calais007:我依你的行為猜測,你每次insert一個value都會create 07/19 17:51
→ calais007:一個新的connect,實際上這個只要做一次,重複使用即可 07/19 17:53
→ meconin:mysql 會有 timeout, default 好像是半天還是6小時 07/19 23:41
→ meconin:做個 retry 如何? 07/19 23:45