Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Pagetitle
Application Server - 20.3.2.1517
Application Server - 20.3.2.15

Exibir filhos

Estado
colourGreen
titleEM DESENVOLVIMENTO

17

Exibir filhos

Correções


Expandir
titleMensagem "E error (11 - 0) from SSL config [erro, falta nome do arquivo de certificado do server]"

Incidente: na inicialização do Broker HTTP estava sendo erroneamente gravada no log uma mensagem de erro "erro, falta nome do arquivo de certificado do server"

Solução: corrigido para não mais gravar essa mensagem 

Referente ao chamado: DTAPPSRV-8123

Expandir
titleAcionando botao FIM de um programa 4gl chamado em cascata pelo VSCODE ele finaliza todos programas

Incidente: Caso especifico de Logix com Multithread ativo no logixprofile. Onde ao fechar um programa que foi aberto pelo FGLRUN, encerra em cascata todos os programas. 

Solução: Corrigido a lista de programas ativos e ao encerrar um programa, verifica se existe outros ativos e volta para o anterior. 

Referente ao chamado: DTAPPSRV-6202

Expandir
titleBroker Desktop com picos de consumo de CPU no Oracle Linux

Incidente: Possível picos de CPU no serviço do Broker desktop em ambiente linux.

Solução: Melhorias na camada de comunicação para otimizar a aceitação  aceitação de conexões. Inclusão de logs para monitoramento das threads no broker.

Referente ao chamado: DTAPPSRV-7806

Expandir
titleOcorrência de queda no AppServer em ambiente 4GL

Incidente: Lentidão na comunicação do Logix, entre Appserver e banco de dados SQL Server, ambos em Linux.

Solução: Ajustado dbsrv.so para uma comunicação mais eficiente. 

Referente ao chamado: DTAPPSRV-8019

Expandir
titleUtilizando BROKER a Função GetUserInfoArray aInfo[x][04] - Retorna Vazio

Incidente: A função GetUserInfoArray não retornava dados na posição 4 quando da utilização do broker.

Solução: Correção na GetUserInfoArray para preenchimento dos dados corretamente para retorno na função.

Referente ao chamado: DTAPPSRV-8053

Expandir
titleAccess Violation durante a geração de relatórios em ERP Logix

Incidente: Durante a geração de relatorios no Logix, com Appserver em Linux e banco Informix, apresentava quedas esporadicamente. 

Solução: Adicionado proteções no Appserver para evitar possíveis invasões de memoria.

Referente ao chamado: DTAPPSRV-8067

Expandir
titleErro ORA-04098 - trigger is invalid and failed re-validation

Incidente: falha na tradução SQL impactando na execução de trigger em banco Oracle.

Solução: ajustes na engine de translate para correta tradução do comando SQL.

Referente ao chamado: DTAPPSRV-8103

Expandir
titleDados não localizados no banco de dados em ERP Logix

Incidente:Comportamento inesperado de cursor em algumas ocasiões envolvendo banco MSSQL.

Solução:Alinhado recursos de MARS desligados com o build 32 bits.

Referente ao chamado: DTAPPSRV-8104

Expandir
titleServiço fica indisponivel quando compilado fonte

Incidente:Serviço fica indisponivel ao compilar fonte com instruções RECORD ao adicionar membros novos 

Solução:realizado proteção no tramento das chamadas

Referente ao chamado: DTAPPSRV-8108

Expandir
titleServiço fica indisponivel quando convertido datetime2string

Incidente: Ao realizar conversão do tipo datetime o Appserver pode sair do ar

Solução: Realizado proteção no tramento das chamadas

Referente ao chamado: DTAPPSRV-8109

Expandir
titleFindFunction - Busca de função TLPP em fonte ADVPL

Incidente: FindFunction com argumento contendo namespace poderia retornar um falso positivo quando partindo de um fonte prw.

Solução: Quando o argumento de pesquisa contiver namespace, FindFunction agora sabe fazer a busca considerando nome longo, mesmo que a partida seja de um fonte prw.

Referente ao chamado: DTAPPSRV-8111

Expandir
titleInsert nao apresenta falha mas registro não é inserido

Incidente: Insert não apresenta falha, mas SQLERRD[3] é 0 (nao registro foi inserido), e nenhum erro é apresentado

Solução: Resgatado erro corretamente, no caso do mssql, quando erro é HY000 ele não pega corretamente o código, sendo agora representado por "161".

Referente ao chamado: DTAPPSRV-8114

Expandir
titlePARSER SQL - Não traduz nome de tabela temporaria de SQL preparado

Incidente: Ajustes em dois colaterais em ambiente 4GL, nos bancos Informix e SQL Server, durante a tradução de query com "%", PERCENT_MARK. 

Solução: Ajustado a tradução correta para cada banco Informix ou SQL Server.

Referente ao chamado: DTAPPSRV-8124

Expandir
titleSQL BLOCK - parser nao identifica variavel (SQLSERVER) e tabelas com sinal $ (ORACLE)

Incidente: No SQL BLOCK Logix, o paraser não reconhecia nomes com o símbolo "$" no meio (gv$session, por exemplo) como nome de tabela, que existem no Oracle; e o parser não reconhece uma variável com nome de tabela caso tivesse o terminador ";" .

Solução: Corrigido o parser do SQL BLOCK Logix para a correta identificação dos casos citados.

Referente ao chamado: DTAPPSRV-8127

Expandir
titleErro de cursor não encontrado - Harpia com SQL Server

Incidente: ocorrência de cursor não encontrado em banco SQL Server.

Solução: ajustes e melhorias na engine de controle de cursores.

Referente ao chamado: DTAPPSRV-8130

Expandir
titleFunções fCreate / fOpen / fErase com falha em ambiente windows

Incidente: A função FErase está conseguindo apagar um arquivo que foi criado pela FCreate, mas que não foi fechado. Esse problema acontece em ambiente virtualizado com VMWare.

Solução: Corrigido a forma de criar arquivos na função FCreate para que não seja possível a exclusão de arquivos não fechados.

Referente ao chamado: DTAPPSRV-8182

Expandir
titleAccess violation função isCursorDeclared no 4GL

Incidente: ocorrência de "Access violation" na função isCursorDeclared.

Solução: ajustes nos tratamentos de parâmetros da função.

Referente ao chamado: DTAPPSRV-8183

Expandir
titleAccess Violation - Queda de appserver ao compilar

Ocorrência: durante compilação, ocorria Access Violation no Application Server.

Solução: foram realizados ajustes na camada de debug ADVPL.

Referente ao chamado: DTAPPSRV-8184

Expandir
titleAumento consumo de memória durante o uso do REST

Incidente:  Memory leak em windows durante checagem de assinatura de fontes prw ou tlpp.

Solução: Limpeza de recursos SSL que prendiam a memória.

Referente ao chamado: DTAPPSRV-8194

Expandir
titleDECLARE adicionando cursor na lista de controle mesmo falhando

Incidente: comando DECLARE adiciona cursor em lista de controle mesmo quando ocorre falha. Essa ocorrência afeta apenas os bancos Oracle e SQL Server.

Solução: ajuste no tratamento de erro para os bancos Oracle e SQL Server que em decorrência do comportamento dos bancos, afetava o tratamento de erro na plataforma.

Referente ao chamado: DTAPPSRV-8218

Expandir
titleExibição de linha de código no Stackwalk aparece negativa

Incidente: Ao ocorrer uma excessão, o console.log mostra linhas negativas

Solução: Correção no tramento das linhas do fonte para correta exibição

Referente ao chamado: DTAPPSRV-8222

Expandir
titlePatch por diferença - Arquivos com o texto .MAP no nome não eram inseridos no patch

Ocorrência: Quando da geração de patch por diferença arquivos com o texto .MAP não eram inseridos no patch.

Solução: Melhoria no tratamento do filtro de extensões na geração de patches.

Referente ao chamado: DTAPPSRV-8235

Expandir
titleInstabilidade serviço REST - Erro 24 no Broker

Incidente: Instabilidade no serviço de REST devido ao consumo de handles

Solução:  Foram incluídas novas chaves para o Broker de WebService, estas chaves tem como intuito de monitorar a saúde do serviço e permitir uma tentativa de reinicio em caso de detecção de falha, também foram incluídas chaves para fazer um tratamento de limpeza de conexões que não estão em uso por um tempo.

Ex: (appserver.ini)
[BALANCE_WEB_SERVICES]
; Periodicidade que irá rodar o monitor de saúde da porta
INTERVAL_FOR_HEALTH_CHECK=30
; Indica se deve ou não fazer o restart da porta em caso de detecção de falha
HEALTH_CHECK_RESTART=0
; Periodicidade que irá rodar o garbage/limpeza
INTERVAL_FOR_GARBAGE=900
; Tempo que é considerado para handle estar em falta de uso
; Obs. Esta configuração pode ser alterada durante a operação
GARBAGE_TIMEOUT_HANDLE=300
; se estiver habilitado faz o fechamento de handles não usados (GARBAGE_TIMEOUT_HANDLE),
; se desabilitado faz somente a impressão handles não usados (GARBAGE_TIMEOUT_HANDLE).
; Obs. Esta configuração pode ser alterada durante a operação
GARBAGE_CLOSE=0 

- Foi incluído um tratamento para evitar que dois ou mais servidores de aplicação (AppServer) tentem abrir o mesmo arquivo de console, pois como o arquivo é aberto para escrita, os logs pode ser corrompidos e ficarão embaralhados entre os serviços dificultando a leitura.
Obs. Caso haja mais de um serviço apontando para o mesmo log (Ex: console.log), terá que ser alterado o caminho do deste arquivo de log na configuração
Ex: (appserver.ini)
[General]
ConsoleFile=/novo_caminho_para_o_log/console.log

ou, um destes serviços terá que ser inicializado com o parâmetro -ConsoleFile, para alterar o caminho do deste arquivo de log na ativação do serviço
-Ex:
appserver.exe -console -ConsoleFile=/novo_caminho_para_o_log/console.log
appserver.exe -install -ConsoleFile=/novo_caminho_para_o_log/console.log
./appsrvlinux -console -ConsoleFile=/novo_caminho_para_o_log/console.log

Referente ao chamado: DTAPPSRV-8244

Expandir
titleORA-01858: A NON-NUMERIC CHARACTER WAS FOUND WHERE A NUMERIC WAS EXPECTED

Incidente: Durante a execução de algumas queries em 4GL usando o banco Oracle, apresentava problema na tradução, resultado na mensagem "A NON-NUMERIC CHARACTER WAS FOUND WHERE A NUMERIC WAS EXPECTED". 

Solução: Corrigido a tradução enviada ao banco Oracle. 

Referente ao chamado: DTAPPSRV-8252

Expandir
titleInformações Consumo DBAccess Shift-F6 Incorretas - Linux

Incidente: função TCGetInfo(5) retornando informações de memória incompletas, trazendo apenas parte das informações.

Solução: o buffer size que estávamos utilizando tinha o tamanho de apenas 1024, o que era insuficiente. A capacidade do buffer foi aumentada.

Referente ao chamado: DTAPPSRV-8261

Expandir
titleMNTNG- Descrição das tarefas desconfigurada

Incidente: Quando utilizado o tlppREST ou REST 2.0 e utilizar uma API com retorno com chunk com necessidade de conversão de Encode CP1252 para UTF-8 estava ocorrendo um duplo encode caso na camada do produto já tivesse sido feito ocasionando erro na codificação.

Solução: Foi realizado um ajuste no AppServer para evitar que ocorra um duplo encode em caso de Chunk, portanto quando a camada do produto já tiver realizado o processo de Encode a camada da aplicação (AppServer) não o efetuará em todas as instâncias do Chunk, e caso contrário o Apperver efetuará a conversão igualmente em todos os pacotes de Chunk.
Importante saber que para indicar ao AppServer que em seu produto a conversão já foi realizada é preciso adicionar no Header do HTTP a informação para qual CharSet foi feito o Encode.

Referente ao chamado: DTAPPSRV-8269

Expandir
titleAccess Violation ao configurar a chave privada na seção SSLConfigure

Incidente: Queda do servidor ao configurar chave privada da seção SSLConfigure.

Solução: Foi inserida uma proteção no código responsável pela configuração da chave privada para evitar esta queda.

Referente ao chamado: DTAPPSRV-8272

Expandir
titleProblema com encoding para Impressão Excel em russo.

Incidente: Gerar um XLSX com encoding em Russo (windows-1251) não funciona se executado pelo appserver linux

Solução: Problema estava na file2printer que em appserver linux não estava adicionando o parâmetro -L=4 para gerar o resultado em Windows-1251

Referente ao chamado: DTAPPSRV-8332

Expandir
titleGerar PATCH para apenas excluir objetos do RPO

Agora é possivel realizar a geração de patchs que alem de incluirem, também excluem completamente objetos ou programas do RPO destino. 

Para realizar a utilização do recurso, veja maiiores detalhes em https://tdn.totvs.com/pages/viewpage.action?pageId=528461210

Referente ao chamado: DTAPPSRV-7107

Expandir
titleWarning message and errors - tRPCBase waiting for tRPCThread

Incidente: Eventualmente threads do Application Server entravam em loop aguardando a desconexão com oLicense Server, aguardando pela mensagem de retorno do protocolo. 

Correção: Inserir tratamento de flush para envio da mensagem de retorno. 

Referente ao chamado: DTAPPSRV-8137

Expandir
titleLimpeza de objetos de controle no database SYSTEM.db do SQLITE

Incidente: A limpeza de tabelas com o comando DROP TABLE no database sqlite nao limpava uma tabela auliliar interna de controle de estrutura, aumentando o tamanho e numero de objetos no system.db

Correção: O DROP TABLE de uma tabela passa a limpar corretamente a tabela auxiliar <TABELA>_FIELD_INFO.

Referente ao chamado: DTAPPSRV-8191

...