none
Problema con diferentes procesos SQL Server con C# RRS feed

  • Pregunta

  • Buenos días,

    Tengo un error trabajando con Microsoft SQL Server con c#. Explico un poco de que trata el programa.

    El objetivo es crear una base de datos con sql en el cual se encuentren las piezas producidas de una maquina. Estas piezas pasan por distintas "estaciones" antes de acabar y en esas estaciones también se contabilizan los tiempos y se guardan en otra tabla. 

    Las señales pasan del Robot -> PLC -> HMI:

    - Señal tiempo de ciclo: se envía un pulso para iniciar el contador y un pulso de salida para parar e iniciar la siguiente pieza.

    - Señal tiempo "estaciones": se activa a "true" durante la operación. Activa tiempos con los flancos + y -.

    El programa funciona bien hasta un número X de piezas, que deja de contar correctamente. 

    Utilizamos el SQL para distintas tareas, de forma que pueden intentan entrar en la BBDD en momentos parecidos, creo que el problema puede venir de que el programa intenta entrar en la BBDD y se encuentra con otra tarea (supongo que no hay problema si trabaja con diferentes tablas - datos). 

    El error que me sale es el siguiente, en nuestro caso no trabajamos con azure, utilizamos Microsoft SQL server:

    "Unknow error: An exception has been raised that is likely due to a transient failure. If you are connecting to a SQL Azure database consider using SQLAzureExecutionStrategy."

    Estoy intentando utilizar "Semaphore" para organizar la entrada en la BBDD pero algo se me escapa. Entiendo que si quiero que puedan solicitar la entrada "x" veces y que entren de 1 en 1 se utilizaría Semaphore(x,1)

    Para la entrada a la BBDD utilizo el WaitOne() y cuando sale el Release(1).

    Agradecería si alguien pudiese confirmarme si el problema que tengo es debido la interferencia entre procesos en la BBDD o es tema de alguna variable que provoca el error. 

    Saludos y gracias. 


    • Editado MarcP11 viernes, 15 de marzo de 2019 9:47
    viernes, 15 de marzo de 2019 8:44

Todas las respuestas