Ошибка ввода / вывода: гнездо закрыто - PullRequest
0 голосов
/ 10 января 2012

Я обнаружил следующую ошибку в файле журнала ошибок моего приложения.

"ОШИБКА [org.sample.dao.hibernate.LoginDAOImpl] org.sample.dao.hibernate.LogonDAOImpl - Исключение, отловленное в методе [getHostIdFromDB]: - Ошибка ввода-вывода: сокет закрыт "

Ниже приведен фрагмент получения значения из базы данных.

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 Error: Socket closed ") и ее основной причине. Любые разъяснения были бы полезны.

1 Ответ

2 голосов
/ 10 января 2012

Тайм-аут соединения может быть из-за проблемы с драйвером / БД или из-за того, что результат слишком длинный для чтения или запрос выполняется много времени Попробуйте перейти к пулу соединения C3p0 и посмотреть, получите ли вы лучшие результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...