как устанавливается соединение с оракулом?

Мой слушатель оракула tns слушает 1521, и у меня есть 2 живых соединения. Не могли бы вы объяснить, как устанавливаются соединения с 127.0.0.1:1521? Передает ли tnslistener соединение с oracleXE? Это как-то связано с этим Могу ли я открыть сокет и передать его другому процессу в Linux?

Proto Recv-Q Send-Q Local Address           Foreign Address         State          PID/Program name
tcp        0      0 0.0.0.0:1521            0.0.0.0:*               LISTEN         1129/tnslsnr    
tcp        0      0 127.0.0.1:1521          127.0.0.1:37542         ESTABLISHED 9091/oracleXE   
tcp        0      0 127.0.0.1:1521          127.0.0.1:37975         ESTABLISHED 9907/oracleXE   
tcp        0      0 127.0.0.1:37975         127.0.0.1:1521          ESTABLISHED 9905/sqlplus    
tcp        0      1 192.168.0.7:41844       10.20.12.63:1521        SYN_SENT    1155/xe_pmon_XE 
tcp        0      0 127.0.0.1:37542         127.0.0.1:1521          ESTABLISHED 9089/sqlplus 

Обновление: Кроме того, между этими

F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 S oracle    9091     1  0  80   0 - 217645 sk_wai 17:16 ?       00:00:00 oracleXE (LOCAL=NO)
0 S oracle    9907     1  0  80   0 - 217645 sk_wai 17:43 ?       00:00:00 oracleXE (LOCAL=NO)
0 S oracle    1129     1  0  80   0 -  5529 poll_s 08:27 ?        00:00:00 /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/tnslsnr LISTENER -inherit

person mert inan    schedule 03.06.2013    source источник


Ответы (1)


Прослушиватель слушает порт прослушивателя. Там он принимает соединение, проверяет CONNECT_DATA и решает передать сеанс указанному ORACLE_SID или ORACLE_SERVICE, если он зарегистрирован в прослушивателе. Передача обычно осуществляется другому процессу и другому порту. Этот номер порта возвращается клиенту, и клиент будет связываться с процессом ORACLE, используя этот порт. В системе RAC хост также может быть другим. Если балансировка нагрузки включена, сеанс направляется на наименее загруженный экземпляр, который может находиться на хосте, отличном от того, на котором был получен исходный запрос.

Если прослушиватель не работает, новое соединение установить невозможно, но можно использовать существующий сеанс.

person ik_zelf    schedule 03.06.2013
comment
вы упомянули нормально. Мой случай исключительный? если да то как? Благодарю. - person mert inan; 03.06.2013
comment
в Windows вы можете повторно использовать один и тот же порт, на данный момент не помню, как это сделать. Необычно. - person ik_zelf; 04.06.2013