Outra causa para o maldito erro “Não é possível abrir mais tabelas” do MS Access com JDBC ODBC Bridge!

Access Malvado!

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:

Te invejo. Lido com Access diáriamente…

Responda

Heaven Reply:

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:

Pois então pasme: eu lido com Access 97 (doeu só de ouvir né?) :)

Responda

Heaven Reply:

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

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.