Versão 52

Melhorias

Desenvolvimento

  • A atualização de sistema passa a alertar o administrador, antes da execução da atualização, se o banco de dados de destino utiliza uma versão não suportada.
  • Os processos de atualização de sistema e de estrutura passam a permitir que o administrador marque as tabelas, colunas e índices que devem ser ignorados durante os processos de atualização por meio de botões nas grades de remoção.
  • Foi criado o método UpdateScript.prototype.copyChildrenViewPermissions com objetivo de ajustar as permissões de visão de classes novas com base nas permissões das classes e arquivos filhos.

Engine

  • Foi criado o método Scheduler.prototype.getCurrentTaskId com o objetivo de obter o identificador da tarefa em execução no contexto do script executado pelo Scheduler.
  • O Engine passa a remover os arquivos do diretório “dbCacheProvider” criados há mais de 30 dias, reduzindo o espaço em disco utilizado pelo sistema.
  • O limite de requisições em atendimento por Engine foi alterado de 100 para 200 requisições simultâneas. O Engine passa a registrar no log quando esse limite é atingido.
  • O “supervisor.log” passa a registrar a quantidade de sessões, conexões com o banco de dados e objetos responsáveis pelo tratamento das requisições do Engine.

Extensão VS Code

  • A grade de DataSet no resultado da execução de código passa a permitir ordenação de registros com base em múltiplas colunas. Para isso, após a primeira coluna ordenada, as próximas devem ser clicadas com a tecla ctrl pressionada.
  • A grade de DataSet no resultado da execução de código passa a possuir opções para ocultar e exibir colunas, disponíveis em um menu de contexto que pode ser acessado clicando com o botão direito sobre o cabeçalho de uma coluna. O usuário conta com as opções de ocultar e exibir colunas individualmente, ocultar todas as colunas vazias e exibir todas as colunas.

Defeitos corrigidos

Engine

  • O método Entity.prototype.toJSONString retornava um JSON inválido caso existisse um caractere “Tab” em um dos campos do tipo “string”.

Extensão VS Code

  • A execução de scripts poderia falhar no runtime V8 caso fossem redefinidas variáveis globais declaradas como constantes.

Web Framework

  • Ao acessar bases de dados com versões distintas utilizando um mesmo endereço poderia ocorrer a apresentação da tela de login com inconsistências visuais. O problema se manifestava principalmente em ambientes de desenvolvimento e homologação, onde o endereço localhost (http://127.0.0.1) é compartilhado por Engines configurados com bases distintas.

Outras alterações

Desenvolvimento

  • A classe UpgradeScript foi convertida em módulo e renomeada para UpdateScript. Os scripts anteriores, da VFS e UFS, foram preservados e continuam exportando os nomes UpgradeScript e sdl.upgrade.UpgradeScript para manter a compatibilidade com os códigos existentes.

Engine

  • A funcionalidade de backup automático do cache local do Engine passa a ser desativada por padrão. Na prática, isso significa que eventuais falhas de integridade no cache local irão requerer a construção do cache local a partir do servidor ou a cópia do diretório “dbCache” a partir de um outro Engine que tenha o cache de dados íntegro. O custo de processamento na inicialização do sistema requerido para validação do backup e a necessidade de triplicar o espaço em disco utilizado para o cache de dados tornavam essa solução inadequada para caches de dados de tamanho elevado. Para caches de dados menores, o esforço de sincronização diretamente com o servidor não é significativo e acaba por gerar uma solução mais íntegra que o uso do backup. O backup automático pode ser reativado por meio da variável de ambiente “NGIN_DBCACHE_AUTO_BKP” ou pelo parâmetro de linha de comando “–EnableDBCacheBackup”. No entanto, o uso dessas opções não é recomendado, pois a funcionalidade de backup automático deverá ser eliminada do sistema em versões futuras. Para garantir a redundância e alta disponibilidade dos Engines, é recomendado que se utilize mais de uma instância de Engine. Mais detalhes sobre esse assunto podem ser observados no manual Alta disponibilidade.
  • Os parâmetros de linha de comando “-ddbcb” e “–DisableDBCacheBackup”, a opção “AutomaticBackup” em “Manage > Configuration > Others” e a entrada de registro do Windows “Software\Nginstack\Engine\DBCache\AutomaticBackup” deixam de ser suportadas pelo Engine. A ativação do backup do cache local passa a ser realizada exclusivamente pelo parâmetro de linha de comando “–EnableDBCacheBackup” e pela variável de ambiente “NGIN_DBCACHE_AUTO_BKP”. Mais detalhes no manual Configuração do Engine.
  • O processo “Admin > Cache local > Configuração do backup automático por computador” foi removido. Este processo realizava a configuração do backup do cache local via registro do Windows, funcionalidade não mais suportada pelo Engine.
  • Os backups automáticos das bases de dados criadas pela classe IdoDBManager deixam de ser realizados, pois uma eventual restauração automática desses backups poderia afetar a integridade das regras de negócio, tendo em vista que os dados restaurados poderiam já ter sido processados ou eliminados do sistema. Quando necessária, a proteção desses dados deve ser realizada pela classe responsável por criar e manter a base de dados. Essa proteção pode ser feita facilmente criando uma cópia dos arquivos associados à base de dados antes da da execução do método IdoDBManager.prototype.loadDatabase. Com esta alteração, as classes ngin.idobkp.EventReader e BackupEventReader também foram eliminadas do sistema.

Extensão VS Code

  • A grade de DataSet no resultado da execução de código teve o comportamento da seleção de colunas alterado. A ação para selecionar ou desfazer seleção de uma coluna individualmente passa ser o clique no cabeçalho da coluna com ctrl + shift pressionados (anteriormente, apenas ctrl). Para selecionar a primeira coluna ou um intervalo de colunas, a ação continua sendo shift + clique. Esta modificação se deve ao fato de que a grade agora passa a utilizar o ctrl + clique para ordenação de registros com base em múltiplas colunas.