メッセージ駆動型 Bean を使用するエンタープライズ・アプリケーションの設計

エンタープライズ・アプリケーションを設計する支援として、一般的なエンタープライズ・アプリケーションを考慮します。一般的なエンタープライズ・アプリケーションは、1 つのメッセージ駆動型 Bean を使用して JMS キュー宛先からメッセージを取得し、ビジネス・ロジックを実装する別のエンタープライズ Bean にそのメッセージを渡します。

このタスクについて

メッセージ駆動型 Bean を使用するエンタープライズ・アプリケーションを設計するには、以下のステップを実行します。

手順

  1. メッセージ駆動型 Bean が処理するメッセージ・タイプのメッセージ・リスナー・インターフェースを識別します。 メッセージ駆動型 Bean クラスは、このメッセージ・リスナー・インターフェースを実装する必要があります。例えば、JMS メッセージングに使用される EJB メッセージ駆動型 Bean クラスは、javax.jms.MessageListener インターフェースを実装する必要があります。
  2. アプリケーションが使用するリソースを識別します。 このステップは、アプリケーション内で使用してアプリケーション・デプロイメント記述子として構成する必要があるリソースのプロパティー、または WebSphere® Application Server 内で使用する必要があるリソースの、プロパティーを識別するために役立ちます。
    表 1. JMS リソース・タイプおよびそのプロパティーの例. この表の 1 列目には JMS リソース・タイプがリストされており、2 列目には各 JMS リソース・タイプのプロパティーの例が示されています。
    JMS リソース・タイプ プロパティー (例)
    JMS 接続ファクトリー
    名前: SamplePtoPQueueConnectionFactory
    JNDI 名: Sample/JMS/QCF
    JMS 宛先
    名前: Q1
    JNDI 名: Sample/JMS/Q1
    J2C アクティベーション・スペックのプロパティー
    名前: MyMDBsActivationSpec
    JNDI 名: eis/MyMDBsActivationSpec
    宛先 JNDI 名: MyQueue
    宛先タイプ: javax.jms.Queue
    メッセージ駆動型 Bean (デプロイメント・プロパティー)
    名前: JMSppSampleMDBBean
    トランザクション・タイプ: Container
    メッセージ・セレクター: JMSType='car'
    応答モード: Dups OK Acknowledge
    宛先タイプ: javax.jms.Queue
    ActivationSpec JNDI 名: MyMDBsActivationSpec
    ビジネス・ロジック Bean
    名前: MyLogicBean

    必要に応じて、値を統一してください。例えば、J2C アクティベーション・スペックの JNDI 名は、アクティベーション・スペックとメッセージ駆動型 Bean のデプロイメント属性の両方で同じにする必要があります。

  3. ビジネス・ロジックを分離します。 着信メッセージのビジネス・プロセスを、別のエンタープライズ Bean で代行するようにメッセージ駆動型 Bean を開発する必要があります。そうすることにより、メッセージ処理とビジネス・プロセスを明確に分離することができます。 さらに、ビジネス・プロセスを、着信メッセージの到着により呼び出したり、あるいは WebSphere J2EE クライアントなどから呼び出したりできるようになります。
  4. セキュリティーを構成するかどうかを決定します。 リスナーが処理中の宛先に到着するメッセージは、クライアント信任状に関連付けられていません。つまり、メッセージは匿名です。 セキュリティーは、メッセージ駆動型 Bean の RunAs ID が EJB コンポーネントとして指定するロールによって決まります。 EJB セキュリティーについて詳しくは、EJB コンポーネント・セキュリティーを参照してください。
  5. デフォルトのメッセージング・プロバイダーによる、ベスト・エフォート非パーシスタント・メッセージの処理方法を理解します。
    非トランザクションのメッセージ駆動型 Bean がある場合、システムは、メッセージ駆動型 Bean の開始時または完了時のいずれかの時点で、メッセージを削除します。 メッセージ駆動型 Bean が例外を生成し、そのために Bean が完了しない場合、システムは以下のいずれかのアクションを実行します。
    • システムが、メッセージ駆動型 Bean の完了時にメッセージを削除するように構成されている場合、メッセージはメッセージ駆動型 Bean の新規インスタンスにディスパッチされるため、別のタイミングで処理されます。
    • システムが、メッセージ駆動型 Bean の開始時にメッセージを削除するように構成されている場合、メッセージは失われます。

    サービスの品質がベスト・エフォート非パーシスタントに設定されている場合、メッセージ駆動型 Bean が開始するときにメッセージは削除されます。他のすべてのサービスの品質の場合、メッセージはメッセージ駆動型 Bean が完了するときに削除されます。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tmb_desap
ファイル名:tmb_desap.html