Hi,

I have an OSGi app that uses OpenJPA 2.2.0 and makes use of the audit functionality.
Some of the entities that get recorded contain BLOB fields (documents).

I'm getting occasional massive uses of memory (~900MB on a machine that typically sits at ~150MB) closely followed by hangs and often a restart by the karaf wrapper.

Looking at a memory dump I see that there are multiple copies of my BLOB entity in memory (not just multiple records, but multiple copies of each record) during a period of inactivity (where I wouldn't expect to see any).

Trying to track back responsibility for the objects gives me this tree:
this  Document_JpaImpl
  value ConcurrentHashMap$HashEntry
    [0] ConcurrentHashMap$HashEntry[]
      table ConcurrentHashMap$Segment
        [7] ConcurrentHashMap$Segment[]
          segments   ConcurrentHashMap
            _audits AuditManager$AuditCallback
              [43]  Object[]
                elementData LifecycleEventManager$ListenerList
                  ...
              [43]  Object[]
                elementData LifecycleEventManager$ListenerList
                  ...
              [43]  Object[]
                elementData LifecycleEventManager$ListenerList
                  ...
            this$0
(I'm not sure how useful that is!)

There are a lot of other duplicate JPA entities in memory too, but they are smaller and less of a problem.

Is this something I've done or a problem with OpenJPA?

Thanks

Jim

Reply via email to