SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Java Message Service再入門

今からでも遅くない JMSを学ぼう!(後編)
Message-Driven Beanの世界へ

MDBを使いアプリどうしを非同期通信します

  • X ポスト
  • このエントリーをはてなブックマークに追加

ダウンロード サンプルコード (2.9 KB)

MDBを使っての実装

 前書きが長くなりました。実際にプログラムを記述しながら、MDBの詳細を説明します。MDBを実装するには以下のメソッドをコーディングする必要があります。

MDBで実装すべきメソッド

  1. ejbCreateメソッド:
    EJB 3.0から記述が不要になりました。以前のバージョンで注意すべきことを説明します。ejbCreateメソッドはEJBコンテナが管理するMDBのライフサイクルに関連するメソッドです。EJBコンテナは管理オブジェクトであるコネクションファクトリとデスティネーションを検索し、コネクションの生成を行います。したがって、MDB自体ではこれらのコーディングは不要となります。実際にはオブジェクト生成時に行いたい処理をコーディングします。特に実行したい処理がなければ当メソッドを再定義する必要はありません。
  2. ejbRemoveメソッド:
    EJB 3.0から記述が不要になりました。ejbRemoveメソッドはEJBコンテナが管理するMDBのライフサイクルに関連するメソッドです。EJBコンテナはコネクションをクローズします。前編でも触れましたが、コネクションをクローズするとそれに関連するセッション、メッセージプロデューサ、メッセージコンシューマもクローズします。したがって、MDB自体ではこれらのコーディングは不要となります。実際にはオブジェクト削除時に行いたい処理をコーディングします。特に実行したい処理がなければ当メソッドを再定義する必要はありません。
  3. setMessageDrivenContextメソッド:
    EJB 3.0から記述が不要になりました。名称通り、MessageDrivenContextオブジェクトを設定します。MessageDrivenContextオブジェクト自体はトランザクション管理のメソッドを持っています。
  4. onMessageメソッド:
    メッセージを処理するロジックをコーディングします(JavaアプリケーションでのonMessageと同様に、デスティネーションがメッセージを配信します。メッセージをデスティネーションに取りに行くことはありません)。EJBコンテナはonMessageメソッドを呼び出す前に、メッセージコンシューマを生成し、デプロイ時にMDBと管理オブジェクトであるコネクションファクトリとデスティネーションを関連付けます。また、メッセージリスナを登録します。その後コーディングしたロジックを実行します。

ライフサイクル

 EJB 3.0では、必須な実装がデフォルトコンストラクタとonMessageメソッドだけになったため、特にライフサイクルを意識する必要はありません。EJB 3.0以前では、EJBコンテナは上記メソッドを3、1、4、2の順に呼び出します。業務で使用するような場合、4は繰り返し呼び出されることになり、終了する場合、2が呼び出されることになります。

MDBの実装

新規プロジェクトを作成

 NetBeansで[ファイル]-[新規プロジェクト]を選択すると[新規プロジェクト]画面が表示されます。[カテゴリ]欄から[Java EE]を選択します。

 [プロジェクト]欄には7つ選択候補が表示されますが[エンタープライズアプリケーション]を選択すると[新規 エンタープライズアプリケーション]画面が表示されます。[プロジェクト名]は任意ですが、ここでは「MDBSample01」と入力します。

 新たに[サーバーと設定]画面が表示されます。デフォルトのままでよいと思いますが、念のため説明します。

 [サーバー]はドロップダウンリストになっており「GlassFish v2.1」を選択します。[Java EE バージョン]もドロップダウンリストになっており「Java EE 5」を選択します。これ以前を選択するとMDBの実装方法が説明と大きく異なるため「Java EE 5」を選択してください。[EJBモジュールを作成]と[Webアプリケーションモジュールを作成]のチェックボックスにチェックを入れます。[完了]ボタンをクリックするとプロジェクトができます。NetBeansの左ペインの[プロジェクト]タブは図1のようになっているはずです。

図1.新規プロジェクト[MDBSample01]
図1.新規プロジェクト[MDBSample01]

次のページ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Java Message Service再入門連載記事一覧
この記事の著者

川久保 智晴(カワクボ トモハル)

haruプログラミング教室(https://haru-idea.jp/)主宰。COBOL、FORTRANで13年、Javaを中心としたWeb開発で11年。3つしか言語知らないのかというとそうでもなく、sed/awk、Perl、Python, PHP,  C#, JavaScriptなども一時期は業...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5018 2010/04/15 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング