31.5. Red Hat JBoss A-MQ リソースアダプターのデプロイ
Red Hat JBoss A-MQ 製品が提供するリソースアダプターをデプロイし、たとえば Red Hat JBoss A-MQ 6.3.0 を JBoss EAP の外部 JMS プロバイダーにすることができます。
Red Hat JBoss A-MQ リソースアダプターをデプロイおよび設定する方法の詳細は、Red Hat JBoss A-MQ ドキュメントスイート内にあるIntegrating with JBoss Enterprise Application Platformの Install the ActiveMQ Resource Adapter を参照してください。
製品名が、Red Hat JBoss A-MQ 6.x リリースから Red Hat AMQ 7.x リリースに変更されたことに注意してください。
31.5.1. Red Hat JBoss A-MQ 6 リソースアダプターの問題
JBoss EAP はアプリケーションを追跡、監視して、閉じられていないリソースを探します。このような監視は多くの場合、有用ですが、アプリケーションが単一のメソッド内の
UserTransaction
の閉じたインスタンスを再利用しようとすると、予期しない動作を引き起こす可能性があります。アプリケーションがこの方法で接続を再利用する場合、Red Hat JBoss A-MQ リソースアダプターを設定するときに<connection-definition/>
要素にtracking="false"
属性を追加します。<connection-definition class-name="..." tracking="false" ... />
<connection-definition class-name="..." tracking="false" ... />
Copy to Clipboard Copied! -
Red Hat JBoss A-MQ 6 リソースアダプターは、JBoss EAP で使用される、Narayana API の
XAResourceWrapper
を実装しません。そのため、トランザクションマネージャーがすべての XA トランザクションの参加者にコミットを送信し、応答の待機中にクラッシュすると、コミットされたトランザクションのレコードがオブジェクトストアから削除されるまで、警告が無期限に記録されます。 コミットメソッドプロトコルの呼び出し中にネットワークの切断などのエラーが発生すると、Red Hat JBoss A-MQ 6 リソースアダプターはコード
XAER_RMERR
を返します。正しい戻りコードはXAER_RMFAIL
またはXAER_RETRY
であるため、この動作は XA 仕様に違反します。そのため、トランザクションはメッセージブローカー側で不明な状態のままになり、場合によってはデータの不整合が生じることがあります。予期しないエラーコードが返されると、以下のようなメッセージが記録されます。WARN [com.arjuna.ats.jtax] ...: XAResourceRecord.rollback caused an XA error: ARJUNA016099: Unknown error code:0 from resource ... in transaction ...: javax.transaction.xa.XAException: Transaction ... has not been started.
WARN [com.arjuna.ats.jtax] ...: XAResourceRecord.rollback caused an XA error: ARJUNA016099: Unknown error code:0 from resource ... in transaction ...: javax.transaction.xa.XAException: Transaction ... has not been started.
Copy to Clipboard Copied! - Red Hat JBoss A-MQ 6.x は、Java EE 6 に含まれる JMS 1.1 仕様をサポートします。Java EE 7 で導入され、JBoss EAP 7 でサポートされている JMS 2.0 仕様はサポートしていません。メッセージをリモート Red Hat JBoss A-MQ ブローカーに送信する必要がある場合は、アプリケーションコード内で JMS 1.1 API を使用する必要があります。Red Hat JBoss A-MQ 6.x でサポートされる標準仕様の詳細は、Red Hat JBoss A-MQ Supported Standards and Protocols を参照してください。