Histórico da Página
Ao utilizar as funções LockByName e GetSXENum, o controle de concorrência é realizado pelo License Server até a Release 2410 e Lib 20250811.
A partir da Release 2510, com a lib 20251006, este controle será poderá ser realizado pelo DBAccess.
Para ativar é necessário rodar a função totvs.framework.tc.importLsNumber pelo programa inicial do do client
Para mais informações sobre a rotina, clique aqui.
para isso deve-se ativar essa funcionalidade via appserver.ini com a chave abaixo na seção do ambiente
...
| Aviso |
|---|
A utilização do controle do dbaccess é opcional na release 2510 (sendo necessário rodar o wizard acima para ativar) |
Migração de release
- 2410 → 2510
- Para clientes onPremisse o controle pelo dbaccess não será ativado na migração.
- Será necessário rodar o wizard citado para efetuar a ativação
- uma vez ativo o controle não poderá mais ser desativado.
- Para clientes cloud protheus, o controle será ativado automaticamente durante a execução do upddistr
- A execução do upddistr irá executar em background a importação de numeração do LicenseServer para o DBAccess
- uma vez ativo o controle não poderá mais ser desativado.
- Controle que identifica se o ambiente é cloud
- Para clientes onPremisse o controle pelo dbaccess não será ativado na migração.
Opcionalmente a chave LOCK_NUM_ON_DB pode ser criada também como variável de ambiente do sistema operacional,
com isso todos os serviços do protheus que estiverem nesse servidor passaram a utilizar o controle pelo dbaccess.
Com essa chave ativa o controle será passado ao dbacces, para o Para o usuário final não deve modificar nada no comportamento.
Caso necessite é possível fazer a importação das numerações salvas no License Server para o Dbaccess, saiba mais.
Com o controle feito pelo dbAccess a configuração de specialKey não será mais utilizada para lock.
O controle pelo db já é feito exclusivo por banco de dados conectado.
...
...
Essa chave será utilizada apenas a partir da release 2510, releases anteriores não será possível utilizar.
A partir da release 2610 o controle pelo DB será ativado automaticamente, não sendo possível desativar
...
Validação para utilização do controle do dbaccess
Para poder ativar as chaves o ambiente deve atender alguns requisitos, são eles:
- Release maior igual 12.1.2510
- Lib maior igual a 20251006
- Banco não pode ser sqlite
- Versão do server deve ser maior igual a 24.3.1.0
- Versão da DBAPI deve ser maior igual a 20240224-20241217
Controle de conflito
Como existe a possibilidade do protheus utilizar balanceamento de carga e a configuração é pelo appserver.ini
Foi adicionada uma validação na utilização da função, para impedir o acesso caso exista conflito na configuração da chave entre servers acessando o mesmo ambiente.
Exemplo:
- Server A com a chave ativa faz o primeiro acesso
- Será criado no semáforo um arquivo para determinar o tipo de acesso ao ambiente, podendo ser TC ou LS
- Server B, com a chave desativada, apontando para o mesmo RootPath e banco de dados do server A, faz o acesso ao ambiente
- Como a chave está diferente dará uma viso para o usuário indicando o problema e encerrara a thread
- Caso a thread iniciada pelo server B consiga acesso exclusivo no arquivo de semáforo, o conteúdo do mesmo será alterado e com isso a thread do server A que passará a dar o aviso.
...
Redefinição das numerações do DbAccess
...
