0 Replies Latest reply on Sep 18, 2015 11:22 AM by tujasiri

    RequestInfo table not being populated--AsynchronousWorkItemHandler Implementation Not Working

    tujasiri

      Project:


      BriefReqPersistSPRINGx.war


      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:

       

      Screen Shot 2015-09-14 at 7.51.24 PM.png

       

      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
      
      
      

       

      .