Application Server - 20.3.2.1
- Criado por Paulo Reinaldo Tovo Filho, última alteração em 24 out, 2023

Você está vendo a versão antiga da página. Ver a versão atual.
Comparar com o atual Ver Histórico da Página
« Anterior Versão 29 Próxima »
Correções
Incidente: ao utilizar a interface PO-UI em um ambiente com SQLite como database principal (RPODB=SQLITE), a emissão de uma query para abertura da tabela temporária falhava apresentando a mensagem de erro:
"[SQLITE] Open Query Error: no such table: dbTemp.tmp_29892_SC00 on MPSYSOPENQUERY(MPSYSOPENTABLES.PRW) 05/09/2022 10:01:39 line : 712"
Solução: para evitar essa falha, alteramos o tratamento de tabelas temporárias no database DB_TMP e passamos a criar a tabela temporária no próprio DB_SYS.
Referente ao chamado: DTAPPSRV-6943
Incidente: ao consumir determinadas APIs via AdvPL, a resposta de retorno estava demorando muito, entre 4 e 5 minutos.
Solução: foram realizados ajustes no separador de linhas de recebimento do header HTTP para suportar o delimitador '\n'.
Referente ao chamado: DTAPPSRV-7280
Incidente: no Application Server Linux, à medida que o número de handles de arquivos e sockets aumentava, havia o risco de queda do Application Server por deficiência no tratamento de eventos de rede.
Solução: melhorado o tratamento de eventos de rede pelo Application Server no ambiente Linux, evitando as quedas relatadas.
Referente ao chamado: DTAPPSRV-7041
Incidente: queda no Application Server em Serviço Rest quando a chave tlpp_rest_log configurada com valor igual a 1 e o path da pasta do AppServer contém espaços.
Solução: correção realizada dentro do componente Vader para o tratamento correto do path de arquivos.
Referente ao chamado: DTAPPSRV-7306
Incidente: problema na criação de tela usando ADVPL e Code Block, ocasionando queda do Application Server.
Solução: proteção e checagem na lista de code block.
Referente ao chamado: DTAPPSRV-7274
Incidente: não estava sendo possível utilizar o Broker Agent na versão 20.3.1.9. As instâncias de Application Server não estavam sendo criadas.
Solução: corrigido o tratamento do arquivo de configuração do Broker Agent que estava causando este comportamento.
Referente ao chamado: DTAPPSRV-7317
Incidente: Access Violation dentro do Vader envolvendo o tratamento de Cookies HTTP
Solução: revisado e corrigido o componente interno.
Referente ao chamado: DTAPPSRV-7348
Incidente: o mecanismo de reinicialização da camada do App Monitor evidenciou uma falha na HttpSGet quando utilizamos certificado e chave privada armazenados em path absoluto.
Solução: fizemos um ajuste para viabilizar a utilização de certificado e chave privada armazenados em uma pasta diferente do RootPath, evitando a falha em questão.
Referente ao chamado: DTAPPSRV-7383
Incidente: após atualização do AppServer foi identificado um problema de serialização na conexões RPC que impactaram na performance das rotinas de Integração Excel.
Solução: foi aplicada uma correção na camada de conexões RPC para evitar este comportamento, devolvendo a performance esperada para a integração.
Referente ao chamado: DTAPPSRV-7428
Incidente: erro no upload de arquivos utilizando rotinas REST.
Solução: correção no tratamento de upload de arquivos.
Referente ao chamado: DTAPPSRV-7438
Incidente: "Insufficient Buffer on tString::sprintf()" ao processar um Json inválido, observado em alguns casos específicos com arquivos Json muito grandes.
Solução: correção no tratamento de arquivos Json.
Referente ao chamado: DTAPPSRV-7334
Incidente: Application Server estava apresentando lentidão ao realizar uma requisição PUT via Rest. A aplicação estava pegando o content-length da requisição de forma incorreta, por isso ficava esperando por um body como resposta, o que dava a impressão de baixo desempenho.
Solução: foram realizados ajustes para que o content-length seja consumido da forma correta.
Referente ao chamado: DTAPPSRV-7294
Incidente: utilizando a classe TWSDLManager, ao fazer o parse de um WSDL que necessita de autenticação HTTP e que existe um redirect para outra URL, necessitando dos mesmos dados de autenticação, o parse falhava.
Solução: criada a propriedade lHTTPTransferAuth na classe TWSDLManager, que permite transferir os dados de autenticação HTTP em caso de redirect da URL. O valor padrão dessa propriedade é true (.T.).
Referente ao chamado: DTAPPSRV-7464
Incidente: erro na execução de download de arquivos através das rotinas REST.
Solução: correção no tratamento do MFPD (Multi forma part data).
Referente ao chamado: DTAPPSRV-7455
Incidente: funções AdvPL relacionadas ao RPO seguro não estavam respeitando corretamente as definições de tipo de RPO e com isso, falhando nas consultas e acessos.
Solução: ajustes e correções para correto acesso aos RPOS TLPP, Custom e Default.
Referente ao chamado: DTAPPSRV-7445
Incidente: insufficient Buffer on tString::sprintf() durante a geração de um logprofiler.
Solução: impor um limite de 256 bytes para definir uma string de "observação" para a Thread / Processo atual.
Referente ao chamado: DTAPPSRV-7444
Incidente: possibilidade de crescimento indiscriminado do log do Broker Agent quando executado em modo desktop.
Solução: melhorado o tratamento de eventos de teclado (Ctrl-C etc) que estava causando o crescimento indiscriminado do log do Broker Agent.
Referente ao chamado: DTAPPSRV-7420
Incidente: finalização inesperada do TOTVS Application Server ao utilizar o rastreio de conexões com o DBACCESS ADVSQLREPLAY em uma situação em que a aplicação AdvPL tem duas ou mais conexões ativas e fecha a primeira conexão aberta com TCUNLINK().
Solução: corrigida a busca na lista de conexões ativas.
Referente ao chamado: DTAPPSRV-7409
Incidente: o arquivo sso\etc\services.conf em branco utilizado pelo SAML estava causando a queda do Application Server.
Solução: checagem do arquivo services.conf e mensagem de erro no console durante a execução, caso o arquivo esteja em branco.
Referente ao chamado: DTAPPSRV-7402
Incidente: select * de tabela SQLITE após apagar e recriar a tabela com nova estrutura diferente da anterior, retornava a primeira estrutura da tabela, pois ao apagar a tabela, um cache de resolução de queries não era apagado.
Solução: limpar o cache de estrutura de retorno de Queries relacionado a uma tabela, quando ela for eliminada.
Referente ao chamado: DTAPPSRV-7395
Incidente: ao forçar uma compilação com a chave BUILDKILLUSERS e Servidor Rest ativos, o serviço Rest era corretamente interrompido. Porém, ao tentar conectar novamente ao serviço Rest (exemplo: Webmonitor e TLPP Monitor) ocorria o erro "SYMTAB in use for addSourceInfo...".
Solução: foram realizadas correções pontuais no Servidor de Aplicação (Application Server).
Referente ao chamado: DTAPPSRV-7375
Ocorrência: requisições em REST com "origin: null" estavam falhando por causa do tratamento de CORS.
Solução: corrigido o tratamento de CORS para aceitar requisições com "origin: null".
Referente ao chamado: DTAPPSRV-7360
Ocorrência: access Violation no Application Server causado pela soma entre variáveis definida como Char (tipagem forte) e string.
Correção: proteção para não permitir operação de soma, apresentando mensagem de erro durante a execução.
Referente ao chamado: DTAPPSRV-7355
Ocorrência: problemas no funcionamento do WebApp causados pelo tratamento de Websockets em um componente do Appserver.
Correção: corrigido o tratamento de Websockets para permitir o funcionamento correto do WebApp com protocolo Websocket.
Referente ao chamado: DTAPPSRV-7205
Ocorrência: access Violation durante assinatura de fonte via AppServer Command Line.
Correção: inicialização e configuração dos parâmetros SSL.
Referente ao chamado: DTAPPSRV-7431
Ocorrência: ao chamar a função HSMObjList com o parâmetro cPass (segundo parâmetro) igual a string vazia e com o dispositivo HSM inicializado, ocorria queda no Application Server.
Correção: foi feito um tratamento para evitar a queda quando o parâmetro cPass estiver vazio.
Referente ao chamado: DTAPPSRV-7510
Ocorrência: Erro na apresentação de tela PO-UI quando da utilização do Broker.
Correção : Inclusão do parâmetro de path no cookie utilizado pelo broker.
Referente ao chamado: DTAPPSRV-7533
Ocorrência : Perdas significativas de desempenho em ambientes que utilizam GRID de processamento AdvPL, Jobs de WebServices, e integrações via RPC, como por exemplo Front Loja e Retaguarda, ao atualizar o Application Server para builds superiores a 20.3.1.5.
Correção : Corrigida a rotina de verificação de carga de RPO, que causava uma retenção e serialização entre processos.
Referente aos chamados: DTAPPSRV-7413 e DTAPPSRV-7392.
Incidente: Falha de criação de índices em tabelas de uso interno do Framework AdvPL, usando RDD TOPCONN com DBAccess e/ou SQLITE, quando o campo possui nome com mais de 10 caracteres.
Solução: Criação de índice suportada adequadamente após ajuste na lista de campos do índice no AppServer.
Referente ao chamado: DTAPPSRV-7245
Incidente: Ao apresentar Error in encode FindBase64Val returning -1, em algumas ocasiões o serviço ficava indisponível.
Solução: Correção no tratamento da mensagem.
Referente ao chamado: DTAPPSRV-7253
Incidente: O tratamento de objetos Json "inline" não está respeitando o padrão correto de objetos Json, não sendo possível criar objetos Json vazios (ex: { }), arrays de Json [ ] não são criados corretamente e também não permitem que os tipos True, False e Null sejam tratados como tipos Json.
Solução: O tratamento dos objetos Json foi corrigido para que ele passasse a ser tratado conforme a formatação Json. A principal alteração ocorre com array AdvPL que é representado por "{ }", todavia no padrão Json, isto representa um objeto Json vazio, ou seja, em um código que tenha por exemplo "local jJson := { "chave" : {} }", terá como valor um objeto Json vazio.
Referente ao chamado: DTAPPSRV-7210
Incidente: Falha ao conectar via classe tRPC em um appserver de balanceamento desktop broker com SSL ativo
Solução: O quarto parâmetro do método Connect não estava sendo levado em consideração para ativar o SSL, a partir da próxma versão esse parâmetro passa a ser considerado
Referente ao chamado: DTAPPSRV-7311
Melhorias
Atualização de bibliotecas de terceiros e melhorias relacionadas a segurança.
Incidente: Comportamento do Sistema Operacional Linux afetava liberação de memória do mecanismo de alocação e controle do Appserver
Solução: Implementado recurso que possibilita o controle do cache de memória realizado pelo sistema operacional Linux, permitindo assim, a liberação de memória quando não utilizada.
Incidente: Em um cenário com Broker Agent e Monitor Embedded no Broker Smartclient, quando o Broker Agent finalizava um serviço este não estava sendo retirado das tabelas de monitoração do Monitor Embedded.
Solução: Implementação de remoção nas tabelas de monitoramento do Monitor Embedded dos serviços que forem finalizados pelo Broker Agent.
Incidente: Cliente necessita desativar o sistema associado a um Broker Agent, e para isso o Broker não deve direcionar novas conexões a esse sistema.
Solução: Implementado scheduling de funcionamento para o Broker Agent. O Broker só direciona novas conexões para os sistemas instanciados pelo Broker Agent nos intervalos de tempos especificados na configuração (ini) do broker Agent.
Solicitação: serviço WebMonitor subir automaticamente no start do Application Server e também a opção para desligar se necessário com a seção [WEMONITOR] e chave Enable=0 no appserver.ini
Solução: implementado o start automático e a opção para desligar, caso seja necessário.
Referente ao chamado: DTAPPSRV-7376
Solicitação: descontinuar a chave de compilação de compilação Linux baseada no algoritmo AES que foi criada para manter compatibilidade com a antiga chave de compilação.
Solução: remoção do suporte a antiga chave de compilação Linux e a partir de agora, deverá ser utilizado o TOKEN de compilação.
Documentação: AppServer Command Line - Compilação por linha de comando
Referente ao chamado: DTAPPSRV-7264
Novas Implementações
Solicitação: conversões de imagens 24BPP
Solução: suporte a imagens BMP de até 24BPP na função bmptoJPEG.
Referente ao chamado: DTAPPSRV-7136
Solicitação: Classe SFTP (Secure File Transfer Protocol)
Solução: implementação de classe para transferência de arquivos de forma segura, via protocolo SFTP. Disponível na linguagem TLpp
Documentação: tSFTPClient
Referente ao chamado: DTAPPSRV-7349
- Sem rótulos