Я получаю случайное сообщение «Соединения закрыты: соединение закрыто» при использовании Oracle UCP, v 12.1.0.2.0. Похоже, что соединение помечен как закрытый в oracle.ucp.jdbc.proxy.JDBCConnectionProxyFactory # Invoke:Соединение закрывается при использовании Oracle UCP
if(Clock.isBefore(this.creationTS, this.m_jdbcPooledConnection.getAvailableStartTime()) || Clock.isBefore(this.creationTS, this.m_jdbcPooledConnection.getBorrowedStartTime())) {
this.m_closed = Boolean.valueOf(true);
}
Clock.isBefore (this.creationTS, this.m_jdbcPooledConnection.getAvailableStartTime()) возвращает истину.
Может кто-нибудь объяснить, для чего предназначена эта проверка?
GetAvailableStartTime устанавливается, когда соединение удаляется в пул, созданиеTS - устанавливается при создании JDBCConnectionProxyFactory и создается при удалении соединения.
isBefore выглядит следующим образом:
public static boolean isBefore(long time1, long time2) {
return time1 < time2 - 1000L;
}
Итак, условие для случаев, когда соединение было возвращено меньше, чем второй назад?
пс: попытался проверки запроса «выберите один из двух» - отсутствие эффекта