SHOEISHA iD

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

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

Java Message Service再入門

今からでも遅くない JMSを学ぼう!(前編)
非同期通信の世界へようこそ

同期的でないと不安である感情から解放されましょう

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

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

デスティネーション(送信先リソース)の設定

 [リソース]-[JMSリソース]を選択すると表示される[送信先リソース]をクリックすると図10のような画面が表示されます。まだデスティネーションを作成していないため、デスティネーションは何も表示されていません。

図10.デスティネーション一覧画面
図10.デスティネーション一覧画面

 [新規]ボタンをクリックすると図11のようなデスティネーションの設定画面が表示されます。図12が設定後の画面です。[JNDI名]には「jms/SampleQueue」を指定します。「jms/」以降は分かりやすい名称であれば何でも結構です。

図11.デスティネーション設定初期画面
図11.デスティネーション設定初期画面
図12.デスティネーション設定後画面
図12.デスティネーション設定後画面

 次の[物理送信先名]は少し分かりづらいですが、図13のように左ペインで[設定]-[Javaメッセージサービス]-[JMSホスト]を開くと「default_JMS_host」が表示されているはずです。この名称を[物理送信先名]に指定します。運用環境では必須項目ですが、テスト環境では任意の項目です。管理コンソールでは必須になっているため、設定ファイルを直接修正する必要があります。詳しくはヘルプの[JMS物理送信先を削除する]を参照ください。

図13.物理送信先名
図13.物理送信先名

 [リソースタイプ]は選択リストが出てきます。その中の「javax.jms.Queue」を選択します。これで必須項目の設定は完了しました。

 [了解]ボタンをクリックすると図14のように送信先リソースの一覧画面が表示され、作成した送信先リソースのJNDI名「jms/SampleQueue」が追加されているのが分かります。

図14.設定完了後デスティネーション一覧画面
図14.設定完了後デスティネーション一覧画面

設定後のGlassFishの再起動

 Javaアプリケーションの場合、GlassFish上では動作しないと記述して矛盾していると感じた方もいると思います。ただし、GlassFishにMOMが取り込まれている以上、GlassFishの管理コンソールで設定した内容は再起動しないと反映されません。このことに気づかないと、送信側のプログラムを起動した際に、JMS関連の非常に難解なエラーメッセージに悩まされます。

 また、物理送信先名の指定もしないと同様なエラーメッセージが出てきます。物理送信先名に何を設定していいか説明したサイトやマニュアル(記述箇所があったらすみません、連絡ください)がないため非常に苦労するところです。

 起動した時のログが図15です。分かりやすいように行番号を振っています。基本的にエラーが出ていたらJMSは正常に動作しません。1行目はJMSがlocalhost(Europa)の7676ポートで動作していることが分かります。6行目の「Broker has been started」と7行目が表示されていれば、正常に動作しています。

 ただし、これらのメッセージはJMSの設定をしていない場合も全く同じように出力されます。つまり、設定を変更した場合、異常があればこれらのメッセージとは異なったものが表示されます。その場合は設定を見直してください。

図15.GlassFish再起動時のログ(JMS部分を抜粋)
001:JMS Service Connection URL is :mq://Europa:7676/
002:MQJMSRA_RA1101:  Using old JMSRA DIRECT mode
003:MQJMSRA_RA1101: SJSMQ JMS Resource Adapter starting...
004:new broker instance constructed ...
005:Client runtime Starting embedd broker, direct mode enabled=true
006:MQJMSRA_EB1101: stateChanged:READY : Broker has been started
007:MQJMSRA_RA1101: SJSMQ JMSRA Started:RADIRECT

次のページ
コーディング

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

  • 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/4975 2010/04/09 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング