TOPCONN - Create error: -15 : FILE_IN_USE
Esta ocorrência é reproduzida quando tentamos criar uma tabela, utilizando a RDD TOPCONN, quando a tabela que está sendo criada já existe no banco e inclusive encontra-se atualmente em uso (aberta) por um outro usuário.
Verifique o procedimento de verificação da rotina de criação de tabelas utilizado no código-fonte AdvPL.
Recomenda-se para procedimento de criação de tabelas concorrentes que, primeiro seja verificada a existência da tabela e, caso não exista, deve-se fazer um Critical Section para que apenas 1 thread entre no modo de criação de tabela. Ao entrar em Critical Section, verifica se a tabela ainda não existe e, caso não exista, então ela deve ser criada e após isso o semáforo da Critical Section é liberado. As demais threads que por um acaso entrarem em execução simultânea, ao conseguirem permissão do semáforo, irão verificar se a tabela já foi criada por outra thread; e apenas criarão a mesma caso ela não exista. Este procedimento de semáforo evita que erroneamente duas threads tentem criar a mesma tabela simultâneamente.
Segue abaixo echo da mensagem apresentada no console do Servidor de Aplicação, quando da ocorrência deste erro em uma rotina de testes:
************************ (THIS,HTTP:GENPROC) ************************Warning - TOPCONN - Create error: -15 : FILE_IN_USEERROR ON ENVIRONMENT (HYPERSITE, 05/08/02, 10:47:51 )/*-------------------------------------------------------ERRO THREAD (HTTP:GENPROC, THIS) 08/05/2002 10:47:51Stack :Create error: TEST_Aon KAMBLINEAR(PUNKTOP.APL) line : 1002Called from PUNKTOP(PUNKTOP.APL) line : 175-------------------------------------------------------*/