2015-04-02 44 views
1

嗨,感謝您提前提供任何幫助。非常大的select語句中的JDBC錯誤「丟失連接」

我想在JDBC上(在AWS和EC2實例上託管的Java程序中)在AWS MYSQL RDS上運行非常大的查詢。查詢返回〜130mil行,並且我成功地使用返回〜20mil行的相同程序來運行查詢,並將它們寫出到文本文件中。

約15分鐘到查詢我得到一個指向回這部分代碼丟失連接錯誤:

 ResultSet rs = statement.executeQuery(query); 

是否有關於MYSQL或JDBC可能被用盡定時此連接的設置,或者有什麼我可能會失蹤?

回答

0

你是否在像tomcat或jboss這樣的容器內部運行它,還是獨立代碼直接處理jdbc? 如果容器有連接池,則有超時配置。另一方面:提取大量數據有什麼意義?

+0

它是直接處理JDBC的獨立代碼。我需要提取這麼多的數據,因爲它是一個需要考慮整個宇宙的記錄鏈接程序(本表)。 – mdonigian 2015-04-02 21:14:16

+0

http://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#setQueryTimeout (int)。考慮到你的jdbc驅動程序的實現可以有一個默認的不是無止境的。如果有連接超時設置,請檢查數據庫。它是哪個數據庫供應商? – 2015-04-03 15:47:30