我在应用程序的错误日志文件中发现了以下错误。
“ERROR [org.sample.dao.hibernate.LoginDAOImpl] org.sample.dao.hibernate.LogonDAOImpl - 在[getHostIdFromDB]方法中捕获异常: - IO错误:套接字关闭“
以下是从数据库中获取值的片段。
try {
session = getHibernateTemplate().getSessionFactory().openSession();
conn = session.connection();
stmt = conn.createStatement();
stmt.execute("select GLOBAL_VAR.FN_GET_HOST from dual");
rs = stmt.getResultSet();
rs.next();
sysdate = (String) rs.getObject(1);
log.debug(this.getClass().getName() + " - [getHostIdFromDB] - Exit");
return sysdate;
} catch (Exception exp) {
log.error(this.getClass().getName() + " - Exception caught in [getHostIdFromDB] "
+ exp.getMessage());
}
由于此错误在错误日志文件中记录一次,我可以猜测这可能是某些网络连接问题。但我想更多地了解这个错误(IO错误:Socket关闭“),这是根本原因。任何澄清都是可以理解的。
答案 0 :(得分:2)
连接超时可能是因为驱动程序/数据库问题,或者因为结果太长而无法读取或查询需要花费大量时间来执行。尝试移动到池连接C3p0,看看你是否得到了更好的结果。