2013-06-03 95 views
0

我的oracle tns偵聽器正在偵聽1521,並且我有2個活連接。你能否解釋一下如何建立連接到127.0.0.1:1521? tnslistener是否將連接傳遞給oracleXE?這與Can I open a socket and pass it to another process in Linux有關嗎?如何建立與oracle的連接?

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 

更新: 而且也沒有父/子關係bettwen那些

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 

回答

2

的聽衆收聽偵聽器端口。在那裏它接受一個連接,檢查CONNECT_DATA並決定將會話移交給指定的ORACLE_SID或ORACLE_SERVICE,如果這是向監聽器註冊的。通常交給一個不同的進程和一個不同的端口。此端口號返回給客戶端,客戶端將使用該端口與ORACLE進程通信。在RAC系統中,主機也可以是不同的。如果啓用了負載均衡,則會話將路由到負載最少的實例,並且可以位於與原始請求所在的位置不同的主機上。

如果聽者下來,新的連接不能進行,但可以用現有會話。

+0

你通常提及。我的例子是例外嗎?如果是的話如何?謝謝。在windows上你可以使用 –

+0

重複使用同一個端口,此刻不記得如何。不常見。 –