Árvore de páginas


Correções

Incidente: Ao executar o comando de SQL em bloco, sem realizar a conexão com o banco dinamicamente ou via comando DATABASE no mesmo fonte, o server aborta a execução

Solução:  O modelo de conexão com o banco tinha a falha que não encontrava o fonte na chamada fora da execução do bloco SQL 

Referente ao chamado: DTAPPSRV-6794

Incidente: Em determinada situação especifica o DISCONNECT causa queda do Application Server.

Solução: Foi corrigido o comando DISCONNECT, avaliando o serviço de conexão com o banco. 

Referente ao chamado: DTAPPSRV-6883

Incidente: Ao tentar gerar um patch a partir de RPO CUSTOM com fontes 4gl, apresenta o erro "file not found or not accessible"

Solução:Foi implementado a assinatura de funções para o rpo 4gl para permitir a geração do patch. 

Referente ao chamado: DTAPPSRV-6903

Incidente: Falha na autenticação SFTP utilizando usuário, senha em conjunto com certificado

Solução: Reimplementado o componente de conexão do SFTP permitindo que o usuário possa selecionar um parâmetro chamado AUTH_MODE para selecionar como é feita a conexão com o servidor remoto.

Referente ao chamado: DTAPPSRV-6640

Incidente: A tela de consulta do Broker HTTP estava apresentando a mensagem "Número máximo de conexões simultâneas: 5000". No entanto, esta mensagem só se aplica ao Broker para Smartclient.

Solução: Foram realizadas modificações na estrutura do Broker para que a mensagem apenas seja apresentada no Broker Smartclient. 

Referente ao chamado: DTAPPSRV-6725

Incidente:Em algumas situações, mesmo sem os comandos como DATABASE ou realizando conexão dinamica, o banco conecta

Solução:Foi alterado a forma de conexao com o banco, e no carregamento da biblioteca logixdbapi.dll 

Referente ao chamado: DTAPPSRV-6797

Incidente: Ao realizar o debug de um fonte 4gl, a entrada de uma nova função sempre leva a primeira linha fonte.

Solução: Correção no comando implícito interno que gera esse comportamento durante o debug, indo para primeira linha em todo momento da entrada de uma nova função. 

Referente ao chamado: DTAPPSRV-6831

Incidente: Quando SERVERTYPE=4GL, a prioridade de execução de funções duplicadas em ambos RPOS estava incorreta.

Solução: Ajuste na checagem de objetos do RPO para funcionar de maneira adequada. Isso afeta apenas quando AppServer está configurado com SERVERTYPE=4GL.

Referente ao chamado: DTAPPSRV-6843

Incidente: Uma janela modal de Consulta Padrão de um campo TGet poderia se sobrepor a outra janela modal de um Processa() criada durante a execução do bValid de outro campo, fazendo com que essa última jamais pudesse ser encerrada, travando o acesso a interface. Exemplo: RECÁLCULO DE IMPOSTO na Venda Assistida.

Solução: Proteção para evitar que uma janela de Consulta Padrão seja criada durante a execução do bValid de um TGet, evitando a sobreposição de janelas modais.

Referente ao chamado: DTAPPSRV-6876

Incidente: A função AdvPL Directory não está retornando corretamente quando é informado um índice junto com a flag de diretório (ex: D:1000).

Solução: Corrigido o comportamento da função Directory quando é informado um índice.

Referente ao chamado: DTAPPSRV-6891

Incidente: Durante a execução em 4GL do PREPARE, a tradução para o SELECT estava incompatível com a versão direta do SELECT.

Solução: Corrigido a tradução, deixando compatível entre os dois casos. 

Referente ao chamado: DTAPPSRV-6917

Incidente: Valor mostrado no consumo de memória de variáveis globais ( Variable Glb List ... XXXXX kB. Count YYY ) mostrava valor maior que o consumo real, causando a falsa impressao de Leak de memória. 

Correção: Corrigido o contador de memória para refletir o valor correto.

Referente ao chamado: DTAPPSRV-6954

Incidente: Durante a execução do Console de Atualização Logix, ao aplicar um novo pacote gerava um erro de Access Violation no Application Server.

Solução: Alterado o processo de compilação de fontes 4GL, para identificar variáveis não declaradas que eram utilizadas no returning.

Referente ao chamado: DTAPPSRV-6968

Incidente: Problemas relacionados a queda durante compilação ou fechamento do Application Server, relacionados ao REST.

Solução: Correção atuando durante a execução do REST impedindo quedas e travamentos.

Referente ao chamado: DTAPPSRV-6969

Ocorrência: Erro ao desabilitar as cifras e protocolos TLS.

Solução: Correção na inicialização para ativar apenas as cifras e protocolos habilitados.

Referente ao chamado: DTAPPSRV-6970

Incidente: A aplicação poderia apresentar uma finalização inesperada durante a execução das função AdvPL TCDBInsert, dado a utilização das funções de conversão de datas - DTOS, DTOC e similares.

Solução: Fizemos um ajuste na aplicação para evitar o problema observado durante as conversões de datas dentro das chamadas da TCDBInsert. 

Referente ao chamado: DTAPPSRV-6988

Incidente: Quando do uso da chave ServerMemoryInfo, em determinadas situações do conteúdo das mensagens de observação das threads poderia ocasionar erro no Application Server.

Solução: Correção no momento da impressão das informações da chave ServerMemoryInfo e inclusão da versão do Application Server nas informações.

Referente ao chamado: DTAPPSRV-7007

Incidente: A função file2printer não imprime PDF nem XLS via Client utilizando WebApp com WebAgent.

Solução: A função file2printer recebeu uma correção para imprimir corretamente via Client no WebAgent.

Referente ao chamado: DTAPPSRV-7051



Incidente: A utilização de funções AdvPL que geram troca de mensagens entre o SmartClient e o AppServer poderia ocasionar uma falha e queda na aplicação.

Solução: Foram criadas proteções na camada de troca de mensagens de eventos entre o SmartClient e o AppServer para evitar que a queda em questão volte a ocorrer. 

Referente ao chamado: DTAPPSRV-6827

Incidente: Funcionalidade Log de Repositório do TDS-VSCode não estava retornando informações sobre patchs aplicados no RPO Custom, retornava apenas informações do RPO Default.

Solução: Foram realizados ajustes na rotina para que seja retornado informações de patchs do RPO Custom e Default. A solução completa depende da atualização do plugin TOTVS Developer Studio

Referente ao chamado: DTAPPSRV-6853

Incidente: Mesmo com timeout configurado na TMailManager, ao enviar mensagens, a classe retornava erro de timeout, além de não ser possível ver o código de erro retornado pelo servidor.

Solução: Corrigido na TMailManager a definição dos valores de timeout e adicionado mensagens com o código de retorno do servidor SMTP ao ligar a chave Verbose na seção Mail do arquivo appserver.ini.

Referente ao chamado: DTAPPSRV-6863

Incidente: Problema na execução de queries em 4GL utilizando OUTER.

Solução: Corrigido a tradução das queries, antes de sua execução no banco.

Referente ao chamado: DTAPPSRV-6890

Incidente: Queda do APPServer com ocorrência crítica "Stack Overflow Found" ao fechar um RPO auxiliar de calculo da folha de pagamento, com um fonte do RPO auxiliar carregado no stack.

Correção: Não é possível fechar o RPO auxiliar com programas do proprio RPO auxiliar em execução, mas ao invés de gerar um erro critico de Stack Overflow e derrubar o TOTVS Application Server, será gerado um error.log com a mensagem "Auxiliary RPO locked by running program".

Referente ao chamado: DTAPPSRV-6898

Incidente: Queda do APPServer com ocorrência crítica "Stack Overflow Found" ao fechar um RPO auxiliar de calculo da folha de pagamento, com um fonte do RPO auxiliar carregado no stack.

Correção: Não é possível fechar o RPO auxiliar com programas do proprio RPO auxiliar em execução, mas ao invés de gerar um erro critico de Stack Overflow e derrubar o TOTVS Application Server, será gerado um error.log com a mensagem "Auxiliary RPO locked by running program".

Referente ao chamado: DTAPPSRV-6932

Incidente: não estava sendo possível utilizar o Broker Agent como um serviço Windows.

Solução: corrigido o processo de inicialização do serviço. (A instalação do serviço já estava funcionando).

Referente ao chamado: DTAPPSRV-6966

Incidente: Em algumas situações de erro na aplicação de patch estava havendo queda do Application Server.

Solução: Melhoria no tratamento de erros na aplicação de patch para não causar queda do Application Server.

Referente ao chamado: DTAPPSRV-7053


Melhorias

Problema: Informar no Application Server as informações sobre build e versão da DBSRV quando ela é carregada.

Solução: Adicionado na carga da DBSRV no Application Server as informações sobre build e versão.

Referente ao chamado: DTAPPSRV-6942

Incidente: Broker estava permitindo especificar planos de escalabilidade incompletos, isto é, com períodos de tempo que não estavam coberto por nenhum plano.

Solução: Melhorias na consistência dos períodos dos planos de escalabilidade do Broker Agente. Se houver algum algum período que não estiver coberto por um plano o Broker não será iniciliazado.

Referente ao chamado: DTAPPSRV-6993

Incidente: Broker Agent estava sempre tentando se conectar com o Broker no ip 127.0.0.1.

Solução: corrigido para respeitar a chave BrokerServer na seção BROKER_AGENT no arquivo de configuração appserver.ini.

Referente ao chamado: DTAPPSRV-7001

Incidente: em alguns cenários com Broker Smartclient ocorria consumo elevado de memória em Application Servers, enquanto outros Application Servers com pouco consumo de memória não estavam sendo utilizados. Isto ocorria porque o método de balanceamento utilizado no Broker era "por conexões".

Solução: foi alterado o método de balanceamento padrão no Broker Smartclient de "por conexões" para "por consumo de memória", diminuindo a possibilidade de ocorrência do incidente.

Referente ao chamado: DTAPPSRV-7009

Incidente: Necessidade de configurar a variável de ambiente LD_LIBRARY_PATH para correta inicialização do AppServer em sistemas operacionais Linux.

Solução: A partir dessa versão não é mais necessário configurar a variável de ambiente LD_LIBRARY_PATH, pois o AppServer irá procurar as dependências automaticamente no diretório de trabalho (mesmo diretório do INI). Essa alteração não modifica a precedência da LD_LIBRARY_PATH controlada pelo sistema operacional.

Referente ao chamado: DTAPPSRV-7008

Novas Implementações

Incidente: Não é possível utilizar a HTTPQuote passando um arquivo de certificado e chave, nos moldes das funções HTTPSGet e HTTPSPost.

Solução: Criada a função HTTPSQuote, que permite passar certicado, chave e senha para realizar a comunicação.

Referente ao chamado: DTAPPSRV-6951

Incidente: Não era possível identificar a arquitetura do processador que está sendo executado o Application Server.

Solução: Implementada a função GerSrvArch para obter a arquitetura do processador que esta sendo executado o Application Server. A informação também foi incluída no array de retorno da função GetSrvInfo.

Referente ao chamado: DTAPPSRV-6912

Incidente: Conseguir fazer o servidor HTTP do AppServer validar o certificado enviado pelo cliente, permitindo assim o uso do mTLS.

Solução: Adicionado para a chave ClientCertVerify da seção HTTPS o valor 3, que fará o servidor validar o certificado do cliente e caso não valide, irá fechar a conexão. Foram também criadas na configuração de Servers da seção HTTPServer as chaves SSLCertificateCA (permite configurar o certificado de CA) e SSLCheckClientCert (permite ligar ou não a verificação do certificado de cliente, derrubando a conexão caso não valide).

Referente ao chamado: DTAPPSRV-6958