background image

 

 

 

衍生、继承和直接传送连接

 

接收到连接请求时,监听程序可能会衍生专用的服务器进程,并将连接传送给该进程或由其继承。该方法的使用取决于所

用操作系统是否支持网络终端继承性。当监听程序衍生专用服务器进程并由该服务器进程继承连接时,即称为继承

 

会话。此时将按顺序出现下列事件:

1.

 

客户机使用配置的协议建立与监听程序的连接,并向该监听程序发送一个

CONNECT  数据包。

2.

监听程序检查是否已定义  SID 。如果已经定义,监听程序将分派或衍生一个新进程来处理该连接。此时会在监听

程序和新的服务器进程之间建立继承连接,以传送进程初始化信息。传送完毕后,继承连接关闭。请注意,新的

服务器进程会继承  TCP  套接字。

3.

 

服务器进程将

RESEND  数据包发送回客户机。

4.

 

继续向新衍生的专用服务器进程发送新的

CONNECT  数据包。

5.

 

该专用服务器进程接受传入的连接并将

ACCEPT 

 

消息转发回客户机。

如果由于操作系统或协议的原因,而无法在同一机器上的两个不同进程之间传送连接,则必须进行重定向。
注:客户机断开连接时,客户机的专用服务器进程将关闭。

 

使用 Oracle Shared Server  的直接传送连接
当操作系统以上述方式处理共享服务器连接时,即称为 直接传送连接。二者的唯一区别是监听程序不衍生调度程

序进程。但是,连接方法是相同的。

注:如果监听程序在用于连接的远程节点上选择共享服务器调度程序,则不能进行直接传送。这是使用负载均衡

 

技术的 Real Application Clusters  数据库中的典型情况,在该数据库中,一个节点上的监听程序可以选择另一

个节点上的调度程序。

Windows  平台注意事项
Windows NT  在缺省情况下不支持网络终端的继承性。要启用该功能,必须将注册表条目

  USE_SHARED_SOCKET 

设为

  TRUE ,才允许多个连接使用一个单一套接字。当该值为  FALSE  (缺省值)时,将不会进行继承连接,

而将启动重定向会话。

如果

  USE_SHARED_SOCKET  条目设为  TRUE , Windows NT  可以启动继承连接,但是需注意几点事项。如果启动

了多个连接,并且因某种原因监听程序已经停止,则直到清除了这些连接后,监听程序才能重新启动。这是

因为现有连接正在使用监听程序执行监听需使用的同一端口号。这是

  Microsoft  使用  Widows  套接字  API 

(WINSOCK2)  实施

  TCP/IP  的局限性。