The following config file is for a round trip test I wrote which uses
the Interstage JMS provider and ServiceMix 2.02
jms client #1 => Q1 => ESB => Q2 => jms client #2 => Q3 => ESB => Q4 =>
jms client #1 (again)
where Q1-4 are my JMS Queues
NOTE - this is only a JMS 1.02 provider
Cheers,
Peter.
=====
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:my="http://servicemix.org/demo/">
<!-- the JBI container -->
<container id="jbi">
<property name="createMBeanServer" value="true"/>
<property name="dumpStats" value="true"/>
<property name="statsInterval" value="10"/>
<components>
<!-- 1st. Request subscribe to a JMS destination Q1 -->
<component id="requestReceiver" service="my:requestReceiver"
class="org.servicemix.components.jms.JmsReceiverComponent"
destinationService="my:requestSender">
<property name="template">
<bean class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory"><ref
bean="myQueueConnectionFactory"/></property>
<property name="destinationResolver"><ref
bean="myJmsDestinationResolver"/></property>
<property name="defaultDestinationName"
value="java:comp/env/jms/queue/Q1"/>
<property name="pubSubDomain" value="false"/>
</bean>
</property>
<property name="selector" value=""/>
</component>
<!-- 2nd. Request sent to a JMS destination Q2 -->
<component id="requestSender" service="my:requestSender"
class="org.servicemix.components.jms.JmsSenderComponent">
<property name="template">
<bean class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory"><ref
bean="myQueueConnectionFactory"/></property>
<property name="destinationResolver"><ref
bean="myJmsDestinationResolver"/></property>
<property name="defaultDestinationName"
value="java:comp/env/jms/queue/Q2"/>
<property name="pubSubDomain" value="false"/>
<property name="explicitQosEnabled" value="true"/>
<property name="deliveryMode" value="1"/>
<property name="timeToLive" value="60000"/>
</bean>
</property>
</component>
<!-- 3rd. Response comes back on JMS destination Q3 -->
<component id="responseReceiver" service="my:responseReceiver"
class="org.servicemix.components.jms.JmsReceiverComponent"
destinationService="my:responseSender">
<property name="template">
<bean class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory"><ref
bean="myQueueConnectionFactory"/></property>
<property name="destinationResolver"><ref
bean="myJmsDestinationResolver"/></property>
<property name="defaultDestinationName"
value="java:comp/env/jms/queue/Q3"/>
<property name="pubSubDomain" value="false"/>
</bean>
</property>
<property name="selector" value=""/>
</component>
<!-- 4th. Response sent back to client via JMS destination Q4 -->
<component id="responseSender" service="my:responseSender"
class="org.servicemix.components.jms.JmsSenderComponent">
<property name="template">
<bean class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory"><ref
bean="myQueueConnectionFactory"/></property>
<property name="destinationResolver"><ref
bean="myJmsDestinationResolver"/></property>
<property name="defaultDestinationName"
value="java:comp/env/jms/queue/Q4"/>
<property name="pubSubDomain" value="false"/>
<property name="explicitQosEnabled" value="true"/>
<property name="deliveryMode" value="1"/>
<property name="timeToLive" value="60000"/>
</bean>
</property>
</component>
</components>
</container>
<!-- Use my own JNDI - The JMS objects are already binded in here -->
<bean id="myJndi" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop
key="java.naming.factory.initial">com.fujitsu.interstage.j2ee.jndi.InitialContextFactoryForClient</prop>
</props>
</property>
</bean>
<!-- The QueueConnectionFactory is in my JNDI -->
<bean id="myQueueConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="myJndi"/>
<property name="jndiName" value="java:comp/env/jms/queue/QCF"/>
</bean>
<!-- The JMS Destinations are resolved by looking them up in my JNDI -->
<bean id="myJmsDestinationResolver"
class="org.springframework.jms.support.destination.JndiDestinationResolver">
<property name="jndiTemplate" ref="myJndi"/>
</bean>
<!-- Needed for SpringJBIContainer? -->
<bean id="transactionManager"
class="org.jencks.factory.TransactionManagerFactoryBean"/>
</beans>
Fabian Crabus wrote:
Hi,
I'm trying to integrate ServiceMix with a JMS provider other than
ActiveMQ (SonicMQ to be specific).
How do I configure ServiceMix to use that?
The documentation talks about configuring JMS bridges though
the link to the example does not work.
So I'm a bit lost here.
Can anyone help?
Thanks,
Fabian