I suppose it's time for a definitive resolution of this issue :)
There is a white paper from the Oracle Corp., titled "SQL*Net and
Firewalls". (Part C10451, October 1995, By David Sidwell, with
contributions from Mary Ann Davidson, Richard Allen, Norman Woo, and Cyrill
Scott. I got it from their support web site.) It explains how SQL*Net V2
uses multiple port numbers. In summary:
- With dedicated servers that haven't been pre-spawned, the listener
bequeaths accepted connections to server processes. These dedicated servers
share the same port number as the listener.
- With pre-spawned dedicated servers, each server process has its own port
number. The listener accepts the connection, locates a free server process,
and sends a redirection message the client. The client-listener connection
is dropped, and the client connects to the server's port number.
- Under MTS, the listener proceeds in a similar fashion, but provides the
port of an appropriate dispatcher instead of a dedicated server. Again, the
client-listener connection is dropped, and the client connects to the
dispatcher's port number. In this scenario, each dispatcher has its own
port number.
Which is why you need firewall software that understands SQL*Net if you're
using MTS. (And you probably should be using MTS.)
Copyright 1997 Phil Herring. This article may not be reproduced for profit.
Received on Thu Oct 16 1997 - 00:00:00 CDT