Nav
You are viewing an older version of this section. Click here to navigate to the latest version.

JBoss JMS Integration

You configure a JBoss JMS connector for Mule as follows:


       
    
1
<?xml version="1.0" encoding="UTF-8"?><mule xmlns="http://www.mulesoft.org/schema/mule/core"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:jbossts="http://www.mulesoft.org/schema/mule/jbossts"    xmlns:jms="http://www.mulesoft.org/schema/mule/jms"    xmlns:stdio="http://www.mulesoft.org/schema/mule/stdio"    xmlns:spring="http://www.springframework.org/schema/beans"    xmlns:context="http://www.springframework.org/schema/context"    xsi:schemaLocation="          http://www.mulesoft.org/schema/mule/jbossts http://www.mulesoft.org/schema/mule/jbossts/3.0/mule-jbossts.xsd http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/3.0/mule-jms.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.0/mule.xsd http://www.mulesoft.org/schema/mule/stdio http://www.mulesoft.org/schema/mule/stdio/3.0/mule-stdio.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">    <jbossts:transaction-manager/>    <configuration>        <default-dispatcher-threading-profile maxThreadsActive="50" maxThreadsIdle="25"            threadTTL="60000"/>        <default-receiver-threading-profile maxThreadsActive="50" maxThreadsIdle="25"            threadTTL="60000"/>        <default-service-threading-profile maxThreadsActive="50" maxThreadsIdle="25"            threadTTL="60000"/>    </configuration>    <jms:connector name="jms-connector" jndiInitialFactory="org.jnp.interfaces.NamingContextFactory"        jndiProviderUrl="jnp://127.0.0.1:1099"        connectionFactoryJndiName="java:/QueueConnectionFactory" jndiDestinations="true"        forceJndiDestinations="true" createMultipleTransactedReceivers="true"        numberOfConcurrentTransactedReceivers="10" disableTemporaryReplyToDestinations="true">        <!--retry:forever-policy frequency="2000"/-->    </jms:connector>    <stdio:connector name="stdioConnector" promptMessage="Please enter message: "  outputMessage="Received message: " messageDelayTime="3000"/>    <jms:object-to-jmsmessage-transformer name="ObjectToJMSMessageTransformer"/>    <jms:jmsmessage-to-object-transformer name="JMSMessageToObjectTransformer"/>    <model>        <service name="stdioToQueue">            <inbound>                <stdio:inbound-endpoint system="IN" exchange-pattern="request-response"/>            </inbound>            <outbound>                <pass-through-router>                    <jms:outbound-endpoint queue="queue/testQueue" exchange-pattern="request-response"/>                </pass-through-router>            </outbound>        </service>        <service name="queueToStdio">            <inbound>                <jms:inbound-endpoint queue="queue/testQueue" exchange-pattern="request-response"/>            </inbound>            <outbound>                <pass-through-router>                    <stdio:outbound-endpoint system="OUT" exchange-pattern="request-response"/>                </pass-through-router>            </outbound>        </service>    </model></mule>

The JNDI provider and JBoss properties are specified in Spring.

If you use user credentials to connect to JBoss MQ, make sure that the user has the 'guest' role assigned to it. This will ensure that there are no issues if temporary topics or queues are used.