Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> Re: ye olde 1521

Re: ye olde 1521

From: Tanel Põder <>
Date: Sat, 5 Feb 2005 17:12:57 -0000
Message-ID: <013301c50ba5$f0240910$0301a8c0@porgand>


Yep, it's called direct handoff - when listener manages to start up the server process (or a server process already pre-started), listener hands off the new TCP connection to server process and server process will now respond to client, while listener can continue its job. Otherwise redirection had to be done, e.g. listener responded to client with the ip and port number where the new server process was listening, client disconnected from listener and tried to connect to new address.

This was the main problem with firewalls, that's why you had to get a sqlnet compatible firewall, which snooped sqlnet traffic and opened up the required port for client to allow redirection. Other alternatives were to use connection manager or bind a MTS dispatcher to specific port and connect directly there (you don't need a listener to connect through a dispatcher).

Handoff isn't done by fork() call since fork only creates a clone of current process, but listener and Oracle server processes are based on different executable images.

Direct handoff should work with shared servers as well. It can be disabled with listener.ora parameter DIRECT_HANDOFF_TTC_<listener name> parameter (ON | OFF), but I've never tried it.

Btw, thanks to using shared sockets, you can shut down your listener, but all server process connections on the same port will remain operational.


> Just wondering if one of my strongly held untested assumptions is wrong. I
> always thought that when you connected to Oracle via the listener in
> dedicated server mode, you would come in via the listener port (i.e. 1521,
> 1526). The listener would then validate, spawn off a shadow oracleSID
> process using some arbitrary port, and the client would then be passed to
> this process with the listener butting out at that point. The client would
> then be connected to the database through that arbitrary port.
> Last week a developer and myself checked this out. He sniffed the coming
> and going of packets, and everything used only port 1521. I looked at
> netstat (I think the parameters were asp (RedHat AS3 OS) but I'm not
> sure. That info is at work but I'm not at the moment) and the only active
> Oracle ports were also 1521. Are other ports used? Is this dependent on
> load? I searched metalink and found the question asked, but no answers
> were ever posted.
> Thanks.
> Henry
> --

Received on Sat Feb 05 2005 - 12:15:36 CST

Original text of this message