0
我通過JDBC連接訪問數據庫時遇到問題。JDBC錯誤:在讀取時檢測到流結束
End of stream was detected on a read
錯誤發生在幾個不同點是隨機的。
我很感激任何幫助。
我通過JDBC連接訪問數據庫時遇到問題。JDBC錯誤:在讀取時檢測到流結束
End of stream was detected on a read
錯誤發生在幾個不同點是隨機的。
我很感激任何幫助。
此問題的根本原因在於您的Java代碼和相關數據庫服務器之間的通信線路。它可以是一切。 JDBC代碼中的錯誤,JDBC驅動程序中的錯誤,NIC驅動程序中的錯誤,NIC蹩腳,網絡電纜不良,數據庫服務器斷斷續續,數據庫服務器因爲耗盡連接而丟失連接等等。
有沒有直接的原因,即使不是基於堆棧跟蹤。我會開始檢查JDBC代碼是否正確和健壯的書面。即在try/finally塊中獲取並關閉儘可能最短範圍內的所有數據庫資源。
E.g.
public Entity find(Long id) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
Entity entity = null;
try {
connection = database.getConnection();
statement = connection.prepareStatement(SQL_FIND_BY_ID);
statement.setLong(1, id);
resultSet = statement.executeQuery();
if (resultSet.next()) {
entity = new Entity();
entity.setSomething(resultSet.getObject("something"));
// ...
}
} finally {
close(resultSet);
close(statement);
close(connection);
}
return entity;
}
下一步將升級JDBC驅動程序,然後檢查硬件問題。
祝你好運擊倒了問題的原因。
什麼是堆棧跟蹤?哪些點?什麼數據庫和什麼JDBC驅動程序? – Dan 2010-02-11 19:09:52