Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 VLAN и зависание сессий (SQL*Net more data from client)  [new]
oranub
Member

Откуда:
Сообщений: 8
Есть таблица с BLOB-полем (~ 3 мегабайта), которое периодически надо отдавать на клиента.
Есть БД на Oracle 11g, в которой эта таблица лежит.
Есть локальные пользователи, у которых нет проблем с получением этого BLOB.
Есть удаленные пользователи (через VLAN), у которых запросы на получение этого поля вызывают глухое зависание клиента (жертва эксперимента - PL\SQL Developer).
V$Session для зависших сессий показывает event "SQL*Net more data from client".
Эксперименты с sqlnet.ora на клиенте показали, что включение опции TRACE_LEVEL_CLIENT=ADMIN (или SUPPORT) решает проблему - зависания исчезают совсем (в логах при этом нет никаких ошибок).
Я так понимаю, что проблема связана с нестабильностью сетевого соединения.
Вопросы:
1) что можно сделать на стороне ораклового клиента/сервера для повышения устойчивости к сетевым сбоям?
2) что такое происходит при включении опции TRACE_LEVEL_CLIENT (в буфер чтоль какой специальный складываются данные, прежде чем уйти клиентскому приложению)?
20 апр 11, 20:42    [10544345]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
Alex Roudnev
Member

Откуда: Валнут Крик, Калифорния
Сообщений: 5547
oranub
Есть таблица с BLOB-полем (~ 3 мегабайта), которое периодически надо отдавать на клиента.
Есть БД на Oracle 11g, в которой эта таблица лежит.
Есть локальные пользователи, у которых нет проблем с получением этого BLOB.
Есть удаленные пользователи (через VLAN), у которых запросы на получение этого поля вызывают глухое зависание клиента (жертва эксперимента - PL\SQL Developer).
V$Session для зависших сессий показывает event "SQL*Net more data from client".
Эксперименты с sqlnet.ora на клиенте показали, что включение опции TRACE_LEVEL_CLIENT=ADMIN (или SUPPORT) решает проблему - зависания исчезают совсем (в логах при этом нет никаких ошибок).
Я так понимаю, что проблема связана с нестабильностью сетевого соединения.
Вопросы:
1) что можно сделать на стороне ораклового клиента/сервера для повышения устойчивости к сетевым сбоям?
2) что такое происходит при включении опции TRACE_LEVEL_CLIENT (в буфер чтоль какой специальный складываются данные, прежде чем уйти клиентскому приложению)?


Сделайте хак - руками на интерфейсе клиента или сервера поставьте MTU 1400.

Может помочь. Если поможет - тогда пишите сюда, напишем что писать сетевым инженерам.
20 апр 11, 22:59    [10544696]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
Еще можно поиграться настройками SDU в tnsnames/listener.ora
21 апр 11, 02:22    [10545176]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
размерпакета
Guest
Непонятно только, почему включение трассировки решает проблему.
21 апр 11, 10:09    [10545716]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
Скорее всего, трассировка достаточно сильно меняет алгоритм работы

У меня на 9.2 на линуксе постоянно тупо зависал листенер, причем никакой закономерности не угадывалось, мог через 10 минут работы повиснуть, а мог и неделю проработать
Включил трассировку -- зависаний больше не было, так и оставил с трассировкой, оно еще несколько лет так работало
listener.ora
TRACE_FILELEN_LISTENER=100
TRACE_FILENO_LISTENER=5
TRACE_LEVEL_LISTENER=admin
21 апр 11, 10:14    [10545753]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
размерпакета
Guest
Вячеслав Любомудров
Скорее всего, трассировка достаточно сильно меняет алгоритм работы

У меня на 9.2 на линуксе постоянно тупо зависал листенер, причем никакой закономерности не угадывалось, мог через 10 минут работы повиснуть, а мог и неделю проработать
Включил трассировку -- зависаний больше не было, так и оставил с трассировкой, оно еще несколько лет так работало
listener.ora
TRACE_FILELEN_LISTENER=100
TRACE_FILENO_LISTENER=5
TRACE_LEVEL_LISTENER=admin



Да, интересное поведение.
Кстати, в 9i есть проблема с размером log-файла листенера - не более 2Gb.
Иначе листенер падает. Размер не проверял?
21 апр 11, 10:20    [10545787]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
Конечно, проверял. Это было первым подозрением
Виснуть он начал через некоторое время после апгрейда с 9.2.0.3 на 9.2.0.4
21 апр 11, 10:23    [10545807]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
Rb-Sr
Member

Откуда:
Сообщений: 296
oranub
Есть таблица с BLOB-полем (~ 3 мегабайта), которое периодически надо отдавать на клиента.

Смело выставляйте SDU_MAX_SIZE в максимум.
21 апр 11, 13:19    [10547302]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
EugeneS
Member

Откуда:
Сообщений: 1255
1. Пробросить порт 1521 через предварительно открытый ssh tunnel.
Если работает через ssh, то это 100% кривая сеть и это вопрос к сетевикам.

2. Убедится что сетевеки не установили idle timeout на firewall-e.
Лечится установкой sqlnet.expire_time в значение меньшее чем idle timeout firewall-a.
21 апр 11, 16:00    [10548686]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
oranub
Member

Откуда:
Сообщений: 8
MTU - не помогло, никакой реакции на изменение не наблюдается.
SDU - особого эффекта тоже нет( пробовал много вариантов от 512 до 32767, меняется только скорость).
В ходе дальнейших исследований удалось установить, что сессии не зависают намертво, а либо отваливаются с ошибками (ORA-12582/12592), либо возвращают результат (в этом случае ждать приходится порядка часа). Изменение TRACE_LEVEL_CLIENT лишь ускоряет этот процесс в разы.


to EugeneS - завтра попробую ваш вариант
22 апр 11, 00:52    [10550784]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
EugeneS
Member

Откуда:
Сообщений: 1255
А версия клиента какая?
22 апр 11, 14:44    [10553573]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
oranub
Member

Откуда:
Сообщений: 8
клиент от 9 версии.
Проблема вроде как локализована в лице Cisco ASA. Разбираемся, что и как.
23 апр 11, 17:23    [10557940]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
Часто проблема в сетевом оборудовании возникает от слишком "умных" опций, типо "распозновать SQL-траффик"
25 апр 11, 02:05    [10560730]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
oranub
Member

Откуда:
Сообщений: 8
Вячеслав Любомудров
Часто проблема в сетевом оборудовании возникает от слишком "умных" опций, типо "распозновать SQL-траффик"


Вот как раз эта фича и портила нам жизнь.
Большое спасибо!!!
25 апр 11, 12:03    [10562022]     Ответить | Цитировать Сообщить модератору
 Re: VLAN и зависание сессий (SQL*Net more data from client)  [new]
EugeneS
Member

Откуда:
Сообщений: 1255
Вячеслав Любомудров
Часто проблема в сетевом оборудовании возникает от слишком "умных" опций, типо "распозновать SQL-траффик"



Как любит повторять один мой знакомый
"Сетевик - это первый враг DBA" :)
26 апр 11, 11:14    [10566416]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить