|
|
|
Рвется соединение с сервером, таймаут 15 минут, как сократить?
|
|||
|---|---|---|---|
|
#18+
Привет, Ситуевина следующая, есть приложение на линуксах, соединяется через оракловый клиент с 11 сервером. При разрыве соединения без RST пакетов приложение думает что соединение все еще есть, а по факту его уже нет и это длится примерно 15 минут! Куда копать чтобы сократить этот таймаут? Приложение? (разработка говорит что это не к ним вообще) Клиент Oracle? Сервер Oracle? Linux сервер Oracle? Linux клиент Oracle? Нарыл какие то настройки keepalive на Linux: tcp_keepalive_intvl = 75 tcp_keepalive_time = 7200 tcp_keepalive_probes = 9 Но выглядит странно... Ощущение что это настройки именно ораклового клиента, но вот где их искать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 15:46 |
|
||
|
Рвется соединение с сервером, таймаут 15 минут, как сократить?
|
|||
|---|---|---|---|
|
#18+
Петров АндрейОщущение что это настройки именно ораклового клиента Нет, этот системные настройки. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 15:52 |
|
||
|
Рвется соединение с сервером, таймаут 15 минут, как сократить?
|
|||
|---|---|---|---|
|
#18+
Например: - tcp_keepalive_time = 120 (2 минуты) - sqlnet.expire_time = 2 (минуты) - поменять таймаут на firewall на неактивное соединение и так далее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 15:55 |
|
||
|
Рвется соединение с сервером, таймаут 15 минут, как сократить?
|
|||
|---|---|---|---|
|
#18+
Петров АндрейСитуевина следующая, есть приложение на линуксах, соединяется через оракловый клиент с 11 сервером. При разрыве соединения без RST пакетов приложение думает что соединение все еще есть, а по факту его уже нет и это длится примерно 15 минут! Куда копать чтобы сократить этот таймаут? Приложение? (разработка говорит что это не к ним вообще) Добрый день, коллеги. Собственно, ситуация та же. Только на клиенте выставлены следующие параметры: net.ipv4.tcp_keepalive_time = 60 net.ipv4.tcp_keepalive_intvl = 10 net.ipv4.tcp_keepalive_probes = 6 и в tnsnames.ora: (DESCRIPTION= (ENABLE=BROKEN) (CONNECT_TIMEOUT=3)(TRANSPORT_CONNECT_TIMEOUT=2)(RETRY_COUNT=3) Параметр ENABLE=BROKEN заставляет ораклового клиента работать с keepalives. Пакеты keepalive ходят - проверено tcpdump'ом. А таймаут при разрыве соединения с БД все-равно остается на уровне 14-15 минут. В конце концов приложение ловит ORA-03113, и только после этого переустанавливает соединение. Как же все-таки заставить клиента детектить обрывы соединения быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 16:23 |
|
||
|
Рвется соединение с сервером, таймаут 15 минут, как сократить?
|
|||
|---|---|---|---|
|
#18+
А в каком состоянии эти соединения Код: sql 1. Случаем не в TIME_WAIT? Попробовать(на сервере и клиенте): быструю утилизацию сокетов находящихся в состоянии TIME_WAIT Код: sql 1. механизм разрешающий использовать уже существующие сокеты, которые находятся в состоянии TIME_WAIT, если это не повредит безопасности. Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 19:16 |
|
||
|
Рвется соединение с сервером, таймаут 15 минут, как сократить?
|
|||
|---|---|---|---|
|
#18+
Петров Андрей, Копать в сторону DCD (Dead Connection Detection) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 20:19 |
|
||
|
Рвется соединение с сервером, таймаут 15 минут, как сократить?
|
|||
|---|---|---|---|
|
#18+
landyА в каком состоянии эти соединения Случаем не в TIME_WAIT? К сожалению, не известно. Проблема разбирается постфактум, воспроизвести сложно. orac_listКопать в сторону DCD (Dead Connection Detection) DCD включен. На сервере БД sqlnet.expire_time=1, probe-пакеты ходят через каждые 60 сек. Только на клиента это не влияет при сбросе соединения файрволом. Замечено, что если после сброса соединения приложение делает новый запрос к БД на чтение/запись, то оно относительно быстро ловит exception (до 2 мин.), если же на момент обрыва существует активное соединение (запрос послан, ждем ответа), получаем 15-минутный таймаут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 10:30 |
|
||
|
Рвется соединение с сервером, таймаут 15 минут, как сократить?
|
|||
|---|---|---|---|
|
#18+
Проблема - на уровне TCP. Похоже, 15 минут давал параметр tcp_retries2 (default = 15 , количество попыток ретрансмита). Изменили tcp_retries2=3, время восстановления соединения теперь в пределах 30 секунд. Объяснение: https://access.redhat.com/solutions/726753 -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2017, 14:40 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=161&tid=1885873]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 403ms |

| 0 / 0 |
