On 1/3/14, 5:15 AM, Riccardo Cohen wrote:
> Hello
> I will soon have more than one mysql server. I want to use one server
> for read requests of static data, the other for read/write requests of
> dynamic data. It works for sql requests through datasource, but I cannot
> find how to do it with ejb manager.
>
> In my resin.xml I have this :
>
>           <database jndi-name="jdbc/adlresintest">
>             ...
>           </database>
>           <ejb-server data-source="jdbc/adlresintest"
> create-database-schema="false"
>             jndi-name="ejb"/>
>           <database jndi-name="jdbc/adlresintest2">
>             ...
>           </database>
>           <ejb-server data-source="jdbc/adlresintest2"
> create-database-schema="false"
>             jndi-name="ejb2"/>
>
> In persistence.xml  :
>
> <persistence xmlns="http://java.sun.com/xml/ns/persistence"; version="1.0">
>     <persistence-unit name="adlresintestunit">
>       <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
>       <class>adlresintest.Adluser</class>
>       <exclude-unlisted-classes />
>       <properties>
>         <property name="eclipselink.ddl-generation.output-mode"
> value="database" />
>         <property name="eclipselink.weaving.fetchgroups" value="false"/>
>       </properties>
>     </persistence-unit>
> </persistence>
>
> In my java code I have this :
>
>     @Inject @Named("jdbc/adlresintest") public DataSource
> m_datasource1;// public site
>     @Inject @Named("jdbc/adlresintest2") public DataSource
> m_datasource2;// not used for the moment
>     @PersistenceUnit(name="adlresintestunit") @Named("ejb")
> EntityManagerFactory ejbfactory1;
>     @PersistenceUnit(name="adlresintestunit") @Named("ejb2")
> EntityManagerFactory ejbfactory2;
>
>
> When using datasource1 or 2 I access the correct database. But when
> using ejbfactory1 or 2, only the second database is accessed. The
> association created with "jndi-name" and @Named() works for
> DataSource/<database> but not for EntityManagerFactory/<ejb-server>.
>
> I also tried to use composite persistence unit as written here :
> http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Composite_Persistence_Units
> but I could not find the good configuration to do it, the tag
> <jta-data-source> was not accepted. I could not find in
> http://eclipse.org/eclipselink/documentation/2.4/jpa/extensions/persistenceproperties_ref.htm
> which property to set for the datasource.

The configuration should be <jta-data-source> and <non-jta-data-source> 
in the <persistence-unit>:

<persistence ...>
   <persistence-unit name="test" ...>
     <jta-data-source>jdbc/adlresintest</jta-data-source>
     ...
   </persistence-unit>
   <persistence-unit name="test2" ...>
<jta-data-source>jdbc/adlresintest2</jta-data-source>
       ...

Since the jta-data-source tag is part of the JPA spec, it should be 
recognized by eclipse-link.

-- Scott

>
> Thanks a lot.
>


_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to