none
Distributed lock manager (DLM) RRS feed

  • Pregunta

  • Tienen experiencias con distributed lock manager (DLM)?
    cómo hacer distributed locking en C# de una manera fácil?

    La idea es:

    Se tiene Servicio Windows S1 en máquina M1.

    Se tiene Servicio Windows S2 en máquina M2.

    A las 9:00 se lanza un proceso en S1 y en S2.

    Se pretende que sólamente se lance el proceso una vez (sea S1 o S2), y no los dos.
    lunes, 25 de mayo de 2020 19:17

Todas las respuestas

  • Hola  Miriam Pasion,

      

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comparto los siguientes enlaces

    Puedes ver esta clase que puede tener varios locks. 

    ConcurrentDictionary<TKey,TValue> Clase

    y también puedes ver esta opción que es una librería.  

    DistributedLock NuGet


    Gracias por usar los foros de MSDN. 

      

    Andres Aguilar 

     ____________________________ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    lunes, 25 de mayo de 2020 23:31
    Moderador
  • Usar esta clase para bloqueos distrinbuidos entre máquinas diferentes ? (NO digo entre procesos de la misma máquina)

    ConcurrentDictionary<TKey,TValue> Clase

    martes, 26 de mayo de 2020 13:45
  • Hola  Miriam Pasion,

      

    Lo que tienes es un sistema y quieres hacer un proceso primero y después el otro en dos maquinas diferentes correcto? 

      

    Gracias por usar los foros de MSDN. 

      

    Andres Aguilar

     ____________________________ 


    martes, 26 de mayo de 2020 17:56
    Moderador
  • Solo quiero que se ejecute SOLO UN proceso, sea S1 o S2.

    Los dos procesos, S1, S2, se lanzan a la misma hora, en dos máquinas diferentes. SOLO DEBE EJECUTARSE UNO.

    S1 y S2 son el mismo servicio, instalado en 2 máquinas diferentes.

    El objetivo es ejecutar SOLAMENTE una vez una tarea, no dos veces.

    martes, 26 de mayo de 2020 20:40
  • hola

    >>Los dos procesos, S1, S2, se lanzan a la misma hora, en dos máquinas diferentes. SOLO DEBE EJECUTARSE UNO.

    Si tienes dos procesos deberian poder trabajar en paralelo de forma independiente, no existe eso de que solo ejecute uno

    No se que tarea realizan pero podrian acceder a una misma fuente de datos y luchar entre ellos por ver quien toma la tarea quien gana la procesa y el otro no hace nada, se podria poner un mensaje en una queue y ver que solo uno la tome para realizar la accion

    Si leiste lo que dice la wiki sobre DLM veras que menciona el acceso a un recurso compartido, bueno ese es el ejemplo de una queue o puede ser una base de datos

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 26 de mayo de 2020 23:45