If you change the 1000 to something like 1000000... does your application go
OOM? Are you running in a JSE environment? What is PersistenceManager?

On Wed, Jan 13, 2010 at 2:05 PM, Kurt T Stam <[email protected]> wrote:

> BTW I'm running with the cache off
>
> <property name="openjpa.DataCache" value="false"/>
>
> (that turns it off right?)
>
> --Kurt
>
>
>
> Kurt T Stam wrote:
>
>> Hi guys,
>>
>> [DESCRIPTION] The code below inserts a 1000 records in the database.
>>
>> for (int i=1; i<1000; i++) {
>>           EntityManager em = PersistenceManager.getEntityManager();
>>           EntityTransaction tx = em.getTransaction();
>>           try {
>>               tx.begin();
>>                   // Generate auth token and store it!
>>               String authInfo = AUTH_TOKEN_PREFIX + UUID.randomUUID();
>>               org.apache.juddi.model.AuthToken modelAuthToken = new
>> org.apache.juddi.model.AuthToken();
>>               if (authInfo != null) {
>>                   modelAuthToken.setAuthToken(authInfo);
>>                   modelAuthToken.setCreated(new Date());
>>                   modelAuthToken.setLastUsed(new Date());
>>                   modelAuthToken.setAuthorizedName(publisherId);
>>                   modelAuthToken.setNumberOfUses(0);
>>                   modelAuthToken.setTokenState(AUTHTOKEN_ACTIVE);
>>                     em.persist(modelAuthToken);
>>               }
>>                 apiAuthToken = new org.uddi.api_v3.AuthToken();
>>                 MappingModelToApi.mapAuthToken(modelAuthToken,
>> apiAuthToken);
>>                 tx.commit();
>>                         } finally {
>>               if (tx.isActive()) {
>>                   tx.rollback();
>>               }
>>               em.clear();
>>               em.close();
>>           }
>>       }
>>
>>
>> [ISSUE]
>> After it leaving this code I end up with a 1000
>> org.apache.juddi.model.AuthToken objects in memory. I've been using the
>> profiler, and these objects cannot be garbage collected.
>>
>> This seems to be pretty the most common use case of using an OR-mapping
>> tool, so I find it hard to believe openjpa has a memory leak here. Does
>> anyone see what I'm doing wrong? Or can someone point me to an example that
>> does not exhibit this behavior? BTW same code using hibernate does not
>> accumulate these objects.
>>
>> We're using openjpa 1.2.1.
>>
>>
>> Thx,
>>
>>
>> Kurt
>>
>> Apache jUDDI.
>>
>
>


-- 
Thanks,
Rick

Reply via email to