Eu nunca trabalhei com isso da primeira vez, mas agora não consigo fazer nada.
Há um pool de conexões em algum lugar usando o banco de dados, portanto, tentar descartá-lo quando um aplicativo estiver usando o banco de dados deve fornecer esse erro. O problema é que não há conexão com o banco de dados quando emito estes comandos:
db2 connect to mydatabase
db2 quiesce database immediate force connections
db2 connect reset
db2 drop database mydatabase
Isso sempre oferece:
SQL1035N The database is currently in use. SQLSTATE=57019
a execução deste comando não mostra conexões / aplicativos
DB2 list applications
Posso até desativar o banco de dados, mas ainda não consigo eliminá-lo.
db2 => deactivate database mydatabase
DB20000I The DEACTIVATE DATABASE command completed successfully.
db2 => drop database mydatabase
SQL1035N The database is currently in use. SQLSTATE=57019
db2 =>
Alguém tem alguma pista? Estou executando o cmd-windows como administrador local (windows 2008) e este também é o administrador do DB2. O usuário do conjunto de conexões não pode se conectar durante o estado de quiesce.
DB2 connect reset
Eu apenas uso 'db2stop force', depois 'db2start' e depois solto db. Dessa maneira, é melhor que o comando quiesce, que é assíncrono por natureza.
fonte
Seu problema pode ocorrer devido às diferenças de
connect reset
eterminate
. Dê uma olhada nesta discussão . Você também pode dar uma olhada na documentação da IBM. Portanto, pode funcionar para você se você executar umdb2 terminate instead
de adb2 connect reset
.fonte
O silêncio impedirá que a queda funcione. Estávamos envolvidos em um grande esforço de limpeza e, após executar a revogação / conexão e desativação dos bancos de dados, esperamos alguns meses para eliminar os dbs de teste. Nosso comando drop não funcionaria, a menos que cancelássemos o comando db e depois descartássemos.
fonte
Execute estas etapas na linha de comando. Isso eliminará o banco de dados:
Forçar todos os aplicativos;
desativar db;
drop db;
fonte
Quando um banco de dados é desativado, ele ainda está na cadeia de bancos de dados com o gerenciador de banco de dados, embora marcado como desativado. Quando você tenta soltá-lo, vamos verificar se está nessa cadeia; Nesse caso, ele ainda está em uso ==> Você não pode soltá-lo.
Você precisa emitir um db inativo ou emitir um db2stop e db2start e, em seguida, tenta eliminá-lo. Deveria funcionar.
fonte
Tenho um problema semelhante, mas não importa como forço a interrupção do aplicativo, ele voltará automaticamente.
No meu caso, é um serviço que está bloqueando o banco de dados.
Consegui resolver isso encerrando o serviço PID do Windows Task Manager com o PID encontrado na Lista de Aplicativos DB2.
Para localizar o PID, abra o DB2 Control Center, Todos os Bancos de Dados, DATABASE (o que você está tentando excluir), Lista de Aplicativos, Mostrar Cadeia de Bloqueio, Mostrar Detalhes de Bloqueio e role para baixo para encontrar o ID do Processo do Cliente e encerrar esse PID e tente novamente.
Espero que isso ajude as pessoas no futuro.
fonte