8 Replies Latest reply on Mar 17, 2015 6:38 AM by nicdriver1

    Storing Process Events in a JMS queue for further processing

    nicdriver1

      Does anyone know if it is possible to change default audit logger factory type to JMS? Currently starting process in kie workbench audit log events are persisted and I would like to process these in JMS queue


      I have a business process created and deployed on kie workbench and a client app that start this up using Remote rest API, but from client side of course editing listeners of a kieSession is not allowed.

      It seems also that this can only be accomplished programmatically changing the kieSession (Chapter 8. Persistence and Transactions , 8.2.3) of a business process.


      Could this behaviour changed using external properties or configuration settings?

       

      thanks

        • 1. Re: Storing Process Events in a JMS queue for further processing
          swiderski.maciej

          if you're running workbench you can change this by setting system property called -Djbpm.audit.jms.enabled=true then you can use jbpm.audit.jms.properties to configure what queue shall be used for that. It should work out of the box to use queue to asynchronously persist events in db but changing the queue should make it available for whatever consumer you need.


          HTH

          • 2. Re: Storing Process Events in a JMS queue for further processing
            nicdriver1

            Maciej thanks for reply


            Now I can't deploy a business process after configuring jbpm.audit.jms.properties and jbpm.audit.jms.enabled system properties. I will explain step by step what I did:


            1)In the standalone-full.xml file I added resource adapter for activemq because my goal is to post audit log messages in an external message broker, in my case is at tcp://localhost:61616


            <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0">

                        <resource-adapters>

                            <resource-adapter>

                                <archive>

                                    activemq-ra.rar

                                </archive>

                                <transaction-support>XATransaction</transaction-support>

                                <config-property name="ServerUrl">

                                    tcp://localhost:61616

                                </config-property>

                                <connection-definitions>

                                    <connection-definition class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory" jndi-name="java:/activemq/ConnectionFactory" enabled="true" use-java-context="true" pool-name="ActiveMQConnectionFactoryPool" use-ccm="true">

                                        <xa-pool>

                                            <min-pool-size>1</min-pool-size>

                                            <max-pool-size>20</max-pool-size>

                                        </xa-pool>

                                    </connection-definition>

                                </connection-definitions>

                                <admin-objects>

                                    <admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/activemq/queue_out" enabled="true" use-java-context="true" pool-name="ActiveMQQueue.queue_out">

                                        <config-property name="PhysicalName">

                                            queue.queue_out

                                        </config-property>

                                    </admin-object>

                                    <admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/activemq/queue_in" enabled="true" use-java-context="true" pool-name="ActiveMQQueue.queue_in">

                                        <config-property name="PhysicalName">

                                            queue.queue_in

                                        </config-property>

                                    </admin-object>

                                </admin-objects>

                            </resource-adapter>

                        </resource-adapters>

                    </subsystem>

             

             

            2)Than I have added jbpm.audit.jms.enabled=true system property in the same file above.


            3)I've changed jbpm.audit.jms.properties with these properties that relates with jndi resources of activemq:


            jbpm.audit.jms.connection.factory.jndi=java:/activemq/ConnectionFactory

            jbpm.audit.jms.queue.jndi=java:/activemq/queue_out

             

            4) startup jboss and kie workbench but I get build failed when deploying an evaluation business process:

             

            10:24:46,936 ERROR [org.jbpm.console.ng.bd.backend.server.DeploymentManagerEntry

            PointImpl] (http-127.0.0.1-127.0.0.1-8080-5) Deployment of unit org.jbpm:HR:1.0

            failed: java.lang.NullPointerException

             

            When I get back previous jbpm.audit.jms.properties file it works fine so the problem is the values I have set java:/activemq/ConnectionFactory, java:/activemq/queue_out

             

            Does anyone knows what can be wrong with the steps posted below?

             

            Thanks in advance!

             

             


            • 3. Re: Storing Process Events in a JMS queue for further processing
              nicdriver1

              I forgot to say that I am using jboss AS 7.1.1 and activemq 5.6. Could it be that integration of activemq and jboss is support from jboss 7.2 or EAP 6.1.0?

              • 4. Re: Storing Process Events in a JMS queue for further processing
                swiderski.maciej

                do you have full stack trace?

                • 5. Re: Storing Process Events in a JMS queue for further processing
                  nicdriver1

                  yes. I'm going to put everything I have setup on another attempt I made today on EAP 6.1 and kie workbench for eap 6.1, because I think I am close to victory.

                   

                  1)I have setup resource adapter for ActiveMQ following this tutorial http://rastkososkic.blogspot.nl/2013/12/deploying-activemq-590-resource-adapter.html and I can see from server.log stacktrace that connection factory and admin object is registered

                   

                  17:08:47,032 INFO  [org.jboss.as.connector.deployment] (MSC service thread 1-14) JBAS010406: Registered connection factory java:/ConnectionFactory

                  17:08:47,036 INFO  [org.jboss.as.connector.deployment] (MSC service thread 1-14) JBAS010405: Registered admin object at java:/queue/test-queue

                  17:08:47,039 INFO  [org.jboss.as.jacorb] (MSC service thread 1-16) JBAS016328: CORBA Naming Service started

                  17:08:47,041 INFO  [org.jboss.as.connector.deployers.RaXmlDeployer] (MSC service thread 1-14) IJ020002: Deployed: file:/C:/jboss-eap-6.1/modules/system/layers/base/org/apache/activemq/main/./

                  17:08:47,043 INFO  [org.jboss.as.connector.deployment] (MSC service thread 1-6) JBAS010401: Bound JCA ConnectionFactory [java:/ConnectionFactory]

                  17:08:47,043 INFO  [org.jboss.as.connector.deployment] (MSC service thread 1-14) JBAS010401: Bound JCA AdminObject [java:/queue/test-queue]

                  17:08:47,082 INFO  [org.hornetq.core.server] (MSC service thread 1-12) HQ221034: Waiting to obtain live lock

                  17:08:47,083 INFO  [org.hornetq.core.server] (MSC service thread 1-12) HQ221035: Live Server Obtained live lock

                  17:08:47,254 INFO  [org.hornetq.core.server] (MSC service thread 1-12) HQ221020: Started Netty Acceptor version 3.6.2.Final-redhat-1-c0d783c 127.0.0.1:5455 for CORE protocol

                  17:08:47,255 INFO  [org.hornetq.core.server] (MSC service thread 1-12) HQ221020: Started Netty Acceptor version 3.6.2.Final-redhat-1-c0d783c 127.0.0.1:5445 for CORE protocol

                  17:08:47,257 INFO  [org.hornetq.core.server] (MSC service thread 1-12) HQ221007: Server is now live

                  17:08:47,257 INFO  [org.hornetq.core.server] (MSC service thread 1-12) HQ221001: HornetQ Server version 2.3.1.Final (Wild Hornet, 123) [ae9e5531-cbc7-11e4-a13d-c56d6fcdcf17]

                  17:08:47,273 INFO  [org.jboss.as.connector.deployment] (MSC service thread 1-14) JBAS010410: Unbound JCA ConnectionFactory [java:/ConnectionFactory]

                  17:08:47,276 INFO  [org.jboss.as.messaging] (ServerService Thread Pool -- 59) JBAS011605: Unbound messaging object to jndi name java:/ConnectionFactory

                  17:08:47,277 INFO  [org.jboss.as.messaging] (ServerService Thread Pool -- 59) JBAS011601: Bound messaging object to jndi name java:/ConnectionFactory

                  17:08:47,279 INFO  [org.jboss.as.messaging] (ServerService Thread Pool -- 58) JBAS011601: Bound messaging object to jndi name java:jboss/exported/jms/RemoteConnectionFactory

                   

                  ...but Unbound messaging object to jndi name java:/ConnectionFactory doesn't look good (or does it?)



                  2)I changed standaole-full.xml in this way:


                  <?xml version='1.0' encoding='UTF-8'?>

                   

                   

                  <server xmlns="urn:jboss:domain:1.2">

                   

                   

                      <extensions>

                          <extension module="org.jboss.as.clustering.infinispan"/>

                          <extension module="org.jboss.as.cmp"/>

                          <extension module="org.jboss.as.configadmin"/>

                          <extension module="org.jboss.as.connector"/>

                          <extension module="org.jboss.as.deployment-scanner"/>

                          <extension module="org.jboss.as.ee"/>

                          <extension module="org.jboss.as.ejb3"/>

                          <extension module="org.jboss.as.jacorb"/>

                          <extension module="org.jboss.as.jaxr"/>

                          <extension module="org.jboss.as.jaxrs"/>

                          <extension module="org.jboss.as.jdr"/>

                          <extension module="org.jboss.as.jmx"/>

                          <extension module="org.jboss.as.jpa"/>

                          <extension module="org.jboss.as.jsr77"/>

                          <extension module="org.jboss.as.logging"/>

                          <extension module="org.jboss.as.mail"/>

                          <extension module="org.jboss.as.messaging"/>

                          <extension module="org.jboss.as.naming"/>

                          <extension module="org.jboss.as.osgi"/>

                          <extension module="org.jboss.as.pojo"/>

                          <extension module="org.jboss.as.remoting"/>

                          <extension module="org.jboss.as.sar"/>

                          <extension module="org.jboss.as.security"/>

                          <extension module="org.jboss.as.threads"/>

                          <extension module="org.jboss.as.transactions"/>

                          <extension module="org.jboss.as.web"/>

                          <extension module="org.jboss.as.webservices"/>

                          <extension module="org.jboss.as.weld"/>

                      </extensions>

                   

                   

                      <system-properties>

                          <property name="jbpm.audit.jms.enabled" value="true"/>

                      </system-properties>

                   

                   

                      <management>

                          <security-realms>

                              <security-realm name="ManagementRealm">

                                  <authentication>

                                      <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>

                                  </authentication>

                              </security-realm>

                              <security-realm name="ApplicationRealm">

                                  <authentication>

                                      <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>

                                  </authentication>

                              </security-realm>

                          </security-realms>

                          <management-interfaces>

                              <native-interface security-realm="ManagementRealm">

                                  <socket-binding native="management-native"/>

                              </native-interface>

                              <http-interface security-realm="ManagementRealm">

                                  <socket-binding http="management-http"/>

                              </http-interface>

                          </management-interfaces>

                      </management>

                   

                   

                      <profile>

                          <subsystem xmlns="urn:jboss:domain:logging:1.1">

                              <console-handler name="CONSOLE">

                                  <level name="INFO"/>

                                  <formatter>

                                      <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>

                                  </formatter>

                              </console-handler>

                              <periodic-rotating-file-handler name="FILE">

                                  <formatter>

                                      <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>

                                  </formatter>

                                  <file relative-to="jboss.server.log.dir" path="server.log"/>

                                  <suffix value=".yyyy-MM-dd"/>

                                  <append value="true"/>

                              </periodic-rotating-file-handler>

                              <logger category="com.arjuna">

                                  <level name="WARN"/>

                              </logger>

                              <logger category="org.apache.tomcat.util.modeler">

                                  <level name="WARN"/>

                              </logger>

                              <logger category="sun.rmi">

                                  <level name="WARN"/>

                              </logger>

                              <logger category="jacorb">

                                  <level name="WARN"/>

                              </logger>

                              <logger category="jacorb.config">

                                  <level name="ERROR"/>

                              </logger>

                              <root-logger>

                                  <level name="INFO"/>

                                  <handlers>

                                      <handler name="CONSOLE"/>

                                      <handler name="FILE"/>

                                  </handlers>

                              </root-logger>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:cmp:1.0"/>

                          <subsystem xmlns="urn:jboss:domain:configadmin:1.0"/>

                          <subsystem xmlns="urn:jboss:domain:datasources:1.0">

                              <datasources>

                                  <datasource jta="true" jndi-name="java:/mySqlDS" pool-name="mySqlPoolDS" enabled="true" use-java-context="true" use-ccm="true">

                                      <connection-url>jdbc:mysql://localhost:3306/jbpm</connection-url>

                                      <driver>mysql</driver>

                                      <security>

                                          <user-name>root</user-name>

                                          <password>root</password>

                                      </security>

                                      <statement>

                                          <prepared-statement-cache-size>100</prepared-statement-cache-size>

                                          <share-prepared-statements>true</share-prepared-statements>

                                      </statement>

                                  </datasource>

                                  <drivers>

                                      <driver name="mysql" module="com.mysql">

                                          <driver-class>com.mysql.jdbc.Driver</driver-class>

                                          <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>

                                      </driver>

                                  </drivers>

                              </datasources>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">

                              <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:ee:1.0"/>

                          <subsystem xmlns="urn:jboss:domain:ejb3:1.2">

                              <session-bean>

                                  <stateless>

                                      <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>

                                  </stateless>

                                  <stateful default-access-timeout="5000" cache-ref="simple"/>

                                  <singleton default-access-timeout="5000"/>

                              </session-bean>

                              <mdb>

                                  <resource-adapter-ref resource-adapter-name="hornetq-ra"/>

                                  <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>

                              </mdb>

                              <pools>

                                  <bean-instance-pools>

                                      <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                                      <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                                  </bean-instance-pools>

                              </pools>

                              <caches>

                                  <cache name="simple" aliases="NoPassivationCache"/>

                                  <cache name="passivating" passivation-store-ref="file" aliases="SimpleStatefulCache"/>

                              </caches>

                              <passivation-stores>

                                  <file-passivation-store name="file"/>

                              </passivation-stores>

                              <async thread-pool-name="default"/>

                              <timer-service thread-pool-name="default">

                                  <data-store path="timer-service-data" relative-to="jboss.server.data.dir"/>

                              </timer-service>

                              <remote connector-ref="remoting-connector" thread-pool-name="default"/>

                              <thread-pools>

                                  <thread-pool name="default">

                                      <max-threads count="10"/>

                                      <keepalive-time time="100" unit="milliseconds"/>

                                  </thread-pool>

                              </thread-pools>

                              <iiop enable-by-default="false" use-qualified-name="false"/>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:infinispan:1.2" default-cache-container="hibernate">

                              <cache-container name="hibernate" default-cache="local-query">

                                  <local-cache name="entity">

                                      <transaction mode="NON_XA"/>

                                      <eviction strategy="LRU" max-entries="10000"/>

                                      <expiration max-idle="100000"/>

                                  </local-cache>

                                  <local-cache name="local-query">

                                      <transaction mode="NONE"/>

                                      <eviction strategy="LRU" max-entries="10000"/>

                                      <expiration max-idle="100000"/>

                                  </local-cache>

                                  <local-cache name="timestamps">

                                      <transaction mode="NONE"/>

                                      <eviction strategy="NONE"/>

                                  </local-cache>

                              </cache-container>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:jacorb:1.1">

                              <orb>

                                  <initializers security="on" transactions="spec"/>

                              </orb>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:jaxr:1.1">

                              <connection-factory jndi-name="java:jboss/jaxr/ConnectionFactory"/>

                              <properties/>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>

                          <subsystem xmlns="urn:jboss:domain:jca:1.1">

                              <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>

                              <bean-validation enabled="true"/>

                              <default-workmanager>

                                  <short-running-threads>

                                      <core-threads count="50"/>

                                      <queue-length count="50"/>

                                      <max-threads count="50"/>

                                      <keepalive-time time="10" unit="seconds"/>

                                  </short-running-threads>

                                  <long-running-threads>

                                      <core-threads count="50"/>

                                      <queue-length count="50"/>

                                      <max-threads count="50"/>

                                      <keepalive-time time="10" unit="seconds"/>

                                  </long-running-threads>

                              </default-workmanager>

                              <cached-connection-manager/>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:jdr:1.0"/>

                          <subsystem xmlns="urn:jboss:domain:jmx:1.1">

                              <show-model value="true"/>

                              <remoting-connector/>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:jpa:1.0">

                              <jpa default-datasource=""/>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:jsr77:1.0"/>

                          <subsystem xmlns="urn:jboss:domain:mail:1.0">

                              <mail-session jndi-name="java:jboss/mail/Default">

                                  <smtp-server outbound-socket-binding-ref="mail-smtp"/>

                              </mail-session>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:messaging:1.1">

                              <hornetq-server>

                                  <persistence-enabled>true</persistence-enabled>

                                  <journal-file-size>102400</journal-file-size>

                                  <journal-min-files>2</journal-min-files>

                   

                   

                                  <connectors>

                                      <netty-connector name="netty" socket-binding="messaging"/>

                                      <netty-connector name="netty-throughput" socket-binding="messaging-throughput">

                                          <param key="batch-delay" value="50"/>

                                      </netty-connector>

                                      <in-vm-connector name="in-vm" server-id="0"/>

                                  </connectors>

                   

                   

                                  <acceptors>

                                      <netty-acceptor name="netty" socket-binding="messaging"/>

                                      <netty-acceptor name="netty-throughput" socket-binding="messaging-throughput">

                                          <param key="batch-delay" value="50"/>

                                          <param key="direct-deliver" value="false"/>

                                      </netty-acceptor>

                                      <in-vm-acceptor name="in-vm" server-id="0"/>

                                  </acceptors>

                   

                   

                                  <security-settings>

                                      <security-setting match="#">

                                          <permission type="send" roles="guest"/>

                                          <permission type="consume" roles="guest"/>

                                          <permission type="createNonDurableQueue" roles="guest"/>

                                          <permission type="deleteNonDurableQueue" roles="guest"/>

                                      </security-setting>

                                  </security-settings>

                   

                   

                                  <address-settings>

                                      <address-setting match="#">

                                          <dead-letter-address>jms.queue.DLQ</dead-letter-address>

                                          <expiry-address>jms.queue.ExpiryQueue</expiry-address>

                                          <redelivery-delay>0</redelivery-delay>

                                          <max-size-bytes>10485760</max-size-bytes>

                                          <address-full-policy>BLOCK</address-full-policy>

                                          <message-counter-history-day-limit>10</message-counter-history-day-limit>

                                      </address-setting>

                                  </address-settings>

                   

                   

                                  <jms-connection-factories>

                                      <connection-factory name="InVmConnectionFactory">

                                          <connectors>

                                              <connector-ref connector-name="in-vm"/>

                                          </connectors>

                                          <entries>

                                              <entry name="java:/ConnectionFactory"/>

                                          </entries>

                                      </connection-factory>

                                      <connection-factory name="RemoteConnectionFactory">

                                          <connectors>

                                              <connector-ref connector-name="netty"/>

                                          </connectors>

                                          <entries>

                                              <entry name="RemoteConnectionFactory"/>

                                              <entry name="java:jboss/exported/jms/RemoteConnectionFactory"/>

                                          </entries>

                                      </connection-factory>

                                      <pooled-connection-factory name="hornetq-ra">

                                          <transaction mode="xa"/>

                                          <connectors>

                                              <connector-ref connector-name="in-vm"/>

                                          </connectors>

                                          <entries>

                                              <entry name="java:/JmsXA"/>

                                          </entries>

                                      </pooled-connection-factory>

                                  </jms-connection-factories>

                   

                   

                                  <jms-destinations>

                                      <jms-queue name="testQueue">

                                          <entry name="queue/test"/>

                                          <entry name="java:jboss/exported/jms/queue/test"/>

                                      </jms-queue>

                                      <jms-topic name="testTopic">

                                          <entry name="topic/test"/>

                                          <entry name="java:jboss/exported/jms/topic/test"/>

                                      </jms-topic>

                                  </jms-destinations>

                              </hornetq-server>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:naming:1.1"/>

                          <subsystem xmlns="urn:jboss:domain:osgi:1.2" activation="lazy">

                              <properties>

                                  <property name="org.osgi.framework.startlevel.beginning">

                                      1

                                  </property>

                              </properties>

                              <capabilities>

                                  <capability name="javax.servlet.api:v25"/>

                                  <capability name="javax.transaction.api"/>

                                  <capability name="org.apache.felix.log" startlevel="1"/>

                                  <capability name="org.jboss.osgi.logging" startlevel="1"/>

                                  <capability name="org.apache.felix.configadmin" startlevel="1"/>

                                  <capability name="org.jboss.as.osgi.configadmin" startlevel="1"/>

                              </capabilities>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:pojo:1.0"/>

                          <subsystem xmlns="urn:jboss:domain:remoting:1.1">

                              <connector name="remoting-connector" socket-binding="remoting" security-realm="ApplicationRealm"/>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0">

                              <resource-adapters>

                                  <resource-adapter>

                                      <archive>

                                          activemq-ra.rar

                                      </archive>

                                      <transaction-support>XATransaction</transaction-support>

                                      <config-property name="ServerUrl">

                                          tcp://localhost:61616

                                      </config-property>

                                      <connection-definitions>

                                          <connection-definition class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory" jndi-name="java:/activemq/ConnectionFactory" enabled="true" use-java-context="true" pool-name="ActiveMQConnectionFactoryPool" use-ccm="true">

                                              <xa-pool>

                                                  <min-pool-size>1</min-pool-size>

                                                  <max-pool-size>20</max-pool-size>

                                              </xa-pool>

                                          </connection-definition>

                                      </connection-definitions>

                                      <admin-objects>

                                          <admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/activemq/queue_out" enabled="true" use-java-context="true" pool-name="ActiveMQQueue.queue_out">

                                              <config-property name="PhysicalName">

                                                  queue.queue_out

                                              </config-property>

                                          </admin-object>

                                          <admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/activemq/queue_in" enabled="true" use-java-context="true" pool-name="ActiveMQQueue.queue_in">

                                              <config-property name="PhysicalName">

                                                  queue.queue_in

                                              </config-property>

                                          </admin-object>

                                      </admin-objects>

                                  </resource-adapter>

                              </resource-adapters>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:sar:1.0"/>

                          <subsystem xmlns="urn:jboss:domain:security:1.1">

                              <security-domains>

                                  <security-domain name="other" cache-type="default">

                                      <authentication>

                                          <login-module code="Remoting" flag="optional">

                                              <module-option name="password-stacking" value="useFirstPass"/>

                                          </login-module>

                                          <login-module code="RealmUsersRoles" flag="required">

                                              <module-option name="usersProperties" value="${jboss.server.config.dir}/application-users.properties"/>

                                              <module-option name="rolesProperties" value="${jboss.server.config.dir}/application-roles.properties"/>

                                              <module-option name="realm" value="ApplicationRealm"/>

                                              <module-option name="password-stacking" value="useFirstPass"/>

                                          </login-module>

                                      </authentication>

                                  </security-domain>

                                  <security-domain name="jboss-web-policy" cache-type="default">

                                      <authorization>

                                          <policy-module code="Delegating" flag="required"/>

                                      </authorization>

                                  </security-domain>

                                  <security-domain name="jboss-ejb-policy" cache-type="default">

                                      <authorization>

                                          <policy-module code="Delegating" flag="required"/>

                                      </authorization>

                                  </security-domain>

                              </security-domains>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:threads:1.1"/>

                          <subsystem xmlns="urn:jboss:domain:transactions:1.1">

                              <core-environment>

                                  <process-id>

                                      <uuid/>

                                  </process-id>

                              </core-environment>

                              <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>

                              <coordinator-environment default-timeout="300"/>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">

                              <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>

                              <virtual-server name="default-host" enable-welcome-root="true">

                                  <alias name="localhost"/>

                                  <alias name="example.com"/>

                              </virtual-server>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:webservices:1.1">

                              <modify-wsdl-address>true</modify-wsdl-address>

                              <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>

                              <endpoint-config name="Standard-Endpoint-Config"/>

                              <endpoint-config name="Recording-Endpoint-Config">

                                  <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">

                                      <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>

                                  </pre-handler-chain>

                              </endpoint-config>

                          </subsystem>

                          <subsystem xmlns="urn:jboss:domain:weld:1.0"/>

                      </profile>

                   

                   

                      <interfaces>

                          <interface name="management">

                              <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>

                          </interface>

                          <interface name="public">

                              <inet-address value="${jboss.bind.address:127.0.0.1}"/>

                          </interface>

                          <interface name="unsecure">

                              <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>

                          </interface>

                      </interfaces>

                   

                   

                      <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">

                          <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>

                          <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>

                          <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>

                          <socket-binding name="ajp" port="8009"/>

                          <socket-binding name="http" port="8080"/>

                          <socket-binding name="https" port="8443"/>

                          <socket-binding name="jacorb" interface="unsecure" port="3528"/>

                          <socket-binding name="jacorb-ssl" interface="unsecure" port="3529"/>

                          <socket-binding name="messaging" port="5445"/>

                          <socket-binding name="messaging-throughput" port="5455"/>

                          <socket-binding name="osgi-http" interface="management" port="8090"/>

                          <socket-binding name="remoting" port="4447"/>

                          <socket-binding name="txn-recovery-environment" port="4712"/>

                          <socket-binding name="txn-status-manager" port="4713"/>

                          <outbound-socket-binding name="mail-smtp">

                              <remote-destination host="localhost" port="25"/>

                          </outbound-socket-binding>

                      </socket-binding-group>

                   

                   

                      <deployments>

                          <deployment name="kie-wb.war" runtime-name="kie-wb.war">

                              <content sha1="a85e20bfd3abdb164411740c962b8457098b1e01"/>

                          </deployment>

                      </deployments>

                  </server>

                   

                   

                  3) I changed the jbpm.audit.jms.properties file of kie workbench in this way,including references to jndi of activemq:

                   

                  jbpm.audit.jms.connection.factory.jndi=java:/activemq/ConnectionFactory

                  jbpm.audit.jms.queue.jndi=java:/activemq/queue_out

                   

                  4) When I startup kie workbench I can create/deploy and when starting up a process I get a readable exception:

                   

                  Could not commit session: java.lang.RuntimeException: Error when sending JMS message with working memory event

                          at org.jbpm.process.audit.jms.AsyncAuditLogProducer.sendMessage(AsyncAud

                  itLogProducer.java:151) [jbpm-audit-6.1.0.Final.jar:6.1.0.Final]

                          at org.jbpm.process.audit.jms.AsyncAuditLogProducer.afterVariableChanged

                  (AsyncAuditLogProducer.java:94) [jbpm-audit-6.1.0.Final.jar:6.1.0.Final]

                          at org.drools.core.event.ProcessEventSupport.fireAfterVariableChanged(Pr

                  ocessEventSupport.java:154) [drools-core-6.1.0.Final.jar:6.1.0.Final]

                          at org.jbpm.process.instance.context.variable.VariableScopeInstance.setV

                  ariable(VariableScopeInstance.java:79) [jbpm-flow-6.1.0.Final.jar:6.1.0.Final]

                          at org.jbpm.process.instance.AbstractProcessInstanceFactory.createProces

                  sInstance(AbstractProcessInstanceFactory.java:48) [jbpm-flow-6.1.0.Final.jar:6.1

                  .0.Final]

                          at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRunt

                  imeImpl.java:239) [jbpm-flow-6.1.0.Final.jar:6.1.0.Final]

                          at org.jbpm.process.instance.ProcessRuntimeImpl.createProcessInstance(Pr

                  ocessRuntimeImpl.java:221) [jbpm-flow-6.1.0.Final.jar:6.1.0.Final]

                          at org.jbpm.process.instance.ProcessRuntimeImpl.createProcessInstance(Pr

                  ocessRuntimeImpl.java:176) [jbpm-flow-6.1.0.Final.jar:6.1.0.Final]

                          at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRunt

                  imeImpl.java:166) [jbpm-flow-6.1.0.Final.jar:6.1.0.Final]

                          at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRunt

                  imeImpl.java:161) [jbpm-flow-6.1.0.Final.jar:6.1.0.Final]

                          at org.drools.core.impl.StatefulKnowledgeSessionImpl.startProcess(Statef

                  ulKnowledgeSessionImpl.java:1850) [drools-core-6.1.0.Final.jar:6.1.0.Final]

                          at org.drools.core.command.runtime.process.StartProcessCommand.execute(S

                  tartProcessCommand.java:121) [drools-core-6.1.0.Final.jar:6.1.0.Final]

                          at org.drools.core.command.runtime.process.StartProcessCommand.execute(S

                  tartProcessCommand.java:40) [drools-core-6.1.0.Final.jar:6.1.0.Final]

                          at org.drools.core.command.impl.DefaultCommandService.execute(DefaultCom

                  mandService.java:36) [drools-core-6.1.0.Final.jar:6.1.0.Final]

                          at org.drools.core.command.impl.AbstractInterceptor.executeNext(Abstract

                  Interceptor.java:41) [drools-core-6.1.0.Final.jar:6.1.0.Final]

                          at org.drools.persistence.SingleSessionCommandService$TransactionInterce

                  ptor.execute(SingleSessionCommandService.java:509) [drools-persistence-jpa-6.1.0

                  .Final.jar:6.1.0.Final]

                          at org.drools.core.command.impl.AbstractInterceptor.executeNext(Abstract

                  Interceptor.java:41) [drools-core-6.1.0.Final.jar:6.1.0.Final]

                          at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.execute(Opt

                  imisticLockRetryInterceptor.java:73) [drools-persistence-jpa-6.1.0.Final.jar:6.1

                  .0.Final]

                          at org.drools.core.command.impl.AbstractInterceptor.executeNext(Abstract

                  Interceptor.java:41) [drools-core-6.1.0.Final.jar:6.1.0.Final]

                          at org.drools.persistence.jta.TransactionLockInterceptor.execute(Transac

                  tionLockInterceptor.java:60) [drools-persistence-jpa-6.1.0.Final.jar:6.1.0.Final

                  ]

                          at org.drools.persistence.SingleSessionCommandService.execute(SingleSess

                  ionCommandService.java:353) [drools-persistence-jpa-6.1.0.Final.jar:6.1.0.Final]

                   

                   

                          at org.drools.core.command.impl.CommandBasedStatefulKnowledgeSession.sta

                  rtProcess(CommandBasedStatefulKnowledgeSession.java:230) [drools-core-6.1.0.Fina

                  l.jar:6.1.0.Final]

                          at org.jbpm.console.ng.bd.backend.server.KieSessionEntryPointImpl.startP

                  rocess(KieSessionEntryPointImpl.java:79) [jbpm-console-ng-business-domain-backen

                  d-6.1.0.Final.jar:6.1.0.Final]

                          at org.jbpm.console.ng.bd.backend.server.KieSessionEntryPointImpl$Proxy$

                  _$$_WeldClientProxy.startProcess(KieSessionEntryPointImpl$Proxy$_$$_WeldClientPr

                  oxy.java) [jbpm-console-ng-business-domain-backend-6.1.0.Final.jar:6.1.0.Final]

                          at org.jbpm.console.ng.ht.forms.backend.server.FormModelerProcessStarter

                  EntryPointImpl.startProcessFromRenderContext(FormModelerProcessStarterEntryPoint

                  Impl.java:44) [jbpm-console-ng-human-tasks-forms-backend-6.1.0.Final.jar:6.1.0.F

                  inal]

                          at org.jbpm.console.ng.ht.forms.backend.server.FormModelerProcessStarter

                  EntryPointImpl$Proxy$_$$_WeldClientProxy.startProcessFromRenderContext(FormModel

                  erProcessStarterEntryPointImpl$Proxy$_$$_WeldClientProxy.java) [jbpm-console-ng-

                  human-tasks-forms-backend-6.1.0.Final.jar:6.1.0.Final]

                          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1

                  .7.0_67]

                          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

                  java:57) [rt.jar:1.7.0_67]

                          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

                  sorImpl.java:43) [rt.jar:1.7.0_67]

                          at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_67]

                          at org.jboss.errai.bus.server.io.AbstractRPCMethodCallback.invokeMethodF

                  romMessage(AbstractRPCMethodCallback.java:48) [errai-bus-2.4.4.Final.jar:2.4.4.F

                  inal]

                          at org.jboss.errai.bus.server.io.ValueReplyRPCEndpointCallback.callback(

                  ValueReplyRPCEndpointCallback.java:22) [errai-bus-2.4.4.Final.jar:2.4.4.Final]

                          at org.jboss.errai.bus.server.io.RemoteServiceCallback.callback(RemoteSe

                  rviceCallback.java:54) [errai-bus-2.4.4.Final.jar:2.4.4.Final]

                          at org.jboss.errai.cdi.server.CDIExtensionPoints$3.callback(CDIExtension

                  Points.java:499) [errai-weld-integration-2.4.4.Final.jar:2.4.4.Final]

                          at org.jboss.errai.bus.server.DeliveryPlan.deliver(DeliveryPlan.java:47)

                  [errai-bus-2.4.4.Final.jar:2.4.4.Final]

                          at org.jboss.errai.bus.server.ServerMessageBusImpl.sendGlobal(ServerMess

                  ageBusImpl.java:284) [errai-bus-2.4.4.Final.jar:2.4.4.Final]

                          at org.jboss.errai.bus.server.SimpleDispatcher.dispatchGlobal(SimpleDisp

                  atcher.java:46) [errai-bus-2.4.4.Final.jar:2.4.4.Final]

                          at org.jboss.errai.bus.server.service.ErraiServiceImpl.store(ErraiServic

                  eImpl.java:97) [errai-bus-2.4.4.Final.jar:2.4.4.Final]

                          at org.jboss.errai.bus.server.service.ErraiServiceImpl.store(ErraiServic

                  eImpl.java:114) [errai-bus-2.4.4.Final.jar:2.4.4.Final]

                          at org.jboss.errai.bus.server.servlet.DefaultBlockingServlet.doPost(Defa

                  ultBlockingServlet.java:140) [errai-bus-2.4.4.Final.jar:2.4.4.Final]

                          at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-s

                  ervlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]

                          at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-s

                  ervlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]

                          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl

                  icationFilterChain.java:295) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redh

                  at-1]

                          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF

                  ilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.jboss.solder.servlet.exception.CatchExceptionFilter.doFilter(Catc

                  hExceptionFilter.java:65) [solder-impl-3.2.1.Final.jar:3.2.1.Final]

                          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl

                  icationFilterChain.java:246) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redh

                  at-1]

                          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF

                  ilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.jboss.solder.servlet.event.ServletEventBridgeFilter.doFilter(Serv

                  letEventBridgeFilter.java:74) [solder-impl-3.2.1.Final.jar:3.2.1.Final]

                          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl

                  icationFilterChain.java:246) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redh

                  at-1]

                          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF

                  ilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.jbpm.designer.web.filter.impl.PluggableFilter.doFilter(PluggableF

                  ilter.java:70) [jbpm-designer-backend-6.1.0.Final.jar:6.1.0.Final]

                          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl

                  icationFilterChain.java:246) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redh

                  at-1]

                          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF

                  ilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.uberfire.security.server.UberFireSecurityFilter.doFilter(UberFire

                  SecurityFilter.java:283) [uberfire-security-server-0.4.0.Final.jar:0.4.0.Final]

                          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl

                  icationFilterChain.java:246) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redh

                  at-1]

                          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF

                  ilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV

                  alve.java:230) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV

                  alve.java:149) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica

                  torBase.java:481) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmC

                  loserValve.java:50) [jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]

                   

                   

                          at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmC

                  loserValve.java:50) [jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]

                   

                   

                          at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(Secu

                  rityContextAssociationValve.java:169) [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2

                  .0.Final-redhat-8]

                          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j

                  ava:145) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j

                  ava:97) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal

                  ve.java:102) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav

                  a:336) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java

                  :856) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce

                  ss(Http11Protocol.java:653) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redha

                  t-1]

                          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:92

                  0) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

                          at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_67]

                  Caused by: javax.jms.InvalidDestinationException: Not a HornetQ Destination:queu

                  e://testQueue

                          at org.hornetq.jms.client.HornetQSession.createProducer(HornetQSession.j

                  ava:319)

                          at org.jbpm.process.audit.jms.AsyncAuditLogProducer.sendMessage(AsyncAud

                  itLogProducer.java:148) [jbpm-audit-6.1.0.Final.jar:6.1.0.Final]

                          ... 69 more

                  • 6. Re: Storing Process Events in a JMS queue for further processing
                    nicdriver1

                    Caused by: javax.jms.InvalidDestinationException: Not a HornetQ Destination:queue://testQueue

                    at org.hornetq.jms.client.HornetQSession.createProducer(HornetQSession.j

                    ava:319)


                    Does it mean that I have to configure external HornetQ message broker instead of ActiveMq? if yes does anyone know a tutorial on how to do it?

                    • 7. Re: Storing Process Events in a JMS queue for further processing
                      swiderski.maciej

                      looks like you have multiple connection factories that attempts to be bound in same JNDI name java:/ConnectionFactory which might explain why there is unbound operation - though it's just a rough guess ....

                       

                      looks like it's taking the correct connection factory but using wrong JMS provider. Maybe there is a need to set the provider/resource adapter to be used somehow. Can you try to create simple JMS application deployed to EAP that uses JMS queues from ActiveMQ to see that server setup is properly configured?

                       

                      HTH

                      • 8. Re: Storing Process Events in a JMS queue for further processing
                        nicdriver1

                        thanks for help Maciej, you guessed well now it works