No utilizar ejecución en paralelo en complementos y actividades de flujo de trabajo
Categoría: Diseño, rendimiento, seguridad, compatibilidad
Potencial de impacto: alto
Síntomas
El subprocesamiento múltiple o las llamadas en paralelo en complementos o actividades de flujo de trabajo personalizadas pueden producir daños en esas conexiones. Por ejemplo, ejecutar subprocesamiento en paralelo puede registrar excepciones como:
Generic SQL error.
The transaction active in this session has been committed or aborted by another session.
Además, objetos seguros sin procesamiento como elementos del Espacio de nombres System.Collections pueden quedar dañados por los subprocesos paralelos.
Instrucciones
El servicio de espacio aislado se ha diseñado para ejecutar llamadas en un orden determinado como parte de una transacción. No se admite el desarrollo de complementos o actividades de flujo de trabajo personalizados para realizar llamadas subprocesamiento múltiple o paralelo. Desarrolle los complementos y actividades de flujo de trabajo personalizadas sabiendo que las llamadas se realizarán de forma secuencial y pueden requerir reversión.
Nota
El uso de la ejecución paralela desde un programa cliente es una práctica admitida para optimizar el rendimiento según sea necesario. Esta instrucciones son específicas del código escrito para ejecutarse en un flujo de trabajo o una actividad de flujo de trabajo personalizada.
Patrones problemáticos
Los complementos y las actividades de flujo de trabajo personalizadas se ejecutan en una sola transacción y varios subprocesos introducidos por la ejecución paralela pueden afectar negativamente a la transacción. Los siguientes son ejemplos de patrones y prácticas que no deberían utilizarse en complementos y actividades de flujo de trabajo personalizadas:
- Uso de patrón asincrónico basado en tareas (TAP)
- Uso de Biblioteca paralela de tareas (TPL)
- Uso de subprocesamiento administrado
Información adicional
Usar y actualizar objetos de contexto de canalización compartidos puede hacer que estos objetos contengan resultados inesperados o queden dañados. El efecto de esto sería un error en el complemento o la actividad de flujo de trabajo personalizada.
Vea también
Procesamiento en paralelo, simultaneidad, y programación asincrónica en .NET
Nota
¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)
La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).