openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fernando (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-794) issues with closing/opening entity manager (slices) (can't seem to be able to create multiple entityManagers )
Date Thu, 27 Nov 2008 00:24:44 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-794?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12651197#action_12651197
] 

Fernando commented on OPENJPA-794:
----------------------------------

And I am using this code to do the binding/unbinding of the entity manager.  It is a very
small chance that this interacts with the slices code, but I'm putting it up just in case.
 It should be very close to what Spring does in it's OpenView filter code...



	public static void bindThread( EntityManagerFactory pmf ) {
		// logger.debug( "bindThread( " + pmf + " )" );
		if ( TransactionSynchronizationManager.hasResource( pmf ) ) {
			logger.error( "FOUND Entity MANAGER IN THREAD" );
			unbindThread( pmf );
		}
		EntityManager pm = pmf.createEntityManager();
		TransactionSynchronizationManager.bindResource( pmf, new EntityManagerHolder( pm ) );
	}

	public static void unbindThread( EntityManagerFactory pmf ) {
		// logger.debug( "unbindThread( " + pmf + " )" );
		if ( TransactionSynchronizationManager.hasResource( pmf ) ) {
			EntityManagerHolder holder = (EntityManagerHolder) TransactionSynchronizationManager.unbindResource(
pmf );
			EntityManager pm = holder.getEntityManager();
			pm.close();
		}
	}


> issues with closing/opening entity manager (slices) (can't seem to be able to create
multiple entityManagers )
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-794
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-794
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 2.0.0
>            Reporter: Fernando
>            Priority: Critical
>         Attachments: log.txt
>
>
> So, for each of my web requests I open an entitymanager at the begining, and close it
at the end, something like this:
> EntityManager pm = pmf.createEntityManager();
> try {
>  chain.filter(...);
> }
> finally {
>  pm.close();
> }
> And this works perfectly without slices.  But when I turn on slices, this fails.  The
first request works fine, but the second requests complains that the EntityManager has already
been closed.  So it seems to be caching the EntityManager from the previous request...  can
someone please help me figure out how to fix this??
> I'll attach the log.

-- 
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