取消
顯示結果 
搜尋替代 
您的意思是: 

Oracle on VMS

Oracle on VMS

Oracle on VMS, listener port =1521, 請問 client 連上 DB, 建立 session 時, server port=1521, client 會用 1024 以上的 random port....除此之外, 還會有用到其他的 server port 嗎?
19 回覆

Oracle on VMS

Oracle HTTP Server 會用到80 port

Oracle on VMS

我是指 clinet 透過 tnsnames.ora, 用 TOAD 等 software 與 Oracle DB 建立 session 時, 一般的 Unix based server, 都會只看到一個 session (Server 端 port = listener port, client 端是 1024 以上的 random port)....但在 OpenVMS 上會不同嗎?



Joey 你可否在你的 OpenVMS 機器上測試一下, 我手邊無 VMS 可測試



Thanks



Eric

Oracle on VMS

不好意思, 可否在測試之後, 把 show dev 的結果貼出來?

Oracle on VMS

TCPIP> sh dev(沒有client 連進來)



Port Remote

Device_socket Type Local Remote Service Host



bg21 STREAM 21 0 FTP *

bg24 STREAM 513 0 RLOGIN *

bg26 STREAM 23 0 TELNET *

bg28 STREAM 611 0 RDBSERVER *

bg34 STREAM 49152 21 10.10.2.1

bg57 STREAM 23 1230 TELNET 10.10.12.55

bg116 STREAM 23 2153 TELNET 172.21.1.12

bg126 STREAM 1521 0 *



TCPIP> sh dev(from 172.21.1.13 兩個client 連進來)



Port Remote

Device_socket Type Local Remote Service Host



bg21 STREAM 21 0 FTP *

bg24 STREAM 513 0 RLOGIN *

bg26 STREAM 23 0 TELNET *

bg28 STREAM 611 0 RDBSERVER *

bg34 STREAM 49152 21 10.10.2.1

bg57 STREAM 23 1230 TELNET 10.10.12.55

bg116 STREAM 23 2153 TELNET 172.21.1.12

bg126 STREAM 1521 0 *

bg130 STREAM 49201 1521 10.10.13.13

bg131 STREAM 1521 49201 10.10.13.13

bg138 STREAM 49203 0 *

bg139 STREAM 49203 1052 172.21.1.13

bg142 STREAM 49204 0 *

bg143 STREAM 49204 1054 172.21.1.13

Oracle on VMS

附件的比較清楚

Oracle on VMS

-和 Oracle on UNIX 一樣, use single shared listener port.



-可用以下命令檢視 socket/port usage,



TCPIP> netstat -a ! all the tcpip PORTs used



TCPIP> sho dev/port=xxx !show you which VMS BG devices(BGnnn:) related to tcpip PORT xxx



$sh dev/fu BGnnn: ! which process owned the BGnnn

Oracle on VMS

Joey ,



你的 client ip 是 172.21.1.13, Oracle listener port 是設多少?

Oracle on VMS

vms oracle listener port is 1521

Oracle on VMS

client ip 是 172.21.1.13?

為什麼沒有看到 1521 的 connection?



bg139 STREAM 49203 1052 172.21.1.13

bg143 STREAM 49204 1054 172.21.1.13

Oracle on VMS

我覺得vms 是會產生另一個Port 跟client 溝通的

每當我新連進一個session,tcpip>show dev 都會產生新的socket,而且port 都不是1521



而且我用下列的指令去看這些新增的socket,這應該是session建立時對應的process

$ sh dev/fu bg139



Device BG139:, device type unknown, is online, mounted, record-oriented device,

network device, mailbox device.



Error count 0 Operations completed 9

Owner process "ORA_JOEYC0756" Owner UIC

Owner process ID 0000025D Dev Prot S:RWPL,O:RWPL,G:RWPL,W:RWPL

Reference count 1 Default buffer size 256

Oracle on VMS

我試過其他的 OS (HP-UX, Tru64, Windows)等, server 端都是固定用 1521, 而不會透過其他非 listener port.



有沒有什麼設定, 可讓 Oracle on OpenVMS 可以固定使用 listener port 建立 session?



否則不同 zone 之間的 firewall 會無法只透過固定的 port 開放 policy

Oracle on VMS

Joey,



你可以試一下在 listener.ora 加入以下這行嗎?



use_shared_socket = true



重啟 listener 看看會不會固定使用 1521?



謝謝幫忙

Oracle on VMS

試過了

還是一樣會用其他Port

別的討論區也有人問過,不過狀況一樣

http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=1029919

Oracle on VMS

原來也是你問的....

不過我的測試環境是9.2.0.2 on vms 7.3-1

Oracle on VMS

Joey,



謝謝, 有沒有認識其他的客戶使用 oracle on VMS, 也會這樣嗎?

Oracle on VMS

我接觸過的有兩家(oracle 8i 的)

剛去問了結果也是一樣

Oracle on VMS

On Metalink, the uses of use_shared_socket all refer to NT platform. Oracle suggest the following solutions



1. Use CMAN or Firewalls that support SQL*net proxy, or

2. MTS with certain port ranges

(Doc ID: Note:361284.1,Note:125021.1 etc., )



看來 Oracle 在 OpenVMS 上並未 implement "use_shared_socket". 我想可能的原因是,



Because OpenVMS does not share file and socket descriptors between parent and forked processes, you cannot simply use fork() and socket calls like unix to share sockets.

To share sockets, some proprietary OpenVMS system services are needed (you can see that the FTP and Telnet services on OpenVMS does share the same server ports!)

For more info. on socket sharing on OpenVMS, you can search the keywords "socket sharing firewall" in http://h71000.www7.hp.com/wizard/index.html.

Oracle on VMS

我試過其他 OS (HP-UX, Tru64 等), 都不會像 OpenVMS 上這樣, 而你提到的Note:361284.1,

是 Oracle Net Services - Version: 10.2.0.1

才會遇到 (on any platform), 可是我們現在是 9i, 只有在 OpenVMS 上會這樣, 難道 OpenVMS 上有哪個參數需要設定?

Oracle on VMS

ericfjchen,



VMS 本身並沒有參數的設定會影響 socket sharing.



我認為除非 oracle 願意 change their design specifically on VMS using non-portable codes, or HP 能夠更改 the way of openvms Prcess Forking 否則只能用如 Note:361284.1 oracle建議的 solutions.



ps



-如果 HP(在 DEC/Compaq時代) 能夠單純地更改 the way of openvms Prcess Forking , 那就不會有 OpenVMS/Posix (現已不支援了) 的產生.



(安裝 Posix 後 OpenVMS 便有兩個 kernels 並存, 一為傳統 VMS kernel, 一為 posix kernel, 即 unix!)



-我想 Note:361284.1 also apply to oracle9, oracle8 on openvms and MTS on unix!