Controle de Lock e Numeração

 

    Ao utilizar as funções LockByName e GetSXENum, o controle de concorrência é realizado pelo License Server.

    A partir da Release 2510, com a lib 20251006, este controle poderá ser realizado pelo DBAccess.

    Para ativar é necessário rodar a função abaixo pelo programa inicial do client 

    FwImportLsNumber

    Para mais informações sobre a rotina, clique aqui.

    A utilização do controle do dbaccess é opcional na release 2510 (sendo necessário rodar o wizard acima para ativar)
    E obrigatório a partir da release 2610.

    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 totvs, 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.
    • 2510 → 2610
      • Na release 2610 o controle será obrigatório para todos os clientes
      • Durante o upddistr, caso ainda não esteja ativo o controle no db desse ambiente, irá executar em background a importação de numeração do LicenseServer para o DBAccess
      • Caso o ambiente já esteja usando o controle do dbaccess, o upddistr não fará qualquer mudança nesse aspecto.


    Para o usuário final não deve modificar nada no comportamento.

    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.



    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



    Redefinição das numerações do DbAccess

    Caso precise resetar todas as numerações gravadas no dbacces também é possível:

    • Parar o processo do dbaccess no servidor
    • Na pasta de instalação procurar pelo arquivo _nome-do-banco_dbnumber.val
    • Deletar o arquivo
    • Iniciar o Dbaccess.

    Como isso todas as numerações gravadas serão perdidas, e na requisição de uma numeração será utilizada a forma como é hoje, posiciona no ultimo registro da tabela e soma 1 no ultimo código que encontrar.


    Assuntos relacionados

    Para ativar o controle de Lock e Numeração automática via dbaccess é necessário rodar a seguinte rotina pelo programa inicial do smartclient.


    Informar no programa inicial

    FwImportLsNumber

    • Para executar essa rotina é necessário acesso exclusivo no ambiente.
    • Disponível apenas a partir da 2510.
    • A importação é apenas do License server para o DbAccess, não sendo possível fazer a importação reversa.


    Uma vez ativo o controle pelo dbaccess não será possível mais desativar e voltar usar pelo License Server.


    Na primeira tela serão requisitados usuário e senha, o usuário informado precisa ser um administrador do ambiente

    Na tela a seguir é apresentado algumas informações

    • Utilizando a numeração pelo DBAccess a chave SpecialKey não será considerada.
      • O controle pelo dbaccess já é exclusivo por banco de dados, com isso a chave specialKey não teria mais utilidade
    • A importação fará a leitura da chave specialKey do ambiente para fazer a importação, caso a chave esteja informada, irá importar apenas as chaves pertencentes a essa specialKey.
    • Caso a SpecialKey não esteja preenchida no ambiente, a importação fará a importação de todas as numerações do License Server
      • Se no License Server existir numeração com specialKey referente a outros ambientes, esses números também serão importados, porém não serão utilizados, podendo ser excluídos posteriormente pela rotina de controle de numeração do cfg.
    • A importação pode ser executada novamente um tempo depois do controle pelo DBAccess ser ativado, por isso a rotina não fará importação de chaves que já foram requisitadas pelo Dbaccess.
      • Caso queira que esses números também sejam importados é necessário marcar a opção para sobrescrever essas chaves no Dbaccess.



    Ao clicar em avançar será apresentado uma pergunta confirmando a operação

    Confirmando a pergunta, a rotina de importação será executada.

    Para conferir os números importados é só acessar a rotina APCFG110 no configurador.



    Assuntos relacionados

    APCFG110 - Menu: CFG > Atualizações > Cadastros > Controle de numeração

    Após o uso da função GetSXENum a numeração retornada para o alias poderá ser alterada pela função apcfg110 do configurador.

    1. Botão incluir em uso/liberado*
      1. Inclui um novo numero liberado (na grid de baixo) para a chave selecionada na grid proximo numero (de cima)
    2. Botão Excluir*
      1. Exclui a chave selecionada (próximos números e números em uso/liberados)
    3. Botão Limpar em uso/liberado*
      1. Exclui todos os numeros em uso/liberados para chave selecionada na grid de cima
    4. Grid próximos números
    5. Grid números em uso/liberado
      1. Números em uso foram pegos pela função e ainda não foram confirmados nem revertidos (RollBack)
        1. Ao sair da tela da FwMBrowse ou cair a thread, as numerações em uso serão revertidas automaticamente e ficaram disponível para uso de outro usuário.


    * Funcionalidade disponível apenas para controle de numeração via dbaccess - mais informações no link abaixo.
    Controle de lock e numeração automática via dbaccess




    Assuntos relacionados

    Perguntas Frequentes

    • Sem rótulos