読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

JMSについてメモ

<スポンサーリンク>

Java Messaging Serviceとは

JMSはクライアントから送信されたメッセージをサーバに蓄え、そのメッセージのヘッダに書かれた宛先に配送するサービスのこと。
宛先のサーバがダウンした場合でも、再度メッセージを配送してくれる。
分散システムの構築というか、ネットワークで分散したサーバ同士をJMSでつなぐことで、障害に強い非同期処理に適したシステムを構築することができる。
非同期処理っていったけど、そう、メッセージ駆動型Bean(通称MDB)は非同期メッセージをサポートする。
非同期っていうのは、クライアントがメッセージを送信したら、宛先の処理の終了を待たずに、制御がクライアントに戻るということ。
つまり、クライアントからサーバに対して、レスポンスに時間がかかりそうな重い処理を依頼したとしても、クライアントは待たされずにすむということだ。

メッセージの構造

JMSメッセージはjavax.jms.Messageインターフェースを実装するオブジェクト。
ヘッダ、プロパティ、本体から構成される。

JMSメッセージは5種類あって、以下の通り。
・BytesMessage:バイトストリームを含むメッセージ
・MapMessage:複数の名前-値を含むメッセージ
・ObjectMessage:シリアライズ可能なオブジェクト
・StreamMessage:Javaオブジェクトのストリームを含むメッセージ
・TexeMessage:文字列を含むメッセージ
ここで注目すべきは、ObjectMessage。
つまり、JavaのオブジェクトもJMSで送信することができるということだ。
これによって、異なるサーバ間でオブジェクトを共有する(=同期する)ことができる。

JBossデプロイメント記述子の軽いまとめ

JBossには、グローバルなJNDI名の登録や外部リソース名の登録などを指定するために、JBoss固有のデプロイメント記述子を用意している。

これはEJBモジュール用のデプロイメント記述子。
JNDI名など、ejb-jar.xmlに記述できないJBossサーバ固有の設定情報が記述される。
置く場所は、myejb.jar/META-INF/jboss.xmlのように、META-INF直下に置く。

  • jboss-web.xml

Webモジュール用のデプロイメント記述子。
こちらもJNDI名などJBossサーバ固有の設定情報を記述する。