- Criado por Fabio Garbin, última alteração em 30 jan, 2025
Correções
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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