-
1. Re: Storing Process Events in a JMS queue for further processing
swiderski.maciej Mar 16, 2015 2:44 AM (in response to nicdriver1)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 Mar 16, 2015 5:58 AM (in response to swiderski.maciej)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 Mar 16, 2015 6:20 AM (in response to 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 Mar 16, 2015 9:08 AM (in response to nicdriver1)do you have full stack trace?
-
5. Re: Storing Process Events in a JMS queue for further processing
nicdriver1 Mar 16, 2015 12:37 PM (in response to swiderski.maciej)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 Mar 16, 2015 12:45 PM (in response to 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 Mar 16, 2015 12:53 PM (in response to nicdriver1)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 Mar 17, 2015 6:38 AM (in response to swiderski.maciej)thanks for help Maciej, you guessed well now it works