Solucionar problemas de aplicaciones StreamInsight resistentes

Este tema le ayuda a solucionar problemas de aplicaciones StreamInsight resistentes mediante la descripción de los requisitos previos para las consultas resistentes y algunos de los errores habituales que se pueden producir.

La resistencia solo está disponible en la edición Premium de StreamInsight. Para obtener más información, vea Elegir una edición de StreamInsight.

En este tema

  • Requisitos previos para una consulta resistente

  • Errores al crear y configurar un servidor resistente

  • Errores al definir una consulta resistente

  • Errores al guardar un punto de comprobación

  • Errores al recuperarse de un error

  • Errores al almacenar metadatos y registros en un recurso compartido de red

Requisitos previos para una consulta resistente

Una consulta configurada para la comprobación de puntos debe cumplir los siguientes requisitos:

  • Debe tener un adaptador de salida. Es decir, no puede exponer únicamente un flujo publicado.

  • No puede consumir un flujo publicado.

  • No puede usar entradas IObservable o IEnumerable.

  • No puede usar flujos que se hayan sincronizado mediante AdvanceTimeImportSettings para copiar CTI de otro flujo. Este uso se describe en Adelantar tiempo de aplicación.

[ARRIBA]

Errores al crear y configurar un servidor resistente

La llamada al método Server.Create puede iniciar una excepción en las siguientes condiciones:

  • Se proporciona una configuración de resistencia mediante el método Server.Create o el archivo app.config, pero no se especifica el proveedor de metadatos de SQL Server Compact.

  • La ruta de acceso del registro especificada para la resistencia no existe y el servidor no está configurado para crearla.

  • El servidor está configurado para crear la ruta de acceso del registro, pero la creación no se lleva a cabo o se produce un error.

  • El servidor no tiene privilegios suficientes para escribir y leer de la ruta de acceso del registro especificada.

  • El servidor está configurado para resistencia, pero la edición de StreamInsight no admite la resistencia. Solo la edición Premium admite la resistencia. Para obtener más información acerca de las ediciones de StreamInsight, vea Elegir una edición de StreamInsight.

[ARRIBA]

Errores al definir una consulta resistente

La llamada para crear una consulta resistente mediante los métodos CepStream.ToQuery o Application.CreateQuery puede iniciar una excepción en las siguientes condiciones:

  • El servidor no se ha configurado para la resistencia al proporcionar una configuración de resistencia y especificar el proveedor de metadatos de SQL Server Compact.

  • La consulta consume eventos de los orígenes IEnumerable o IObservable.

  • La consulta consume eventos de un flujo publicado.

  • La consulta usa flujos sincronizados.

  • La consulta solo escribe en un flujo publicado.

[ARRIBA]

Errores al guardar un punto de comprobación

Se puede producir un error en llamada para guardar un punto de comprobación y la llamada al método EndCheckpoint puede iniciar una excepción en las siguientes condiciones:

  • El servidor no está configurado para resistencia.

  • La consulta no está configurada para resistencia.

  • La consulta no se está ejecutando.

  • Ya está en curso un punto de comprobación. En este caso, el primer punto de comprobación se realiza correctamente; en los puntos de comprobación superpuestos posteriores se produce un error.

  • Se llama al método EndCheckpoint con un valor de IAsyncResult que no se corresponde con una operación de punto de comprobación activo.

  • Se llama al método EndCheckpoint con un valor de IAsyncResult que corresponde a un punto de comprobación para el que ya se ha llamado a EndCheckpoint.

Si hay un error de E/S durante la comprobación de puntos, se terminan todas las operaciones de puntos de comprobación en curso y sus operaciones EndCheckpoint inician una excepción. No obstante, puede seguir intentando las operaciones de punto de comprobación posteriores ya que este error de E/S puede ser transitorio.

[ARRIBA]

Errores al recuperarse de un error

Si hay un error de E/S al leer un archivo de puntos de comprobación, se suspenden todas las consultas que dependen de dicho archivo y la causa del error se registra con la consulta. Las consultas se suspenden y no se anular para mantener los metadatos de consulta, ya que es posible que el error de E/S sea transitorio.

Si se produce un error en la recuperación de una consulta, no es posible reiniciar la recuperación. Puede intentar los siguientes pasos:

  • Si existe la posibilidad de que el error sea transitorio, apague y reinicie el servidor para reintentar la recuperación.

  • Si el error no es transitorio, puede detener la consulta.

Si se produce un error en la consulta que se va a recuperar debido a una excepción en un operador o adaptador, la consulta se anulará.

Si el intento de recuperar una consulta provoca un error en el servidor, puede realizar los siguientes pasos:

  1. Reinicie el servidor sin resistencia.

  2. Detenga la consulta o las consultas que provocan un error en el servidor.

  3. Vuelva a reiniciar el servidor con resistencia.

[ARRIBA]

Errores al almacenar metadatos y registros en un recurso compartido de red

Cuando el registro de comprobación de puntos se almacena en un recurso compartido de red, los errores de E/S transitorios no son graves para el proceso de comprobación de puntos.

Cuando la base de datos de metadatos de SQL Server Compact se almacena en un recurso compartido de red, cualquier error de E/S es grave y provoca un error en el servidor de StreamInsight.

[ARRIBA]

Vea también

Conceptos

Resistencia de StreamInsight

Compilar aplicaciones StreamInsight resistentes

Supervisar las aplicaciones StreamInsight resistentes