如何添加第二个资源适配器以同时与 ibm mq (WebSphere) 和 ActiveMQ (Artemis) 一起工


  1. 我想同时使用 ActiveMQ (Artemis( 和 IBM MQ。
  2. ActiveMQ内置的Wildfly应用程序服务器部署了我的应用程序。
  3. 我想使用两个资源适配器,第一个用于 ActiveMQ,第二个用于 IBM MQ,但我无法配置它。
  4. 这是我对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>
  1. 如何在此处添加第二个适配器?
  2. 如果我替换:
<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 可以使用他们想要的任何资源适配器,您只需要对其进行配置,例如:

  1. 在部署描述符级别
<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文件。

  1. 在您的 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) {        
    }
}

相关内容

  • 没有找到相关文章

最新更新