Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 какая-то бага jdbc thin  [new]
artemg
Member

Откуда: Санкт-Петербург
Сообщений: 593
драйвер 10.2.0.3(используется implicit connection cache), jdk1.5.0_15,
тестируем работу jdbc thin с базой через ssl, столкнулись со странным глюком
через некоторое время работы (пару часов)
треды начинают подвисать на

"Thread-0" prio=1 tid=0x083475c0 nid=0x76a3 runnable [0x8a67d000..0x8a67e140]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)

strace соответственно показывает

recv(12, <unfinished ...>

На стороне БД серверные процессы висят на SQL*Net message from client.

И все друг друга ждут пока не передёрнешь jvm.

При этом tcpdump-ом видно что keep alive пакетики со стороны субд прилетают, запихиваются во входящий буфер, а дальше не выбираются (и через какое-то время заканчивается tcprcvbuf).

Проявляется это на разных операциях с БД
и на
at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1661)
и на
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3445)

Чего куда смотреть?
На металинках ничего не нашёл.
Может поиграться с таймаутами SQLNET.EXPIRE_TIME или пуловыми типа AbandonedConnectionTimeout?
Я так предполагаю что нужно вдумчиво трейсить jdbc и sqlnet ловить пакеты, чё там произошло в момент затыка.
6 июл 09, 19:52    [7383199]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить