2016-04-21 71 views
0

我的設定: JBoss的EAP 6.4.0.GA(AS 7.5.0.Final-紅帽-21) ActiveMQ的5.12, 的ActiveMQ JCA資源適配器5.12, 消息驅動bean使用的ActiveMQ隊列如何使用ActiveMQ資源適配器修改JBoss EAP 6.4消息驅動Bean的事務超時值?

我需要增加交易超時服務,但我沒有找到一個工作方式,增加從默認值繼承standalone.xml事務超時值:

<coordinator-environment default-timeout="300"/> 

改變這種全球價值不是首選的解決方案(這是一個可行的解決方法),我只需要將其更改爲一項服務,特別是con消息驅動的豆!

注意:MDB或onMessage()方法上的@TransactionTimeout註釋未按預期工作。消息發起的交易總是被交易收割者殺死的:

11:41:47,959 WARN [com.arjuna.ats.arjuna] (Transaction Reaper) ARJUNA012117: TransactionReaper::check timeout for TX 0:ffffac112a2d:-6105c785:5718932a:af in state RUN 
11:41:47,960 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012095: Abort of action id 0:ffffac112a2d:-6105c785:5718932a:af invoked while multiple threads active within it. 
11:41:47,961 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012108: CheckedAction::check - atomic action 0:ffffac112a2d:-6105c785:5718932a:af aborting with 1 threads active! 
11:41:47,973 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012121: TransactionReaper::doCancellations worker Thread[Transaction Reaper Worker 0,5,main] successfully canceled TX 0:ffffac112a2d:-6105c785:5718932a:af 

以前有誰解決過這個問題嗎?我也很感謝有用的提示。

回答

0

經過全面的研究後,我很確定,在此設置中確實沒有明確配置消息驅動Bean事務超時的解決方案。

原因是,事務是由消息傳遞系統啓動的,並且負責任的ActiveMQ JCA資源適配器不支持此功能。

否則(例如,使用HornetQ的,它支持它的時候),有兩種方式來配置它:

  • 內@MessageDriven註釋:
    @ActivationConfigProperty(propertyName = "transactionTimeout", propertyValue = "..")

  • 部署描述符中:
    <message-driven-deployment ... > <config-property> <config-property-name>transactionTimeout</config-property-name> <config-property-value>...</config-property-value> </config-property> </message-driven-deployment>

+0

The transa以毫秒爲單位的會話超時。這不是一個強制性的價值。可以在這裏看到一個很好的參考:https://developer.jboss.org/wiki/TransactionTimeout – Damico

相關問題