CÓMO

Diagnosticar problemas de rendimiento y conexión de ArcSDE con SDEINTERCEPT

Last Published: April 26, 2020

Resumen

ArcSDE SDEINTERCEPT se puede utilizar para perfilar una aplicación. El archivo de registro SDEINTERCEPT ayuda a identificar y diagnosticar problemas de rendimiento y conexión.

Las instrucciones proporcionadas describen cómo usar esta función para diagnosticar estos problemas.

Procedimiento

Para ayudar a determinar dónde está el problema en conexiones lentas entre ArcGIS y ArcSDE, se puede utilizar el archivo de registro SDEINTERCEPT para diagnosticar llamadas de función lentas.

Puede haber varios problemas que den lugar a conexiones lentas:
  • Una base de datos mal ajustada
  • Dispositivos de disco lentos en los que residen los archivos de datos de la base de datos
  • Equipos cliente lentos
  • Conectividad de red lenta entre el cliente y el servidor
  • Código de cliente ineficiente (ArcGIS, implementaciones personalizadas de ArcObject, el cliente de ArcSDE)
  • Código de servidor ineficiente (ArcSDE)
  1. Cree el archivo de registro de interceptación de ArcSDE:
    Nota: SDEINTERCEPT puede estar habilitado en el servidor de ArcSDE o para la aplicación cliente de ArcGIS. Si utiliza una conexión directa, habilite SDEINTERCEPT solo para el cliente. Cuando utilice el servidor de aplicaciones de ArcSDE, habilite SDEINTERCEPT en el servidor.
    1. Detenga la aplicación, salga de la aplicación de ArcGIS o detenga el servidor de aplicaciones de ArcSDE.
    2. Habilite SDEINTERCEPT estableciendo las siguientes variables de entorno:
      set SDEINTERCEPT=crwtf set SDEINTERCEPTLOC=C:\temp\slow_connection_intercept
    3. Inicie la aplicación de ArcGIS y conéctese a la geodatabase de ArcSDE.
    4. Localice el archivo generado en la ubicación especificada en la segunda variable definida en el paso b. En este ejemplo, el SDEINTERCEPTLOC especificado genera el archivo:
      c:\temp\slow_connection_intercept.001
      Nota: Si la aplicación se ejecuta varias veces o se establecen varias conexiones, se crea un archivo nuevo para cada conexión y el nombre del archivo se incrementa como un número decimal de tres dígitos (.000): por ejemplo, .002, .003, etc.
      Nota: Si se utiliza una conexión directa, se generan dos archivos. Un archivo es la interceptación de ArcSDE del cliente y el segundo archivo es el archivo de registro de conexión directa de ArcSDE.
  2. Abra el archivo de registro de interceptación en un editor de texto y busque lapsos de tiempo.
  3. En función de dónde haya lapsos de tiempo, es posible identificar qué componente va lento.

    A continuación se muestran los dos casos y ejemplos comunes del aspecto que tienen en el archivo sdeintercept:
    1. SDEINTERCEPT de una función GetAllFeatureTypes de ArcSDE que funciona lento
      ======================================== [W 18:49:24] Command: GetAllFeatureTypes [R 18:51:54] Long: 0 [R 18:51:54] Long: 4001
      En el fragmento de código del archivo de registro de arriba, el comando se ejecutó a las 18:49:24 y devolvió sus primeros resultados, "0" y "4001", a las 18:51:54. Esto significa que el comando se envió desde el cliente y tardó 2 minutos y 30 segundos en completarse. Se trata, sin duda, de un comando de ArcSDE lento.

      Posibles motivos:
      • El RDBMS. Rastree la operación en la base de datos para confirmar o descartar el RDBMS como posible causa. Si va lento, las recomendaciones son actualizar las estadísticas y, posiblemente, aumentar la memoria de la instancia.
      • El código del servidor de ArcSDE. El código del servidor de ArcSDE se mejoró con un parche de rendimiento de actualización general sobre 9.2 SP6 para corregir específicamente este problema en Oracle, Informix y SQL Server.
    2. SDEINTERCEPT de un cliente que funciona lento:
      ======================================== [W 10:00:42] Command: GetAllFeatureTypes [R 10:00:45] Long: 0 [R 10:00:45] Long: 2004 ... ... ======================================== [W 10:04:06] Command: StreamSetState [W 10:04:06] Long: 1 [W 10:04:06] int64: 841 [W 10:04:06] int64: -1 [W 10:04:06] Long: 0 [R 10:04:06] Long: 0 ========================================

      En el fragmento de código anterior, el comando de ArcSDE tardó en completarse 3 segundos; sin embargo, fue 4 minutos antes de ejecutar el siguiente comando. Debido a que se trata de una interceptación de una conexión, que es un proceso automático y no hay intervención humana, este retraso de ~4 minutos entre procesos es un retraso del lado del cliente inaceptable.
  4. Puede que no resulte obvio, una vez que se ha aislado un problema, qué componente está consumiendo los recursos. El siguiente paso es reemplazar o eliminar los componentes que pueden estar ocasionando que el rendimiento sea lento si se produce algún cambio en el rendimiento.

    Opciones que se pueden probar:
    • Si el código del servidor va lento, se recomienda aplicar los Service Packs/parches más recientes para asegurar que se esté ejecutando una configuración completamente probada, certificada y admitida, y que no haya interrupciones ni inconvenientes provocados por ningún problema existente en el software que ya se haya solucionado.
    • Si es posible, ejecute la aplicación cliente en el mismo servidor que la base de datos, lo que elimina la red como posible punto de degradación del rendimiento.
    • Utilice una conexión directa, la cual ejecuta el código de la aplicación del servidor dentro de la aplicación cliente.
    • Ejecute la aplicación cliente (ArcGIS) en un hardware más rápido para determinar si el equipo cliente es el problema.

Id. de artículo:000010355

Obtener ayuda de expertos en ArcGIS

Contactar con soporte técnico

Descargar la aplicación de soporte de Esri

Ir a las opciones de descarga

Información relacionada

Descubrir más sobre este tema