Galera, por acaso a função LockByName garante o controle de transação se for por convocação da rotina por job?
Olá,
A função LockByName cria um semáforo no License Server, conforme parâmetros e specialkey.
Ela não tem relação com a transação, ela cria esse semáforo e caso outra thread faça uso desse mesmo semáforo em uso, ela retornará falso.
Documentação: https://tdn.totvs.com.br/pages/viewpage.action?pageId=6814894
E se possuir esse fluxo, possuem o appserver do job e o restante do appserver são os remotes são os de load balance, o lockbyname vai travarquando for o caso de já estar “rodando” a função do job e alguém chamar a função manual no menu?
Pois o controle de transação seria não chamar duas vezes a mesma função, seja por job ou manual…
e se não utilizar uma specialkey teria algum problema?
O LockByName está no License Server, logo, ele atua perfeitamente em ambientes de balance.
Sem SpecialKey, você não tem diferenciação do ambiente, se todos os ambientes sem exceção estejam sem specialkey e você possua um License Server dedicado somente a produção, não tenha terá problemas, agora se você possui um License Server que é usado por produção e homologação, ou produção e desenvolvimento, você pode ter inúmeros problemas com numeração automática e locks de rotinas.