- 我想同时使用 ActiveMQ (Artemis( 和 IBM MQ。
- ActiveMQ内置的Wildfly应用程序服务器部署了我的应用程序。
- 我想使用两个资源适配器,第一个用于 ActiveMQ,第二个用于 IBM MQ,但我无法配置它。
- 这是我对
standalone-full.xml
的配置:
<mdb>
<resource-adapter-ref resource-adapter-name="${ejb.resource-adapter-name:activemq-ra.rar}"/>
<bean-instance-pool-ref pool-name="mdb-strict-max-pool" />
</mdb>
<resource-adapters>
<resource-adapter id="wmq.jmsra.rar">
<archive>wmq.jmsra-9.1.2.0.rar</archive>
<transaction-support>NoTransaction</transaction-support>
<config-property name="startupRetryCount">1</config-property>
<connection-definitions>
<connection-definition class-name="com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl" jndi-name="java:jboss/jms/ivt/IVTCF" enabled="true" use-java-context="true" pool-name="IVTCF">
<config-property name="channel">A.CHANNEL01</config-property>
<config-property name="hostName">any-host</config-property>
<config-property name="transportType">1</config-property>
<config-property name="queueManager">QMANAG</config-property>
<config-property name="port">1415</config-property>
</connection-definition>
</connection-definitions>
<admin-objects>
<admin-object class-name="com.ibm.mq.connector.outbound.MQQueueProxy" jndi-name="java:jboss/TEST.Q" pool-name="TEST.REQ">
<config-property name="baseQueueName">TEST.Q</config-property>
<config-property name="baseQueueManagerName">QMANAG</config-property>
</admin-object>
</admin-objects>
</resource-adapter>
</resource-adapters>
- 如何在此处添加第二个适配器?
- 如果我替换:
<resource-adapter-ref resource-adapter-name="${ejb.resource-adapter-name:activemq-ra.rar}"/>
跟
<resource-adapter-ref resource-adapter-name="wmq.jmsra.rar"/>
我的 mdb-bean for IBM MQ 运行良好,但 mdb-beans for ActiveMQ 不起作用。
您正在配置的resource-adapter-ref
是供未指定自己的资源适配器配置的所有 MDB 使用的默认资源适配器。您的 MDB 可以使用他们想要的任何资源适配器,您只需要对其进行配置,例如:
- 在部署描述符级别
<jboss xmlns="http://www.jboss.com/xml/ns/javaee"
xmlns:jee="http://java.sun.com/xml/ns/javaee"
xmlns:mdb="urn:resource-adapter-binding"
xmlns:security="urn:security">
<jee:assembly-descriptor>
<mdb:resource-adapter-binding>
<jee:ejb-name>SOCKET_MDB</jee:ejb-name>
<mdb:resource-adapter-name>wmq.jmsra.rar</mdb:resource-adapter-name>
</mdb:resource-adapter-binding>
</jee:assembly-descriptor>
</jboss>
这是一个可以与 EJB 一起部署的示例jboss-ejb3.xml
文件。
- 在您的 MDB 中对其进行注释
另一种选择是在 MDB 中使用@ResourceAdapter
注释:
@MessageDriven(
activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName="destination", propertyValue="foo")})
@ResourceAdapter(value="wmq.jmsra.rar")
public class MyMDB implements MessageListener {
@Override
public void onMessage(Message message) {
}
}