Muitas vezes quando fecho uma conexão Litebase com o closeAll(), e na sequencia obtenho uma nova
instancia com getInstance, essa linda mensagem de erro aparece: "This driver instance was closed and can't be used anymore. Please get a new instance of it.". Um delícia trabalhar com litebase

.
Fecho a conexão assim:
public static void close() {
if (pdb!=null) {
pdb.closeAll();
pdb = null;
}
}
e obtenho a instancia do driver assim:
public static LitebaseConnection getConnection() {
if (time ==null || pdb == null || !verify()) {
if (Compatibilidade.isNFS()) {
pdb = LitebaseConnection.getInstance(Settings.applicationId);
time = new Time();
} else {
pdb = LitebaseConnection.getInstance(Settings.applicationId,
"aspdb");
time = new Time();
}
}
return pdb;
}
Já faço a peripécia de ficar fechando sempre que posso a conexão (Acho que isso deveria ser função do banco de dados e não da aplicação, mas fazer o quê?!). Mas não adianta, a gente arruma um problema
e nasce outro. Que bom!
Um detalhe que pode ser esclarecedor, e que pode ajudar na solução do problema. É que quando a aplicação é depurada na IDE, a excessão nunca acontece, somente ocorre quando executo-a normalmente. Cheguei a conclusão então que existe um delay no fechamento da conexão. Acho que talvez o comando closeAll() deva ficar bloqueado até a liberação do driver na memoria, ou que exista algum flag que indique que a conexão está liberada, para que eu possa implementar uma espera ocupada, ou coisa assim. Pois mesmo depois do closeAll() o método getInstance me retorna a mesma conexão que foi fechada, e não permite que eu a utilize para qualquer operação.