ページの先頭行へ戻る
Interstage Application Server Java EE運用ガイド(Java EE 6編)
Interstage

3.5.1 Message-driven Beanの実行環境

Message-driven Beanは、JMSメッセージまたはリソースアダプタのメッセージを受信して処理するEJBアプリケーションです。

EJBコンテナは、Message-driven Beanが対象とする宛先にメッセージが到着すると、そのメッセージを受信してMessage-driven Beanのインスタンスを呼び出してビジネスロジックを実行します。
Message-driven Beanに記述されたメッセージリスナーメソッド(JMSの場合はonMessageメソッド)でメッセージを処理します。Message-driven Beanは、Session BeanまたはJava Persistence APIを呼び出すか、DBMSが提供するデータベース操作命令(JDBCドライバ)を直接呼び出してデータベース処理を行います。

以下にMessage-driven Beanの位置づけを示します。以下はJMSメッセージを受信する場合の構成図です。



Message-driven Beanはメッセージを受信する対象としてJMSからメッセージを受信するか、リソースアダプタからメッセージを受信するか選択できます。

JMSからメッセージを受信する場合

JMSからメッセージを受信する場合、Message-driven Beanがメッセージ受信対象とする定義済みの以下の2つを指定する必要があります。

以下にそれぞれの指定方法について説明します。


JMS接続ファクトリの指定

JMSプロバイダにアクセスするには、JMS接続ファクトリが必要です。Message-driven Beanが対象とするJMS接続ファクトリを指定するには、JMS接続ファクトリのJNDI名をInterstage EJB application deployment descriptor (glassfish-ejb-jar.xml)ファイルの<ejb><mdb-connection-factory>タグに指定します。定義詳細については、「4.2.1.2 Interstage EJB application deployment descriptor (glassfish-ejb-jar.xml)」を参照してください。JMS接続ファクトリの作成方法とチューニング機能については、「5.11.3 JMSのメッセージを送受信する準備」を参照してください。


JMS送信先リソースの指定

Message-driven Beanが使用するJMS送信先リソースのJNDI名を指定します。
JMS送信先リソースの作成については、「5.11.3 JMSのメッセージを送受信する準備」を参照してください。
Message-driven Beanが使用するJMS送信先リソースの指定場所を、以下に示します。

定義の優先度

指定場所

使用パターン

1

ejb-jar.xmlファイルの<message-driven-bean>の<mapped-name>

アノテーションを使用しない、または上書きしたい場合。

2

ソース内の@MessageDrivenのmappedName属性

開発時にアノテーションを採用し運用環境上のJNDI名が既知の場合。


サブスクライバ識別名の指定

Message-driven BeanがPublish/Subscribeモデルの場合は、サブスクライバの永続性を指定できます。サブスクライバの永続性の詳細については、EJB規約を参照してください。

サブスクライバの永続性を「Durable」に指定する場合は、サブスクライバの識別名を指定します。詳細については、EJB規約を参照してください。


注意

サブスクライバの永続性を「Durable」に指定する場合の注意事項

サブスクライバの永続性を「Durable」に指定した場合、Message-driven Beanの初回起動時に「サブスクライバの識別名」に設定された名前で永続サブスクリプションを登録します。永続サブスクリプションが必要なくなった場合は、imqcmd destroy durコマンドで削除してください。

リソースアダプタからメッセージを受信する場合

リソースアダプタからメッセージを受信する場合、Interstage EJB application deployment descriptor(glassfish-ejb-jar.xml)の<resource-adapter-mid>タグに使用するリソースアダプタ名を指定します。<resource-adapter-mid>タグを指定しない場合、または空の文字列か「jmsra」を指定した場合は、メッセージを受信する対象としてJMSが選択されます。リソースアダプタ名については「5.12.1 コネクタモジュールの配備とリソース定義の作成」を、定義詳細については「4.2.1.2 Interstage EJB application deployment descriptor (glassfish-ejb-jar.xml)」を参照してください。
チューニング機能、複数プロセスでの運用や使用時の注意事項については、リソースアダプタ提供元のマニュアルも参照してください。