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" ... />
  • 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.
  • 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」を参照してください。