protected void addInterceptors(KieSession ksession) { PersistableRunner runner = (PersistableRunner) ((CommandBasedStatefulKnowledgeSession) ksession).getRunner(); runner.addInterceptor(new OptimisticLockRetryInterceptor()); // even though it's added always TransactionLockInterceptor is by default disabled so won't do anything runner.addInterceptor(new TransactionLockInterceptor(ksession.getEnvironment())); runner.addInterceptor(new ExecutionErrorHandlerInterceptor(ksession.getEnvironment())); }
PersistableRunner service = new PersistableRunner( kbase, config, env ); Long sessionId = service.getSessionId(); StartProcessCommand startProcessCommand = new StartProcessCommand(); startProcessCommand.setProcessId( "org.drools.test.TestProcess" ); ProcessInstance processInstance = service.execute( startProcessCommand ); logger.info( "Started process instance {}", processInstance.getId() ); service.dispose(); service = new PersistableRunner( sessionId, kbase, config, GetProcessInstanceCommand getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( processInstance.getId() ); processInstance = service.execute( getProcessInstanceCommand ); assertNotNull( processInstance ); service.dispose(); service = new PersistableRunner( sessionId, kbase, config, getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( processInstance.getId() ); processInstance = service.execute( getProcessInstanceCommand ); assertNull( processInstance );
kbase.addPackages( kpkgs ); PersistableRunner service = new PersistableRunner( kbase, config, env ); Long sessionId = service.getSessionId(); StartProcessCommand startProcessCommand = new StartProcessCommand(); startProcessCommand.setProcessId( "org.drools.test.TestProcess" ); ProcessInstance processInstance = service.execute( startProcessCommand ); logger.info( "Started process instance {}", processInstance.getId() ); service = new PersistableRunner( sessionId, kbase, config, GetProcessInstanceCommand getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( processInstance.getId() ); processInstance = service.execute( getProcessInstanceCommand ); assertNull( processInstance );
private void registerUpdateSync() { if (this.txm.getResource("TriggerUpdateTransactionSynchronization-"+this.toString()) == null) { this.txm.registerTransactionSynchronization(new TriggerUpdateTransactionSynchronization(txm, env)); this.txm.putResource("TriggerUpdateTransactionSynchronization-"+this.toString(), true); } }
public void beforeCompletion() { this.ts.beforeCompletion(); }
public void afterCompletion(int status) { switch ( status ) { case TransactionSynchronization.STATUS_COMMITTED : { this.ts.afterCompletion( TransactionManager.STATUS_COMMITTED ); break; } case TransactionSynchronization.STATUS_ROLLED_BACK : { this.ts.afterCompletion( TransactionManager.STATUS_ROLLEDBACK ); break; } default : { this.ts.afterCompletion( TransactionManager.STATUS_UNKNOWN ); } } }
public void addInterceptor(ChainableRunner interceptor) { addInterceptor(interceptor, true); }
ChainableRunner internalCommandService = ((PersistableRunner)commandService).getChainableRunner(); assertEquals(ExecutionErrorHandlerInterceptor.class, internalCommandService.getClass()); taskService.complete(taskIds.get(0), "john", result); // this time, execute normally internalCommandService = ((PersistableRunner)commandService).getChainableRunner(); assertEquals(ExecutionErrorHandlerInterceptor.class, internalCommandService.getClass()); assertEquals(TransactionLockInterceptor.class, internalCommandService.getClass()); internalCommandService = (ChainableRunner) ((TransactionLockInterceptor) internalCommandService).getNext(); assertEquals(OptimisticLockRetryInterceptor.class, internalCommandService.getClass()); internalCommandService = (ChainableRunner) ((OptimisticLockRetryInterceptor) internalCommandService).getNext(); assertEquals("org.drools.persistence.PersistableRunner$TransactionInterceptor", internalCommandService.getClass().getName());
public long getStatefulKnowledgeSessionId(StatefulKnowledgeSession ksession) { if ( ksession instanceof CommandBasedStatefulKnowledgeSession ) { PersistableRunner commandService = (PersistableRunner) ((CommandBasedStatefulKnowledgeSession) ksession).getRunner(); return commandService.getSessionId(); } throw new IllegalArgumentException( "StatefulKnowledgeSession must be an a CommandBasedStatefulKnowledgeSession" ); }
public RequestContext createContext() { return PersistableRunner.this.createContext(); } }
private void rollbackTransaction( Exception t1, boolean transactionOwner ) { rollbackTransaction(t1, transactionOwner, true); }
public static boolean isSpringTransactionManager( Class<?> clazz ) { if ( SPRING_TM_CLASSNAME.equals( clazz.getName() ) ) { return true; } // Try to find from the ancestors return clazz.getSuperclass() != null && isSpringTransactionManager( clazz.getSuperclass() ); }
public TransactionInterceptor() { setNext(new PseudoClockRunner()); }
PersistableRunner service = new PersistableRunner( kbase, config, env ); Long sessionId = service.getSessionId(); ProcessInstance processInstance = service.execute( startProcessCommand ); logger.info( "Started process instance {}", processInstance.getId() ); WorkItem workItem = handler.getWorkItem(); assertNotNull( workItem ); service.dispose(); service = new PersistableRunner( sessionId, kbase, config, GetProcessInstanceCommand getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( processInstance.getId() ); processInstance = service.execute( getProcessInstanceCommand ); assertNotNull( processInstance ); service.dispose(); service = new PersistableRunner( sessionId, kbase, config, CompleteWorkItemCommand completeWorkItemCommand = new CompleteWorkItemCommand(); completeWorkItemCommand.setWorkItemId( workItem.getId() ); service.execute( completeWorkItemCommand );
public void beforeCompletion() { this.ts.beforeCompletion(); }
public void afterCompletion(int status) { switch ( status ) { case TransactionSynchronization.STATUS_COMMITTED : { this.ts.afterCompletion( TransactionManager.STATUS_COMMITTED ); break; } case TransactionSynchronization.STATUS_ROLLED_BACK : { this.ts.afterCompletion( TransactionManager.STATUS_ROLLEDBACK ); break; } default : { this.ts.afterCompletion( TransactionManager.STATUS_UNKNOWN ); } } }
PersistableRunner service = new PersistableRunner( ruleBase, config, env ); Long sessionId = service.getSessionId(); StartProcessCommand startProcessCommand = new StartProcessCommand(); startProcessCommand.setProcessId( "org.drools.test.TestProcess" ); RuleFlowProcessInstance processInstance = (RuleFlowProcessInstance) service.execute( startProcessCommand ); logger.info( "Started process instance {}", processInstance.getId() ); long processInstanceId = processInstance.getId(); WorkItem workItem = handler.getWorkItem(); assertNotNull( workItem ); service.dispose(); service = new PersistableRunner( sessionId, ruleBase, config, GetProcessInstanceCommand getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( processInstanceId ); processInstance = (RuleFlowProcessInstance) service.execute( getProcessInstanceCommand ); assertNotNull( processInstance ); getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( subProcessInstanceId ); RuleFlowProcessInstance subProcessInstance = (RuleFlowProcessInstance) service.execute( getProcessInstanceCommand ); assertNotNull( subProcessInstance ); service.dispose();
public void beforeCompletion() { this.ts.beforeCompletion(); }
public void afterCompletion(int status) { switch ( status ) { case TransactionSynchronization.STATUS_COMMITTED : { this.ts.afterCompletion( TransactionManager.STATUS_COMMITTED ); break; } case TransactionSynchronization.STATUS_ROLLED_BACK : { this.ts.afterCompletion( TransactionManager.STATUS_ROLLEDBACK ); break; } default : { this.ts.afterCompletion( TransactionManager.STATUS_UNKNOWN ); } } }
PersistableRunner service = new PersistableRunner( kbase, config, env ); Long sessionId = service.getSessionId(); StartProcessCommand startProcessCommand = new StartProcessCommand(); startProcessCommand.setProcessId( "org.drools.test.TestProcess" ); ProcessInstance processInstance = service.execute( startProcessCommand ); logger.info( "Started process instance {}", processInstance.getId() ); ut.commit(); WorkItem workItem = handler.getWorkItem(); assertNotNull( workItem ); service.dispose(); service = new PersistableRunner( sessionId, kbase, config, GetProcessInstanceCommand getProcessInstanceCommand = new GetProcessInstanceCommand(); getProcessInstanceCommand.setProcessInstanceId( processInstance.getId() ); processInstance = service.execute( getProcessInstanceCommand ); assertNotNull( processInstance ); ut.commit(); service.dispose(); service = new PersistableRunner( sessionId, kbase, config,