<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8768833230493930523</id><updated>2012-02-16T15:17:36.217+04:00</updated><title type='text'>Andrey Kriushin: on Oracle</title><subtitle type='html'>This blog is intended for the topics related to Oracle RDBMS</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kriushin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8768833230493930523/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kriushin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Andrey Kriushin</name><uri>http://www.blogger.com/profile/17495269481102310011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_-ZNnabivYZI/SYhktcDB46I/AAAAAAAAAAM/n0C_XNYIo18/S220/TechForum2005_HPIM5181.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8768833230493930523.post-4051717912166972989</id><published>2007-11-18T01:57:00.000+03:00</published><updated>2007-11-25T23:26:47.779+03:00</updated><title type='text'>Russian edition for "2K ill | NOT 2K ill (on the essence of KeepAlive)"</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Убивать - не убивать (мёртвые сеансы и KeepAlive)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-weight: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;У меня завалялась неопубликованная статья (которую я готовил как MetaLink Note году так в 2001-2002. Были там этакие правила для центров тех.поддержки). Несмотря на преклонный возраст, статья бывает периодически востребована для решения проблем наших (ЦТП {Центр Технической Поддержки} ЗАО "РДТЕХ") заказчиков.&lt;br /&gt;&lt;br /&gt;Обычно эти проблемы связаны с неудовлетворительным качеством сети (удаленный доступ с клиентских рабочих мест по "шумящим каналам")&lt;br /&gt;&lt;br /&gt;Либо с непродуманной (как минимум) организацией промежуточного (middle tier/multi-tier, серверы приложений) программного обеспечения. Особенно когда промежуточное ПО не использует опции типа connection pooling, а вместо этого реализует stateless connection (т.е. статус соединения не отслеживается). Типично для "кривых" реализаций WEB-интерфейсов к БД. На каждый "клик" в броузере октрывается соединение к БД, выполняется пара-тройка команд... И о соединении забывают (т.е. не закрывают его корректно). Решения тут понятны и прозрачны... Однако... что делать DBA, столкнувшемуся с данной проблемой, пока разработчики системы "прочухаются"?&lt;br /&gt;&lt;br /&gt;Один из способов: использование свойства протокола TCP/IP - KeepAlive&lt;br /&gt;&lt;br /&gt;Ниже - перевод той самой давней статьи на тему.&lt;br /&gt;&lt;br /&gt;---------&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Целевая аудитория&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Статья может быть полезна опытным DBA, когда клиенты подсоединены к основной БД по сети неудовлетворительного качества, когда соединения с клиента с сервером могут неожиданно прерываться (по различным, вне сферы ответственности DBA причинам)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Введение&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;В подавляющем большинстве случаев серверный процесс/диспетчер вовремя обнаруживает факт утраты соединения с клиентом. Обнаружив сей прискорбный факт, серверный процесс аварийно завершается, позволяя фоновому процессу PMON выполнить свою работу. Обсуждаемая проблема касается тех случаев, когда до PMON'а дело не доходит. Т.е. серверный процесс жив, но клиент о нём забыл.&lt;br /&gt;&lt;br /&gt;Типичная ситуация:&lt;br /&gt;&lt;br /&gt;a) по какой либо причине соединение на стороне клиента аварийной прервано (пользователь нажал кнопку "RESET" или "POWER OFF" на своей персоналке, или случился кратковременный перебой в обеспечении WAN-соединения, или вмешался firewall/router/switch со своими тайм-аутами и т.п.). В этом случае серверный процесс может "выжить", в то время как клиентская программа уже забыла о его существовании или вообще аварийно завершилась.&lt;br /&gt;&lt;br /&gt;b) пользователь переустановил соединение (создал новый сеанс со своим серверным процессом)&lt;br /&gt;&lt;br /&gt;c) "старый" сеанс был в неактивном состоянии ('INACTIVE') в момент аварийного завершения соединения на стороне пользователя (в случае 'ACTIVE' рано или поздно серверный процесс попытался обменяться сообщениями с клиентом, обнаружил бы сбой соединения и благополучно завершился)&lt;br /&gt;&lt;br /&gt;d) этот "старый" сеанс никогда не завершится (или завершится через весьма продолжительный период времени)&lt;br /&gt;&lt;br /&gt;e) DBA хочет завершить данный сеанс, поскольку PMON никаких действий не предпринимает, а сеанс мешает другим пользователям (например, в процессе выполнения транзакции удерживает блокировки)&lt;br /&gt;&lt;br /&gt;f) удаление сеанса средствами Oracle не помогает, status='KILLED', process='PSEUDO'&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;pre&gt;ALTER SYSTEM KILL SESSION '&amp;lt;sid&amp;gt;,&amp;lt;serial#&amp;gt;'&lt;sid&gt;,&lt;serial#&gt;;&lt;br /&gt;&lt;/serial#&gt;&lt;/sid&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;ALTER SYSTEM DISCONNECT SESSION '&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;sid&amp;gt;,&amp;lt;serial#&amp;gt;'&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;sid&gt;&lt;serial#&gt; IMMEDIATE;&lt;/pre&gt;&lt;/serial#&gt;&lt;/sid&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;Надо отметить, что вторая команда (DISCONNECT) срабатывает чаще&lt;br /&gt;&lt;br /&gt;g) поиск процесса для удаления его средствами ОС&lt;br /&gt;&lt;span style="" lang="EN-US"&gt;&lt;span class="GramE"&gt;&lt;span style="font-family:courier new;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;p.spid&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; FROM &lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;v$session&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; s, &lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;v$process&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; p&lt;/span&gt;&lt;o:p style="font-family: courier new;"&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;span class="GramE"  style="font-family:courier new;"&gt; WHERE &lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;s.paddr&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;=p.addr&lt;br /&gt;&lt;/span&gt;&lt;span class="GramE"  style="font-family:courier new;"&gt;       AND&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;s.sid&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;=&lt;&lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;sid&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;не возвращает строк. Конечно, процесс можно найти методом исключения (в &lt;span style="font-family:courier new;"&gt;V$PROCESS &lt;/span&gt;он всё еще присутствует).&lt;br /&gt;&lt;br /&gt;Еще комментарий - если для unix-подобных систем команда ОС kill -KILL &lt;pid&gt; решает проблему почти всегда (главное не ошибиться с выбором удаляемого процесса :-)), то в MS Windows в некоторых версиях, например, не освобождается PGA. Если версия, к тому же, 32-битная, то следует ожидать TNS-12560... Гхмм... А кто знает, как удалить сеанс на zOS/MVS?&lt;br /&gt;&lt;br /&gt;Oracle Net (NET8, SQL*NET v2) предоставляет механизм DCD (Dead Connection Detection) для разрешения подобных ситуаций. Чтобы задействовать его, следует в sqlnet.ora на сервере установить параметр &lt;span style="font-family:courier new;"&gt;SQLNET.EXPIRE_TIME&lt;/span&gt; (значение в минутах). Достоинство этого метода - в независимости от сетевого протокола (хотя нынче выжил единственный протокол - TCP/IP). К сожалению, реализация его до версии 10g оставляла желать лучшего. В частности, при задании параметра на стороне клиента некоторые операции по экспорту или, скажем, вызову долго выполняющихся ( &gt; &lt;span style="font-family:courier new;"&gt;SQLNET.EXPIRE_TIME&lt;/span&gt; ) процедур PL/SQL|Java могли неожиданно быть прерваны задействованным механизмом. Вы можете спросить - но ведь sqlnet.ora надо править на сервере? Да. Но вспомним о dblink... Один из серверов становится клиентом другого(-их).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Свойство "Keep Alive" протокола TCP/IP&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;Протокол TCP/IP является фактически единственным стандартным протоколом, используемым в современных сетях в Oracle Net.&lt;br /&gt;&lt;br /&gt;Сетевой протокол Oracle (Oracle Net/NET8/SQL*Net) использует возможности стандартных протоколов (в частности TCP/IP).&lt;br /&gt;&lt;br /&gt;Адаптер сетевого протокола Oracle может использовать общие возможности нижележащего протокола, в частности, обсуждаемый в этой статье механизм "Keep Alive".&lt;br /&gt;&lt;br /&gt;&lt;u&gt;ВАЖНОЕ ЗАМЕЧАНИЕ:&lt;/u&gt; в случае, когда сообщение "keep alive" не получает ответа, серверный процесс благополучно завершается (так как не содержит соответствующего обработчика исключительной ситуации), позволяя процессу PMON выполнить "зачистку".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Механизм Keep Alive&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;достаточно прост - две стороны соединения (клиент и сервер) периодически (по умолчанию интервал равен двум часам) посылают друг другу "пустые" или "пробные" пакеты TCP/IP, которые предназначены исключительно для проверки факта, что партнер в состоянии ответить. Если партнер не ответил на "пробник", посылавшая "пробник" сторона посылает еще несколько пакетов (но уже с другой частотой, отличной от 2-х часов по умолчанию). В конце концов, если ни на один "пробник" ответа не получено, соединение помечается как сбойное (драйвером TCP/IP) и процессу посылается TRAP от драйвера на уровне ОС.&lt;br /&gt;&lt;br /&gt;Поскольку обработчика прерывания в серверном процессе Oracle не предусмотрено (или же он не является последним в цепочке обработчиков), то процесс (серверный) аварийно завершается. Аварийное завершение серверного процесса обнаруживается PMON, что и требовалось.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Механизм DCD (Dead Connection Detection)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;несколько отличается, хотя общие черты, естественно, имеются. PMON (если не ошибаюсь) периодически пересылает IPC (Inter-Process Communication) сообщение серверным процессам средствами Oracle (постановка сообщения в очередь сообщений процессу и, в зависимости от платформы, взведение семафора, задействование post-wait драйвера и т.п.). И ждет ответа. Предполагается, что каждый серверный процесс периодически проверяет свою очередь входных сообщений&lt;sup&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;*)&lt;/span&gt;&lt;/sup&gt;, посылает "пробник" партнеру, и, в случае успеха, ответчает на них PMON'у. Вопрос в том, как часто происходит такая проверка. Что, если исполняется "долгоиграющая" процедура? Или долго выполняющаяся команда? И предусмотрен ли механизм асинхронной проверки очередей сообщений (т.е. вне стандартного потока действий по обработке команды)? По тестам видно, в Oracle10g проверки проводятся асинхронно. Поэтому начиная с версии 10g можно полагаться на DCD. Но не в предыдущих версиях.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Как задействовать Keep Alive на разных платформах&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Предполагается, нашей целью является&lt;br /&gt;a) включение этой возможности&lt;br /&gt;b) регулирование частоты проверок (два часа могут быть слегка завышенной цифрой)&lt;br /&gt;&lt;br /&gt;- для включения механизма Keep Alive следует воспользоваться настройками на стороне клиента. В определение сетевого имени службы (оно же alias, описатель соединения... кратко говоря - то, что содержится в tnsnames.ora) следует включить "кляузу" &lt;span style="font-family:courier new;"&gt;(ENABLE=BROKEN)&lt;/span&gt;. Пример:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style="font-family:courier new;"&gt;xxx.domain.com = (DESCRIPTION&lt;/span&gt;&lt;span class="GramE"  style="font-family:courier new;"&gt;=(&lt;/span&gt;&lt;b style="font-family: courier new;"&gt;ENABLE=BROKEN&lt;/b&gt;&lt;span style="font-family:courier new;"&gt;)(ADDRESS= ....)... )&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;подробности в MetaLink Note:39357.1&lt;br /&gt;&lt;br /&gt;- ниже приведен (неполный) перечень действий по изменению интервала передачи "пробных пакетов" Keep Alive на разных платформах.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;a) &lt;b&gt;Windows&lt;/b&gt;: Изменить установки в реестре. Подробности на сайте поддержки Microsoft &lt;a href="http://www.blogger.com/%27http://support.microsoft.com/kb/120642/en-us%27"&gt;120642&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;      &lt;/pid&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;Edit - Add &lt;span class="GramE"&gt;value :&lt;/span&gt; &lt;span class="SpellE"&gt;KeepAliveTime&lt;/span&gt; (REG_DWORD)&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;Decimal -&gt; 180000 (3 minutes, for example)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;   &lt;/span&gt;b)&lt;span style=""&gt;  &lt;/span&gt;&lt;b&gt;Solaris/HP-UX&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;/&lt;span class="SpellE"&gt;usr/sbin/ndd&lt;/span&gt; –set /dev/&lt;span class="SpellE"&gt;tcp&lt;/span&gt; &lt;span class="SpellE"&gt;tcp_keepalive_interval&lt;/span&gt; 180000&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;(интервал 3 минуты)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoHeader" style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;   &lt;/span&gt;c) &lt;b&gt;Linux&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;/&lt;span class="SpellE"&gt;sbin/sysctl&lt;/span&gt; -w net.ipv4.tcp_keepalive_time=&lt;span class="GramE"&gt;1800 &lt;b&gt;&lt;u&gt;?&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;(&lt;span class="GramE"&gt;интервал 3 минуты&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;  &lt;/span&gt;d) &lt;b&gt;Tru64&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;/&lt;span class="SpellE"&gt;usr/sbin/netconfig&lt;/span&gt; &lt;span class="SpellE"&gt;tcp_keepidle&lt;/span&gt; 360&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;(&lt;span class="GramE"&gt;интервал 3 минуты&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;ЗАМЕЧАНИЕ: время  указывается  в единицах 1/2  секунды&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;e) &lt;b&gt;AIX&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;/&lt;span class="SpellE"&gt;usr/sbin/no&lt;/span&gt; -o &lt;span class="SpellE"&gt;tcp_keepidle&lt;/span&gt;=360&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;(&lt;span class="GramE"&gt;интервал 3 минуты&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="" lang="EN-US"&gt;ЗАМЕЧАНИЕ: время  указывается  в единицах 1/2  секунды&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8768833230493930523-4051717912166972989?l=kriushin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://kriushin.blogspot.com/2007/11/2k-ill-not-2k-ill-on-essence-of.html' title='Russian edition for &quot;2K ill | NOT 2K ill (on the essence of KeepAlive)&quot;'/><link rel='replies' type='application/atom+xml' href='http://kriushin.blogspot.com/feeds/4051717912166972989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8768833230493930523&amp;postID=4051717912166972989' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8768833230493930523/posts/default/4051717912166972989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8768833230493930523/posts/default/4051717912166972989'/><link rel='alternate' type='text/html' href='http://kriushin.blogspot.com/2007/11/russian-edition-for-2k-ill-not-2k-ill.html' title='Russian edition for &quot;2K ill | NOT 2K ill (on the essence of KeepAlive)&quot;'/><author><name>Andrey Kriushin</name><uri>http://www.blogger.com/profile/17495269481102310011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_-ZNnabivYZI/SYhktcDB46I/AAAAAAAAAAM/n0C_XNYIo18/S220/TechForum2005_HPIM5181.JPG'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8768833230493930523.post-6694107325449705693</id><published>2007-11-17T17:23:00.000+03:00</published><updated>2007-11-25T23:30:38.361+03:00</updated><title type='text'>2K ill | NOT 2K ill (on the essence of KeepAlive)</title><content type='html'>I have one article, intended for publishing as a MetaLink note quite long ago (2001-2002?). Inspite of of its quite venerable age, I use it quite often as the recommendation for the customers, who experience the problems with the dead sessions.&lt;br /&gt;&lt;br /&gt;Usually this is due to unsophisticated (to say the least) quality of the middle-tier in use (stateless WEB connection, repeated logins for a couple of statements and forgetting to close the connection to DB - i.e. not using proper connection pooling), the other cases may raise due to bad quality of the network. Anyway, the DBA should find some method to deal with that situation.&lt;br /&gt;&lt;br /&gt;One of the many ways is to utilize the KeepAlive feature of TCP/IP protocol.&lt;br /&gt;&lt;br /&gt;So, the article is here. Your comments/corrections are very welcome.&lt;br /&gt;&lt;br /&gt;---------&lt;br /&gt;&lt;h4&gt;&lt;span class="SpellE"&gt;&lt;span lang="EN-US"&gt;Adressee's&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;This short article may be &lt;span class="SpellE"&gt;usefull&lt;/span&gt; for of those advanced DBA's, whose client's PCs are connected to the Oracle Server via slow/noisy channels, i.e. where temporary breaks in the &lt;span class="GramE"&gt;network&lt;span style=""&gt;  &lt;/span&gt;(&lt;/span&gt;using TCP/IP) connections occur quite often.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h4&gt;&lt;span lang="EN-US"&gt;Preface&lt;/span&gt;&lt;/h4&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;In most cases the Oracle foreground/server/shadow process detects that a communication channel to the client is broken in a timely fashion, so the rest of connection failure processing is successfully performed by PMON background process. However, this is not always the case. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Typical situation:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;  &lt;/span&gt;a) &lt;span class="GramE"&gt;for&lt;/span&gt; some reason (for example, a user have pressed RESET or POWER-OFF/ON button on his/her PC, or there was a short break in the WAN network, or there are any time-outs specified on the firewall/router/switch) the client part of the connection terminated abnormally. &lt;span class="GramE"&gt;Which means, that server &lt;span class="SpellE"&gt;processs&lt;/span&gt; "&lt;span class="SpellE"&gt;sirvived&lt;/span&gt;" while client program was terminated or detected a network failure.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;  &lt;/span&gt;b) &lt;span class="GramE"&gt;the&lt;/span&gt; user had re-established connection to the server (i.e. created the new session)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;  &lt;/span&gt;c) &lt;span class="GramE"&gt;the&lt;/span&gt; "old" session was in 'INACTIVE' state during the abnormal disconnect (otherwise - status 'ACTIVE' - the broken connection would be detected when the server process will try to return the result or status of the current command to the client)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;  &lt;/span&gt;d) &lt;span class="GramE"&gt;this&lt;/span&gt; "old" session never dies (or will die  too late)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;  &lt;/span&gt;e) DBA wants to "cleanup" the instance, because PMON does nothing on the "old" session and this session holds the resources like locks, which bother the other sessions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;  &lt;/span&gt;f) an attept to kill the old session via Oracle doesn't help: &lt;/span&gt;&lt;span class="GramE"&gt;status='KILLED', process='PSEUDO'&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="GramE"&gt;&lt;span style="font-family:courier new;"&gt;&lt;pre&gt;alter&lt;span style="font-family:courier new;"&gt; system kill session '&amp;lt;&lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;sid&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&amp;gt;,&amp;lt;serial#&amp;gt;&lt;serial#&gt;&lt;/serial#&gt;&lt;/span&gt;&lt;serial# face="courier new"&gt;&lt;serial#&gt;';&lt;/serial#&gt;&lt;br /&gt;&lt;span class="GramE"  style="font-family:courier new;"&gt;alter&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; system disconnect session '&amp;lt;&lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;sid&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&amp;gt;,&lt;/span&gt;&lt;/serial#&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;serial#&amp;gt;&lt;/span&gt;&lt;serial# style="font-family: courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;serial#&gt;&lt;/serial#&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;serial#&gt;&lt;/serial#&gt;&lt;/span&gt;&lt;serial# style="font-family: courier new;"&gt;&lt;serial#&gt;&lt;/serial#&gt;&lt;serial# style="font-family: courier new;"&gt;' immediate;&lt;/serial#&gt;&lt;/serial#&gt;&lt;/serial#&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;serial# style="font-family: courier new;"&gt;&lt;serial# style="font-family: courier new;"&gt;&lt;serial# style="font-family: courier new;"&gt;&lt;/serial#&gt;&lt;span  lang="EN-US" style="font-family:courier new;"&gt;&lt;serial#&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/serial#&gt;&lt;/span&gt;&lt;/serial#&gt;&lt;/serial#&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;g) an attept to kill the session after f) also causes some difficulties&lt;span class="GramE"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;select&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;p.spid&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; from &lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;v$session&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; s, &lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;v$process&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; p&lt;/span&gt;&lt;o:p style="font-family: courier new;"&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;span class="GramE"  style="font-family:courier new;"&gt;    where&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;s.paddr&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;=&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;p.addr&lt;br /&gt;&lt;/span&gt;&lt;span class="GramE"  style="font-family:courier new;"&gt;       and&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;s.sid&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;=&lt;&lt;/span&gt;&lt;span class="SpellE"  style="font-family:courier new;"&gt;sid&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&gt;;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoHeader" style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span class="GramE"&gt;returns&lt;/span&gt; nothing. Of course, there are methods to find the runaway process as it is still present in &lt;span style="font-family:courier new;"&gt;V$PROCESS&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;One more comment: though in unix-like systems the &lt;span style="font-family:courier new;"&gt;kill -KILL &lt;pid&gt;&lt;/pid&gt;&lt;/span&gt; usually solves the problem (&lt;span style="font-style: italic;"&gt;when the right process was killed&lt;/span&gt; :-)), this is not the case with Oracle 32-bit on the 32-bit Windows and versions &amp;lt;9i.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;The Oracle Net (Net8/SQL*Net) product provides for a mechanism called Dead Connection Detection (DCD). This is configured via Client Profile (&lt;span class="SpellE"&gt;sqlnet.ora&lt;/span&gt;) using SQLNET.EXPIRE_TIME parameter on a server side. Such &lt;span class="GramE"&gt;a &lt;span class="SpellE"&gt;behaviour&lt;/span&gt;&lt;/span&gt; is protocol independent. Unfortunately, the implementation of this DCD feature is not always satisfactory. Namely, while the setting is in effect, some long running PL/SQL procedures might be erroneously recognized as "DEAD". Or the long running export utility sessions also could be "killed". The most typical mistake here  is when the DCD is configured on the client (and not server) side. However, when the dblink is used, then the server becomes a client for the other server. Here is the  problem.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;TCP/IP "Keep Alive" feature&lt;/span&gt;&lt;/h2&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;The TCP/IP protocol is by the fact an industry standard. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Oracle networking products just rely on the features of ANY industry standard protocol. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Oracle TCP/IP adapter also could use a common feature of TCP/IP, which is a subject of this note, namely "Keep Alive". &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="" lang="EN-US"&gt;IMPORTANT NOTE&lt;/span&gt;&lt;/u&gt;&lt;span style="" lang="EN-US"&gt;: If the &lt;span class="SpellE"&gt;KeepAlive&lt;/span&gt; message is not responded upon in a required time interval, than the shadow (server) process dies gracefully, allowing the PMON to do the clear "process failure cleanup".&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h4&gt;&lt;span lang="EN-US"&gt;The mechanism of the &lt;span class="SpellE"&gt;KeepAlive&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;  &lt;p class="MsoHeader" style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span class="GramE"&gt;&lt;span style="" lang="EN-US"&gt;is&lt;/span&gt;&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; very straightforward - the two communicating parties (client and server) periodically (by default the time interval equals to 2 hours) are sending each other some "empty" or "probe" TCP/IP packets, which just confirm, that the partner of the connection is able to respond. If the partner doesn't respond, than the sending party resends the &lt;span class="SpellE"&gt;KeepAlive&lt;/span&gt; packets at more frequent intervals for some time. Finally, if there is still no response,&lt;span style=""&gt;  &lt;/span&gt;the connection is marked as "faulted" and corresponding TRAP is sent to the connection "owner" on the OS level. Oracle server processes do not provide any handlers for the TRAP, so the process dies. The death of the server process allows the PMON to cleanup.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h4&gt;&lt;span lang="EN-US"&gt;The mechanism of the DCD&lt;/span&gt;&lt;/h4&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="GramE"&gt;&lt;span style="" lang="EN-US"&gt;is&lt;/span&gt;&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; a little bit different. The PMON (IIRC) periodically &lt;span class="SpellE"&gt;enqueues&lt;/span&gt; some &lt;b&gt;IPC (Inter-Process Communication) &lt;/b&gt;message in the SHARED POOL and "posts" this message (via OS semaphore, post-wait driver or similar). The it waits for the reply through ICP. It is assumed, that each server process will check its own incoming message queue, sends an Oracle Net "probe" packet and in case of cuccess will respond to PMON in timely fashion. The question then is - how often this incoming queue is checked? Is it checked while the call execution is going on (i.e. asynchronously with respect to the main processing)? In the tests on Oralce10g there is an evidence of such &lt;/span&gt;&lt;span style="" lang="EN-US"&gt;asynchronous processing for DCD messages. But not in the earlier versions.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoHeader" style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;span lang="EN-US"&gt;TCP/IP "Keep Alive" feature - how to (employ&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style="font-size:100%;"&gt;)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;To switch on the &lt;span class="SpellE"&gt;KeepAlive&lt;/span&gt; feature of the TCP/IP protocol, one should:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt; &lt;/span&gt;-&lt;span style=""&gt;  &lt;/span&gt;specify in the "service specification" in his/her client's &lt;span class="SpellE"&gt;tnsnames.ora&lt;/span&gt;/Oracle Names &lt;span class="SpellE"&gt;config&lt;/span&gt; the following clause (an example):&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;xxx.domain.com = (DESCRIPTION&lt;span class="GramE"&gt;=(&lt;/span&gt;&lt;b&gt;ENABLE=BROKEN&lt;/b&gt;)(ADDRESS= ....)... )&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Some details can be found in the MetaLink Note:&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;39357.1&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;- decrease (if required) the interval between &lt;span class="SpellE"&gt;KeepAlive&lt;/span&gt; messages on the OS level. The later is platform-depenent. Find below some examples for a  number of the platforms:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;   &lt;/span&gt;a) &lt;b&gt;Windows&lt;/b&gt;: change the registry settings (see Microsoft support site for case &lt;a href="http://kriushin.blogspot.com/2007/11/%27http://support.microsoft.com/kb/120642/en-us%27"&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;a href="http://kriushin.blogspot.com/2007/11/%27http://support.microsoft.com/kb/120642/en-us%27"&gt;120642&lt;/a&gt;&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;Edit - Add &lt;span class="GramE"&gt;value :&lt;/span&gt; &lt;span class="SpellE"&gt;KeepAliveTime&lt;/span&gt; (REG_DWORD)&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;Decimal -&gt; 180000 (3 minutes, for example)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;   &lt;/span&gt;b)&lt;span style=""&gt;  &lt;/span&gt;&lt;b&gt;Solaris/HP-UX&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;/&lt;span class="SpellE"&gt;usr/sbin/ndd&lt;/span&gt; –set /dev/&lt;span class="SpellE"&gt;tcp&lt;/span&gt; &lt;span class="SpellE"&gt;tcp_keepalive_interval&lt;/span&gt; 180000&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;(&lt;span class="GramE"&gt;sets&lt;/span&gt; 3 minutes interval)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoHeader" style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;   &lt;/span&gt;c) &lt;b&gt;Linux&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;/&lt;span class="SpellE"&gt;sbin/sysctl&lt;/span&gt; -w net.ipv4.tcp_keepalive_time=&lt;span class="GramE"&gt;1800 &lt;b&gt;&lt;u&gt;?&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;(&lt;span class="GramE"&gt;set&lt;/span&gt;s 3 minutes interval)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;  &lt;/span&gt;d) &lt;b&gt;Tru64&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;/&lt;span class="SpellE"&gt;usr/sbin/netconfig&lt;/span&gt; &lt;span class="SpellE"&gt;tcp_keepidle&lt;/span&gt; 360&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;(&lt;span class="GramE"&gt;sets&lt;/span&gt; 3 minutes interval)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;NOTE: time is specified in 1/2 second units&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;e) &lt;b&gt;AIX&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;/&lt;span class="SpellE"&gt;usr/sbin/no&lt;/span&gt; -o &lt;span class="SpellE"&gt;tcp_keepidle&lt;/span&gt;=360&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;(&lt;span class="GramE"&gt;sets&lt;/span&gt; 3 minutes interval)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="" lang="EN-US"&gt;NOTE: time is specified in 1/2 second units&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8768833230493930523-6694107325449705693?l=kriushin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriushin.blogspot.com/feeds/6694107325449705693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8768833230493930523&amp;postID=6694107325449705693' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8768833230493930523/posts/default/6694107325449705693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8768833230493930523/posts/default/6694107325449705693'/><link rel='alternate' type='text/html' href='http://kriushin.blogspot.com/2007/11/2k-ill-not-2k-ill-on-essence-of.html' title='2K ill | NOT 2K ill (on the essence of KeepAlive)'/><author><name>Andrey Kriushin</name><uri>http://www.blogger.com/profile/17495269481102310011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_-ZNnabivYZI/SYhktcDB46I/AAAAAAAAAAM/n0C_XNYIo18/S220/TechForum2005_HPIM5181.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8768833230493930523.post-2979263067500925656</id><published>2007-11-17T17:14:00.000+03:00</published><updated>2007-11-17T17:18:29.729+03:00</updated><title type='text'>Welcome message from YAB (Yet Another Blogger)</title><content type='html'>I'm glad to welcome any interesting person, who managed to reach this blog.&lt;br /&gt;&lt;br /&gt;Hopefully, the future publications and comments will add the value for Oracle community.&lt;br /&gt;&lt;br /&gt;Andrey Kriushin, YAB&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8768833230493930523-2979263067500925656?l=kriushin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kriushin.blogspot.com/feeds/2979263067500925656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8768833230493930523&amp;postID=2979263067500925656' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8768833230493930523/posts/default/2979263067500925656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8768833230493930523/posts/default/2979263067500925656'/><link rel='alternate' type='text/html' href='http://kriushin.blogspot.com/2007/11/welcome-message-from-yab-yet-another.html' title='Welcome message from YAB (Yet Another Blogger)'/><author><name>Andrey Kriushin</name><uri>http://www.blogger.com/profile/17495269481102310011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_-ZNnabivYZI/SYhktcDB46I/AAAAAAAAAAM/n0C_XNYIo18/S220/TechForum2005_HPIM5181.JPG'/></author><thr:total>1</thr:total></entry></feed>
