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