Erro com uma conexão Pool =[

1 resposta
vinnyparker

Bom dia pessoal, tenho um conversor com banco de dados em firebird.
meu programa conseque achar o banco, porem da um erro na conexão. o erro é o seguinte:

jdbc:firebirdsql://localhost:3050//home/vinny/workspace2/l3convert/files/162/rh/dados/dadosEFE/folha.fdb ? sql_dialect= 3; lc_ctype=WIN1252 - NumActive: 0
jdbc:firebirdsql://localhost:3050//home/vinny/workspace2/l3convert/files/162/rh/dados/dadosEFE/folha.fdb ? sql_dialect= 3; lc_ctype=WIN1252 - NumIdle: 0
 INFO [Thread-2] (_RHAgape.java:82) - Criada pastas: files/162/rh/dados ,files/162/rh/sql/1
itemFolha 538910
ERROR [Thread-2] (_RHAgape.java:105) - DependentesDao
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Resource Exception. I/O error during "open" operation for file "/home/vinny/workspace2/l3convert/files/162/rh/dados/dadosEFE/folha.fdb"
Error while trying to open file
null
Reason: I/O error during "open" operation for file "/home/vinny/workspace2/l3convert/files/162/rh/dados/dadosEFE/folha.fdb"
Error while trying to open file
null)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
	at br.com.link3.dp.tools.XDataSource.getConnection(XDataSource.java:31)
	at br.com.link3.dp.tools.XDataSource.getConnection(XDataSource.java:19)
	at br.com.link3.dp.convert.rh.agape._RHAgape.getDao(_RHAgape.java:92)
	at br.com.link3.dp.convert.ConvertManager.processa(ConvertManager.java:285)
	at br.com.link3.dp.convert.MainForm$5.run(MainForm.java:353)
Caused by: org.firebirdsql.jdbc.FBSQLException: Resource Exception. I/O error during "open" operation for file "/home/vinny/workspace2/l3convert/files/162/rh/dados/dadosEFE/folha.fdb"
Error while trying to open file
null
Reason: I/O error during "open" operation for file "/home/vinny/workspace2/l3convert/files/162/rh/dados/dadosEFE/folha.fdb"
Error while trying to open file
null
	at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:106)
	at org.firebirdsql.jdbc.FBDriver.connect(FBDriver.java:221)
	at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
	at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
	at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1247)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221)
	... 6 more
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Resource Exception. I/O error during "open" operation for file "/home/vinny/workspace2/l3convert/files/162/rh/dados/dadosEFE/folha.fdb"
Error while trying to open file
null
Reason: I/O error during "open" operation for file "/home/vinny/workspace2/l3convert/files/162/rh/dados/dadosEFE/folha.fdb"
Error while trying to open file
null)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
	at br.com.link3.dp.tools.XDataSource.getConnection(XDataSource.java:31)
	at br.com.link3.dp.tools.XDataSource.getConnection(XDataSource.java:19)
	at br.com.link3.dp.convert.rh.agape._RHAgape.getDao(_RHAgape.java:92)
	at br.com.link3.dp.convert.ConvertManager.processa(ConvertManager.java:285)
	at br.com.link3.dp.convert.MainForm$5.run(MainForm.java:353)
Caused by: org.firebirdsql.jdbc.FBSQLException: Resource Exception. I/O error during "open" operation for file "/home/vinny/workspace2/l3convert/files/162/rh/dados/dadosEFE/folha.fdb"
Error while trying to open file
null
Reason: I/O error during "open" operation for file "/home/vinny/workspace2/l3convert/files/162/rh/dados/dadosEFE/folha.fdb"
Error while trying to open file
null
	at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:106)
	at org.firebirdsql.jdbc.FBDriver.connect(FBDriver.java:221)
	at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
	at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
	at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1247)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221)
	... 6 more

Alguem pode me explicar pq isso acontece, e como eu faço pra poder modificar isso?

1 Resposta

T

Pela minha infinita experiência com bancos de dados Firebird (ou seja, exatamente zero), acho que está ocorrendo o seguinte:

Há pelo menos dois modos de você abrir o banco de dados. Uma delas é como um arquivo (e nesse caso apenas uma thread pode acessar o banco) e outra é você configurando um servidor de banco de dados, que deve ser acessado via sockets*. Corrijam-me se eu estiver muito errado.

No seu caso, você está usando um pool, que por definição pode criar várias conexões que podem ser acessadas por várias threads. Nesse caso, você seria obrigado a configurar um servidor, em vez de simplesmente só acessar o Firebird como se fosse um simples arquivo.

  • Você não precisa fazer programação de sockets (java.net.Socket etc.), já que o driver JDBC do Firebird toma conta de todos esses detalhes sangrentos e você só precisa especificar a URL de conexão de outra forma, mais adequada para usar o firebird como um servidor, não como um arquivo.
Criado 10 de junho de 2009
Ultima resposta 10 de jun. de 2009
Respostas 1
Participantes 2