
Como sempre, o Access apronta das suas comigo. Quando achava que já tinha resolvido todos os problemas relacionados ao maldito problema “Não é possível abrir mais tabelas” (veja este link), encontrei outra possível causa para o mesmo no StackOverflow.
O que pode ocorrer é o seguinte: há situações nas quais o seu cliente pode perder conexões com a rede. Quando a conexão é fechada, não necessáriamente é liberado o socket de conexão com os arquivos de conexão com o Access até que seja executado o coletor de lixo do Java.
Ou seja: você fecha a sua conexão, assim como todas as suas instâncias de PreparedStatements e ResultSets, define-as como null mas o driver ainda não as fechou porque perdeu conexão com a rede momentaneamente.
Como picos de rede são comuns em ambientes mais complexos (e não tão complexos assim), a solução é a seguinte: ao trabalhar com Access e Java, execute o garbage colector de tempos em tempos para garantir que as conexões fechadas e nulificadas sejam de fato fechadas no driver ODBC.
A minha pergunta relacionada no StackOverflow pode ser vista aqui com ainda mais detalhes.
5 Comments
Add Yours →Mais um motivo para nunta ter aceito trabalhar com projetos utilizando Access.
Responda
admin Reply:
fevereiro 12th, 2010 at 09:59
Te invejo. Lido com Access diáriamente…
Responda
Heaven Reply:
fevereiro 13th, 2010 at 20:52
Que azar, hein.
Pelo menos tenho sorte nisso, na empresa que trabalho atualmente é só mysql na cabeça (uma maravilha de DB para web) e a próxima empresa que vou trabalhar só é apenas Postgres.
Mas é estranho trabalhar com Access no JDBC, o ideal (que nunca acontece) seria trabalhar usando o próprio .net que tem melhor integração, pois parece que ultimamente a Microsoft tem pegado bastante no pé da tecnologia Java e tornando a integração de seus produtos com a mesma tecnologia cada vez pior.
Responda
admin Reply:
fevereiro 13th, 2010 at 22:24
Pois então pasme: eu lido com Access 97 (doeu só de ouvir né?) :)
Responda
Heaven Reply:
fevereiro 14th, 2010 at 00:23
0_0
Realmente doeu nos olhos e no ouvido, meus parabens você é um super herói, o Access 97 é de fato assustador, mas até compreendo por causa da época.
Responda