C3P0 + Hibernate + 3 bases de dados

4 respostas
S

Amigos,

Estou desenvolvendo uma aplicação desktop que acessa 3 bases de dados diferentes. Eu estou usando hibernate 2.1.8 e não estou conseguindo configurar o pool de conexões.

Se eu configurar apenas uma base o sistema funciona perfeitamente, mas caso eu coloque os parametros do C3P0 no outros bancos de dados (arquivo xml do hibernate) não consigo acessar a base de dados e obtenho uma mensagem informando que o arquivo .gdb (firebird) não pode ser acessado. Eis 1 dos arquivos (os outros são praticamente iguais, mudando apenas o nome do bd, etc.).

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">

<hibernate-configuration>
	<session-factory>
		<property name="hibernate.connection.url">
			jdbc:firebirdsql:Server/3050:/home/sistemas/isat/isat.gdb
		</property>
		<property name="hibernate.connection.driver_class">
			org.firebirdsql.jdbc.FBDriver
		</property>
		<property name="hibernate.connection.username">XXXXXX</property>
		<property name="hibernate.connection.password">SENHA</property>
		<property name="dialect">
			net.sf.hibernate.dialect.InterbaseDialect
		</property>
		<property name="hibernate.show_sql">true</property>
		
		<property name="hibernate.c3p0.min_size">5</property>
		<property name="hibernate.c3p0.max_size">20</property>
		<property name="hibernate.c3p0.timeout">300</property>
		<property name="hibernate.c3p0.max_statements">50</property>
		<property name="hibernate.c3p0.idle_test_period">3000</property>

		<mapping resource="mappings/isat/Aluno.hbm.xml"/>
		<mapping resource="mappings/isat/Campus.hbm.xml"/>
		<mapping resource="mappings/isat/Curso.hbm.xml"/>
		<mapping resource="mappings/isat/Matricula.hbm.xml"/>
		<mapping resource="mappings/isat/Periodo.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

Obrigado,

Sur

4 Respostas

S

Olá!

Ninguém tem idéia??? Preciso usar o C3P0 pras 3 base de dados!!!

Obrigado.

Sur

_fs

Faça assim:

Properties p = new Properties();
p.setProperty( "hibernate.connection.url", "url;DatabaseName=" + databaseName ); // databaseName é um parametro passado para o método
p.setProperty( "hibernate.connection.username", "user" );
p.setProperty( "hibernate.connection.password", "password" );

Configuration conf = new Configuration().setProperties( p );
factory = conf.configure().buildSessionFactory();

Ta-da :smiley:

Thiago_Senna

Survivor…

Se não me engano vc tem que criar um sessionfactory para cada base de dados!

Quanto ao C3P0 dá sim! Veja o exemplo:

<property name="c3p0.min_size">5</property> <property name="c3p0.max_size">20</property> <property name="c3p0.timeout">300</property> <property name="c3p0.max_statements">50</property> <property name="c3p0.idle_test_period">3000</property>

S

Obrigado pela ajuda.

[]s

Sur

Criado 13 de maio de 2005
Ultima resposta 17 de mai. de 2005
Respostas 4
Participantes 3