RequestInfo table not being populated--AsynchronousWorkItemHandler Implementation Not Working
tujasiri Sep 18, 2015 11:22 AMProject:
I'm a little confused at this point. I'm attempting to implement an AsynchronusWorkItemHandler with a 2 node JBPM process. It seems that the first node is attempted but then everything halts with no execution.
EDIT:
After modifying the CustomWorkItemInfo.conf file the process is being recognized and the nodes are being evaluated by the AsyncWIH. However, the Command Class is not being invoked. I suspect it's because the RequestInfo table is empty, but I think the executorService.scheduleRequest() method is not being successfully executed.
Any ideas?
Process Invocation:
try{ AsyncWorkItemHandler asyncWIH = new AsyncWorkItemHandler(executorService); executorService.setThreadPoolSize(2); executorService.setInterval(30); executorService.init(); ksession.getWorkItemManager().registerWorkItemHandler("async", asyncWIH); } catch (Exception ex){ System.err.println("WorkitemHandler==>"+ex.toString() } ProcessInstance processInstance = ksession.startProcess("testOne");
AsyncWIH:
package com.sample; import java.util.List; import org.drools.core.process.instance.impl.WorkItemImpl; import org.kie.api.runtime.process.WorkItem; import org.kie.api.runtime.process.WorkItemHandler; import org.kie.api.runtime.process.WorkItemManager; import org.kie.internal.executor.api.CommandContext; import org.kie.internal.executor.api.ExecutorService; import org.kie.internal.executor.api.RequestInfo; import org.kie.internal.executor.api.STATUS; import org.kie.internal.runtime.StatefulKnowledgeSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Asynchronous work item handler that utilizes power of <code>ExecutorService</code>. * it expects following parameters to be present on work item for proper execution: * <ul> * <li>CommandClass - FQCN of the command to be executed - mandatory unless this handler is configured with default command class</li> * <li>Retries - number of retires for the command execution - optional</li> * </ul> * During execution it will set contextual data that will be available inside the command: * <ul> * <li>businessKey - generated from process instance id and work item id in following format: [processInstanceId]:[workItemId]</li> * <li>workItem - actual work item instance that is being executed (including all parameters)</li> * <li>processInstanceId - id of the process instance that triggered this work item execution</li> * </ul> * * In case work item shall be aborted handler will attempt to cancel active requests based on business key (process instance id and work item id) */ public class AsyncWorkItemHandler implements WorkItemHandler { private static final Logger logger = LoggerFactory.getLogger(AsyncWorkItemHandler.class); private ExecutorService executorService; private String commandClass; private StatefulKnowledgeSession ksession; public AsyncWorkItemHandler(ExecutorService executorService) { this.executorService = executorService; } public AsyncWorkItemHandler(ExecutorService executorService, StatefulKnowledgeSession ksession) { this.executorService = executorService; this.ksession = ksession; } public AsyncWorkItemHandler(ExecutorService executorService, String commandClass) { this(executorService); this.commandClass = commandClass; } public AsyncWorkItemHandler(Object executorService, String commandClass) { this((ExecutorService) executorService); this.commandClass = commandClass; } @Override public void executeWorkItem(final WorkItem workItem, WorkItemManager manager) { System.out.println("RUNNING in EXECUTOR!"); System.out.println("workItem==>"+workItem.toString()); System.out.println("workItem manager==>"+manager.toString()); if (executorService == null || !executorService.isActive()) { throw new IllegalStateException("Executor is not set or is not active"); } String businessKey = buildBusinessKey(workItem); logger.debug("Executing work item {} with built business key {}", workItem, businessKey); String cmdClass = (String) workItem.getParameter("CommandClass"); if (cmdClass == null) { //cmdClass = this.commandClass; } System.out.println(String.format("Command class for this execution is %s", cmdClass)); CommandContext ctxCMD = new CommandContext(); ctxCMD.setData("businessKey", businessKey); ctxCMD.setData("workItem", workItem); ctxCMD.setData("processInstanceId", getProcessInstanceId(workItem)); ctxCMD.setData("deploymentId", ((WorkItemImpl)workItem).getDeploymentId()); ctxCMD.setData("callbacks", AsyncWorkItemHandlerCmdCallback.class.getName()); if (workItem.getParameter("Retries") != null) { ctxCMD.setData("retries", Integer.parseInt(workItem.getParameter("Retries").toString())); } if (workItem.getParameter("Owner") != null) { ctxCMD.setData("owner", workItem.getParameter("Owner")); } System.out.println(String.format("Command context ==>%s", ctxCMD)); System.out.println("before sheduleRequest"); Long requestId; try { requestId = executorService.scheduleRequest(cmdClass, ctxCMD); System.out.println(String.format("after sheduleRequest...requestId==>%d",requestId)); } catch (Exception e) { // TODO Auto-generated catch block //e.printStackTrace(); System.out.println(String.format("scheduling exception==>%d",e.getMessage())); } /* }//end run }).start(); //end Thread Implementation */ } @Override public void abortWorkItem(WorkItem workItem, WorkItemManager manager) { String businessKey = buildBusinessKey(workItem); logger.info("Looking up for not cancelled and not done requests for business key {}", businessKey); List<RequestInfo> requests = executorService.getRequestsByBusinessKey(businessKey); if (requests != null) { for (RequestInfo request : requests) { if (request.getStatus() != STATUS.CANCELLED && request.getStatus() != STATUS.DONE && request.getStatus() != STATUS.ERROR) { logger.info("About to cancel request with id {} and business key {} request state {}", request.getId(), businessKey, request.getStatus()); executorService.cancelRequest(request.getId()); } } } } protected String buildBusinessKey(WorkItem workItem) { StringBuffer businessKey = new StringBuffer(); businessKey.append(getProcessInstanceId(workItem)); businessKey.append(":"); businessKey.append(workItem.getId()); return businessKey.toString(); } protected long getProcessInstanceId(WorkItem workItem) { return ((WorkItemImpl) workItem).getProcessInstanceId(); } } ///
Command Class:
package com.sample; import org.kie.api.runtime.process.WorkItem; import org.kie.internal.executor.api.Command; import org.kie.internal.executor.api.CommandContext; import org.kie.internal.executor.api.ExecutionResults; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class JobCommand implements Command{ private static final Logger logger = LoggerFactory.getLogger(JobCommand.class); public ExecutionResults execute(CommandContext ctx) { System.out.println(String.format("Command executed on executor with data %s", ctx.getData())); WorkItem workItem = (WorkItem) ctx.getData("workItem"); ExecutionResults executionResults = new ExecutionResults(); return executionResults; } }
Process:
CustomWorkItemInfo.conf:
[ "Log": new org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler(), "Service Task" : new com.sample.AsyncWorkItemHandler(com.ExecutorServiceFactory_SPRING.newExecutorService()), "async" : new org.jbpm.executor.impl.wih.AsyncWorkItemHandler(org.jbpm.executor.ExecutorServiceFactory.newExecutorService(null)) ]
WorkDefinitions.wid:
import org.drools.core.process.core.datatype.impl.type.ObjectDataType; import org.drools.core.process.core.datatype.impl.type.StringDataType; [ [ "name" : "Manual Task", "icon" : "icons/human_task.gif", "displayName" : "Manual Task" ], [ "name" : "Service Task", "CommandClass" : new StringDataType(), "parameters" : [ "Interface" : new StringDataType(), "Operation" : new StringDataType(), "ParameterType" : new StringDataType(), "Parameter" : new ObjectDataType() ], "results" : [ "Result" : new ObjectDataType() ], "displayName" : "Service Task", "icon" : "icons/action.gif", "customEditor" : "org.drools.eclipse.flow.common.editor.editpart.work.SampleCustomEditor" ], [ "name" : "Send Task", "parameters" : [ "Message" : new StringDataType() ], "displayName" : "Send Task", "icon" : "icons/arrowright.GIF", "customEditor" : "org.drools.eclipse.flow.common.editor.editpart.work.SampleCustomEditor" ], [ "name" : "Receive Task", "parameters" : [ "MessageId" : new StringDataType() ], "results" : [ "Message" : new ObjectDataType() ], "displayName" : "Receive Task", "icon" : "icons/arrowleft.GIF", "customEditor" : "org.drools.eclipse.flow.common.editor.editpart.work.SampleCustomEditor" ], [ "name" : "async", "parameters" : [ "CommandClass" : new StringDataType(), "Interface" : new StringDataType(), "Operation" : new StringDataType(), "ParameterType" : new StringDataType(), "Parameter" : new ObjectDataType() ], "results" : [ "Result" : new ObjectDataType(), ], "displayName" : "async", "icon" : "defaultservicenodeicon.png" ] ]
JobCommand.java:
Stacktrace:
2015-09-16 18:26:15,581 WARN [org.hibernate.ejb.internal.EntityManagerFactoryRegistry] (default task-7) HHH000436: Entity manager factory name (org.persistence.unit) is already registered. If entity manager will be clustered or passivated, specify a unique value for property 'hibernate.ejb.entitymanager_factory_name' 2015-09-16 18:26:15,592 INFO [org.springframework.transaction.jta.JtaTransactionManager] (default task-7) Using JTA UserTransaction: org.jboss.tm.usertx.client.ServerVMClientUserTransaction@4fb55009 2015-09-16 18:26:15,592 INFO [org.springframework.transaction.jta.JtaTransactionManager] (default task-7) Using JTA TransactionManager: com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate@28ab233e 2015-09-16 18:26:15,592 INFO [org.springframework.transaction.jta.JtaTransactionManager] (default task-7) Using JTA TransactionSynchronizationRegistry: com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple@ddba183 2015-09-16 18:26:15,597 INFO [stdout] (default task-7) User Transaction started==> 2015-09-16 18:26:15,597 INFO [stdout] (default task-7) JNDI User Transaction Name==>java:comp/UserTransaction 2015-09-16 18:26:15,597 INFO [stdout] (default task-7) 2015-09-16 18:26:15,597 INFO [stdout] (default task-7) Resource Config File==>null 2015-09-16 18:26:15,598 INFO [stdout] (default task-7) UT Status==> 0 2015-09-16 18:26:15,598 INFO [stdout] (default task-7) 2015-09-16 18:26:15,833 INFO [org.drools.compiler.kie.builder.impl.KieRepositoryImpl] (default task-7) KieModule was added:MemoryKieModule[ ReleaseId=org.default:artifact:1.0.0-SNAPSHOT] 2015-09-16 18:26:16,442 WARN [org.kie.scanner.MavenRepository] (default task-7) Unable to resolve artifact: org.default:artifact:1.0.0-SNAPSHOT: org.sonatype.aether.resolution.ArtifactResolutionException: Could not find artifact org.default:artifact:jar:1.0.0-SNAPSHOT in local (file:/var/root/.m2/repository/) at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:538) [aether-impl-1.13.1.jar:] at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:216) [aether-impl-1.13.1.jar:] at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:193) [aether-impl-1.13.1.jar:] at org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:286) [aether-impl-1.13.1.jar:] at org.kie.scanner.MavenRepository.resolveArtifact(MavenRepository.java:205) [kie-ci-6.1.0.Final.jar:6.1.0.Final] at org.kie.scanner.MavenRepository.resolveArtifact(MavenRepository.java:194) [kie-ci-6.1.0.Final.jar:6.1.0.Final] at org.kie.scanner.ArtifactResolver.resolveArtifact(ArtifactResolver.java:51) [kie-ci-6.1.0.Final.jar:6.1.0.Final] at org.kie.scanner.KieRepositoryScannerImpl.getArtifactVersion(KieRepositoryScannerImpl.java:108) [kie-ci-6.1.0.Final.jar:6.1.0.Final] at org.drools.compiler.kie.builder.impl.KieRepositoryImpl$KieModuleRepo.load(KieRepositoryImpl.java:281) [drools-compiler-6.1.0.Final.jar:6.1.0.Final] at org.drools.compiler.kie.builder.impl.KieRepositoryImpl$KieModuleRepo.load(KieRepositoryImpl.java:267) [drools-compiler-6.1.0.Final.jar:6.1.0.Final] at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.getKieModule(KieRepositoryImpl.java:90) [drools-compiler-6.1.0.Final.jar:6.1.0.Final] at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.getKieModule(KieRepositoryImpl.java:77) [drools-compiler-6.1.0.Final.jar:6.1.0.Final] at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:97) [drools-compiler-6.1.0.Final.jar:6.1.0.Final] at org.kie.internal.utils.KieHelper.build(KieHelper.java:49) [kie-internal-6.1.0.Final.jar:6.1.0.Final] at com.sample.ProcessTestSpring.testProcess(ProcessTestSpring.java:336) [classes:] at org.apache.jsp.runProcess_jsp._jspService(runProcess_jsp.java:86) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:69) [jastow-1.0.0.Final.jar:1.0.0.Final] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final] at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:366) [jastow-1.0.0.Final.jar:1.0.0.Final] at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326) [jastow-1.0.0.Final.jar:1.0.0.Final] at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259) [jastow-1.0.0.Final.jar:1.0.0.Final] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] at io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:52) [undertow-core-1.0.0.Final.jar:1.0.0.Final] at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.0.0.Final.jar:1.0.0.Final] at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final] at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final] at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final] at io.undertow.server.Connectors.executeRootHandler(Connectors.java:168) [undertow-core-1.0.0.Final.jar:1.0.0.Final] at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:687) [undertow-core-1.0.0.Final.jar:1.0.0.Final] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_60] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_60] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_60] Caused by: org.sonatype.aether.transfer.ArtifactNotFoundException: Could not find artifact org.default:artifact:jar:1.0.0-SNAPSHOT in local (file:/var/root/.m2/repository/) at org.sonatype.aether.connector.file.FileRepositoryWorker.run(FileRepositoryWorker.java:257) [aether-connector-file-1.13.1.jar:] at org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:60) [aether-util-1.13.1.jar:] ... 3 more 2015-09-16 18:26:16,457 INFO [stdout] (default task-7) UT Status b4 kession==> 0 2015-09-16 18:26:16,457 INFO [stdout] (default task-7) 2015-09-16 18:26:16,471 INFO [stdout] (default task-7) Hibernate: insert into SessionInfo (lastModificationDate, rulesByteArray, startDate, OPTLOCK) values (?, ?, ?, ?) 2015-09-16 18:26:16,480 INFO [stdout] (default task-7) HERE@@@@!@@ AFTER ksession creation... 2015-09-16 18:26:16,481 INFO [stdout] (default task-7) HERE@@@@!@@ 2015-09-16 18:26:16,482 INFO [stdout] (default task-7) Hibernate: select requestinf0_.id as id1_28_, requestinf0_.commandName as commandN2_28_, requestinf0_.deploymentId as deployme3_28_, requestinf0_.executions as executio4_28_, requestinf0_.businessKey as business5_28_, requestinf0_.message as message6_28_, requestinf0_.owner as owner7_28_, requestinf0_.requestData as requestD8_28_, requestinf0_.responseData as response9_28_, requestinf0_.retries as retries10_28_, requestinf0_.status as status11_28_, requestinf0_.timestamp as timesta12_28_ from RequestInfo requestinf0_ 2015-09-16 18:26:16,484 INFO [stdout] (default task-7) Hibernate: select errorinfo0_.id as id1_9_, errorinfo0_.message as message2_9_, errorinfo0_.REQUEST_ID as REQUEST_5_9_, errorinfo0_.stacktrace as stacktra3_9_, errorinfo0_.timestamp as timestam4_9_ from ErrorInfo errorinfo0_ 2015-09-16 18:26:16,489 INFO [stdout] (default task-7) HERE@@@@!@@ AFTER INIT 2015-09-16 18:26:16,489 INFO [stdout] (default task-7) before process instance start 2015-09-16 18:26:16,490 INFO [stdout] (default task-7) Session ID ==>342 2015-09-16 18:26:16,493 INFO [stdout] (default task-7) Hibernate: insert into ProcessInstanceInfo (lastModificationDate, lastReadDate, processId, processInstanceByteArray, startDate, state, OPTLOCK) values (?, ?, ?, ?, ?, ?, ?) 2015-09-16 18:26:16,498 INFO [stdout] (default task-7) Hibernate: insert into ProcessInstanceLog (duration, end_date, externalId, user_identity, outcome, parentProcessInstanceId, processId, processInstanceId, processName, processVersion, start_date, status) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 2015-09-16 18:26:16,500 INFO [stdout] (default task-7) Hibernate: insert into ProcessInstanceLog (duration, end_date, externalId, user_identity, outcome, parentProcessInstanceId, processId, processInstanceId, processName, processVersion, start_date, status) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 2015-09-16 18:26:16,505 INFO [stdout] (default task-7) Hibernate: insert into NodeInstanceLog (connection, log_date, externalId, nodeId, nodeInstanceId, nodeName, nodeType, processId, processInstanceId, type, workItemId) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 2015-09-16 18:26:16,507 INFO [stdout] (default task-7) Hibernate: insert into NodeInstanceLog (connection, log_date, externalId, nodeId, nodeInstanceId, nodeName, nodeType, processId, processInstanceId, type, workItemId) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 2015-09-16 18:26:16,509 INFO [stdout] (default task-7) Hibernate: insert into NodeInstanceLog (connection, log_date, externalId, nodeId, nodeInstanceId, nodeName, nodeType, processId, processInstanceId, type, workItemId) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 2015-09-16 18:26:16,510 INFO [stdout] (default task-7) Hibernate: insert into NodeInstanceLog (connection, log_date, externalId, nodeId, nodeInstanceId, nodeName, nodeType, processId, processInstanceId, type, workItemId) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 2015-09-16 18:26:16,514 INFO [stdout] (default task-7) Hibernate: insert into WorkItemInfo (creationDate, name, processInstanceId, state, OPTLOCK, workItemByteArray) values (?, ?, ?, ?, ?, ?) 2015-09-16 18:26:16,520 INFO [stdout] (default task-7) Hibernate: insert into RequestInfo (commandName, deploymentId, executions, businessKey, message, owner, requestData, responseData, retries, status, timestamp) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 2015-09-16 18:26:16,523 INFO [stdout] (default task-7) Hibernate: insert into NodeInstanceLog (connection, log_date, externalId, nodeId, nodeInstanceId, nodeName, nodeType, processId, processInstanceId, type, workItemId) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 2015-09-16 18:26:16,525 INFO [stdout] (default task-7) Hibernate: insert into NodeInstanceLog (connection, log_date, externalId, nodeId, nodeInstanceId, nodeName, nodeType, processId, processInstanceId, type, workItemId) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 2015-09-16 18:26:16,529 INFO [stdout] (default task-7) process instance started 2015-09-16 18:26:16,530 INFO [stdout] (default task-7) reached the end... 2015-09-16 18:26:16,535 ERROR [org.jboss.as.txn] (default task-7) JBAS010152: APPLICATION ERROR: transaction still active in request with status 0 2015-09-16 18:26:17,483 ERROR [stderr] (Thread-198) Exception in thread "Thread-198" java.lang.RuntimeException: Could not create the log file. Please make sure that directory that the log file should be placed in does exist. 2015-09-16 18:26:17,484 ERROR [stderr] (Thread-198) at org.drools.core.audit.WorkingMemoryFileLogger.initializeLog(WorkingMemoryFileLogger.java:164) 2015-09-16 18:26:17,484 ERROR [stderr] (Thread-198) at org.drools.core.audit.WorkingMemoryFileLogger.writeToDisk(WorkingMemoryFileLogger.java:120) 2015-09-16 18:26:17,484 ERROR [stderr] (Thread-198) at org.drools.core.audit.ThreadedWorkingMemoryFileLogger.writeToDisk(ThreadedWorkingMemoryFileLogger.java:54) 2015-09-16 18:26:17,484 ERROR [stderr] (Thread-198) at org.drools.core.audit.ThreadedWorkingMemoryFileLogger$Writer.run(ThreadedWorkingMemoryFileLogger.java:69) 2015-09-16 18:26:17,484 ERROR [stderr] (Thread-198) at java.lang.Thread.run(Thread.java:745) 2015-09-16 18:29:52,423 WARN [com.arjuna.ats.arjuna] (Transaction Reaper) ARJUNA012117: TransactionReaper::check timeout for TX 0:ffff9c7c1679:3f150d68:55f9f406:55 in state RUN 2015-09-16 18:29:52,438 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012095: Abort of action id 0:ffff9c7c1679:3f150d68:55f9f406:55 invoked while multiple threads active within it. 2015-09-16 18:29:52,439 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012108: CheckedAction::check - atomic action 0:ffff9c7c1679:3f150d68:55f9f406:55 aborting with 1 threads active! 2015-09-16 18:29:52,439 WARN [org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorTrackingImpl] (Transaction Reaper Worker 0) HHH000451: Transaction afterCompletion called by a background thread; delaying afterCompletion processing until the original thread can handle it. [status=4] 2015
.