2009-09-02 236 views
1

我无法理解在何处定义JBoss中JMS队列实现所需的JMS资源。目前我正在处理的代码在WebLogic上工作,并且我试图将它迁移到JBoss 4.3 eap。JBoss:将JMS资源添加到JBoss 4.3

在weblogic中,有一个jms.xml文件,它定义了JMS资源和JNDI查找名称。例如:

<quota name="CacheT.Quota"> 
    <bytes-maximum>9999999999999999999</bytes-maximum> 
    <messages-maximum>9999999999999999999</messages-maximum> 
    <policy>FIFO</policy> 
    <shared>false</shared> 
</quota> 
<template name="MessQ"> 
    <delivery-failure-params> 
    <redelivery-limit>1</redelivery-limit> 
    <expiration-policy>Discard</expiration-policy> 
    </delivery-failure-params> 
</template> 
<connection-factory name="Queue Conn Fact"> 
    <default-targeting-enabled>true</default-targeting-enabled> 
    <jndi-name>com.company.QueueConnFact</jndi-name> 
    <default-delivery-params> 
    <default-delivery-mode>Persistent</default-delivery-mode> 
    </default-delivery-params> 
    <transaction-params> 
    <xa-connection-factory-enabled>false</xa-connection-factory-enabled> 
    </transaction-params> 
    <security-params> 
    <attach-jmsx-user-id>false</attach-jmsx-user-id> 
    </security-params> 
</connection-factory> 
<queue name="EMessQ"> 
    <sub-deployment-name>Product_JMS</sub-deployment-name> 
    <template>MessQ</template> 
    <jndi-name>com.company.EMessQ</jndi-name> 
</queue> 
<uniform-distributed-topic name="CacheT"> 
    <sub-deployment-name>Product_JMS</sub-deployment-name> 
    <jndi-name>com.company.CacheT</jndi-name> 
    <load-balancing-policy>Round-Robin</load-balancing-policy> 
</uniform-distributed-topic> 

对于我来说,我似乎并不了解这些资源在JBoss中的定义。在看了the JBoss Community Wiki后,没有任何问题得到解答。请记住,我是整个JMS的新手,对于JBoss来说还是比较新的。我确实发现了这个link,但似乎在讨论JBossMessaging,据我了解,这是一个新的JMS实现,它在JBoss 5版本中,而不是4.3。

我们的应用程序被部署为带有WAR和通用库JAR的EAR文件。一些further googling建议我必须将这些定义添加到每个单独的jboss.xml,我想避免这样做。

基本上,我很困惑。我正在尝试在进行这些更改时学习JMS,但我似乎无法弄清楚这一部分。

感谢您的任何帮助。

回答