# mehrere Datenbanken mit JBoss 4.2 und EJB3



## karatekid (17. Apr 2008)

Hi,
der Normalfall ist relativ easy. Eine Applikation, im JBoss deployed, greift über die DS Definition auf die DB zu.


```
<?xml version="1.0" encoding="UTF-8"?>
<persistence>
   <persistence-unit name="ParisPlusDefaultUnit">
      <jta-data-source>java:/PPDefaultDS</jta-data-source>
   </persistence-unit>
</persistence>
```
Nun habe ich aber den Fall, dass ich eine 2. DB benötige. Die passende xxxDS.xml ist angelegt und die persistence.xml entsprechend angepasst.


```
<?xml version="1.0" encoding="UTF-8"?>
<persistence>
   <persistence-unit name="ParisPlusDefaultUnit">
      <jta-data-source>java:/PPDefaultDS</jta-data-source>
   </persistence-unit>
   <persistence-unit name="ParisPlusHostExtensionUnit">
      <jta-data-source>java:/HostExtensionDS</jta-data-source>
      <class>ProduktverwaltungEntity</class>
   </persistence-unit>
</persistence>
```

Allerding scheint das so nicht auszureichen. Zumindest wirft der Server folgende Exception beim Zugriff auf die Bean  
javax.naming.NamingException: Could not dereference object

Als Info beim deploy gibt der JBoss noch folgendes aus :

INFO  [Ejb3Configuration] [PersistenceUnit: ParisPlusHostExtensionUnit] no META-INF/orm.xml found

Hat jemand schon 2 oder mehere DBs unter EJB3 mit JBoss zum laufen gebracht ?
Für Tipps wäre ich dankbar.

Gruss KK


----------



## karatekid (17. Apr 2008)

Ich habe eine Lösung gefunden. Evtl benötigt diese ja jemand mal...

Erst die DB angeben die allgemein gilt, dann die, die speziell für einige Beans gelten.
Mit <exclude-unlisted-classes/> schliesst man die nicht aufgeführten Beans aus.
Damit wird zwar die ProduktverwaltungEntity erst mal auf die default DB gesetzt, dann allerdings mit der richtigen überschrieben.


```
<?xml version="1.0" encoding="UTF-8"?>
<persistence>
   <persistence-unit name="DefaultUnit">
      <jta-data-source>java:/PPDefaultDS</jta-data-source>
   </persistence-unit>
   <persistence-unit name="HostExtensionUnit">
      <jta-data-source>java:/HostExtensionDS</jta-data-source>
      <class>ProduktverwaltungEntity</class>
      <exclude-unlisted-classes/>
   </persistence-unit>
</persistence>
```

Eigentlich sollte es auch diese Notation geben :


```
<?xml version="1.0" encoding="UTF-8"?>
<persistence>
   <persistence-unit name="DefaultUnit">
      <jta-data-source>java:/PPDefaultDS</jta-data-source>
      <exclude>ProduktverwaltungEntity</exclude>
   </persistence-unit>
</persistence>
```

Leider ignoriert der JBoss das <exclude>

Falls jemand eine bessere Lösung hat wäre ich dankbar.


----------



## Guest (17. Apr 2008)

karatekid hat gesagt.:
			
		

> ```
> <?xml version="1.0" encoding="UTF-8"?>
> <persistence>
> <persistence-unit name="DefaultUnit">
> ...


Hängt damit zusammen, dass es einen solchen Tag nicht gibt. Zumindest nicht laut http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd


----------



## karatekid (18. Apr 2008)

Hi Gast, 
könnte sein. Ich habe es anderweitig gelesen, dass es das geben soll. Würde auch einen Sinn ergeben.


----------

