MDB在JBoss5中使用默认的jms-ra.rar侦听远程队列时真正需要哪些激活配置属性

MDB在JBoss5中使用默认的jms-ra.rar侦听远程队列时真正需要哪些激活配置属性,jms,jboss5.x,jca,Jms,Jboss5.x,Jca,我试图理解,要在JBoss 5上部署一个MDB来处理远程JMS提供程序上设置的队列中的消息,我真正需要什么配置属性。我计划使用ejb-jar.xml配置激活规范,我不想只配置我真正需要的,而不是更多。我的理解是,规范允许的配置是在使用的ra.xml中配置的。如果我从jms-ra.rar中查找ra.xml,我可以看到下面的入站resourceadapter元素 <inbound-resourceadapter> <messageadapter>

我试图理解,要在JBoss 5上部署一个MDB来处理远程JMS提供程序上设置的队列中的消息,我真正需要什么配置属性。我计划使用ejb-jar.xml配置激活规范,我不想只配置我真正需要的,而不是更多。我的理解是,规范允许的配置是在使用的ra.xml中配置的。如果我从jms-ra.rar中查找ra.xml,我可以看到下面的
入站resourceadapter
元素

  <inbound-resourceadapter>
     <messageadapter>        
        <messagelistener>
           <messagelistener-type>javax.jms.MessageListener</messagelistener-type>
           <activationspec>
              <activationspec-class>org.jboss.resource.adapter.jms.inflow.JmsActivationSpec</activationspec-class>
              <required-config-property>
                  <config-property-name>destination</config-property-name>
              </required-config-property>
           </activationspec>
        </messagelistener>
     </messageadapter>
  </inbound-resourceadapter>
但从“流出”一词来看,这不适用于流入流

总之,要使MDB能够侦听,我是否只需要目的地?如果是这样的话,如果我可以有多个具有相同目的地名称的提供程序,它如何知道这是来自哪个JMS提供程序


谢谢

入站资源适配器中配置的激活规范附带了魔法:

<activationspec-class>org.jboss.resource.adapter.jms.inflow.JmsActivationSpec</activationspec-class>
org.jboss.resource.adapter.jms.inflow.JmsActivationSpec
查看源代码显示,java:/DefaultJMSProvider被硬设置为providerAdapterJNDI的默认值,因此这是自动使用的,与为出站部分显式配置的相同

因此,您只需要一个目标作为强制属性,因为其他所有属性在JmsActivationSpec中都有一个可行的默认值

只要将自己的JMSProviderLoader命名为*-ds.xml中的“默认”JMSProviderLoader,一切正常:

<attribute name="ProviderName">DefaultJMSProvider</attribute>
DefaultJMSProvider
否则,您必须在MDB的激活规范中明确设置相应的属性

<attribute name="ProviderName">DefaultJMSProvider</attribute>