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

Teresa Batista Neto teresa.batista.neto at gmail.com
Thu Jan 17 07:31:46 EST 2013


Hi Scott,

Just to let you know that I added the username and timestamp and that now
everything is ok. I don't have anymore this issue. However I still have the
other problems. I sent a mail for each of them to the mailing list (timeout
and hibernate core close session issue). I hope that any of you can help me
with those issues.

Thanks for your help.

Best Regards,
Teresa


On Wed, Jan 9, 2013 at 11:45 AM, Teresa Batista Neto <
teresa.batista.neto at gmail.com> wrote:

> 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