Tengo una aplicación de escritorio que se ejecuta en una red y cada instancia se conecta a la misma base de datos.Cómo hacer Mutex en una red?
Entonces, en esta situación, ¿cómo puedo implementar un mutex que funcione en todas las instancias en ejecución que están conectadas a la misma base de datos?
En otras palabras, no quiero que las dos instancias + ejecuten la misma función al mismo tiempo. Si uno ya está ejecutando la función, las otras instancias no deberían tener acceso a ella.
PD: La transacción de la base de datos no se resolverá, porque la función que quiero excluir no utiliza la base de datos. Mencioné la base de datos solo porque se puede usar para intercambiar información entre las instancias en ejecución.
PS2: La función tarda aproximadamente ~ 30 minutos en completarse, por lo que si una segunda instancia intenta ejecutar la misma función, me gustaría mostrar un buen mensaje de que no se puede realizar ahora porque la computadora 'X' es ya está ejecutando esa función.
PS3: La función debe procesarse en la máquina cliente, por lo que no puedo usar los procedimientos almacenados.
¿Cuál es su base de datos y admite transacciones? – ephemient