Acessar diversas bases de dados

3 respostas
gtludwig

Pessoal,
Estou com um problema que pode ser simples de matar para outros, mas que está me incomodando. A questão é que na aplicação que trabalho surgiu uma demanda de consultar outros bancos de dados. Comecei a fazer a implementação de um pool de conexões para os novos bancos, que são dois MSSQL e um Firebird. O servidor que roda a aplicação é um ubuntu server e as novas bases que quero acessar estão em máquinas Windows, registradas em um domínio. A máquina que hospeda a base Firebird é um MS Server 2003 e os MSSQL (Express) estão em Windows XP.

Coloquei os arquivos sqljdbc4.jar e jaybird-2.1.6.jar em TOMCAT_HOME/libs e defini o META-INF/context.xml da aplicação assim:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
	<Resource name="jdbc/SPI" auth="Container" type="javax.sql.DataSource"
		maxActive="5" maxIdle="2" maxWait="10000" username="sa" password="sa"
		driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
		url="jdbc:microsoft:sqlserver://172.16.8.130:1433;databaseName=SPC" />

	<Resource name="jdbc/scf" auth="Container" type="javax.sql.DataSource"
		maxActive="100" maxIdle="30" maxWait="10000" username="scf" password="scfUser"
		driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://172.16.8.13:3306/scf" />

	<Resource name="jdbc/pcba" auth="Container" type="javax.sql.DataSource"
		maxActive="10" maxIdle="3" maxWait="10000" username="SYSDBA" password="MASTERKEY"
		driverClassName="org.firebirdsql.jdbc.FBDriver" url="jdbc:firebirdsql://172.16.8.4:3050//D://PCBASQ//Produza//Database//PCBASQ_2_1.FDB" />
</Context>

Quando eu tenho acessar as bases de dados pela aba de gerenciamento de datasources do probe ([url]http://code.google.com/p/psi-probe/[/url]), eu consigo acessar sem problemas o mysql definido no context.xml, mas não o MSSQL e nem o Firebird definidos.

Para o MSSQL, a mensagem de erro que aparece é:
Cannot establish a database connection. Cannot create JDBC driver of class 'com.microsoft.sqlserver.jdbc.SQLServerDriver' for connect URL 'jdbc:microsoft:sqlserver://172.16.8.130:1433;databaseName=SPC'
E, para o Firebird, a mensagem é:
Cannot establish a database connection. Cannot load JDBC driver class 'org.firebirdsql.jdbc.FBDriver'

Alguém pode me dar uma luz sobre como resolver isso?

3 Respostas

doravan

Verifique o restante da mensagem de erro.
Normalmente a mensagem de erro não se resume a somente “não foi possível se conectar ao banco”, em geral ele diz a razão.

gtludwig

@doravan,
Não achei nenhuma entrada de erro no log. Estou tentando usar a funcionalidade do probe de consulta a datasource para ver se a conexão está ok. Os erros que postei vêm da tela do probe.

gtludwig

Era quase um típico caso de PEBKAC.
Para o SQLServer troquei o driver pelo jTDS e corrigi o .
Para o FireBird, bastou tirar alguns “/” da url de conexão e ficou assim:

Criado 25 de outubro de 2011
Ultima resposta 26 de out. de 2011
Respostas 3
Participantes 2