Here is a direct cut from Oracle Corporation Power point slides concerning listener process in their Database Fundamentals II course which covers Networking and RMAN.
1. The client establishes a connection to the listener by using the configured protocol and sends the listener a connect packet. 2. The listener checks that the SID is defined. If it is, the listener will spawn a new thread or process to service the new connection. An IPC connection is then established between the listener and the new process or thread. 3. The new process or thread selects a "new TCP/IP port from the list of free user-defined ports" and passes this information back to the listener. 4. The listener inserts this new port into a redirect packet and sends it back to the client and the "original TCP socket between the client and the listener is then reset". 5. A "new TCP connection" is established to the redirect address specified in the redirect packet and a connect packet is then forwarded to the dedicated server process. 6. The dedicated server process can now finally accept the incoming connection and forwards an ACCEPT message back to the client.
Which says that the connection is redirected to a different port on the TCP stack and that is what is used for communication. The port 1521 or whatever is for the initial "listening" (hence the listener name) or a connection request. It is not the final port used for communication.
-- --Original Message-- -- From: Trey Gruel [mailto:drathos-suseoracle@(protected)] Sent: Tuesday, October 12, 2004 1:58 PM To: suse-oracle@(protected) Subject: RE: [suse-oracle] oracle directory permssions and listener
On Tue, 12 Oct 2004, Hollis, Les wrote: <snip> > Now, once the connection is MADE, through port 15xx (1521 if you prefer) a > response is sent to your client that directs the actual connection to a port > other than that of the listener. Your client then reconnects to the > database with the port number supplied to it. > > Take a look at a listener.log and see what port numbers you are actually > conversing on somewhere in the 30000 and up range typically.... but not > always true it depends on the server. <snip>
I don't think that is correct. The port numbers listed in your logs are, I believe, the *source* port number. In this example:
-- To unsubscribe, email: suse-oracle-unsubscribe@(protected) For additional commands, email: suse-oracle-help@(protected) Please see http://www.suse.com/oracle/ before posting
-- To unsubscribe, email: suse-oracle-unsubscribe@(protected) For additional commands, email: suse-oracle-help@(protected) Please see http://www.suse.com/oracle/ before posting