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

    Storing Process Events in a JMS queue for further processing

    Nicola Giacobbe Newbie

      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
          Maciej Swiderski Master

          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
            Nicola Giacobbe Newbie

            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
              Nicola Giacobbe Newbie

              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?

              • 5. Re: Storing Process Events in a JMS queue for further processing
                Nicola Giacobbe Newbie

                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
                  Nicola Giacobbe Newbie

                  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
                    Maciej Swiderski Master

                    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
                      Nicola Giacobbe Newbie

                      thanks for help Maciej, you guessed well now it works