2016-04-21 3 views
0

Моя установка: JBoss EAP 6.4.0.GA (AS 7.5.0.Final-RedHat-21) ActiveMQ 5,12, ActiveMQ JCA Resource Adapter 5,12, управляемый сообщениями с помощью ActiveMQ очередиКак изменить значение тайм-аута транзакции для JBoss EAP 6.4 с помощью адаптера ресурсов ActiveMQ?

мне нужно увеличить время ожидания транзакций для службы, но я не нашел рабочий способ увеличить значение тайм-аута транзакции, унаследованный от значения по умолчанию из standalone.xml:

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

изменяющемся это глобальное значение не является предпочтительным решением (это рабочий обходной путь), мне нужно изменить его только на одну услугу, особенно на поддерживаемый ведомый поток!

Примечание: аннотация @TransactionTimeout в методе MDB или onMessage() не работает должным образом. Сообщение, инициированное транзакциями, всегда погибает от транзакционного ридера:

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

После всестороннего исследования я совершенно уверен, что на самом деле нет решения явно настроить тайм-аут транзакции Message Driven 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

Передача таймаут для сеанса в миллисекундах. Это не обязательное значение. Хорошую ссылку можно найти здесь: https://developer.jboss.org/wiki/TransactionTimeout – Damico

Смежные вопросы