- Criado por Paulo Reinaldo Tovo Filho, última alteração em 18 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 10 Próxima »
Correções
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.
Ref issues DTAPPSRV-7413, DTAPPSRV-7392 e relacionadas.
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", na linha de código, não está respeitando o padrão correto de objetos Json, não sendo possível criar objetos Json vazios, ex: { }, e nem corretamente os arrays de Json [ ], 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 se dá 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:
local jJson := { "chave" : {} }
terá como valor um objeto Json vazio.
Tratamentos para o objeto Json inline:
- faz a expansão de todos os nós do Json avaliando possíveis expressões, funções, e variáveis AdvPL/TLPP, ou seja, os valores das chaves Json, podem vir de variáveis, funções, expressões AdvPL/TLPP, podendo combinar com os tipos primitivos do Json.
- quando dentro de objetos Json, faz correção de "{ }", para considerar como um "objeto Json" vazio, e não como um "array de AdvPL" vazio, pois este é o padrão correto de da estrutura Json.
- também quando dentro de objetos Json, faz tratamento especial para os tipos: true, false e null, para que sejam considerados como elementos Json e não tentem extrair como um identificador/variável em Advpl/TLPP, representando os tipos AdvPL: .T., .F. e Nil, respectivamente.
- Array AdvPL, com elementos, são tratados como array Json. Ex: "chave":{1, 2, "3"}, será transformado em "chave":[1, 2, "3"], este caso é possível pois as estruturas de Array com conteúdo AdvPL, é diferente de um Objeto Json, então foi mantido este comportamento para dar maior poder ao tratamento do objeto Json.
- Array Json são tratados naturalmente no Json inline. Ex: "chave":[true, 2, "a"]Removido o tratamento histórico do "clipper", de se trocar [ ] por "" em alguns cenários para fontes TLPP. Ex. ':= []' ou ', []' ou '+ []', ... isto para permitir que os array Json sejam tratados corretamente quando declarados.Obs. para os casos onde se estivesse usando o "{ }" para determinar um array vazio, a recomendação é trocar por uma variável de array vazio.
Ex:
local jVarJson1 := { "valor_deveria_ser_array" : {} } as json // Neste caso o valor {} será um Json vazio e não mais um array vazio
para manter o comportamento anterior a sugestão é trocar por:
local aArrayVazio := {}
local jVarJson1 := { "valor_deveria_ser_array" : aArrayVazio } as json // Neste caso será sempre um array em qualquer versão
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.
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
Melhorias
Correções 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.
Novas Implementações
Incidente: Conversões de imagens 24BPP
Solução: Suporte a imagens BMP de até 24BPP na função bmptoJPEG.
- Sem rótulos