Клиентское приложение, естественно, может работать
Удаленное выполнение. Клиентское приложение, естественно, может работать не на той машине, где работает СУБД.
Изолирование адресных пространств. Серверный процесс имеет доступ для чтения и записи к области SGA. Ошибочный указатель в клиентском процессе может повредить структуры данных в области SGA, если клиентский и серверный процессы физически взаимосвязаны.
Ранее в этой главе мы рассматривали "порождение", или создание, этих серверных процессов процессом прослушивания Oracle Net8 Listener. Не будем снова возвращаться к этому процессу, но коротко рассмотрим, что происходит, если процесс прослушивания не задействован. Механизм во многом аналогичен, но вместо создания выделенного сервера процессом прослушивания с помощью вызовов
fork()/
exec()
в ОС UNIX или вызова IPC (
Inter
Process
Communication), как это происходит в Windows, процесс создается непосредственно клиентским процессом. Это можно четко увидеть в ОС UNIX:
ops$tkyte@ORA8I.WORLD> 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.audsid = userenv('sessionid') 6 /
DEDICATED CLIENTPID --------- --------- 7055 7054
ops$tkyte@ORA8I.WORLD> !/bin/ps -lp 7055 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 8 S 30174 7055 7054 0 41 20 61ac4230 36815 639b1998 ? 0:00 oracle
ops$tkyte@ORA8I.WORLD> !/bin/ps -lp 7054 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 8 S 12997 7054 6783 0 51 20 63eece30 1087 63eecea0 pts/7 0:00 sqlplus
Я использовал запрос для определения идентификатора процесса (PID) моего выделенного сервера (столбец SPID в представлении
V$PROCESS — это идентификатор процесса операционной системы, использовавшегося для выполнения запроса). Кроме того, в столбце
PROCESS представления
V$SESSION
находится идентификатор клиентского процесса, подключившегося к базе данных. С помощью команды
ps можно явно показать, что PPID (
Parent
Process
ID — идентификатор родительского процесса) моего выделенного сервера соответствует процессу SQL*Plus. В данном случае именно утилита SQL*Plus создала выделенный сервер с помощью системных вызовов
fork()
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий