openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig Russell (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-115) Bottleneck(s) with using OpenJPA in a Container-managed environment
Date Mon, 29 Jan 2007 21:05:49 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-115?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12468408
] 

Craig Russell commented on OPENJPA-115:
---------------------------------------

Kevin opined: Within a Container-managed environment, the Container takes care of the lifecycle
of the EntityManagers. 

I believe that this applies only to injected EntityManagers, not to those created by the user
explicitly via EMF.createEntityManager. So there is still some cleanup needed to guarantee
proper resource deallocation when the EMF is closed.

Patrick offered: implement a concurrent Collection class that uses weak references, and eliminate
all locking

I believe that this is an optimal solution. Concurrent Collections should have almost zero
locking in most containers.

> Bottleneck(s) with using OpenJPA in a Container-managed environment
> -------------------------------------------------------------------
>
>                 Key: OPENJPA-115
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-115
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>            Reporter: Kevin Sutter
>         Assigned To: Kevin Sutter
>            Priority: Critical
>
> Running some benchmarks against OpenJPA using the Sun Java System (SunOne) application
server.  Under load, we're not able to push the cpu to 100%.  The culprit seems to be the
lock and synchronization processing within AbstractBrokerFactory.newBroker(..).  According
to sections 5.9.1 and 5.9.2 in the JPA specification, it looks like OpenJPA is attempting
to do too much management of the created EntityManagers.  Within a Container-managed environment,
the Container takes care of the lifecycle of the EntityManagers.  So, there does not seem
to be a need to do the findBroker(..) invocation, nor is there a need to keep track of the
created EntityManagers (_brokers) so that they can be closed when the Factory is closed.
> Once we have verified these changes, there may be others that are needed.  But, we have
to get by this bottleneck first before going to the next layer...
> Kevin

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message