[rules-users] How to remove a persisted session from the database ?

Gustavo Tenrreiro gustavo at tenrreiro.com
Wed Sep 15 16:50:43 EDT 2010


Yeah thanks ! I had figured it out, but how do you get your
"transactional context" ?

I ended up doing the following, in case someone else needs to do the same:

within a class...

public void deleteSession(StatefulKnowledgeSession session)
	{
		initTransactionManager();
		this.txm.begin();

		registerRollbackSync();

		SessionInfo info =
jpm.getApplicationScopedEntityManager().find(org.drools.persistence.session.SessionInfo.class,
new Integer(session.getId()));
		System.out.println("This is the sessionInfo: " + info);
		jpm.getApplicationScopedEntityManager().remove(info);
		jpm.getApplicationScopedEntityManager().flush();

		this.txm.commit();
	}

private void initTransactionManager() {
		Object tm = environment.get( EnvironmentName.TRANSACTION_MANAGER );
		this.txm = new JtaTransactionManager( environment.get(
EnvironmentName.TRANSACTION ),
				environment.get( EnvironmentName.TRANSACTION_SYNCHRONIZATION_REGISTRY ),
				tm );
		this.jpm = new DefaultJpaManager(this.environment);

	}


private static class SynchronizationImpl
	implements
	TransactionSynchronization {

		JPAKnowledgeSessionLookup service = getInstance();
		public SynchronizationImpl(JPAKnowledgeSessionLookup service) {
            this.service = service;
        }
		
		public void afterCompletion(int status) {
			if ( status != TransactionManager.STATUS_COMMITTED ) {
				this.service.rollback();
			}


			this.service.jpm.endCommandScopedEntityManager();

		}

		public void beforeCompletion() {

		}

	}

Thanks

On Wed, Sep 15, 2010 at 1:33 PM, drooRam <rajeshram7 at yahoo.com> wrote:
>
> I have done something like below to remove the persisted session :
>
>                SessionInfo si = em.find(SessionInfo.class, sessionId);
>                em.remove(si);
>
> call the above lines in a transactional context. its done.
> --
> View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/How-to-remove-a-persisted-session-from-the-database-tp1473926p1481588.html
> Sent from the Drools - User mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>




More information about the rules-users mailing list