我正在使用帶有很多MDB的Weblogic 9.2。這些MDB訪問JDBC DataSources並分別使用本地和外部XAConnectionFactorys寫入本地和外部管理的JMS目標。每個MDB都劃定一個容器管理的JTA事務,該事務應該在所有這些資源中分配。使用EJB 2.1時,是否聲明瞭對ejb-jar.xml中資源的引用?
下面是MDB的ejb-jar.xml摘錄,它從本地隊列中調用「MyDestination」,並生成一個名爲「MyOtherDestination」的IBM Websphere MQ Queue。這些邏輯名稱鏈接到我的weblogic-ejb-jar.xml文件中的物理對象。
就是用<資源引用>和<消息目的地裁判>標籤,露出連接工廠和隊列的MDB需要它?如果是這樣,Weblogic需要它還是J2EE規範所要求的?爲了什麼目的?例如,是否需要支持XA事務性?
我已經意識到使用暴露給MDB命名上下文的名稱將管理對象與MDB解耦的好處。這是指定這些標籤時唯一添加的值嗎?換句話說,是否可以使用InitialContext和對象的完全限定名從我的MDB中引用這些對象?
<enterprise-bean>
<message-driven>
<ejb-name>MyMDB</ejb-name>
<ejb-class>com.mycompany.MyMessageDrivenBean</ejb-class>
<transaction-type>Container</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination>
<message-destination-link>MyDestination</message-destination-link>
<resource-ref>
<res-ref-name>jms/myQCF</res-ref-name>
<res-type>javax.jms.XAConnectionFactory</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<message-destination-ref>
<message-destination-ref-name>jms/myOtherDestination</message-destination-ref-name>
<message-destination-type>javax.jms.Queue</message-destination-type>
<message-destination-usage>Produces</message-destination-usage>
<message-destination-link>MyOtherDestination</message-destination-link>
</message-destination-ref>
</message-driven>
<enterprise-bean>
你試過了嗎? – skaffman 2009-10-28 14:13:36
我澄清了我的問題。我對它是否可以工作不感興趣。我想知道爲什麼會這樣或那樣做。 – adgoudz 2009-10-28 15:39:43