[hibernate-dev] Error: registry contains more than one (2) entity manager factories: PERSISTENCE_UNIT_NAME

Teresa Batista Neto teresa.batista.neto at gmail.com
Wed Jan 9 05:45:02 EST 2013


Hi Scott,

Thanks a lot for your help. I'm going to try what you suggest. I'm also
going to add the timestamp to avoid problems such as if users connect at
sometime using different browsers ("newt" + username + timestamp). I will
let you know later if these changes fix the problem.

We also have another application that only uses hibernate core that I also
upgraded from 3.6.1 to 4.1.8 and the duplicate entity factory problem
doesn't seems to happen. Is it normal?

When using only hibernate core 4.x my oracle sessions are never closed even
after I close SessionFactory and I don't understand why. This problem
doesn't happen in any of the 3.6.x versions. I already wrote to the mailing
list but I still didn't get any feedback. The email subject is "Problem
closing oracle session with hibernate 4.1.8". Do you have any idea of what
can be the problem?

Best regards,
Teresa


On Tue, Jan 8, 2013 at 4:01 PM, Scott Marlow <smarlow at redhat.com> wrote:

> Teresa,
>
> I made a code change in Hibernate 4.x that impacts
> serialization/deserialization of EntityManagerFactories.  My code change
> helps Hibernate to work correctly in clustered environments (HHH-6897) but
> it looks like my change also broke your application.  In a clustered
> environment, each entity manager factory will have a unique name.
>
> In your application, could you try setting "hibernate.ejb.entitymanager_**factory_name"
> to a unique name?  Perhaps you could try setting it to:
>
>  "newt" + username
>
> Scott
>
>
> On 01/08/2013 08:03 AM, Teresa Batista Neto wrote:
>
>> Hello,
>>
>> I just copy/past the exception call stack from when the "registry
>> contains more than one" error is thrown. The link is:
>> http://pastie.org/private/**cmmoyaouedgrbgpat88fxw<http://pastie.org/private/cmmoyaouedgrbgpat88fxw><
>> http://pastie.org/5647726>
>>
>>
>> Thanks in advance,
>> Teresa
>>
>>
>> On Thu, Dec 20, 2012 at 3:38 PM, Scott Marlow <smarlow at redhat.com
>> <mailto:smarlow at redhat.com>> wrote:
>>
>>     I would like to see the exception call stack from when the "registry
>>     contains more than one" error is thrown.  You can copy it to a
>>     website like pastie.org <http://pastie.org> or pastebin.com
>>     <http://pastebin.com> and paste the link here.
>>
>>
>>     Scott
>>
>>     On 12/20/2012 05:38 AM, Teresa Batista Neto wrote:
>>
>>         Dear all,
>>
>>         After upgrading JPA from 3.6.1 to 4.1.8 I start getting the
>>         following error:
>>
>>         "Error: registry contains more than one (2) entity manager
>>         factories:
>>         PERSISTENCE_UNIT_NAME"
>>
>>         Below you can find a brief summary of our specification
>>         requirements.
>>
>>         - User logins in the web application using their own oracle
>> database
>>         account.
>>         - The web application only needs to access one database schema;
>>         - The access rights are managed using oracle roles and grant
>>         privilegies.
>>         - Only one database schema and multiple user oracle accounts.
>>         - We only set the username and password when users tries to
>>         login in the
>>         web application.
>>         - The EntityManagerFactory is created using the username and
>>         password of
>>         the user.
>>
>>         - Because our web application only access one database we only
>>         use one
>>         persistence unit name.
>>
>>
>>         E.g. persistence.xml
>>
>>         <?xml version="1.0" encoding="UTF-8"?>
>>         <persistence version="1.0"
>>         xmlns="http://java.sun.com/__**xml/ns/persistence<http://java.sun.com/__xml/ns/persistence>
>>         <http://java.sun.com/xml/ns/**persistence<http://java.sun.com/xml/ns/persistence>
>> >"
>>               xmlns:xsi="http://www.w3.org/_**_2001/XMLSchema-instance<http://www.w3.org/__2001/XMLSchema-instance>
>>         <http://www.w3.org/2001/**XMLSchema-instance<http://www.w3.org/2001/XMLSchema-instance>
>> >"
>>
>>           xsi:schemaLocation="http://__j**ava.sun.com/xml/ns/__**
>> persistence <http://java.sun.com/xml/ns/__persistence>
>>         <http://java.sun.com/xml/ns/**persistence<http://java.sun.com/xml/ns/persistence>
>> >
>>         http://java.sun.com/xml/ns/__**persistence/persistence_1_0.__**
>> xsd <http://java.sun.com/xml/ns/__persistence/persistence_1_0.__xsd>
>>
>>         <http://java.sun.com/xml/ns/**persistence/persistence_1_0.**xsd<http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd>
>> >">
>>
>>             <persistence-unit name="PERSISTENCE_UNIT_NAME">
>>
>>           <provider>org.hibernate.ejb.__**HibernatePersistence</__**
>> provider>
>>
>>               <properties>
>>               <property name="hibernate.connection.__**driver_class"
>>         value="oracle.jdbc.
>>         OracleDriver">
>>               <property name="hibernate.connection.__**url"
>>
>>         value="jdbc:oracle:xx...">
>>               <property name="hibernate.dialect"
>>         value="org.hibernate.dialect.
>>         Oracle10gDialect">
>>               <property name="hibernate.default___**schema"
>>         value="SCHEMA_NAME">
>>
>>               <property name="hibernate.connection.__**username"
>>         value="USERNAME">
>>               <property name="hibernate.connection.__**password"
>>         value="PASSWORD">
>>
>>               <property name="hibernate.connection.__**autocommit"
>>
>>         value="false">
>>               <property name="hbm2ddl.auto" value="validate">
>>
>>               <property name="hibernate.show_sql" value="true">
>>               <property name="hibernate.format_sql" value="true">
>>               </properties>
>>             </persistence-unit>
>>         </persistence>
>>
>>
>>         E.g. how we create and close the entity manager factory
>>
>>         Map<String, String> configuration = new ProviderConfiguration();
>>         configuration.put("hibernate._**_connection.username", username);
>>         configuration.put("hibernate._**_connection.password", password);
>>         EntityManagerFactory emf =
>>         Persistence.__**createEntityManagerFactory("__**
>> PERSISTENCE_UNIT_NAME",
>>
>>         configuration);
>>         EntityManager em = emf.createEntityManager();
>>         SptrTaxNode t = em.find(SptrTaxNode.class, 9606);
>>         em.close();
>>         emf.close();
>>
>>         Does anyone ever had a similar situation? Any ideas on how can I
>>         solve this
>>         problem?
>>
>>         Thanks in advance,
>>         Teresa
>>         ______________________________**___________________
>>         hibernate-dev mailing list
>>         hibernate-dev at lists.jboss.org <mailto:hibernate-dev at lists.**
>> jboss.org <hibernate-dev at lists.jboss.org>>
>>         https://lists.jboss.org/__**mailman/listinfo/hibernate-dev<https://lists.jboss.org/__mailman/listinfo/hibernate-dev>
>>         <https://lists.jboss.org/**mailman/listinfo/hibernate-dev<https://lists.jboss.org/mailman/listinfo/hibernate-dev>
>> **>
>>
>>
>>
>>
>


More information about the hibernate-dev mailing list