好吧。我最近剛剛得出這個結論。訪問數據庫時是否有時間限制?更準確地說,MySQL數據庫是通過MySQL提供的JDBC和驅動程序訪問的?訪問數據庫時是否有時間限制?那麼,
要知道更精確地發生什麼,我給你更多的細節:
所以我有一個網站,實際上提供RESTful Web服務,它也支持與凱蒂 - 緩存緩存,因爲一些計算是做昂貴。我運行該項目,並從瀏覽器訪問所有api地址,一切正常。
奇怪的是,當我沒有關閉我的電腦,今天我再次訪問,與數據庫(MySQL)有關的地址只是錯誤,內部服務器錯誤,並且錯誤是由NullPointerException引起的它不應該發生。我停止了該項目,再次運行它,訪問相同的地址,並顯示了數據。
有沒有時間限制?我們如何刷新數據庫連接?我想我會嘗試重新連接它,但我不知道如何。
代碼:
java.sql.Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String conStr =
"jdbc:mysql://" + this.dbHostname +
":" + this.dbPort + "/" + this.dbName;
conn = DriverManager.getConnection(conStr, this.dbUsername, this.dbPassword);
this.isConnectingSuccess = true;
} catch (ClassNotFoundException cnfe) {
throw new IllegalDbCmdExecution(cnfe.getMessage());
} catch (SQLException sqle) {
throw new IllegalDbCmdExecution(sqle.getMessage());
}
你能告訴我們一些代碼,或至少jdbc聲明? – KernelPanic
閱讀關於JDBC的autoReconnect和wait_timeout屬性。將autoReconnect設置爲true和/或將wait_timeout從默認的8小時增加到更多應該有所幫助。 – yetanotherse
這也將與您連接到數據庫的方式有關。但是,是的,我會懷疑有一個非活動連接超時 – MadProgrammer