Boa tarde caros amigos,
Vou precisar da ajuda de vocês, nunca trabalhei com aplicações usando 2 bancos, e agora aqui na empresa precisarei pegar dados de um segundo banco, não sei nem como começar.
Uso Hibernate com banco Firebird e usarei agora também o Banco Oracle 11g.
Será que alguém pode me ajudar?
Desde já agradeço a atenção dos amigos.
Att.
Diego Silva
[quote=Hebert Coelho]1) Crie no arquivo persistence.xml um persistence unit para o Oracle
2) Configure tudo que for necessário dentro do persistence.xml
3) Verifique se em algum lugar é utilizado native query. se sim, você terá que migrar as consultas para o Oracle (caso dê mensagem de invalid sintax).
4) Pode ser que dê erro na hora de migrar a chave também, então você provavelmente terá que desligar a questão de chave de um lado para o outro durante a migração.
[/quote]
Muito obrigado caro Hebert, mas o projeto aqui é jsf1.2 e não possui o persistence.xml o processo todo é feito com DAO genérico, cria o objeto e insere.
Tentei fazer com 2 Hibernate-cfg.xml e duas HibernateSessions chamando a referente ao oracle, porém trava e não obtem a session.
Estou JPA aqui mas o Hibernate e bem parecido…
Aqui estou fazendo a conexão pelo Jboss 7, no arquivo de configuração eu coloco as URL com usuário e senha do bancos, e na aplicação leio estas configurações para o “CONEXAO_BANCO_1” e “CONEXAO_BANCO_2” em um arquivo persistence.xml que fica dentro da aplicação,
Em uma classe java leio o persistence assim private static EntityManagerFactory emfRetaguarda = Persistence.createEntityManagerFactory("banco1");
PERSISTENCE.XML
<persistence-unit name="banco1" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>java:/CONEXAO_BANCO_1</non-jta-data-source>
</persistence-unit>
ARQUIVO DE CONFIGURAÇÃO
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jta="true" jndi-name="java:/CONEXAO_BANCO_1" pool-name="DefaultDS_pool" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>###### url de conexão ######</connection-url>
<driver>oracle</driver>
<security>
<user-name>###### usuario ######</user-name>
<password>###### senha ######</password>
</security>
</datasource>
<datasource jndi-name="java:/CONEXAO_BANCO_2" pool-name="PaywaretDS_pool" enabled="true" use-java-context="true">
<connection-url>###### url de conexão ######</connection-url>
<driver>oracle</driver>
<security>
<user-name>###### usuario ######</user-name>
<password>###### senha ######</password>
</security>
</datasource>
<drivers>
<driver name="oracle" module="com.oracle.jdbc">
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
[quote=dlsilva1812][quote=Hebert Coelho]1) Crie no arquivo persistence.xml um persistence unit para o Oracle
2) Configure tudo que for necessário dentro do persistence.xml
3) Verifique se em algum lugar é utilizado native query. se sim, você terá que migrar as consultas para o Oracle (caso dê mensagem de invalid sintax).
4) Pode ser que dê erro na hora de migrar a chave também, então você provavelmente terá que desligar a questão de chave de um lado para o outro durante a migração.
[/quote]
Muito obrigado caro Hebert, mas o projeto aqui é jsf1.2 e não possui o persistence.xml o processo todo é feito com DAO genérico, cria o objeto e insere.
Tentei fazer com 2 Hibernate-cfg.xml e duas HibernateSessions chamando a referente ao oracle, porém trava e não obtem a session.[/quote]
persistence.xml não tem nada haver com JSF, ele é configuração do JPA.
Se você tem o hibernate-cfg.xml é nele que tem que ficar suas configurações. Se não obtem a session algum erro deve estar acontecendo. Veja o seu log qual erro está aparecendo lá.
[quote=robsonsan]Estou JPA aqui mas o Hibernate e bem parecido…
Aqui estou fazendo a conexão pelo Jboss 7, no arquivo de configuração eu coloco as URL com usuário e senha do bancos, e na aplicação leio estas configurações para o “CONEXAO_BANCO_1” e “CONEXAO_BANCO_2” em um arquivo persistence.xml que fica dentro da aplicação,
Em uma classe java leio o persistence assim private static EntityManagerFactory emfRetaguarda = Persistence.createEntityManagerFactory("banco1");
PERSISTENCE.XML
<persistence-unit name="banco1" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>java:/CONEXAO_BANCO_1</non-jta-data-source>
</persistence-unit>
ARQUIVO DE CONFIGURAÇÃO
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jta="true" jndi-name="java:/CONEXAO_BANCO_1" pool-name="DefaultDS_pool" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>###### url de conexão ######</connection-url>
<driver>oracle</driver>
<security>
<user-name>###### usuario ######</user-name>
<password>###### senha ######</password>
</security>
</datasource>
<datasource jndi-name="java:/CONEXAO_BANCO_2" pool-name="PaywaretDS_pool" enabled="true" use-java-context="true">
<connection-url>###### url de conexão ######</connection-url>
<driver>oracle</driver>
<security>
<user-name>###### usuario ######</user-name>
<password>###### senha ######</password>
</security>
</datasource>
<drivers>
<driver name="oracle" module="com.oracle.jdbc">
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
[/quote]
Valeu amigo.
Sou bem cru mesmo.
Abraço.
[quote=Hebert Coelho][quote=dlsilva1812][quote=Hebert Coelho]1) Crie no arquivo persistence.xml um persistence unit para o Oracle
2) Configure tudo que for necessário dentro do persistence.xml
3) Verifique se em algum lugar é utilizado native query. se sim, você terá que migrar as consultas para o Oracle (caso dê mensagem de invalid sintax).
4) Pode ser que dê erro na hora de migrar a chave também, então você provavelmente terá que desligar a questão de chave de um lado para o outro durante a migração.
[/quote]
Muito obrigado caro Hebert, mas o projeto aqui é jsf1.2 e não possui o persistence.xml o processo todo é feito com DAO genérico, cria o objeto e insere.
Tentei fazer com 2 Hibernate-cfg.xml e duas HibernateSessions chamando a referente ao oracle, porém trava e não obtem a session.[/quote]
persistence.xml não tem nada haver com JSF, ele é configuração do JPA.
Se você tem o hibernate-cfg.xml é nele que tem que ficar suas configurações. Se não obtem a session algum erro deve estar acontecendo. Veja o seu log qual erro está aparecendo lá.[/quote]
Aí que está o problema, não aparece nada no log. Simplesmente a aplicação fica travada.
[quote=dlsilva1812][quote=Hebert Coelho][quote=dlsilva1812][quote=Hebert Coelho]1) Crie no arquivo persistence.xml um persistence unit para o Oracle
2) Configure tudo que for necessário dentro do persistence.xml
3) Verifique se em algum lugar é utilizado native query. se sim, você terá que migrar as consultas para o Oracle (caso dê mensagem de invalid sintax).
4) Pode ser que dê erro na hora de migrar a chave também, então você provavelmente terá que desligar a questão de chave de um lado para o outro durante a migração.
[/quote]
Muito obrigado caro Hebert, mas o projeto aqui é jsf1.2 e não possui o persistence.xml o processo todo é feito com DAO genérico, cria o objeto e insere.
Tentei fazer com 2 Hibernate-cfg.xml e duas HibernateSessions chamando a referente ao oracle, porém trava e não obtem a session.[/quote]
persistence.xml não tem nada haver com JSF, ele é configuração do JPA.
Se você tem o hibernate-cfg.xml é nele que tem que ficar suas configurações. Se não obtem a session algum erro deve estar acontecendo. Veja o seu log qual erro está aparecendo lá.[/quote]
Aí que está o problema, não aparece nada no log. Simplesmente a aplicação fica travada.
[/quote]
Provavelmente está tentando conectar ao DB. Verifique se a URL está certa, se o firewall ñ está te bloqueando, se usuário/senha estão corretos também.
[quote=Hebert Coelho][quote=dlsilva1812][quote=Hebert Coelho][quote=dlsilva1812][quote=Hebert Coelho]1) Crie no arquivo persistence.xml um persistence unit para o Oracle
2) Configure tudo que for necessário dentro do persistence.xml
3) Verifique se em algum lugar é utilizado native query. se sim, você terá que migrar as consultas para o Oracle (caso dê mensagem de invalid sintax).
4) Pode ser que dê erro na hora de migrar a chave também, então você provavelmente terá que desligar a questão de chave de um lado para o outro durante a migração.
[/quote]
Muito obrigado caro Hebert, mas o projeto aqui é jsf1.2 e não possui o persistence.xml o processo todo é feito com DAO genérico, cria o objeto e insere.
Tentei fazer com 2 Hibernate-cfg.xml e duas HibernateSessions chamando a referente ao oracle, porém trava e não obtem a session.[/quote]
persistence.xml não tem nada haver com JSF, ele é configuração do JPA.
Se você tem o hibernate-cfg.xml é nele que tem que ficar suas configurações. Se não obtem a session algum erro deve estar acontecendo. Veja o seu log qual erro está aparecendo lá.[/quote]
Aí que está o problema, não aparece nada no log. Simplesmente a aplicação fica travada.
[/quote]
Provavelmente está tentando conectar ao DB. Verifique se a URL está certa, se o firewall ñ está te bloqueando, se usuário/senha estão corretos também.[/quote]
Blza caro amigo, estou saindo agora para uma reunião, vou verificar na volta e posto aqui se deu certo ou errado.
Muito obrigado.
Abraço.