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
.
