In Chapter 2, we saw how these dedicated servers are “spawned” or created by the Oracle
listener process. We won’t cover that process again; rather, we’ll quickly look at what happens
when the listener isn’t involved. The mechanism is much the same as it was with the listener,
but instead of the listener creating the dedicated server via a fork()/exec() in UNIX or an
interprocess communication (IPC) call in Windows, the client process itself creates it.
We can see this parent/child process creation clearly on UNIX when we run the client and
server on the same machine:
ops$tkyte@ORA10G> select a.spid dedicated_server,
2 b.process clientpid
3 from v$process a, v$session b
4 where a.addr = b.paddr
5 and b.sid = (select sid from v$mystat where rownum=1)
6 /
DEDICATED_SE CLIENTPID
------------ ------------
5114 5112
ops$tkyte@ORA10G> !/bin/ps -p 5114 5112
PID TTY STAT TIME COMMAND
5112 pts/1 R 0:00 sqlplus
5114 ? S 0:00 oracleora10g (DESCRIPTION=(LOCAL=YES)..(PROTOCOL=beq)))
这是tom书上的原话
|