Ajustar y configurar servicios
ArcGIS for Desktop facilita la publicación de servicios de inmediato porque presenta muchas de las propiedades del servicio predeterminado; sin embargo, si cientos o miles de usuarios van a acceder a sus servicios, deseará cambiar los valores de propiedad de servicio predeterminado para que se ajusten mejor a la implementación. Este tema ofrece una vista general de algunas de las propiedades y técnicas que puede utilizar para configurar sus servicios de una forma más óptima.
Agrupar
Todos los servicios publicados con ArcGIS 10.1 for Server, están agrupados. Esto significa que las instancias del servicio se pueden compartir entre varias sesiones de aplicación.
Una aplicación que utiliza una instancia de un servicio agrupado lo utiliza únicamente durante el tiempo que tarda en completar una solicitud (por ejemplo, para trazar un mapa o geocodificar una dirección). Después de completar la solicitud, la aplicación libera su referencia en el servicio y la devuelve directamente al grupo de instancias disponibles.
Reciclaje
Con el reciclaje del servicio se pueden eliminar los servicios que han quedado inutilizables y su sustitución por servicios nuevos, además de solicitar los recursos empleados por servicios obsoletos.
Los servicios suelen compartirse entre varias aplicaciones y sus usuarios. La reutilización puede provocar que determinados servicios no estén disponibles para las aplicaciones. Por ejemplo, una aplicación podría de forma incorrecta modificar el estado de un servicio o retener la referencia de un servicio, lo que provocaría que no estuviera disponible para otras aplicaciones o sesiones. En determinados casos, los servicios podrían dañarse y quedar inutilizables. Con el reciclaje se mantiene el grupo de servicios actualizado y se eliminan del ciclo los servicios obsoletos o inutilizables.
Durante el reciclaje, el servidor destruye y, después, vuelve a crear cada instancia utilizando la configuración de servicios. El reciclaje se produce como un proceso en segundo plano en el servidor. Aunque en la pantalla no aparece ningún mensaje que notifique la realización del reciclaje, puede ver los eventos asociados con el reciclaje en los archivos de registro.
El reciclaje destruye y vuelve a crear todas las instancias en ejecución de un servicio, independientemente de si esas instancias se encuentran o no por encima del mínimo especificado. Para devolver periódicamente el número de instancias en ejecución al mínimo especificado, el servicio deberá detenerse y reiniciarse. Para automatizar este proceso se puede crear una secuencia de comandos de lote de Windows, de capa o de Python que ejecute un archivo ejecutable de línea de comandos API administrativos de ArcGIS for Server personalizado. Este archivo ejecutable personalizado tomará el nombre del servidor, el nombre del servicio, el tipo del servicio y si el servicio debe iniciarse o detenerse como argumentos de la línea de comandos.
El tiempo transcurrido entre los eventos de reciclaje es el intervalo de reciclaje. El intervalo de reciclaje predeterminado es de 24 horas, que puede cambiar en el cuadro de diálogo Editor del servicio. También puede elegir el tiempo que la configuración se reciclará inicialmente. A partir de esa hora, el reciclaje se producirá cada vez que se alcance el intervalo de reciclaje.
Los servicios reciclan una instancia a la vez para garantizar que siempre hay instancias disponibles y para extender los accesos de rendimiento causados por la creación de una nueva instancia de cada servicio. El reciclaje se produce de forma aleatorio; sin embargo, las instancias de los servicios en uso por parte de los clientes no se reciclan hasta que se liberan. De esta forma, el reciclaje se produce sin tener que interrumpir al usuario de un servicio.
Si no hay suficientes servicios disponibles durante el reciclaje, se pone en cola una solicitud hasta que esté disponible una instancia. Si el tiempo máximo de espera del servicio se alcanza durante este período, los registros registran el mismo mensaje que harían normalmente.
Si cambia los datos subyacentes de un servicio, este cambio se refleja automáticamente después del reciclaje. Por ejemplo, si tiene un servicio de mapas en ejecución y cambia el documento de mapa asociado, puede ver el cambio después de que se produzca el reciclaje. (Para ver los cambios inmediatamente, puede parar e iniciar el servicio manualmente).
Aislamiento
Al configurar un servicio, especifique el número de instancias mínimo y máximo que desee que estén disponibles. Estas instancias se ejecutan en los procesos de los equipos contenedores. El nivel de aislamiento determina si estas instancias se ejecutan en procesos independientes o compartidos.
Con un aislamiento alto, cada instancia se ejecuta en su propio proceso. Si el proceso falla solo afectará a la instancia en que se esté ejecutando.
En cambio, el aislamiento bajo permite que varias instancias de una configuración de servicio compartan un solo proceso, de forma que un proceso puede gestionar varias solicitudes independientes simultáneas. Esto se conoce como procesamiento múltiple.
Con un aislamiento bajo, un valor predeterminado de 8 instancias y un valor máximo de 24 instancias de la misma configuración de servicios pueden compartir un proceso. Puede establecer el valor para Instancias por proceso en la pestaña Procesos de del cuadro de diálogo Editor de servicio . Cuando se crea este número de instancias de un servicio particular, el servidor inicia un proceso adicional para el siguiente grupo de instancias, y así sucesivamente. A medida que las instancias se crean y se destruyen, vacían y rellenan espacios de esos procesos en ejecución.
La ventaja del aislamiento bajo es que aumenta el número de instancias simultáneas compatibles con un solo proceso. Utilizar un aislamiento bajo puede mejorar significativamente el consumo de memoria del servidor. Sin embargo, esta mejora implica cierto riesgo. Si durante la realización de un determinado proceso se produce un apagón o un fallo, todas las instancias implicadas en el proceso se destruyen.
Buscar conexiones de datos no válidas
Cuando una instancia de servicio se encuentra inactiva, puede resultar difícil para un administrador del servidor determinar si las conexiones con los datos de origen se mantienen correctamente. ArcGIS for Server tiene mecanismos integrados para comprobar las conexiones no válidas a las geodatabases de ArcSDE. Con estas comprobaciones se evita que el servicio deje de responder después de que una conexión con ArcSDE se elimine o se interrumpa.
Puede habilitar las comprobaciones de validez de la conexión de datos abriendo la pestaña Procesos del cuadro de diálogo Editor del servicio en ArcCatalog o en Administrador, y marcando la casilla de verificación Comprobar periódicamente y reparar las conexiones de datos para instancias inactivas. También es necesario especificar un intervalo en minutos en el que se validarán automáticamente las conexiones de servicio (y se repararán si fuera necesario). El valor predeterminado de 30 minutos se considera adecuado.
Habilitar estas comprobaciones también le puede ayudar en el caso de que el firewall cierre los puertos en ArcSDE después de que los servicios permanezcan inactivos durante un determinado período de tiempo. En esta situación, la elección del intervalo de tiempo puede estar influenciada por los ajustes del tiempo de espera del firewall.
Tiempos de espera
La comprensión de los distintos valores de tiempo de espera del servicio disponible puede ayudarle a mantener sus servicios funcionando y disponibles. Estos valores están disponibles en la pestaña Agrupación del cuadro de diálogo Editor de servicio.
Una vez un cliente obtiene una referencia a un servicio, utiliza el servicio durante un período de tiempo antes de liberarlo. La cantidad de tiempo transcurrido desde que un cliente obtiene la referencia de un servicio y hasta que éste es liberado es el tiempo de uso. Para asegurarse de que los clientes no mantienen las referencias a los servicios durante demasiado tiempo (por ejemplo, en caso de que no liberen los servicios correctamente), cada servicio tiene un tiempo máximo que el cliente puede utilizar. Si un cliente retiene un servicio durante un tiempo de uso mayor que el permitido, el servicio será liberado automáticamente y el cliente perderá su referencia al servicio.
Cuando cree un nuevo servicio, el valor predeterminado para el tiempo de uso máximo es 600 segundos (10 minutos). Sin embargo, en el servicio PublishingTools generado previamente que viene con cada sitio de ArcGIS for Server, el tiempo máximo de uso ha sido establecido en 3600 segundos (60 minutos). Esto es para acomodar los trabajos de publicación que tienen lotes de datos copiados en el servidor.
El tiempo de uso máximo también evita que los servicios se utilicen para procesar volúmenes de trabajo más elevados que los previstos por el administrador. Por ejemplo, un servicio utilizado por una aplicación que realice comprobaciones de geodatabases puede tener un tiempo de uso máximo de 10 minutos. En cambio, un servicio utilizado por aplicaciones que solo trazan mapas puede tener un tiempo de uso máximo de 1 minuto.
Cuando el número máximo de instancias de un servicio está en uso, el cliente que solicita un servicio se envía a la cola hasta que otro cliente libere uno de sus servicios. La cantidad de tiempo transcurrido entre la solicitud de un servicio por parte de un cliente y la obtención del mismo se llama tiempo de espera. Cada servicio tiene un tiempo máximo durante el que un cliente esperará para obtener un servicio. Si se supera el tiempo de espera máximo de un cliente para un servicio, la solicitud se interrumpe.
Un tercer tiempo de espera dicta el tiempo máximo que una instancia inactiva se puede mantener en ejecución. Cuando los servicios dejan de utilizarse, se mantienen en ejecución en el servidor hasta que otro cliente necesita la instancia. Una instancia en ejecución que aún no se encuentra en uso consume memoria en el servidor. Puede minimizar el número de servicios en ejecución y conservar así la memoria acortando el tiempo de espera inactivo, el valor predeterminado es de 1,800 segundos (30 minutos). El tiempo de espera inactivo de corta duración tiene el inconveniente de que cuando todos los servicios en ejecución se interrumpen, los siguientes clientes tendrán que esperar a que se creen nuevas instancias.
Cuando se crean los servicios en el servidor SIG, ya sea como resultado del inicio del servidor o en respuesta a una solicitud de servidor por parte de un cliente, el tiempo necesario para inicializar el servicio se denomina hora de creación. El servidor SIG incluye un tiempo de espera de inicio que indica la cantidad de tiempo que puede transcurrir en un intento de inicio antes de que el servidor SIG asuma que el inicio está suspendido y cancele la creación de este servicio.
El servidor SIG incluye las estadísticas tanto en memoria como en los registros acerca del tiempo de espera, tiempo de uso y otros eventos que se producen dentro del servidor. El administrador del servidor puede utilizar estas estadísticas para determinar si, por ejemplo, el tiempo de espera de un servicio es muy elevado, lo que podría indicar que es necesario aumentar el número máximo de instancias para dicho servicio.
Limitar lo que pueden hacer los usuarios con un servicio
Para facilitar el control del uso de sus servicios Web, cada tipo de servicio tiene un conjunto de operaciones permitidas. Cada operación está formada por un conjunto de métodos que se puede habilitar o deshabilitar como grupo. Los clientes del servicio Web solo pueden realizar llamadas a los métodos de las operaciones para las que dispongan de permiso.
Supongamos que permite el consumo de un servicio Web de representación cartográfica para trazar el mapa pero no para consultar las fuentes de datos de las capas del mapa. En este caso, tendrá que deshabilitar la operación Consulta y asegurarse de que se permite utilizar la operación Mapa.
Los servicios de entidades son de especial interés en este debate porque se utilizan para realizar la edición de los datos SIG basada en la Web. Los servicios de entidades tienen un conjunto adicional de operaciones que se pueden utilizar para restringir la funcionalidad de la edición: Consulta, Crear, Actualizar y Eliminar. Puede habilitar o deshabilitar éstas en la pestaña Acceso a entidades del cuadro de diálogo Editor de servicio en ArcGIS for Desktop. También puede evitar que los usuarios editen entidades que no había creado originalmente al hacer cumplir el control de acceso basado en la propiedad.
Las siguientes tablas muestran los métodos habilitados cuando permite operaciones en diversos tipos de servicios:
Operaciones del servicio de mapas
Las operaciones por defecto permitidas en los servicios de mapas son Mapa, Consulta y Datos.
Mapa |
Consulta |
Datos |
---|---|---|
GetDocumentInfo |
Identificar |
Buscar |
GetLegendInfo | QueryFeatureCount | QueryData |
GetMapCount | QueryFeatureCount2 | QueryFeatureData |
GetMapName | QueryFeatureIDs | QueryFeatureData2 |
GetDefaultMapName | QueryFeatureIDs2 | QueryAttachmentInfos |
GetServerInfo | QueryHyperlinks | QueryAttachmentInfos2 |
GetSupportedImageReturnType | QueryHTMLPopups | QueryAttachmentData |
ExportMapImage | QueryHTMLPopups2 | QueryAttachmentData2 |
IsFixedScaleMap | GetSQLSyntaxInfo | QueryRelatedRecords |
ToMapPoints | QueryRelatedRecords2 | |
FromMapPoints | QueryRasterValue | |
HasSingleFusedMapCache | QueryRasterValue2 | |
GetTileCacheInfo | ||
GetMapTile | ||
HasLayerCache | ||
GetLayerTile | ||
GetVirtualCacheDirectory | ||
GetCacheName | ||
ComputeScale | ||
ComputeDistance | ||
ExportScaleBar | ||
GetCacheDescriptionInfo | ||
GetCacheControlInfo | ||
GetCacheStorageInfo | ||
GetDefaultLayerDrawingDescriptions | ||
GetMapTableSubtypeInfos | ||
GetMapTableSubtypeInfos2 | ||
GetServiceConfigurationInfo |
Operaciones del servicio de geocodificación
Las operaciones por defecto permitidas para servicios de geocódigos son Geocódigo y Geocódigo inverso.
Geocódigo |
Invertir geocódigo |
---|---|
GeocodeAddress |
ReverseGeocode |
GeocodeAddresses |
|
StandardizeAddress |
|
FindAddressCandidates |
|
GetAddressFields |
|
GetCandidateFields |
|
GetIntersectionCandidateFields |
|
GetStandardizedFields |
|
GetStandardizedIntersectionFields |
|
GetResultFields |
|
GetDefaultInputFieldMapping |
|
GetLocatorProperties |
Operaciones del servicio de geodatos
Las operaciones por defecto permitidas para servicios de geodatos son Consulta y Extracción, que habilitan todos los métodos compatibles con consultas y extracción de datos. La elección de Replicación habilita todos los métodos compatibles con sincronización, cambios de datos, reconocimiento de mensajes y esquema.
Consulta |
Extracción |
Replicación |
---|---|---|
Get_Versions |
ExpandReplicaDatasets |
CreateReplica |
Get_DefaultWorkingVersion |
ExtractData |
ExportAcknowledgement |
Get_DataElements |
ExportReplicaDataChanges |
|
Get_MaxRecordCount |
ImportAcknowledgement |
|
TableSearch |
ImportReplicaDataChanges |
|
GetNextResultPortion |
ReExportReplicaDataChanges |
|
Get_Replicas |
UnregisterReplica |
|
Get_WrappedWorkspaceType |
ImportData |
Operaciones del servicio de globo
Las operaciones por defecto permitidas para los servicios de globo son Globo, Animación y Consulta. Al contrario de lo que ocurre con los servicios de mapas, la operación de Consulta cubre incluye Identificar y Encontrar.
Globo |
Animación |
Consulta |
---|---|---|
Get_Version |
Get_Animation |
Identificar |
Get_LayerCount |
Buscar |
|
Get_LayerInfos |
||
Get_LegendInfos |
||
Get_Config |
||
Get_MQT |
||
Get_Configuration |
||
Get_Tile |
||
Get_Symbols |
||
Get_Textures |
||
Get_VirtualCacheDirectory |
Operaciones del servicio de imágenes
Si publica el servicio de imágenes desde un dataset de mosaico, todas los recursos están habilitados por defecto. Si lo publica desde otra fuente, como por ejemplo un dataset ráster, una definición de servicio de imágenes compiladas o un archivo de capa, únicamente se aplican y se habilitan los recursos de Imagen y Metadatos.
Imagen | Catálogo | Descargar | Metadatos | Píxeles |
---|---|---|---|---|
ExportImage | Campos | Descargar | Metadatos | GetNativePixelBlock |
ExportMapImage | GetCatalogItemCount | GetFile | GetRasterMetadata | GetPixelBlock |
GenerateServiceInfo | GetCatalogItemIDs | |||
GetImage | GetCatalogItems | |||
Identificar | GetNativeRasterInfo | |||
ServiceInfo | GetRasterInfo | |||
Versión | GetThumbnail |