Если с вашими сервисами будут работать сотни или тысячи пользователей, вам потребуется изменить свойства сервиса по умолчанию в соответствии с режимом использования сервиса. В этом разделе представлен обзор некоторых параметров и методик, которые вы можете использовать при конфигурации ваших сервисов.
Слияние сервисов
Все сервисы, опубликованные при помощи ArcGIS Server, сливаются. Это означает, что экземпляры сервиса могут совместно использоваться различными сеансами приложений.
Приложение, использующее экземпляр сервиса из пула, применяет его только в течение времени, необходимого для выполнения одного запроса (например, для отображения карты или геокодиования адреса). После завершения запроса приложение освобождает свою ссылку на сервис и возвращает ее в пул доступных экземпляров.
Очистка
Очистка сервисов позволяет уничтожить более ненужные сервисы и заменить их на новые. Этот процесс также освобождает ресурсы, занятые устаревшими сервисами.
Сервисы обычно разделены между несколькими приложениями и их пользователями. При повторном использовании несколько ситуаций могут привести к тому, что сервис станет недоступным для приложений. Например, приложение может некорректно изменить состояние сервиса или же приложение может удержать ссылку на сервис, что сделает его недоступным для других приложений и сеансов. В некоторых случаях сервисы могут быть повреждены и стать непригодными. Очистка позволяет обновлять пул сервисов и удалять устаревшие или непригодные сервисы.
Во время этого процесса сервер удаляет, а затем воссоздает каждый экземпляр в конфигурации сервиса. Очистка выполняется как фоновый процесс на сервере. Хотя вы и не увидите ничего, что сообщит о выполнении очистки, вы сможете увидеть события, связанные с очисткой, в файлах журнала.
При очистке уничтожаются и воссоздаются все запущенные экземпляры сервиса независимо от того, превышает ли число экземпляров минимальное значение. Для периодического сокращения числа запущенных экземпляров до заданного минимума сервис нужно остановить и перезапустить. Хороший способ автоматизировать этот процесс – создать скрипт Python, shell-скрипт или пакетный скрипт Windows, запускающий исполняемый файл командной строки ArcGIS Server с административным API-интерфейсом. Пользовательский исполняемый файл принимает имя сервера, имя сервиса, тип сервиса и то, следует ли сервис запустить или остановить, в качестве аргументов командной строки.
Время между событиями очистки называется интервалом очистки. Интервал очистки по умолчанию равен 24 часам, но его можно изменить в диалоговом окне Редактор сервисов (Service Editor). Вы можете выбрать время первоначальной очистки конфигурации. С этого времени очистка будет происходить по истечении интервала очистки.
Сервисы обрабатываются по одному экземпляру за раз, чтобы обеспечить доступность экземпляров и распределить спады производительности за счет создания нового экземпляра каждого сервиса. Очистка происходит в случайном порядке. Однако экземпляры сервисов, используемые клиентами, не обрабатываются до их освобождения. Таким образом очистка не влияет на работу пользователей.
Если во время очистки нет экземлпяров, доступных для очистки, запрос ставится в очередь, пока экземпляр не станет доступным. Если в течение этого периода превышено максимальное время ожидания, в журнал будет записано обычное сообщение.
Проверка неактивных подключений к данным
Если экземпляр сервиса не активен, администратор сервера с трудом может определить, успешно ли поддерживаются подключения к исходным данным. ArcGIS Server имеет встроенные механизмы проверки неактивных подключений к интегрированным базам геоданных. Эти проверки позволяют избежать ситуации, когда сервис перестает отвечать на запросы после отключения или прерывания соединения с базой данных.
Примечание:
Поддержка проверки неверного подключения к данным не включает файловые базы геоданных.
Вы можете включить проверки подключения к данным на вкладке Процессы диалогового окна Редактор сервисов в ArcGIS Server Manager и отметить опцию Периодически проверять и восстанавливать подключения к данным для простаивающих экземпляров. Вам также нужно указать интервал в минутах, после которого подключения сервиса автоматически проверяются (и восстанавливаются при необходимости). Обычно значения по умолчанию, равного 30 минутам, достаточно.
Включение этих проверок полезно также в случаях, когда брандмауэры закрывают порты к интегрированным базам геоданных, если сервисы простаивают в течение определенного периода времени. В этой ситуации на ваш выбор интервала могут повлиять настройки времени ожидания брандмауэра.
Время ожидания
Понимание различных доступных значений времени ожидания может помочь добиться стабильности и доступности работы сервисов. Эти значения доступны на закладке Слияние сервисов (Pooling) в диалоговом окне Редактора сервисов (Service Editor).
После того, как клиент получает ссылку на сервис, он использует сервис в течение определенного времени перед тем, как освободить его. Период времени между тем, когда клиент получает ссылку на сервис, и тем, когда он освобождает его, является временем использования. Чтобы убедиться в том, что клиенты не удерживают ссылки на сервисы слишком долго (т.е. они корректно освобождают сервисы), у каждого сервиса есть максимальное время использования сервиса клиентом. Если клиент удерживает сервис дольше, чем заданное максимальное время использования, сервис автоматически освобождается, а клиент теряет ссылку на сервис.
Более подробно:
При создании нового сервиса значение максимального времени использования по умолчанию равно 600 секундам (10 минутам). Однако в предварительно созданном сервисе PublishingTools, который поставляется с каждым сайтом ArcGIS Server, максимальное время использования задано как 3600 секунд (60 минут). Это сделано для публикации задач, которые копируют большой объем данных на сервер.
Максимальное время использования также защищает сервисы от использования для выполнения большего объема работ, чем указано администратором. Например, у сервиса, используемого приложением для выполнения откреплений из базы геоданных, максимальное время использования может быть равно 10 минутам. Напротив, сервис с одним слоем, который используется только для отображения карт в приложении, может иметь максимальное время работы от 1 минуты.
Когда используется максимальное количество экземпляров сервиса, клиент, запрашивающий сервис, ставится в очередь, пока другой клиент не освободит один из сервисов. Период времени между тем, когда клиент запрашивает сервис, и получением сервиса является временем ожидания. У каждого сервиса есть максимальное время ожидания доступа к сервису. Если время ожидания клиента превышает максимальное время ожидания сервиса, запрос снимается.
Третье время ожидания указывает максимальное время работы экземпляра при простое. Когда сервисы больше не используются, они продолжают выполняться на сервере, пока другому клиенту не понадобится экземпляр. Запущенный, но неиспользуемый экземпляр все равно потребляет память сервера. Вы можете минимизировать число запущенных сервисов и, тем самым, сэкономить память, укоротив время простоя, равное по умолчанию 1800 секундам (30 минутам). Недостаток короткого времени простоя состоит в том, что когда истекает время ожидания всех сервисов, клиенты должны подождать создания новых экземпляров.
При создании экземпляров сервисов на ГИС-сервере, как в результате запуска сервера, так и при ответе на запрос сервера клиентом, время, необходимое на инициализацию экземпляра сервиса, называют временем создания. Время ожидания запуска, установленное в ГИС-сервере, определяет период времени после попытки запуска, по истечении которого ГИС-сервер считает запуск несостоявшимся и отменяет создание экземпляра сервиса. Значение по умолчанию – 300 секунд (5 минут).
ГИС-сервер хранит статистику о времени ожидания, времени использования и других событиях, которые происходят на сервере, в памяти и в журналах. Администратор сервера может использовать эту статистику, чтобы определить, например, не слишком ли велико время ожидания для сервиса, что может указывать на необходимость увеличения максимального числа экземпляров для этого сервиса.
Может потребоваться дополнительное время ожидания, учтенное в архитектуре, за счет появления несоответствия между указанными значениями времени ожидания сервиса и реальными временами ожидания для пользователей. Например, веб-сервер, на котором размещается ArcGIS Web Adaptor, или балансировщик загрузки сети, могут вызвать времена ожидания, которые скажутся на сервисах.
Примечание:
Если ваш сайт сильно загружен, ожидайте возникновения несоответствия между указанными значениями времени ожидания сервиса и временами ожидания на стороне пользователей.
Ограничение действий, которые пользователи могут совершать с сервисом
Чтобы облегчить управление веб-сервисами, у каждого типа сервиса есть набор разрешенных операций. Каждая из них содержит набор методов, которые можно включить или отключить как группу. Клиенты веб-сервиса могут вызывать только методы разрешенных операций.
Предположим, что вам нужно разрешить клиентам картографического веб-сервиса рисовать карту, но не запрашивать источники данных слоев карты. Для этого необходимо отключить операцию Данные (Data) и убедиться, что операция Карта (Map) разрешена.
Сервисы объектов представляют особый интерес в этой дискуссии, так как они используются для веб-редактирования данных ГИС. Сервисы объектов имеют дополнительный набор операций, которые можно использовать для ограничения функций редактирования. Их можно включить или отключить на закладке Доступ к объектам в диалоговом окне Редактор сервиса в ArcGIS Server Manager. Вы также можете запретить пользователям редактирование объектов, которые были созданы не ими, применив управление доступом на основе владения.
Информацию по допустимым операциям для различных типов сервисов смотри в разделе справки Типы сервисов.