メッセージ駆動型 Bean を使用するエンタープライズ・アプリケーションの設計
エンタープライズ・アプリケーションを設計する支援として、一般的なエンタープライズ・アプリケーションを考慮します。一般的なエンタープライズ・アプリケーションは、1 つのメッセージ駆動型 Bean を使用して JMS キュー宛先からメッセージを取得し、ビジネス・ロジックを実装する別のエンタープライズ Bean にそのメッセージを渡します。
このタスクについて
メッセージ駆動型 Bean を使用するエンタープライズ・アプリケーションを設計するには、以下のステップを実行します。
手順
- メッセージ駆動型 Bean が処理するメッセージ・タイプのメッセージ・リスナー・インターフェースを識別します。 メッセージ駆動型 Bean クラスは、このメッセージ・リスナー・インターフェースを実装する必要があります。例えば、JMS メッセージングに使用される EJB メッセージ駆動型 Bean クラスは、javax.jms.MessageListener インターフェースを実装する必要があります。
- アプリケーションが使用するリソースを識別します。 このステップは、アプリケーション内で使用してアプリケーション・デプロイメント記述子として構成する必要があるリソースのプロパティー、または 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 のデプロイメント属性の両方で同じにする必要があります。
- ビジネス・ロジックを分離します。 着信メッセージのビジネス・プロセスを、別のエンタープライズ Bean で代行するようにメッセージ駆動型 Bean を開発する必要があります。そうすることにより、メッセージ処理とビジネス・プロセスを明確に分離することができます。 さらに、ビジネス・プロセスを、着信メッセージの到着により呼び出したり、あるいは WebSphere J2EE クライアントなどから呼び出したりできるようになります。
- セキュリティーを構成するかどうかを決定します。 リスナーが処理中の宛先に到着するメッセージは、クライアント信任状に関連付けられていません。つまり、メッセージは匿名です。 セキュリティーは、メッセージ駆動型 Bean の RunAs ID が EJB コンポーネントとして指定するロールによって決まります。 EJB セキュリティーについて詳しくは、EJB コンポーネント・セキュリティーを参照してください。
- デフォルトのメッセージング・プロバイダーによる、ベスト・エフォート非パーシスタント・メッセージの処理方法を理解します。 非トランザクションのメッセージ駆動型 Bean がある場合、システムは、メッセージ駆動型 Bean の開始時または完了時のいずれかの時点で、メッセージを削除します。 メッセージ駆動型 Bean が例外を生成し、そのために Bean が完了しない場合、システムは以下のいずれかのアクションを実行します。
- システムが、メッセージ駆動型 Bean の完了時にメッセージを削除するように構成されている場合、メッセージはメッセージ駆動型 Bean の新規インスタンスにディスパッチされるため、別のタイミングで処理されます。
- システムが、メッセージ駆動型 Bean の開始時にメッセージを削除するように構成されている場合、メッセージは失われます。
サービスの品質がベスト・エフォート非パーシスタントに設定されている場合、メッセージ駆動型 Bean が開始するときにメッセージは削除されます。他のすべてのサービスの品質の場合、メッセージはメッセージ駆動型 Bean が完了するときに削除されます。
関連タスク:
関連資料:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tmb_desap
ファイル名:tmb_desap.html