デスティネーション(送信先リソース)の設定
[リソース]-[JMSリソース]を選択すると表示される[送信先リソース]をクリックすると図10のような画面が表示されます。まだデスティネーションを作成していないため、デスティネーションは何も表示されていません。
[新規]ボタンをクリックすると図11のようなデスティネーションの設定画面が表示されます。図12が設定後の画面です。[JNDI名]には「jms/SampleQueue」を指定します。「jms/」以降は分かりやすい名称であれば何でも結構です。
次の[物理送信先名]は少し分かりづらいですが、図13のように左ペインで[設定]-[Javaメッセージサービス]-[JMSホスト]を開くと「default_JMS_host」が表示されているはずです。この名称を[物理送信先名]に指定します。運用環境では必須項目ですが、テスト環境では任意の項目です。管理コンソールでは必須になっているため、設定ファイルを直接修正する必要があります。詳しくはヘルプの[JMS物理送信先を削除する]を参照ください。
[リソースタイプ]は選択リストが出てきます。その中の「javax.jms.Queue」を選択します。これで必須項目の設定は完了しました。
[了解]ボタンをクリックすると図14のように送信先リソースの一覧画面が表示され、作成した送信先リソースのJNDI名「jms/SampleQueue」が追加されているのが分かります。
設定後のGlassFishの再起動
Javaアプリケーションの場合、GlassFish上では動作しないと記述して矛盾していると感じた方もいると思います。ただし、GlassFishにMOMが取り込まれている以上、GlassFishの管理コンソールで設定した内容は再起動しないと反映されません。このことに気づかないと、送信側のプログラムを起動した際に、JMS関連の非常に難解なエラーメッセージに悩まされます。
また、物理送信先名の指定もしないと同様なエラーメッセージが出てきます。物理送信先名に何を設定していいか説明したサイトやマニュアル(記述箇所があったらすみません、連絡ください)がないため非常に苦労するところです。
起動した時のログが図15です。分かりやすいように行番号を振っています。基本的にエラーが出ていたらJMSは正常に動作しません。1行目はJMSがlocalhost(Europa)の7676ポートで動作していることが分かります。6行目の「Broker has been started」と7行目が表示されていれば、正常に動作しています。
ただし、これらのメッセージは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