Смекни!
smekni.com

«sql*net» (стр. 3 из 4)

Имя приемника должно быть уникальным на машине. Если на машине несколько приемников, то каждый из них должен иметь уникальное имя.

IPC - адреса для приемника

Помимо вызовов от других узлов, приемник прослушивает вызовы межпроцессной связи (IPC). Например, на машине UNIX, IPC-адаптер представляет собой адаптер для коммуникационного механизма сокета доменов UNIX (UDS); на машине VMS - это адаптер для коммуникационного механизма почтового ящика (MBX). IPC-адреса должны быть включены в файл LISTENER.ORA. Network Manager генерирует входы IPC автоматически, не требуя вашего ввода.

Формат IPC-адреса, одинаковый для всех платформ, имеет вид:

(ADDRESS= (PROTOCOL=IPC) (KEY=строка))

Network Manager создает два IPC-адреса для каждой базы данных, прослушиваемой данным приемником. В первом из них значение KEY совпадает с именем службы. Этот IPC-адрес используется для соединений из других приложений на этом же узле. Имена служб описываются ниже в этой главе, в разделе "TNSNAMES.ORA". Во втором IPC-адресе значение KEY совпадает с системным идентификатором базы данных (SID), Описание баз данных для приемника

Следующая секция файла LISTENER.ORA описывает системные идентификаторы (SIDы) баз данных, прослушиваемых этим приемником. Эта секция имеет следующий синтаксис:

SID_LIST_имя_приемника=
[(SID_LIST=]
(SID_DESC=
(SID_NAME=SID)
(окружение_Oracle=путь_базы_данных)
)
[(SID_DESC=
(SID_NAME=SID)
(окружение_Oracle=путь_базы_данных)
) ...]
[)]

Здесь SID - это системный идентификатор Oracle соответствующего сервера базы данных. Ключевое слово, обозначенное как “окружение_Oracle”, специфично для операционной системы. Его значение, обозначенное как “путь_базы_данных”, указывает местоположение исполнительных модулей этой базы данных.

Можно заметить, что приемник может прослушивать несколько баз данных на данной машине. Однако можно создавать разные приемники для баз данных. Все приемники на одной и той же машине совместно используют единственный файл LISTENER.ORA.

Управляющие параметры LISTENER.ORA

Третья секция файла LISTENER.ORA содержит список параметров, управляющих поведением приемника:

PASSWORDS_имя_приемника=(пароль[,...пароль])

Этот необязательный параметр допускает указать один или более паролей.

STARTUP_WAIT_TIME_имя_приемника=число

Этот параметр задает время в секундах, в течение которого приемник ожидает перед тем, как ответить на первую команду управления состоянием приемника. Эта возможность гарантирует, что приемник с медленным протоколом будет иметь достаточно времени стартовать, прежде чем ответить на запрос статуса. По умолчанию 0.

CONNECT_TIMEOUT_имя_приемника=число

Этот параметр задает время в секундах, в течение которого приемник ожидает перед тем, как получить действительный запрос SQL*Net на соединение после начала соединения. Приемник разрывает соединение, если превышен этот таймаут. По умолчанию 10; нулевое значение отменяет таймаут.

TRACE_LEVEL_имя_приемника=OFF|USER|ADMIN

Этот параметр задает уровень детализации трассировки для событий приемника. Возможные варианты: OFF, USER или ADMIN. По умолчанию OFF.

TRACE_DIRECTORY_имя_приемника=путь_директории_файла_трассировки

Этот параметр задает каталог, в котором размещается файл трассировки. Умолчание зависит от операционной системы.

TRACE_FILE_имя_приемника=имя_файла_трассировки

Этот параметр задает имя файла трассировки. По умолчанию принимается имя_приемника.trc (на большинстве платформ).

LOG_DIRECTORY_имя_приемника=путь_директории_журнала_приемника

Этот параметр задает каталог, в котором размещается файл журнала, автоматически генерируемый для событий приемника. Умолчание зависит от операционной системы

LOG_FILE_имя_приемника=имя_файла_журнала_приемника

Этот параметр задает имя файла журнала приемника. По умолчанию принимается имя_приемника. log (на большинстве платформ).

TNSNAMES.ORA

Файл TNSNAMES.ORA используется клиентами и серверами распределенной базы данных для того, чтобы идентифицировать потенциальные назначения, - как серверы, так и, возможно, экземпляры Interchange. (Если в сети используется Oracle Names, то файлы TNSNAMES.ORA не нужны; серверы Names получают требуемую информацию из определения сети, хранящегося в базе данных.)

Каждая запись в файле TNSNAMES.ORA включает два элемента:

· имя службы

  • дескриптор соединения

Всем дескрипторам соединений в файле TNSNAMES.ORA назначаются имена служб. Пользователь специфицирует имя службы, - краткое слово вместо длинного дескриптора соединения, - чтобы указать сетевую службу, с которой он хочет соединиться. Содержимое файла TNSNAMES.ORA представляет собой список имен служб, сопоставленных дескрипторам соединений TNS.

Имя службы для базы данных должно совпадать с глобальным именем этой базы данных, определенным системным администратором. Альтернативные имена служб, или алиасы, могут назначаться службе базы данных через файл TNSNAMES.ORA. Хотя можно иметь несколько алиасов для одной и той же службы базы данных, но нельзя ь несколько приемников для одной и той же службы базы данных.

Каждой базе данных требуется дескриптор соединения. Дескриптор соединения для базы данных описывает местоположение сетевого приемника и системный идентификатор (SID) базы данных, с которой осуществляется соединение. Дескрипторы соединений баз данных состоят из двух секций, содержащих:

· адрес приемника (ADDRESS)

  • SID базы данных, передаваемый как данные соединения приложения (CONNECT_DATA )

Секция ADDRESS

Адрес приложения - это информация, требуемая для того, чтобы связаться с этим приложением (в данном случае - службой базы данных) в рамках данного протокола связи. Эта информация включает сообщество, в которое входит назначение, протокол, используемый этим сообществом, и параметры, специфичные для этого протокола.

Секция CONNECT_DATA

SQL*Net использует ключевое слово CONNECT_DATA для обозначения системного идентификатора (SID) удаленной базы данных. Когда SQL*Net на стороне сервера принимает запрос на соединение, TNS передает содержимое параметра CONNECT_DATA приемнику, который идентифицирует целевую базу данных.

CONNECT_DATA - это независимое от протокола ключевое слово, указывающее, что специфичные для приложения данные будут поставляться во время соединения, а SID ссылается на системный идентификатор Oracle для сервера базы данных.

Адреса Interchange

Дескриптор соединения для Interchange содержит лишь одну секцию - секцию ADDRESS_LIST. В этой секции перечисляются все адреса Interchange, включая требуемые протоколом специфичные ключевые слова.

Дескриптор соединения для Interchange не содержит секции CONNECT_DATA.

Корректировка дескрипторов соединений

Каждый раз, когда в сеть добавляется новая база данных, нужно добавить в файл TNSNAMES.ORA новое имя службы и новый дескриптор соединения. Для обновления файлов TNSNAMES.ORA нужно Oracle Network Manager.

Системные и пользовательские файлы TNSNAMES.ORA

На большинстве платформ могут существовать две версии файла TNSNAMES.ORA: одна общесистемная (доступная всем пользователям), и еще одна, необязательная, личная версия на уровне пользователя. Если существует такой личный файл TNSNAMES.ORA, то его содержимое имеет преимущество над общесистемным файлом. Иными словами, если некоторое имя службы привязано в этих файлах к разным дескрипторам соединений, то будет использоваться тот дескриптор, который описан в локальном файле пользователя.

Локальный файл TNSNAMES.ORA не подменяет собой системный файл, но дополняет его. Например, если разработчик создает базу данных, которая в общем случае недоступна другим пользователям, то он может создать личный файл TNSNAMES.ORA, сопоставляющий имя службы этой базы данных ее дескриптору соединения. Благодаря наличию собственного файла TNSNAMES.ORA, разработчик получает возможность работать со своей базой данных, не обращаясь к системному администратору.

SQLNET.ORA

Файл SQLNET.ORA создается для всех клиентов и узлов в сети. Этот файл содержит пять различных типов информации:

· интервал времени между опросами, тестирующими существование соединения клиент-сервер (распознавание зависших соединений)

  • необязательные параметры трассировки и журнализации
  • умалчиваемые домены
  • параметры клиента для использования с Oracle Names
  • другие необязательные параметры

Распознавание зависших соединений

Необязательный параметр SQLNET.EXPIRE_TIME определяет, как часто SQL*Net посылает пробный пакет, чтобы удостовериться в существовании соединения клиент-сервер. В случае аварийного останова клиента соединение может оставаться открытым неограниченное время, если не будет идентифицировано и закрыто системой. Если этот параметр специфицирован, то SQL*Net периодически тестирует сеть, чтобы выяснить, нет ли недействительного соединения, которое должно быть прекращено. Если он обнаруживает зависшее или неиспользуемое соединение, то он возвращает ошибку, что заставляет серверный процесс завершиться.

Распознавание зависших соединений добавляет некоторые накладные расходы в систему:

· Тестирование зависших соединений генерирует дополнительный сетевой трафик. Посылаемый проверочный пакет весьма мал, но такой пакет посылается по каждому соединению через интервалы времени, заданные параметром SQLNET.EXPIRE_TIME в файле SQLNET.ORA.

  • При обнаружении зависшего соединения серверу Oracle может потребоваться выполнить дополнительную обработку, чтобы отличить событие проверки соединения от других возможных событий, в зависимости от операционной системы.
  • Для некоторых протоколов, обобщенное средство SQL*Net проверки зависших соединений ничем не лучше, чем собственный алгоритм, присущий нижележащему транспортному протоколу. В таком случае нет необходимости включать это средство.

Необязательные параметры трассировки