WSO2 Business Process bpel, error in gui with "if" component - eclipse

I currently work on a simple business process with the wso2 Business Process Server in Eclipse Developer Studio. I have created a little bpel process with an “if” condition. I got it to work on the server without problems. But, I had to make my “if” condition in the source code, I was not able to configure the if component per gui. I always get the following error when I click on the “Details” tab of the “if” component:
An error has occurred. See error log for more details.
org.eclipse.ui.internal.EditorReference.<init>(Lorg/eclipse/ui/internal/EditorManager;Lorg/eclipse/ui/IEditorInput;Lorg/eclipse/ui/internal/registry/EditorDescriptor;)V
Does anyone know how to avoid this error? It would be great to configure the “if” condition per GUI for demonstrations…
I'am using Developer Studio 3.2.0
Here is my bpel source code:
<!-- Befunde BPEL Process [Generated by the Eclipse BPEL Designer] -->
<!-- Date: Mon Mar 05 12:13:11 IST 2012 -->
<bpel:process name="Befunde"
targetNamespace="http://avintis.com/befunde"
suppressJoinFailure="yes"
xmlns:tns="http://avintis.com/befunde"
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:ns1="urn:hl7-org:v2xml"
xmlns:hl7="http://wso2.org/hl7"
xmlns:ns="http://ws.apache.org/axis2">
<!-- Import the client WSDL -->
<bpel:import location="BefundeArtifacts.wsdl" namespace="http://avintis.com/befunde" importType="http://schemas.xmlsoap.org/wsdl/" />
<!-- ================================================================= -->
<!-- PARTNERLINKS -->
<!-- List of services participating in this BPEL process -->
<!-- ================================================================= -->
<bpel:partnerLinks>
<!-- The 'client' role represents the requester of this service. -->
<bpel:partnerLink name="client"
partnerLinkType="tns:Befunde"
myRole="BefundeProvider"
/>
</bpel:partnerLinks>
<!-- ================================================================= -->
<!-- VARIABLES -->
<!-- List of messages and XML documents used within this BPEL process -->
<!-- ================================================================= -->
<bpel:variables>
<!-- Reference to the message passed as input during initiation -->
<bpel:variable name="input"
messageType="tns:BefundeRequestMessage"/>
<!--
Reference to the message that will be returned to the requester
-->
<bpel:variable name="output"
messageType="tns:BefundeResponseMessage"/>
</bpel:variables>
<!-- ================================================================= -->
<!-- ORCHESTRATION LOGIC -->
<!-- Set of activities coordinating the flow of messages across the -->
<!-- services integrated within this business process -->
<!-- ================================================================= -->
<bpel:sequence name="main">
<!-- Receive input from requester.
Note: This maps to operation defined in Befunde.wsdl
-->
<bpel:receive name="receiveInput" partnerLink="client"
portType="tns:Befunde"
operation="process" variable="input"
createInstance="yes"/>
<!-- Generate reply to synchronous request -->
<bpel:assign validate="no" name="InputToResult">
<bpel:copy>
<bpel:from>
<bpel:literal>
<tns:BefundeResponse xmlns:hl7="http://wso2.org/hl7" xmlns:ns1="urn:hl7-org:v2xml" xmlns:tns="http://avintis.com/befunde" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><tns:result>tns:result</tns:result>
</tns:BefundeResponse>
</bpel:literal>
</bpel:from>
<bpel:to variable="output" part="payload"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from part="payload" variable="input">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[hl7:message/ns1:ORU_R01/ns1:ORU_R01.RESPONSE/ns1:ORU_R01.ORDER_OBSERVATION/ns1:ORU_R01.OBSERVATION/ns1:OBX/ns1:OBX.8]]>
</bpel:query>
</bpel:from>
<bpel:to part="payload" variable="output">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[tns:result]]>
</bpel:query>
</bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:if name="If_OBX8">
<bpel:condition>
<![CDATA[$output.payload/tns:result="HH"]]>
</bpel:condition>
<bpel:assign validate="no" name="Panic">
<bpel:copy>
<bpel:from>
<bpel:literal xml:space="preserve">Panic</bpel:literal>
</bpel:from>
<bpel:to part="payload" variable="output">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:result]]></bpel:query>
</bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:else>
<bpel:assign validate="no" name="Normal">
<bpel:copy>
<bpel:from>
<bpel:literal xml:space="preserve">Normal</bpel:literal>
</bpel:from>
<bpel:to part="payload" variable="output">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:result]]></bpel:query>
</bpel:to>
</bpel:copy>
</bpel:assign>
</bpel:else>
</bpel:if>
<bpel:reply name="replyOutput"
partnerLink="client"
portType="tns:Befunde"
operation="process"
variable="output"
/>
</bpel:sequence>
</bpel:process>

It's a known issue as explained WSO2 developer studio edit properties of an assign activity
Please try out Developer Studio 3.0.0, that works!

Related

Mule CE: Database Connector and JBoss/XA Transaction work together?

I would like to use JBoss/XA Transacion with Database Connector component in Mule 3.7.
But an exception is throws: Transactional action is ALWAYS_JOIN but there is no active transaction (java.lang.IllegalStateException).
My transactional scenario is:
Pool + Database component - select table A
VM Component. Just to start a transaction - ALWAYS_BEGIN
Database component - MySQL - insert table B
Database component - Oracle - insert table C
We must ensure that both inserts running and commit together or rollback together.
Following XML code:
<jbossts:transaction-manager doc:name="JBoss Transaction Manager">
<property key="com.arjuna.ats.arjuna.coordinator.defaultTimeout" value="50" />
<property key="com.arjuna.ats.arjuna.coordinator.txReaperTimeout" value="108000"/><
</jbossts:transaction-manager>
<spring:beans>
<spring:bean id="oraDataSource" class="oracle.ucp.jdbc.PoolXADataSourceImpl" name="Bean">
<spring:property name="URL" value="jdbc:oracle:thin:#//${db.host}:${db.port}/${db.instance}"/>
<spring:property name="user" value="${db.user}"/>
<spring:property name="password" value="${db.password}"/>
<spring:property name="connectionFactoryClassName" value="oracle.jdbc.xa.client.OracleXADataSource"/>
<spring:property name="minPoolSize" value="1"/>
<spring:property name="maxPoolSize" value="20"/>
<spring:property name="connectionWaitTimeout" value="30"/>
</spring:bean>
</spring:beans>
<spring:bean id="mysqlDataSource" class="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource">
<spring:property name="url" value="jdbc:mysql://${mysql.host}:${mysql.port}/${mysql.instance}?user=${mysql.user}&password=${mysql.password}" />
</spring:bean>
<db:oracle-config name="Oracle_Configuration" doc:name="Oracle Configuration Bean" dataSource-ref="oraDataSource"/>
<db:mysql-config name="MySQL_Configuration" doc:name="MySQL Configuration Bean" dataSource-ref="mysqlDataSource"/>
<vm:connector name="VM" validateConnections="true" doc:name="VM"/>
<flow name="propostaFlow" processingStrategy="synchronous">
<poll doc:name="Poll">
<fixed-frequency-scheduler frequency="1000"/>
<watermark variable="carimboTempo" default-expression="2016-01-01 00:00:00" selector="MAX" selector-expression="#[payload.date_modified]"/>
<db:select config-ref="MySQL_Configuration" doc:name="Database Proposta">
<db:parameterized-query><![CDATA[select a.id, a.number, a.date_modified from table_a a where a.date_modified > #[flowVars.carimboTempo]]]></db:parameterized-query>
</db:select>
</poll>
<foreach doc:name="For Each - Proposta">
<vm:outbound-endpoint exchange-pattern="one-way" path="in" connector-ref="VM" doc:name="VM">
<xa-transaction action="ALWAYS_BEGIN" timeout="10000"/>
</vm:outbound-endpoint>
<enricher target="#[flowVars.resultadoInsert1]" doc:name="Message Enricher">
<db:insert config-ref="Oracle_Configuration" transactionalAction="ALWAYS_JOIN" doc:name="Database 1">
<db:parameterized-query><![CDATA[insert into table_b(ID, NAME) values(#[payload.id],#[payload.name])]]></db:parameterized-query>
</db:insert>
</enricher>
<db:insert config-ref="MySQL_Configuration" transactionalAction="ALWAYS_JOIN" doc:name="Database 2">
<db:parameterized-query><![CDATA[insert into table_c(ID, NAME) values(#[payload.id],#[payload.name])]]></db:parameterized-query>
</db:insert>
</foreach>
</flow>
IMPORTANT: We are using Mule 3.7.0 CE. We know that in Mule EE a solution is very easy with <transaction> and XA.
Questions:
Did we something wrong?
Is the Database Connect component aware of the JBoss/XA Transaction?
Is a correct form to start XA transaction with VM Component?
Finally, what we want to do, embed XA transaction in Mule CE, is really possible?
Thanks!
Based from the link you provided, since you use the driver classes oracle.jdbc.xa.client.OracleXADataSource and com.mysql.jdbc.jdbc2.optional.MysqlXADataSource you need to update the configuration like the following:
<jdbc:inbound-endpoint queryKey="selectQuery"
connector-ref="jdbcConnectorSource" pollingFrequency="10000">
<xa-transaction action="ALWAYS_BEGIN" />
</jdbc:inbound-endpoint>
<jdbc:outbound-endpoint queryKey="insert_call"
connector-ref="jdbcConnectorDest">
<xa-transaction action="ALWAYS_JOIN" />
</jdbc:outbound-endpoint>
Based on my experience I have found that the only way to use XA transactions is to use Mule EE.
You have to include your transactional operations (for example database update and JMS publishing ) in this block
<ee:xa-transactional action="ALWAYS_BEGIN" doc:name="Transactional">
and be sure to use database XA datasource, JMS XA connection factory and a transaction manager like this
<jbossts:transaction-manager doc:name="JBoss Transaction Manager" />
I've noticed this difference in Anypoint Studio between CE and EE.
In Mule CE transactional block, you can only specify transaction action
Instead in Mule EE you can specify transaction action and transaction type
Francesco.

Messages pending in subscriber queue

I am using jboss-5.1 to deploy message driven bean which is used to subscribe messages from a third party queue.
Around 16 messages were posted to that queue but they remained pending in our subscriber queue. I restarted the server and the messages were readily picked.
As much as I have analysed, I think maxsize and maxsession could have affected it, as both are 15. But I do not understand if there was some real issue, how it got solved by just restarting.
The logs were in error mode. I did not get the full stack trace.
This is the snippet of that error log.
[2012-10-30 17:01:00,228] [MQQueueAgent (GQH1_PLANNING_MDM_001)]
[ERROR] STDERR: 2012.10.30 17:01:00 MQJMS1023E rollback failed
[2012-10-30 17:01:00,228] [exceptionDelivery0] [WARN ]
org.jboss.resource.adapter.jms.inflow.JmsActivation: Failure in jms activation
org.jboss.resource.adapter.jms.inflow.JmsActivationSpec#85d0d(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter#b21aae
destination=remotewsmq/NOTIFICATION_PLANNING_MDM_001.SUBQ
destinationType=javax.jms.Queue tx=true durable=false reconnect=10 provider=RemoteWSMQJMSProvider
user=null maxMessages=1 minSession=1 maxSession=5 keepAlive=60000 useDLQ=false)
GQH1_PLANNING_MDM_001: The name of the queue used for subscribing.
The files that I use to configure the properties of the MDBs are as follows.
1.ejb3-interceptors-aop.xml
<domain name="Message Driven Bean" extends="Intercepted Bean" inheritBindings="true">
<bind pointcut="execution(public * *->*(..))">
<interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
<interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
</bind>
<!-- TODO: Authorization? -->
<bind pointcut="execution(public * *->*(..))">
<interceptor-ref name="org.jboss.ejb3.tx.CMTTxInterceptorFactory"/>
<interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
<interceptor-ref name="org.jboss.ejb3.tx.BMTTxInterceptorFactory"/>
<interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
<interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
<!-- interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/ -->
<stack-ref name="EJBInterceptors"/>
</bind>
<annotation expr="class(*) AND !class(#org.jboss.ejb3.annotation.Pool)">
#org.jboss.ejb3.annotation.Pool (value="StrictMaxPool", maxSize=15, timeout=10000)
</annotation>
</domain>
2.standardjboss.xml
<invoker-proxy-binding>
<name>message-driven-bean</name>
<invoker-mbean>default</invoker-mbean>
<proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-factory>
<proxy-factory-config>
<JMSProviderAdapterJNDI>DefaultJMSProvider</JMSProviderAdapterJNDI>
<ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
<CreateJBossMQDestination>false</CreateJBossMQDestination>
<!-- WARN: Don't set this to zero until a bug in the pooled executor is fixed -->
<MinimumSize>1</MinimumSize>
<MaximumSize>15</MaximumSize>
<KeepAliveMillis>30000</KeepAliveMillis>
<MaxMessages>1</MaxMessages>
<MDBConfig>
<ReconnectIntervalSec>10</ReconnectIntervalSec>
<DLQConfig>
<DestinationQueue>queue/DLQ</DestinationQueue>
<MaxTimesRedelivered>10</MaxTimesRedelivered>
<TimeToLive>0</TimeToLive>
</DLQConfig>
</MDBConfig>
</proxy-factory-config>
</invoker-proxy-binding>
<activation-config-property>
<activation-config-property-name>maxSession</activation-config-property-name>
<activation-config-property-value>15</activation-config-property-value>
</activation-config-property>
3.jms-ds.xml
<?xml version="1.0" encoding="UTF-8"?>
<connection-factories>
<!-- ==================================================================== -->
<!-- JMS Stuff -->
<!-- ==================================================================== -->
<!--
The JMS provider loader. Currently pointing to a non-clustered ConnectionFactory. Need to
be replaced with a clustered non-load-balanced ConnectionFactory when it becomes available.
See http://jira.jboss.org/jira/browse/JBMESSAGING-843.
-->
<mbean code="org.jboss.jms.jndi.JMSProviderLoader"
name="jboss.messaging:service=JMSProviderLoader,name=JMSProvider">
<attribute name="ProviderName">DefaultJMSProvider</attribute>
<attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
<attribute name="FactoryRef">java:/XAConnectionFactory</attribute>
<attribute name="QueueFactoryRef">java:/XAConnectionFactory</attribute>
<attribute name="TopicFactoryRef">java:/XAConnectionFactory</attribute>
</mbean>
<!-- JMS XA Resource adapter, use this to get transacted JMS in beans -->
<tx-connection-factory>
<jndi-name>JmsXA</jndi-name>
<xa-transaction/>
<rar-name>jms-ra.rar</rar-name>
<connection-definition>org.jboss.resource.adapter.jms.JmsConnectionFactory</connection-definition>
<config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Topic</config-property>
<config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/DefaultJMSProvider</config-property>
<max-pool-size>20</max-pool-size>
<security-domain-and-application>JmsXARealm</security-domain-and-application>
<depends>jboss.messaging:service=ServerPeer</depends>
</tx-connection-factory>
</connection-factories>
Please help.
If the listener did not try to reconnect, then it might be the messages pending which caused it to fail.
According to the error, a transaction ROLLBACK call failed. After the failure, the queue manager probably held those messages in an outstanding unit of work. Restarting the server would have closed the connection at which point the queue manager will have rolled back the transaction on behalf of the application. On restart, the application will create a new UOW and retrieve the messages.
Look in WebSphere MQ's queue manager error logs and global error logs to determine whether the error was caused by a resource shortage. It may be necessary to increase the size of the queue manager transaction logs or to tune transaction parameters such as MAXUOW.
You may also need to update the MQ client version or Queue Manager version. According to this Technote, WebSphere MQ JMS classes were updated as of 6.0.2.3 to fix a bug that resulted in MQJMS1023E errors. If you need to update the client version, it is available as a free download as SupportPac MQC75. A new client is able to run with any back level queue manager. After upgrading, the app benefits from the bug fixes and performance enhancements of the new client code and provides API functionality appropriate for the version of Queue Manager to which it connects. What version of WebSphere MQ JMS client is currently installed? What version of WebSphere MQ queue manager is currently installed?

JOSSO's <ignore-url-patterns> example needed

Just wondering if anyone could show me an example of how the works with JOSSO's partner-app in joss-agent-config.xml?
Just solved this today. To set URL patterns for the JOSSO ignore-url-patterns tag you need to use a tag from another namespace:
<agent:partner-app context="/" id="Liferay">
<agent:ignore-url-patterns>
<s:value>*.css</s:value>
<s:value>*.js</s:value>
<s:value>*.gif</s:value>
<s:value>*.jpg</s:value>
<s:value>*.png</s:value>
</agent:ignore-url-patterns>
</agent:partner-app>
This assumes that you have xmlns:agent="urn:org:josso:agent:core" and xmlns:s="http://www.springframework.org/schema/beans".
The XSD for the ignore-url-patterns uses the "##other" scope so it must be a tag from another namespace. I've used spring's <value /> tag because it is a simple container for a string and will work great for holding the various url patterns that you want to use.
<configuration>
<agent:agent-configuration>
<!-- ============================================================================= -->
<!-- -->
<!-- JOSSO Parnter application definicions : -->
<!-- -->
<!-- Configure all web applications that should be a josso partner application -->
<!-- within this server. -->
<!-- For each partner application you have to define the proper web-context. -->
<!-- ============================================================================= -->
<agent:partner-apps>
<agent:partner-app id="AdminApp" context="/admin"/>
<agent:partner-app id="HOME" context="/home" >
<ignore-web-resource-collections>public-resources,img-resources</ignore-web-resource-collections>
</agent:partner-app>
<agent:partner-app id="EmployeeApp" context="/emp"/>
<agent:partner-app id="AuditApp" context="/audit"/>
</agent:partner-apps>
</agent:agent-configuration>

jboss-esb fs-listener jbm message queue overflow

We have a jboss esb server which is reading files from the file system in a scheduled way (schedule frequency of 20sec) and convert them into the esb message then we parse the message.
There are some other providers/listeners (jms) and services configured on the esb servers. When there is an error in one of the services it effects the above process. File system provider (gateway) is working fine but the jms-listener who takes the gateway messages are not working and lots of messages are accumulated in the jbm queue (jbm_msg Oracle DB table).
Here is the problem, when my server is restarted messages in the jbm-queue is parsed in the esb for just 20 seconds which is the scheduled frequency of fs-provider, never process messages again and cpu usage goes up to 100% and stays there. We believe somehow fs-providers interrupts the jms-provider.
Is there any configuration we have been missing out.
Here are the configuration files that we have:
jboss-esb.xml
<?xml version = "1.0" encoding = "UTF-8"?>
<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
<providers>
<fs-provider name="SitaIstProvider">
<fs-bus busid="gw_sita_ist" >
<fs-message-filter
directory="/ikarussita/IST/IN"
input-suffix=".RCV"
work-suffix=".lck"
post-delete="false"
post-directory="/ikarussita/IST/OK"
post-suffix=".ok"
error-delete="false"
error-directory="/ikarussita/IST/ERR"
error-suffix=".err"/>
</fs-bus>
</fs-provider>
<jms-provider name="SitaESBQueue" connection-factory="ConnectionFactory">
<jms-bus busid="esb_sita_queue">
<jms-message-filter dest-type="QUEUE" dest-name="queue/esb_sita_queue"/>
</jms-bus>
</jms-provider>
</providers>
<services>
<service category="SITA" name="SITA_IST" description="SITA Daemon For ISTCOXH">
<listeners>
<fs-listener name="Sita_Ist_Gateway" busidref="gw_sita_ist" is-gateway="true" schedule-frequency="20" />
<jms-listener name="Jms_Sita_EsbAware" busidref="esb_sita_queue" />
</listeners>
<actions mep="OneWay">
<action name="parse_msg" class="com.celebi.integration.action.sita.inbound.SitaHandler" process="parseMessage" />
<action name="send_ikarus" class="com.celebi.integration.action.ikarus.outbound.fis.FlightJmsSender" />
</actions>
</service>
</services>
</jbossesb>
jbm-queue-service.xml
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.jboss.jms.server.destination.QueueService"
name="jboss.messaging.destination:service=Queue,name=esb_sita_queue"
xmbean-dd="xmdesc/Queue-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
<depends>jboss.messaging:service=PostOffice</depends>
</mbean>
<server>
deployment.xml
<jbossesb-deployment>
<depends>jboss.messaging.destination:service=Queue,name=esb_sita_queue</depends>
</jbossesb-deployment>
Thanx
Split the service into 2 separate services, one handling the JMS queue, the other the file poller. Specify the same action pipeline. That way you get the same functionality but without the threading issue. Also use max-threads attr on the listener to specify the number of reading threads.

How to configure startup sequence of JBoss services (JmsActivation)

When I deploy my application on JBoss 5 the EJBs are created before the QueueService is started. Creation of Message Driven beans now fails miserably because the queues are not yet available:
17:11:29,151 INFO [EJBContainer] STARTED EJB: .....
17:11:29,266 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:
..
..
17:11:29,928 WARN [JmsActivation] Failure in jms activation org.jboss.resource.adapter.jms.inflow.JmsActivationSpec#11694c ...
javax.naming.NameNotFoundException: ... not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
at org.jnp.server.NamingServer.getObject(NamingServer.java:785)
at org.jnp.server.NamingServer.lookup(NamingServer.java:443)
at org.jnp.server.NamingServer.lookup(NamingServer.java:399)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:722)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:682)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at org.jboss.util.naming.Util.lookup(Util.java:222)
at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupDestination(JmsActivation.java:464)
at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:352)
at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:729)
at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:213)
at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
17:11:30,027 INFO [QueueService] Queue[/queue/....] started, fullSize=200000, pageSize=2000, downCacheSize=2000
How can the deploy sequence be configured?
Found the answer myself. I added the following annotation to the message driven bean:
#Depends({"jboss.messaging.destination:service=Topic,name=XxxxTopic"})
<?xml version="1.0" encoding="UTF-8"?>
<!--
Null persistence config.
Use this if you don't actually want to persist anything
$Id$
-->
<server>
<!-- Persistence Manager MBean configuration
======================================== -->
<mbean code="org.jboss.messaging.core.jmx.NullPersistenceManagerService"
name="jboss.messaging:service=PersistenceManager"
xmbean-dd="xmdesc/NullPersistenceManager-xmbean.xml"/>
<!-- Messaging Post Office MBean configuration
========================================= -->
<mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
name="jboss.messaging:service=PostOffice"
xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
<depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
<!-- The name of the post office -->
<attribute name="PostOfficeName">JMS post office</attribute>
<!-- This post office is clustered. If you don't want a clustered post office then set to false -->
<attribute name="Clustered">false</attribute>
</mbean>
<!-- Messaging JMS User Manager MBean config
======================================= -->
<mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
name="jboss.messaging:service=JMSUserManager"
xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
<depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
</mbean>
</server>
save this as 'null-persistence-service.xml' and put this deploy/messaging/
Now it will works