Árvore de páginas

Versões comparadas

Chave

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

Esta build contempla uma mudança de comportamento e requisitos para limpeza de tabelas temporárias criadas pela aplicação AdvPL através do DBAccess em

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
 em bancos de dados MSSQL 

SituaçãoEm ambientes onde o banco MSSQL Server está sendo executado em modo
"
contained
"
, não é possível liberar os grants necessários
– "
GRANT SELECT ON sys.dm_tran_locks e GRANT VIEW SERVER STATE
" –
 — usados para verificar se uma tabela temporária está em uso na aplicação ao tentar limpar a tabela usando DROP TABLE ou TCDelFile().
OcorrênciaSão registrados erros de falha de limpeza das tabelas temporárias durante a execução da
aplicação –
aplicação — caso a
aplicaçao
aplicação tente limpar / apagar uma
tabela –
tabela — e na finalização de conexão.
Caso
Como consequência da da ocorrência acima, caso uma aplicação utilize o mesmo nome identificador de tabela temporária duas vezes, ocorre falha na tentativa de criar a tabela novamente – pois ela ainda existe no
Banco
banco de
Dados
dados
Melhoria
  • Não será mais executada a verificação de tabela em uso preventiva pelo
DBACcess
  • Inclusão de trecho
    DBAccess
    DBAccess
    nopaneltrue
    , ao tentar dropar a tabela durante a execução da aplicação.
  • Não é mais necessário liberar os grants mencionados para verificar se é possível ou não deletar / dropar uma tabela temporária durante a execução da aplicação. 
  • Para evitar o congelamento / travamento da instrução de DROP enviada ao banco de dados, caso a tabela eventualmente esteja em uso (aberta na camada ISAM e/ou com Query aberta),
o DBAccess passa
  • Inclusão de trecho
    dbaccess
    dbaccess
    nopaneltrue
     passa a submeter a instrução ao MSSQL com um
time-out
  • timeout de espera de bloqueio de 5 segundos.
  • Caso a tabela esteja em uso, e o banco de dados
nao
  • não conseguir acesso exclusivo na tabela/schema em 5 segundos para realizar o DROP, a operação é cancelada pelo banco de dados com o erro
"
  • Lock request time out period exceeded.
"
Informações adicionais
  • Referente
ao chamado
  • a issue: TPGW-705
Disponível em builds superiores a 
  • Os grants mencionados eram necessários apenas para evitar o envio de um DROP de uma tabela temporária em uso, que poderiam travar a conexão.