Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

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

Re: ye olde 1521

From: amit poddar <amit.poddar_at_yale.edu>
Date: Tue, 31 May 2005 10:09:10 -0400
Message-ID: <429C7006.6010407@yale.edu>


I have been going through this thread again.

Few points of confusion I have if anybody can please clarify ?

"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."

If this is the case then how does is the hand off implemented (under POSIX)

"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."

I beleive that was true for windows only. If thats true for unix then does each dedicated process listens on a different port number ? Because I don't see anything on our database server listeneing on anything else except 1521.

"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."

How about

main()
{

   .....
   if ( fork() == 0 )
   {

      execlp ("/xx/yy/oracle",....)
   }
   exit
}

Here main forks, the parent exits and the child memory is overwritten by executable image to oracle.

thanks
amit

Tanel Põder wrote:

>Hi,
>
>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.
>
>Tanel.
>
>----- Original Message -----
>From: "Henry Poras" <hporas_at_comcast.net>
>To: <oracle-l_at_freelists.org>
>Sent: Friday, February 04, 2005 3:00 PM
>Subject: ye olde 1521
>
>
>
>
>>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
>>
>>
>>--
>>http://www.freelists.org/webpage/oracle-l
>>
>>
>
>--
>http://www.freelists.org/webpage/oracle-l
>
>
>

--
http://www.freelists.org/webpage/oracle-l
Received on Tue May 31 2005 - 10:14:05 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US