*** Infraestrutura
Melhoria: O servidor Inteq passa a negar acesso ao banco de dados caso a conexão não tenha sido logada. Scripts que façam uso do construtor "new Connection()" para bases de dados que não sejam a mesma da sessão corrente devem passar a utilizar o método Connection.login() antes de qualquer outra chamada.
Atenção: Com esta alteração, o servidor da Inteq não suportará clientes com versões inferiores a 3.3.1.137.
Melhoria: A conexão com o banco de dados passa a ter o conceito de usuário logado, garantindo a identificação do usuário que está requerendo informações do servidor. Para isto foram criadas as seguintes propriedades e métodos:
Connection.login( userName, password ) Connection.logout() Connection.userKey Connection.userName
Atenção: O objeto connection automaticamente é logado com o mesmo usuário da sessão.
O programador somente deve preocupar-se em realizar login em conexões criadas manualmente através de um "new Connection()".
Melhoria: O método executeScript() passa a logar automaticamente a sessão que irá executar o script com o usuário logado da sessão corrente.
Melhoria: Com o objetivo de permitir identificar o usuário de uma tarefa, foram adicionados os parâmetros username e password nos métodos abaixo:
Task.saveLocally( username, password) Connection.newTask( task, username, password)
Casos estes parâmetros não sejam informados, o usuário da tarefa será considerado o mesmo da sessão corrente.
Melhoria: A criação de uma tarefa no startWebConfiguration passa a exigir que seja informado um nome de usuário e senha. Todas as alterações realizadas pela tarefa serão gravadas em nome deste usuário.
Atenção: Todas as tarefas existentes nos schedulers dos nossos clientes devem ser editadas e gravadas novamente para associar um usuário e senha. Caso contrário, os scripts das tarefas não terão acesso ao banco de dados.
Melhoria: O construtor da classe StreamedDatabaseBackup passa a requerer os parâmetros username e password. Também foi retirado o último parâmetro ignoredTables, o qual passará a ser informado no método backup. Abaixo como ficou a sintaxe desta classe:
new StreamedDatabaseBackup( fileName, sourceServer, dbName, userName, password ) StreamedDatabaseBackup.backup( [ ignoredTables ]) StreamedDatabaseBackup.restore( [ options ] )
Os processos Admin/Maintenance/Restore e Admin/Maintenance/Backup foram revistos para suportar a nova sintaxe.
Atenção: Os clientes que tenham tarefas programadas com a rotina de backup da Inteq devem rever as tarefas para adicionar os parâmetros "username" e "password". O backup não será mais executado enquanto a tarefa não for revista. Vale ressaltar que nossos clientes devem utilizar as rotinas de backup do próprio banco de dados, pois o backup da Inteq não possui garantia de integridade.
Melhoria: Ao criar novas conexões (new Connection) o sistema tentará automaticamente logar a nova conexão com o usuário e senha do usuário da sessão corrente.
Alteração: Task.userKey passa a ser uma propriedade readOnly.
Alteração: Processamentos internos do INTEQengine passam a ser executados com o usuário "system" ao invés de "anonymous".
Correção: Connection.authenticateUser( userName, password, useLocalCache) gerava um erro caso useLocalCache fosse "false" e o servidor remoto não tivesse conexão direta com o banco de dados. Corrigido.
Correção: Os métodos do objeto Connection poderiam retornar dados inconsistentes caso a conexão anterior tivesse falhado na leitura do resultado. Corrigido.