• 検索結果がありません。

jms.book

N/A
N/A
Protected

Academic year: 2021

シェア "jms.book"

Copied!
221
0
0

読み込み中.... (全文を見る)

全文

(1)

BEA

WebLogic

Server

WebLogic JMS

プログラ マーズ

ガイ ド

(2)

著作権

Copyright © 2002, BEA Systems, Inc. All Rights Reserved.

限定的権利条項

本ソフトウェアおよびマニュアルは、BEA Systems, Inc. 又は日本ビー・イー・エー・システムズ 株式会社(以下、「BEA」といいます)の使用許諾契約に基づいて提供され、その内容に同意す る場合にのみ使用することができ、同契約の条項通りにのみ使用またはコピーすることができま す。同契約で明示的に許可されている以外の方法で同ソフトウェアをコピーすることは法律に違 反します。このマニュアルの一部または全部を、BEA からの書面による事前の同意なしに、複 写、複製、翻訳、あるいはいかなる電子媒体または機械可読形式への変換も行うことはできませ ん。 米国政府による使用、複製もしくは開示は、BEA の使用許諾契約、および FAR 52.227-19 の 「Commercial Computer Software-Restricted Rights」条項のサブパラグラフ (c)(1)、DFARS

252.227-7013 の「Rights in Technical Data and Computer Software」条項のサブパラグラフ (c)(1)(ii) 、NASA FAR 補遺 16-52.227-86 の「Commercial Computer Software--Licensing」条項の サブパラグラフ (d)、もしくはそれらと同等の条項で定める制限の対象となります。 このマニュアルに記載されている内容は予告なく変更されることがあり、また BEA による責務を 意味するものではありません。本ソフトウェアおよびマニュアルは「現状のまま」提供され、商 品性や特定用途への適合性を始めとする(ただし、これらには限定されない)いかなる種類の保 証も与えません。さらに、BEA は、正当性、正確さ、信頼性などについて、本ソフトウェアまた はマニュアルの使用もしくは使用結果に関していかなる確約、保証、あるいは表明も行いません。

商標または登録商標

BEA, Jolt, Tuxedo, および WebLogic は BEA Systems, Inc. の登録商標です。BEA Builder, BEA Campaign Manager for WebLogic, BEA eLink, BEA Manager, BEA WebLogic Commerce Server, BEA WebLogic Enterprise, BEA WebLogic Enterprise Platform, BEA WebLogic Express, BEA WebLogic Integration, BEA WebLogic Personalization Server, BEA WebLogic Platform, BEA WebLogic Portal, BEA WebLogic Server, BEA WebLogic Workshop および How Business Becomes E-Business は、 BEA Systems, Inc の商標です。

(3)

目次

このマニュアルの内容

対象読者...xii

e-docs Web サイト ...xii

このマニュアルの印刷方法 ... xii 関連情報...xiii サポート情報 ...xiii 表記規則...xiv

1.

WebLogic JMS

の概要

JMS とは...1-1 Java 仕様の実装...1-2 J2EE 仕様...1-2 JMS 仕様...1-2 WebLogic JMS の機能 ...1-3 WebLogic JMS のアーキテクチャ ...1-4 主要な構成要素 ...1-5 クラスタ化機能 ...1-5 WebLogic JMS の拡張機能...1-7 WebLogic Server 7.0 における JMS の拡張機能...1-9 高可用性拡張機能 ...1-9 WebLogic クラスタ内の分散送り先...1-9 フロー制御 ...1-10 WebLogic メッセージング ブリッジ...1-10 メッセージ ページング ...1-10

2.

WebLogic JMS

の基礎

メッセージング モデル...2-2 ポイント ツー ポイント メッセージング...2-2 パブリッシュ / サブスクライブ メッセージング ...2-3 メッセージの永続性 ...2-4 WebLogic JMS のクラス ...2-5

(4)

ConnectionFactory ...2-6 Connection...2-8 Session ...2-10 非トランザクション セッション ...2-11 トランザクション セッション ...2-12 Destination...2-13 送り先の分散 ...2-15 MessageProducer と MessageConsumer ...2-15 Message ...2-17 メッセージ ヘッダ フィールド ...2-17 メッセージ プロパティ フィールド...2-22 メッセージ本文 ...2-23 ServerSessionPoolFactory...2-24 ServerSessionPool ...2-24 ServerSession ...2-25 ConnectionConsumer ...2-25

3.

WebLogic JMS

の管理

WebLogic JMS のコンフィグレーション ...3-1 WebLogic JMS のクラスタ化のコンフィグレーション ...3-3 JMS クラスタ化の仕組み ...3-3 JMS クラスタ化のネーミング要件...3-4 クラスタ内での JMS 分散送り先...3-5 クラスタ内での移行可能なサービスとしての JMS ...3-5 JMS クラスタ化のコンフィグレーションのガイドライン...3-5 フェイルオーバの場合...3-6 JMS 移行可能対象のコンフィグレーション ...3-7 JMS 移行の仕組み...3-8 JMS サーバ移行のコンフィグレーション手順...3-8 永続ストレージの移行 ...3-9 移行のフェイルオーバ ...3-10 WebLogic JMS のチューニング ...3-10

(5)

4.

WebLogic JMS

アプリケーションの開発

アプリケーション開発フロー ...4-2 必要なパッケージのインポート...4-3 JMS アプリケーションの設定...4-4 手順 1 :JNDI で接続ファクトリをルックアップする ...4-6 手順 2 : 接続ファクトリを使用して接続を作成する...4-7 キュー接続の作成 ...4-7 トピック接続の作成 ...4-8 手順 3 : 接続を使用してセッションを作成する ...4-8 キュー セッションの作成...4-9 トピック セッションの作成...4-9 手順 4 : 送り先 ( キューまたはトピック ) をルックアップする...4-10 送り先ルックアップ時のサーバ アフィニティ ...4-11 手順 5 : セッションと送り先を使用してメッセージ プロデューサとメッ セージ コンシューマを作成する ...4-12 QueueSender と QueueReceiver の作成 ...4-12 TopicPublisher と TopicSubscriber の作成 ...4-13 手順 6a : メッセージ オブジェクトを作成する ( メッセージ プロデューサ ) ...4-15 手順 6b : 非同期メッセージ リスナを登録する ( オプション ) ( メッセー ジ コンシューマ ) ...4-16 手順 7 : 接続を開始する ...4-17 例 :PTP アプリケーションの設定...4-17 例 :Pub/Sub アプリケーションの設定 ...4-21 メッセージの送信 ...4-23 手順 1 : メッセージ オブジェクトを作成する...4-24 手順 2 : メッセージを定義する...4-24 手順 3 : メッセージを送り先に送信する...4-25 キュー センダを使用してメッセージを送信する ...4-25 TopicPublisher を使用してメッセージを送信する...4-27 メッセージ プロデューサ属性の設定...4-28 例 : PTP アプリケーション内でのメッセージの送信 ...4-30 例 : Pub/sub アプリケーション内でのメッセージの送信 ...4-30 メッセージの受信 ...4-31 メッセージの非同期受信...4-31

(6)

非同期メッセージ パイプライン ...4-32 メッセージの同期受信...4-33 例 : PTP アプリケーション内でのメッセージの同期受信...4-34 例 : Pub/sub アプリケーション内でのメッセージの同期受信...4-34 受信メッセージの回復...4-35 受信メッセージの確認応答 ...4-35 オブジェクト リソースの解放...4-36 ロールバック、回復、または期限切れとなったメッセージの管理 ...4-37 メッセージの再配信遅延の設定 ...4-38 再配信遅延の設定 ...4-38 送り先での再配信遅延のオーバーライド...4-39 メッセージの再配信制限の設定 ...4-39 メッセージの再配信制限のコンフィグレーション...4-40 配信されなかったメッセージに対するエラー送り先のコンフィグ レーション ...4-40 パッシブなメッセージの有効期限ポリシー ...4-41 メッセージ配信時間の設定 ...4-41 プロデューサに対する配信時間の設定...4-41 メッセージに対する配信時間の設定...4-42 配信時間のオーバーライド ...4-43 存続時間の値との関係 ...4-43 相対配信時間のオーバーライドの設定...4-43 スケジューリング済み配信時間のオーバーライドの設定 ...4-43 JMS スケジュール インタフェース...4-46 接続の管理...4-47 接続例外リスナの定義...4-47 接続メタデータへのアクセス ...4-48 接続の開始、停止、クローズ ...4-49 セッションの管理...4-50 セッション例外リスナの定義 ...4-50 セッションのクローズ...4-52 送り先の動的作成...4-53

(7)

一時的なトピックの作成...4-56 一時的な送り先の削除 ...4-56 恒久サブスクリプションの設定...4-57 永続ストアの定義 ...4-58 クライアント ID の定義 ...4-58 恒久サブスクリプション用のサブスクライバの作成 ...4-60 恒久サブスクリプションの削除 ...4-61 恒久サブスクリプションの変更 ...4-61 恒久サブスクリプションの管理 ...4-62 メッセージ ヘッダ フィールドおよびメッセージ プロパティ フィールドの設 定と参照 ...4-62 メッセージ ヘッダ フィールドの設定...4-63 メッセージ プロパティ フィールドの設定 ...4-66 メッセージ ヘッダ フィールドおよびメッセージ プロパティ フィールド の参照 ...4-69 メッセージのフィルタ処理 ...4-71 SQL 文を使用したメッセージ セレクタの定義 ...4-72 XML セレクタ メソッドを使用した XML メッセージ セレクタの定義 . 4-72 メッセージ セレクタの表示...4-74 トピック サブスクライバのメッセージ セレクタにインデックスを付け ることによるパフォーマンスの最適化...4-74 サーバ セッション プールの定義...4-76 手順 1 : JNDI でサーバ セッション プール ファクトリをルックアップす る...4-78 手順 2 : サーバ セッション プール ファクトリを使用してサーバ セッショ ン プールを作成する ...4-79 キュー接続コンシューマで使用するサーバ セッション プールを作 成する...4-80 トピック接続コンシューマで使用するサーバ セッション プールを 作成する ...4-80 手順 3 : 接続コンシューマを作成する ...4-81 キュー用の接続コンシューマを作成する...4-81 トピック用の接続コンシューマを作成する ...4-82 例 : PTP クライアントのサーバ セッション プールの設定...4-83 例 : Pub/Sub クライアントのサーバ セッション プールの設定 ...4-85

(8)

マルチキャストの使い方 ...4-87 手順 1 : JMS アプリケーションを設定し、マルチキャスト セッションと トピック サブスクライバを作成する...4-89 手順 2 : メッセージ リスナを設定する...4-90 マルチキャストのコンフィグレーション属性の動的コンフィグレーショ ン...4-91 例 : マルチキャスト TTL ( 存続時間 ) ...4-92 分散送り先の使用...4-94 分散送り先へのアクセス ...4-94 分散キューのルックアップ...4-95 分散トピックのルックアップ ...4-97 分散送り先メンバーへのアクセス...4-101 分散送り先におけるメッセージのロード バランシング ...4-101 ロード バランシング オプション ...4-102 コンシューマのロード バランシング...4-103 プロデューサのロード バランシング...4-103 ロード バランシングのヒューリスティック ...4-104 ロード バランシングの回避...4-105 [サーバ アフィニティを有効化 ] 属性を使用した場合の分散送り先 のロード バランシングへの影響 ...4-106 分散送り先の移行 ...4-109 分散送り先のフェイルオーバ ...4-110

5.

WebLogic JMS

によるトランザクションの使い方

トランザクションの概要 ...5-1 JMS トランザクション セッションの使い方...5-3 手順 1 : JMS アプリケーションを設定し、トランザクション セッション を作成する...5-4 手順 2 : 必要な処理を実行する...5-4 手順 3 : JMS トランザクション セッションをコミットまたはロールバッ クする ...5-5 JTA ユーザ トランザクションの使い方 ...5-5 手順 1 : JMS アプリケーションを設定し、非トランザクション セッショ

(9)

手順 4 : 必要な処理を実行する...5-8 手順 5 : JTA ユーザ トランザクションをコミットまたはロールバックす る...5-9 メッセージ駆動型 Bean を使用した JTA ユーザ トランザクション内の非同期 メッセージング ...5-9 例 : JTA ユーザ トランザクションにおける JMS と EJB ...5-10

6.

WebLogic JMS

アプリケーションの移植

既存の機能の変更点...6-1 5.1 と 6.0 の既存の機能の変更点...6-2 6.0 と 6.1 の既存の機能の変更点...6-7 既存のアプリケーションの移植...6-9 始める前に...6-9 4.5 および 5.1 アプリケーションのバージョン 6.x への移植手順...6-10 6.0 アプリケーションの 6.1 への移植手順 ...6-12 6.x アプリケーションの 7.0 への移植手順 ...6-13 JDBC データベース ストアの削除 ...6-13

A.

コンフィグレーション

チェックリスト

サーバ クラスタ ... A-2 JTA ユーザ トランザクション ...A-2 JMS トランザクション ...A-2 メッセージの配信 ...A-3 非同期メッセージの配信 ...A-3 永続的メッセージ ...A-3 メッセージの並行処理... A-4 マルチキャスト ...A-5 恒久サブスクリプション ...A-5 送り先のソート順 ...A-6 一時的な送り先 ...A-6 しきい値と割り当て...A-7

B. JDBC

データベース

ユーティリティ

概要 ... B-1 JMS テーブルについて ... B-1 JDBC データベース ストアの再生成... B-2

(10)
(11)

このマニュ アルの内容

こ のマニ ュ アルでは、 BEA WebLogic Server™ プ ラ ッ ト フ ォームで Java™ Messaging Service (JMS) を実装し てエン タープ ラ イ ズ メ ッ セ ージ ング シ ス テ ムにア ク セスする方法について説明し ます。

こ のマニ ュ アルの構成は次の と お り です。

 第 1 章 「WebLogic JMS の概要」 では、 WebLogic Java Message Service (JMS) について概説し ます。  第 2 章 「WebLogic JMS の基礎」 では、 WebLogic JMS の コ ンポーネン ト お よび機能について説明し ます。  第 3 章 「WebLogic JMS の管理」 では、 WebLogic JMS の コ ン フ ィ グ レー シ ョ ンおよびモニ タについて概説し ます。  第 4 章 「WebLogic JMS アプ リ ケーシ ョ ンの開発」 では、 WebLogic JMS ア プ リ ケーシ ョ ン を開発する方法について説明し ます。  第 5 章 「WebLogic JMS によ る ト ラ ンザ ク シ ョ ンの使い方」 では、 WebLogic JMS で ト ラ ンザ ク シ ョ ンを使用する方法について説明し ます。  第 6 章 「WebLogic JMS アプ リ ケーシ ョ ンの移植」 では、 WebLogic JMS ア プ リ ケーシ ョ ン を WebLogic Server の新 リ リ ースへ移植する方法について説 明し ます。  付録 A 「コ ン フ ィ グ レーシ ョ ン チェ ッ ク リ ス ト 」 では、 各種 JMS 機能のモ ニ タ チェ ッ ク リ ス ト を提供し ます。  付録 B 「JDBC データベース ユーテ ィ リ テ ィ 」 では、 JDBC データベース ユーテ ィ リ テ ィ を使用し て、 新し い JDBC ス ト アを生成し た り 、 ま た削除し た り する方法を説明し ます。

(12)

対象読者

こ のマニ ュ アルは、 Sun Microsystems の Java 2 Platform, Enterprise Edition (J2EE) を使用し て JMS アプ リ ケーシ ョ ン を設計、 開発、 コ ン フ ィ グ レーシ ョ ン、 および管理する アプ リ ケーシ ョ ン開発者を対象 と し てい ます。 JMS、 JNDI (Java Naming and Directory Interface)、 Java プ ロ グ ラ ミ ング言語、 エン タープ ラ イ ズ JavaBeans™ (EJB™)、 および J2EE 仕様の Java Transaction API (JTA) に 読者が精通し てい る こ と を前提 と し て書かれています。

e-docs Web

サイ ト

BEA 製品の ド キ ュ メ ン ト は、 BEA の Web サ イ ト で入手でき ます。 BEA のホー ム ページで [ 製品の ド キ ュ メ ン ト ] を ク リ ッ ク し ます。 ま たは、 WebLogic Server 製品 ド キ ュ メ ン ト ページ (http://edocs.beasys.co.jp/e-docs/index.html) を 直接表示し て く だ さ い。

このマニュ アルの印刷方法

Web ブ ラ ウザの [ フ ァ イ ル|印刷 ] オプシ ョ ン を使用する と 、 Web ブ ラ ウザか ら こ のマニ ュ アルを一度に 1 章ずつ印刷で き ます。 こ のマニ ュ アルの PDF 版は、 Web サ イ ト で入手でき ます。 PDF を Adobe Acrobat Reader で開 く と 、 マニ ュ アルの全体 (ま たは一部分) を書籍の形式で印 刷で き ます。 PDF を表示するには、 WebLogic Server ド キ ュ メ ン ト のホーム ペー ジ を開き、 [ ド キ ュ メ ン ト のダ ウ ン ロー ド ] を ク リ ッ ク し て、 印刷する マニ ュ ア ルを選択し ます。

(13)

関連情報

BEA の Web サ イ ト では、 WebLogic Server の全マニ ュ アルを提供し ています。 JMS の詳細については、 Sun Microsystems Web サ イ ト の以下の場所にあ る JMS 仕様および Javadoc にア ク セス し て く だ さ い。 http://java.sun.com/products/jms/docs.html

サポー ト 情報

BEA の ド キ ュ メ ン ト に関する ユーザか ら のフ ィ ー ド バ ッ ク は弊社に と っ て非常 に重要です。 質問や意見などがあれば、 電子 メ ールで docsupport-jp@beasys.com ま でお送 り く だ さ い。 寄せら れた意見については、 WebLogic Server の ド キ ュ メ ン ト を作成および改訂する BEA の専門の担当者が直に目を通し ます。 電子 メ ールの メ ッ セージには、 ご使用の ソ フ ト ウ ェ アの名前 と バージ ョ ン、 およ び ド キ ュ メ ン ト の タ イ ト ル と 日付をお書き添え く だ さ い。 本バージ ョ ンの BEA WebLogic Server について不明な点があ る場合、 または BEA WebLogic Server の

イ ン ス ト ールおよび動作に問題があ る場合は、 BEA WebSupport (www.bea.com) を通じ て BEA カ ス タマ サポー ト までお問い合わせ く だ さ い。 カ ス タ マ サポー ト への連絡方法については、 製品パ ッ ケージに同梱 さ れてい る カ ス タ マ サポー ト カー ド に も記載さ れています。 カ ス タ マ サポー ト では以下の情報をお尋ねし ますので、 お問い合わせの際はあ ら か じ めご用意 く だ さ い。  お名前、 電子 メ ール ア ド レ ス、 電話番号、 フ ァ ク ス番号  会社の名前 と 住所  お使いの機種 と コー ド 番号  製品の名前 と バージ ョ ン  問題の状況 と 表示さ れ るエ ラー メ ッ セージの内容

(14)

表記規則

こ のマニ ュ アルでは、 全体を通し て以下の表記規則が使用さ れています。 表記法 適用 〔Ctrl〕 + 〔Tab〕 複数のキーを同時に押す こ と を示す。 斜体 強調ま たは書籍の タ イ ト ルを示す。 等幅テキスト コ ー ド サンプル、 コ マ ン ド と そのオプシ ョ ン、 デー タ構造体 と そ の メ ン バー、 データ 型、 デ ィ レ ク ト リ 、 お よびフ ァ イ ル名 と その 拡張子を示す。 等幅テキ ス ト はキーボー ド か ら 入力する テキ ス ト も 示す。 例 : import java.util.Enumeration; chmod u+w * config/examples/applications .java config.xml float 斜体の等幅テ キスト コ ー ド 内の変数を示す。 : String CustomerName; すべて大文 字のテキ ス ト デバ イ ス名、 環境変数、 およ び論理演算子を示す。 例 : LPT1 BEA_HOME OR 構文の中で複数の選択肢を示す。

(15)

[ ] 構文の中で任意指定の項目を示す。

例 :

java utils.MulticastTest -n name -a address [-p portnumber] [-t timeout] [-s send]

| 構文の中で相互に排他的な選択肢を区切 る。

例 :

java weblogic.deploy [list|deploy|undeploy|update]

password {application} {source}

... コ マンド ラ イ ンで以下のいずれかを示す。  引数を複数回繰 り 返す こ と がで き る 。  任意指定の引数が省略 さ れてい る。  パ ラ メ ー タや値な どの情報を追加入力で き る 。 . . . コー ド サンプルま たは構文で項目が省略 さ れてい る こ と を示す。 表記法 適用

(16)
(17)

1

WebLogic JMS

の概要

以下の節では、 BEA WebLogic Server の Java Message Service (JMS) について概 説し ます。  JMS と は  Java 仕様の実装  WebLogic JMS の機能  WebLogic JMS のアーキテ ク チャ  WebLogic JMS の拡張機能  WebLogic Server 7.0 におけ る JMS の拡張機能

JMS

とは

メ ッ セージ指向 ミ ド ル ウ ェ ア (Message-Oriented Middleware : MOM) と も呼ば れる エン タープ ラ イ ズ メ ッ セージ ング シ ス テム を使用する と 、 複数のアプ リ ケーシ ョ ンが メ ッ セージの交換を通じ て通信でき ます。 メ ッ セージ と は、 異な る アプ リ ケーシ ョ ン間の通信を調整する ために必要な情報が含まれてい る要求、 レ ポー ト 、 ま たはイベン ト の こ と です。 メ ッ セージで提供さ れ る抽象化の階層に よ り 、 送 り 先シ ス テムについての詳細情報を アプ リ ケーシ ョ ン コー ド か ら切 り 離 すこ と がで き ます。

Java Message Service (JMS) は、 エン タープ ラ イ ズ メ ッ セージング シ ス テ ムに ア ク セ スする ための標準の API です。 具体的な JMS の特長は以下の と お り です。

 メ ッ セージン グ シ ス テ ムを共有する Java アプ リ ケーシ ョ ン同士で メ ッ セー ジを交換で き ます。

 メ ッ セージ を作成、 送信、 および受信する ための標準イ ン タ フ ェースに よ り アプ リ ケーシ ョ ンの開発が容易にな り ます。

(18)

1 WebLogic JMS の概要 次の図は、 WebLogic JMS に よ る メ ッ セージン グの仕組みを示し ています。 図1-1 WebLogic JMS のメ ッ セージング 図で示 さ れている よ う に、 WebLogic JMS はプロデューサ アプ リ ケーシ ョ ンか ら メ ッ セージを受信し 、 受け取った メ ッ セージ を コ ンシ ューマ アプ リ ケーシ ョ ン に配信し ます。

Java

仕様の実装

WebLogic Server は、 以下の Java 仕様に準拠し ています。

J2EE

仕様

WebLogic Server 7.0 は、 Sun Microsystems の J2EE 1.3 仕様に準拠し てい ます。

JMS

仕様

WebLogic Server 7.0 は、JMS 仕様バージ ョ ン 1.0.2bに完全に準拠し てお り 、 そ

(19)

WebLogic JMS の機能

WebLogic JMS

の機能

WebLogic JMS では、 JMS API の完全な実装が提供さ れます。 具体的な WebLogic JMS の機能は以下の と お り です。  1 つの統一的な メ ッ セージング API を提供し ます。  JMS 仕様バージ ョ ン 1.0.2bに厳密に従っています。  ク ラ ス タ化をサポー ト し ます。  さ ま ざ ま なオペレーテ ィ ング シ ス テムおよびマシ ン アーキテ ク チャにま た がる アプ リ ケーシ ョ ンの メ ッ セージング をサポー ト し ます。

 WebLogic Administration Console で属性を設定し た り 、 JMS API を使用 し て 値をオーバラ イ ド し た り する こ と でコ ン フ ィ グ レーシ ョ ンで き ます。

 Java Transaction API (JTA) ト ラ ンザ ク シ ョ ンを使用し て、 JMS アプ リ ケー シ ョ ン と 他の リ ソース マネージ ャ (主にデータベース) 間の相互運用性を可 能に し ます。 分散 ト ラ ンザ ク シ ョ ンや、 2 フ ェーズ コ ミ ッ ト プ ロ ト コルのサ ポー ト も含まれます。 JMS アプ リ ケーシ ョ ンは、 WebLogic XA に準拠し な い メ ッ セージ ブ ローカな ど、 JTA を使用する他の Java API と の ト ラ ンザ ク シ ョ ンに参加する こ と も で き ます。

 XML (Extensible Markup Language) を含む メ ッ セージ をサポー ト し ます。

 マルチキ ャ ス ト をサポー ト し ます。 IP マルチキ ャ ス ト ア ド レ ス を使用し て、 選択し たホ ス ト のグループに メ ッ セージを配信で き ます。

 メ ッ セージの永続ス ト レージ と し てデータベース ま たはフ ァ イ ルを使用でき ます。

 エン タープ ラ イ ズ JavaBean (EJB)、 JDBC 接続プール、 サーブレ ッ ト 、 RMI など、 他の WebLogic Server API や機能 と 共に使用でき ます。

(20)

1 WebLogic JMS の概要

WebLogic JMS

のアーキテ ク チ ャ

次の図は、 WebLogic JMS のアーキテ ク チャ を示し ています。 図1-2 WebLogic JMS のアーキテクチャ

(21)

WebLogic JMS のアーキ テ ク チ ャ

主要な構成要素

1-4 ページの 「WebLogic JMS のアーキテ ク チャ」 の図で示さ れてい る よ う に、 WebLogic JMS Server のアーキテ ク チャは主に以下の要素で構成さ れています。  メ ッ セージン グ機能を実装する WebLogic JMS サーバ  ク ラ イ アン ト アプ リ ケーシ ョ ン

 サーバ ル ッ ク ア ッ プ機能を提供する JNDI (Java Naming and Directory Interface)  永続的な メ ッ セージ データ を格納する ための永続ス ト レージ (フ ァ イ ルま た はデータベース)

ク ラス タ化機能

WebLogic JMS のアーキテ ク チャでは、 ク ラ ス タ内のあ ら ゆ る サーバか ら送 り 先 への ク ラ ス タ ワ イ ド で透過的なア ク セス をサポー ト する こ と で、 複数の JMS サーバの ク ラ ス タ化が実装 さ れます。 WebLogic Server は、 ク ラ ス タ全体への JMS の送 り 先 と 接続フ ァ ク ト リ の配布をサポー ト する よ う にな り ま し た。 ただ し、 JMS ト ピ ッ ク およびキ ューが、 ク ラ ス タ内の個々の WebLogic Server イ ン ス タ ン スによ って管理 さ れる点は変わ り ません。 WebLogic JMS の ク ラ ス タ化の コ ン フ ィ グ レーシ ョ ンの詳細については、 3-3 ページの 「WebLogic JMS の ク ラ ス タ化の コ ン フ ィ グ レーシ ョ ン」 を参照し て く だ さ い。 WebLogic Server の ク ラ ス タ化の詳細については、 『WebLogic Server ク

ラ ス タ ユーザーズ ガ イ ド』 を参照し て く だ さ い。 ク ラ ス タ化の メ リ ッ ト は以下の と お り です。  ク ラ ス タ内の複数のサーバにわた る送 り 先の ロー ド バ ラ ンシ ング  管理者は、 複数の JMS サーバを コ ン フ ィ グ レーシ ョ ン し、 対象を使用し てそれ ら を定義済みの WebLogic Server に割 り 当て る こ と で、 ク ラ ス タ 内の複数のサーバにわた る送 り 先のロー ド バラ ンシン グ を確立でき ます。 各 JMS サーバは、 厳密に 1 つの WebLogic Server にデプロ イ さ れ、 複数 の送 り 先に対する要求を処理し ます。

(22)

1 WebLogic JMS の概要 注意: ロー ド バ ラ ンシン グは動的ではあ り ません。 コ ン フ ィ グ レーシ ョ ン の段階で、 シ ス テ ム管理者が JMS サーバの対象を指定し て ロー ド バ ラ ンシ ング を定義し ます。  管理者は、 ク ラ ス タ内の単一の分散送 り 先セ ッ ト の メ ンバー と し て、 複 数の物理的な送 り 先を コ ン フ ィ グ レーシ ョ ンする こ と も で き ます。 プ ロ デューサ と コ ンシ ューマは、 その分散送 り 先に対し て送受信する こ と が で き ます。 ク ラ ス タ内の 1 台のサーバに障害が発生し た場合、 WebLogic JMS は送 り 先セ ッ ト 内の使用可能な物理的送 り 先 メ ンバーすべてに負荷 を分散し ます。 分散送 り 先の詳細については、 『管理者ガ イ ド 』 の 「分散送 り 先の コ ン フ ィ グ レーシ ョ ン」 を参照し て く だ さ い。  ク ラ ス タ内のあ ら ゆ るサーバか ら の、 送 り 先への ク ラ ス タ ワ イ ド で透過的な ア ク セ ス システム管理者は、クラスタ内のあらゆるサーバから送り先へのクラスタワ イドで透過的なアクセスを確立できます。このようなアクセスを確立するに は、クラスタ内の各サーバ インスタンスに対してデフォルトの接続ファクト リを有効化するか、1 つまたは複数の接続ファクトリをコンフィグレーショ ンしてクラスタ内の 1 つまたは複数のサーバ インスタンスに割り当てます。 これにより、各接続ファクトリを複数の WebLogic Server にデプロイするこ とが可能になります。

アプ リ ケーシ ョ ンでは、 Java Naming and Directory Interface (JNDI) を使用 し て接続フ ァ ク ト リ をル ッ ク ア ッ プ し、 JMS サーバ と の通信を確立する ため の接続を作成し ます。 各 JMS サーバでは、 複数の送 り 先に対する要求が処 理 さ れます。 JMS サーバで処理 さ れない送 り 先への要求は、 適切なサーバに 転送さ れます。 接続フ ァ ク ト リ の詳細については、2-1 ページの 「WebLogic JMS の基礎」 を参照し て く だ さ い。  ス ケー ラ ビ リ テ ィ ス ケー ラ ビ リ テ ィ は以下の機能に よ って実現し ます。  前述し た、 ク ラ ス タ内の複数のサーバにわた る送 り 先の ロー ド バラ ンシ ング。

(23)

WebLogic JMS の拡張機能  マルチキ ャ ス ト のサポー ト (オプシ ョ ン)。 JMS サーバで配信し なければ な ら ない メ ッ セージの数が削減 さ れます。 JMS サーバでは、 サブス ク ラ イ ブ し てい る アプ リ ケーシ ョ ンの数に関係な く 、 マルチ キ ャ ス ト IP ア ド レ ス と 関連付け られている各ホ ス ト グループに対し て メ ッ セージが 1 コ ピーだけ転送さ れます。  移行性 「1 回限 り のサービ ス」 と し て、 WebLogic JMS は ク ラ ス タ化 さ れた環境に対 し て WebLogic Server に実装さ れてい る移行フ レーム ワー ク を活用し ます。 こ れに よ っ て、 WebLogic JMS は移行の要求に適切に応答し 、 JMS サーバを 適切にオン ラ イ ン / オフ ラ イ ンに切 り 替え る こ と がで き ます。 移行には、 ス ケジ ュー リ ン グ済み移行のほかに、 WebLogic Server の障害に応答し て発生 する移行が含まれます。 詳細については、3-7 ページの 「JMS 移行可能対象 のコ ン フ ィ グ レーシ ョ ン」 を参照し て く だ さ い。 注意: 自動フ ェ イルオーバは、 こ の リ リ ースの WebLogic JMS ではサポー ト さ れていません。 手動フ ェ イルオーバの実行の詳細については、3-12 ペー ジの 「WebLogic Server の障害か ら の回復」 を参照し て く だ さ い。

WebLogic JMS

の拡張機能

Sun Microsystems の JMS 仕様に よ る API に加えて、 WebLogic JMS には weblogic.jms.extensions と い う パブ リ ッ ク API が用意さ れています。 こ の API に

は、 以下の表で説明 さ れる拡張機能の ク ラ スや メ ソ ッ ド が含まれています。 拡張機能 詳細情報の参照先 XML メ ッ セージ を作成する 4-15 ページの 「手順 6a : メ ッ セージ オブジ ェ ク ト を作 成する ( メ ッ セージ プ ロデューサ )」 を参照 セ ッ シ ョ ン例外 リ スナを定義する 4-50 ページの 「セ ッ シ ョ ン例外 リ スナの定義」 を参照 事前に取得する 非同期 メ ッ セージの、 セ ッ シ ョ ンで許可 さ れ る 最大数を設定 ま たは表示する 4-91 ページの 「マルチキ ャ ス ト の コ ン フ ィ グ レーシ ョ ン属性の動的コ ン フ ィ グ レーシ ョ ン」 を参照

(24)

1 WebLogic JMS の概要

こ の API では、NO_ACKNOWLEDGEと MULTICAST_NO_ACKNOWLEDGEの確認応答

モー ド 、 および以下のよ う な例外の送出を含む拡張例外 もサポー ト さ れていま す。  サーバ エ ラーま たは管理上の介入に よ っ て コ ンシ ューマの 1 つがサーバに よ って閉じ られた と きにセ ッ シ ョ ン例外 リ スナ (設定さ れてい る場合) に例 外を送出し ます。  セ ッ シ ョ ンで受信 さ れたが、 まだ メ ッ セージ リ スナに配信 さ れていない メ ッ セージの数がそのセ ッ シ ョ ンの最大 メ ッ セージ許容数を超えた と き にマルチ キ ャ ス ト セ ッ シ ョ ンか ら例外を送出し ます。  データ ス ト リ ームでシーケ ン スの欠陥 (シーケ ン スの異な る受信 メ ッ セー メ ッ セージが最大数に達し た と き に適 用す る マルチキ ャ ス ト セ ッ シ ョ ンの超 過時のポ リ シーを設定ま たは表示す る 4-91 ページの 「マルチ キ ャ ス ト のコ ン フ ィ グ レーシ ョ ン属性の動的コ ン フ ィ グ レーシ ョ ン」 を参照 永続的な キ ュ ーま たは ト ピ ッ ク を動的 に作成す る 4-53 を参照ページの 「JMSHelper ク ラ ス メ ソ ッ ド の使い方」 WebLogic JMS 7.0 と 6.0 以前の JMSMessageIDの形式をお互いの形式 に変換す る 4-63 ページの 「 メ ッ セージ ヘ ッ ダ フ ィ ール ド の設定」 を参照 メ ッ セージの再配信遅延を設定する 4-38 ページの 「 メ ッ セージの再配信遅延の設定」 を参 照 プ ロ デュ ーサの メ ッ セージ配信時間を 設定する 4-41 定」 を参照ページの 「プ ロデューサに対する配信時間の設 メ ッ セージの配信時間を設定す る 4-42 ページの 「 メ ッ セージに対する配信時間の設定」 を参照 メ ッ セージの ス ケ ジ ュ ー リ ン グ済み配 信時間を設定する 4-43 バーラ イ ド の設定」ページの 「ス ケジ ュー リ ング済み配信時間のオーを参照 拡張機能 詳細情報の参照先

(25)

WebLogic Server 7.0 におけ る JMS の拡張機能

WebLogic Server 7.0

における

JMS

の拡張

機能

こ の リ リ ースの WebLogic Server では、 JMS の以下の拡張機能が新し く 導入 さ れ ています。

高可用性拡張機能

WebLogic JMS は、 ク ラ ス タ化 さ れた環境に対し て WebLogic Server の コ アに実 装さ れてい る移行フ レーム ワー ク を活用し ます。 こ れに よ っ て、 WebLogic JMS は移行の要求に適切に応答し、 JMS サーバを適切にオン ラ イ ン / オフ ラ イ ンに切 り 替え る こ と がで き ます。 移行には、 ス ケジ ュー リ ング済み移行のほかに、 WebLogic Server の障害に応答し て発生する移行が含まれます。 詳細については、 『WebLogic JMS プ ロ グ ラ マーズ ガ イ ド』 の 「WebLogic JMS の管理」 を参照し て く だ さ い。

WebLogic

ク ラ ス タ内の分散送り先

高い可用性を誇る WebLogic JMS の実装では、 複数の物理的な送 り 先を単一の送 り 先セ ッ ト の メ ンバー と し て コ ン フ ィ グ レーシ ョ ンで き る よ う にする こ と で、 1 台のサーバに障害が発生し た場合で も サービ スが継続 さ れる よ う に し てい ます。 具体的に言 う と 、 管理者は、 ク ラ ス タ内にあ る特定の送 り 先の複数の イ ン ス タ ン ス を コ ン フ ィ グ レーシ ョ ンでき ます。 ク ラ ス タ内の 1 つの イ ン ス タ ン ス に障害が 発生し た場合は、 同じ 送 り 先の他の イ ン ス タ ン スが JMS プ ロデューサ と コ ン シ ューマにサービ ス を提供でき ます。 詳細については、 『WebLogic JMS プ ロ グ ラ マーズ ガ イ ド』 の 「WebLogic JMS アプ リ ケーシ ョ ンの開発」 および 『管理者ガ イ ド 』 の 「JMS の管理」 を参照し て く だ さ い。

(26)

1 WebLogic JMS の概要

フ ロー制御

フ ロー制御機能を使用する と 、 JMS サーバま たは送 り 先が過負荷にな った と き に、 メ ッ セージ プ ロデューサの処理速度を遅 く する こ と がで き ます。 具体的に 言 う と 、 JMS サーバま たは送 り 先が、 指定のバイ ト 数ま たは メ ッ セージの し き い値を超過し た と き、 プ ロデューサに メ ッ セージのフ ローを制限する よ う 指示し ます。 詳細については、 『管理者ガ イ ド 』 の 「JMS の管理」 を参照し て く だ さ い。

WebLogic

メ ッ セージング

ブ リ ッ ジ

メ ッ セージング ブ リ ッ ジ (JMS ブ リ ッ ジ と も呼ばれ る) は、 2 つの JMS プ ロバ イ ダ間で メ ッ セージを転送し ます。 WebLogic Server メ ッ セージン グ ブ リ ッ ジ機 能に よ り 、 2 つの メ ッ セージング プ ロバイ ダ (WebLogic JMS の個別の実装を含 む) 間でのス ト アおよび転送 メ カ ニズム を コ ン フ ィ グ レーシ ョ ンで き る よ う にな り ます。 詳細については、 『管理者ガ イ ド 』 の 「WebLogic メ ッ セージング ブ リ ッ ジの使 い方」 を参照し て く だ さ い。

メ ッ セージ

ページング

メ ッ セージ ページング機能に よ り 、 メ ッ セージの負荷が指定の し きい値に達し た と きに メ ッ セージを仮想 メ モ リ か ら永続ス ト レージにス ワ ッ プする こ と で、 メ ッ セージ負荷のピーク 期間中に仮想 メ モ リ が解放 さ れます。 パフ ォーマン スの 点か ら見れば、 こ の機能は、 今日のエン タープ ラ イ ズ アプ リ ケーシ ョ ンが必要 と する大容量の メ ッ セージ領域を持つ WebLogic Server の実装には大き な メ リ ッ ト があ り ます。 詳細については、 『管理者ガ イ ド 』 の 「JMS の管理」 を参照し て く だ さ い。

(27)

2

WebLogic JMS

の基礎

以下の節では、 WebLogic JMS コ ンポーネン ト と 機能について説明し ます。  メ ッ セージン グ モデル  WebLogic JMS の ク ラ ス  ConnectionFactory  Connection  Session  Destination  送 り 先の分散  MessageProducer と MessageConsumer  Message  ServerSessionPoolFactory  ServerSessionPool  ServerSession  ConnectionConsumer 注意: こ の節で説明する JMS ク ラ スの詳細については、 Sun Microsystems の

Java Web サ イ ト にあ る以下の JMS 仕様 と Javadoc を参照し て く だ さ い。 http://java.sun.com/products/jms/docs.html

(28)

2 WebLogic JMS の基礎

メ ッ セージング

モデル

JMS では、 ポ イ ン ト ツー ポ イ ン ト (PTP) と パブ リ ッ シ ュ / サブス ク ラ イ ブ (Pub/sub) の 2 つの メ ッ セージング モデルがサポー ト さ れています。 それら の メ ッ セージング モデルは非常に似ていますが、 以下の点で異な り ます。  PTP メ ッ セージ ング モデルでは、 1 つの宛先に対し て メ ッ セージが配信 さ れ る。  Pub/sub メ ッ セージング モデルでは、 複数の宛先に対し て メ ッ セージが配信 さ れ る。 各モデルは、 共通の基本 ク ラ ス を拡張し た ク ラ スで実装 さ れます。 た と えば、 PTP ク ラ スの javax.jms.Queue と Pub/sub ク ラ スの javax.jms.Topicは両方 と

も javax.jms.Destinationを拡張し た ク ラ スです。 各 メ ッ セージ ング モデルについては、 以降の節で詳し く 説明し ます。 注意: プ ロデューサおよびコ ンシ ューマ と い う 用語は、 メ ッ セージ ング モデル に関係な く 、 それぞれ メ ッ セージ を送信および受信する アプ リ ケーシ ョ ン を表すために汎用的に使用し ます。 ただ し、 各 メ ッ セージ ング モデル では、 それぞれに固有のユニー ク な用語でプ ロデューサ と コ ンシ ューマ を表し ます。

ポイ ン ト

ツー

ポイ ン ト

メ ッ セージング

ポ イ ン ト ツー ポ イ ン ト (PTP) メ ッ セージング モデルでは、 アプ リ ケーシ ョ ンが 別の 1 つのアプ リ ケーシ ョ ンに メ ッ セージを送信で き ます。PTP メ ッ セージ ング アプ リ ケーシ ョ ンでは、 名前付きのキ ューを使用し て メ ッ セージが送信および受 信 さ れます。 キ ュー センダ ( プ ロデューサ ) では、 特定のキ ューに対し て メ ッ セージが送信 さ れます。 キ ュー レ シーバ ( コ ンシ ューマ ) では、 特定のキ ューか ら メ ッ セージが受信さ れます。

(29)

メ ッ セー ジ ン グ モデル 図2-1 ポイ ン ト ツーポイ ン ト (PTP) メ ッ セージング 複数のキ ュー センダおよびキ ュー レ シーバを 1 つのキ ューに関連付け る こ と が でき ますが、 個々の メ ッ セージは 1 つのキ ュー レ シーバに し か配信でき ません。 複数のキ ュー レ シーバがキ ューの メ ッ セージ を リ ス ン し てい る場合、 次の メ ッ セージを受信する キ ュー レ シーバは先着順で決定 さ れます。 リ ス ン し てい る キ ュー レ シーバがない場合は、 キ ュー レ シーバがキ ューにア タ ッ チさ れる ま で メ ッ セージはキ ューに と ど ま り ます。

パブ リ ッ シ ュ

/

サブスク ラ イ ブ

メ ッ セージング

パブ リ ッ シ ュ / サブス ク ラ イ ブ (Pub/sub) メ ッ セージ ング モデルでは、 アプ リ ケーシ ョ ンが複数のアプ リ ケーシ ョ ンに メ ッ セージを送信で き ます。 Pub/sub メ ッ セージン グ アプ リ ケーシ ョ ンでは、 ト ピ ッ ク をサブス ク ラ イ ブする こ と で メ ッ セージが送信および受信さ れます。 ト ピ ッ ク パブ リ ッ シ ャ ( プロデューサ ) では、 特定の ト ピ ッ ク に対し て メ ッ セージが送信 さ れます。 ト ピ ッ ク サブス ク ラ イバ ( コ ンシ ューマ ) では、 特定の ト ピ ッ ク か ら メ ッ セージが受信 さ れます。 次の図は、 Pub/sub メ ッ セージ ングの仕組みを示し ています。

(30)

2 WebLogic JMS の基礎 図2-2 パブ リ ッ シ ュ/サブス ク ラ イブ (Pub/sub) メ ッ セージング PTP メ ッ セージン グ モデルの場合 と 違って、 Pub/sub メ ッ セージ ング モデルでは 複数の ト ピ ッ ク サブス ク ラ イ バが同じ メ ッ セージを受信で き ます。 メ ッ セージ は、 すべての ト ピ ッ ク サブス ク ラ イバが受信する まで維持 さ れます。 Pub/sub メ ッ セージング モデルでは恒久サブス ク ラ イ バがサポー ト さ れる ので、 ト ピ ッ ク サブス ク ラ イ バに名前を割 り 当て、 ユーザ ま たはアプ リ ケーシ ョ ン と 関連付け る こ と がで き ます。 恒久サブス ク ラ イ バの詳細については、4-57 ページ の 「恒久サブス ク リ プシ ョ ンの設定」 を参照し て く だ さ い。

メ ッ セージの永続性

メ ッ セージは、 永続 メ ッ セージ ま たは非永続 メ ッ セージ と し て指定で き ます。 詳 細については、JMS 仕様の 「Message Delivery Mode」 の節を参照し て く だ さ い。

永続 メ ッ セージは必ず 1 回のみ配信さ れます。 し たがって、 メ ッ セージが失 われた り 、 2 回配信さ れた り する こ と はあ り ません。 永続 メ ッ セージは、 フ ァ イルやデータベースに確実に書き込まれる までは送信さ れた も の と は見 な さ れません。 WebLogic JMS では、 コ ン フ ィ グ レーシ ョ ン時に各 JMS サー バに割 り 当て ら れた永続バ ッ キング ス ト ア ( デ ィ ス クベースのフ ァ イ ルま た

(31)

WebLogic JMS の ク ラ ス 非永続 メ ッ セージは格納さ れません。 メ ッ セージは最低 1 回は配信が保証さ れますが、 シ ス テム障害が発生する と 失われ る場合があ り ます。 接続を閉 じ るか回復する と 、 確認応答 さ れていないすべての非永続 メ ッ セージが再配信 さ れます。 非永続 メ ッ セージは確認応答さ れ る と 再配信さ れません。

WebLogic JMS

のク ラ ス

JMS アプ リ ケーシ ョ ン を作成する には、javax.jms API を使用し ます。 こ の API では、 JMS への接続や メ ッ セージの送受信に必要な ク ラ ス オブジ ェ ク ト を作成 でき ます。 JMS ク ラ ス イ ン タ フ ェースは、 共通の親 ク ラ スのキ ュー バージ ョ ン と ト ピ ッ ク バージ ョ ン を提供する サブ ク ラ ス と し て作成 さ れます。 次の表は、 以降の節で詳し く 説明する JMS ク ラ ス を示し ています。 すべての JMS ク ラ スの詳細については、javax.jms、 weblogic.jms.ServerSessionPoolFactory、 ま たは weblogic.jms.extensions Javadoc を参照し て く だ さ い。 表2-1 WebLogic JMS のク ラス JMS ク ラス 説明 ConnectionFactory 接続の コ ン フ ィ グ レーシ ョ ン情報を カプセル化す る 。 接続フ ァ ク ト リ は接続を作成する ために使用 す る。 接続フ ァ ク ト リ は JNDI を使用し てル ッ ク ア ッ プする 。 Connection メ ッ セージ ン グシ ス テ ムへの開いてい る通信チ ャ ネルを表す。 接続はセ ッ シ ョ ン を作成する ために 使用す る。 Session 生成お よび消費 さ れ る メ ッ セージの順序を定義す る 。 Destination 特定のプ ロ バ イ ダのア ド レ ス を カプセル化 し て、 キ ューま たは ト ピ ッ ク を識別する 。 キ ュー と ト ピ ッ ク では、 それぞれ PTP メ ッ セージ ン グモデル お よび Pub/sub メ ッ セージ ン グモデルか ら 配信 さ れ る メ ッ セージが管理 さ れ る 。

(32)

2 WebLogic JMS の基礎 JMS オブジ ェ ク ト の コ ン フ ィ グ レーシ ョ ンについては、 3-1 ページの 「WebLogic JMS の管理」 を参照し て く だ さ い。 JMS アプ リ ケーシ ョ ンを設定す る手順については、4-4 ページの 「JMS アプ リ ケーシ ョ ンの設定」 を参照し て く だ さ い。

ConnectionFactory

MessageProducer と MessageConsumer メ ッ セージ を送信およ び受信す る ための イ ン タ フ ェース を提供す る。 メ ッ セージプ ロデ ューサで はキ ューま たは ト ピ ッ ク に メ ッ セージが送信 さ れ る。 メ ッ セージ コ ン シ ューマではキ ューま たは ト ピ ッ ク か ら メ ッ セージが受信 さ れ る 。 Message 送信ま たは受信 さ れ る 情報を カプセル化する 。 ServerSessionPoolFacto ry1 メ ッ セージ コ ン シ ューマのサーバ管理のプールに 関す る コ ン フ ィ グ レーシ ョ ン情報を カプセル化す る。 サーバセ ッ シ ョ ンプールフ ァ ク ト リ はサーバ セ ッ シ ョ ンプールを作成す る ために使用する 。 ServerSessionPool1 メ ッ セージ を平行処理する ために使用で き る サー バセ ッ シ ョ ンのプールを接続コ ン シ ューマに提供 する 。 ServerSession1 ス レ ッ ド と JMS セ ッ シ ョ ン を関連付け る 。 ConnectionConsumer1 メ ッ セージ を平行処理する ためにサーバセ ッ シ ョ ン を取 り 出す コ ン シ ュ ーマ を指定す る。 1 複数の メ ッ セージを平行し て処理する ためのオプシ ョ ンの JMS イ ン タ フ ェース がサ ポ ー ト さ れます。 表2-1 WebLogic JMS のク ラス JMS ク ラス 説明

(33)

ConnectionFactory ト に同時にア ク セ スで き ます。 アプ リ ケーシ ョ ンに適合する事前定義の属性で接 続を作成するには、 あ ら か じ め コ ン フ ィ グ レーシ ョ ン さ れたデフ ォル ト の接続 フ ァ ク ト リ を使用する か、 シ ス テム管理者が コ ン フ ィ グ レーシ ョ ン し た 1 つま た は複数の接続フ ァ ク ト リ を使用し ます。 デフ ォル ト の接続フ ァ ク ト リ は、 JNDI 名 weblogic.jms.ConnectionFactory でル ッ ク ア ッ プで き ます。 接続フ ァ ク ト リ は、 WebLogic JMS で用意 さ れるデ フ ォル ト がアプ リ ケーシ ョ ンに適合し ない場合にのみ定義する必要があ り ます。 すべてのデフ ォル ト の接続フ ァ ク ト リ 属性は、 ユーザ定義の接続フ ァ ク ト リ と 同 じデフ ォル ト 値に設定 さ れます。 接続フ ァ ク ト リ 属性のデフ ォル ト 値の詳細につ いては、 Administration Console オン ラ イ ン ヘルプの 「[JMS 接続フ ァ ク ト リ ]」 を参照し て く だ さ い。 デフ ォル ト の接続フ ァ ク ト リ を使用する場合の も う 1 つの注意点は、 接続フ ァ ク ト リ がデプ ロ イ さ れる WebLogic Server イ ン ス タ ン ス を限定で き ない点です。 た だ し、 デフ ォル ト の接続フ ァ ク ト リ は、 サーバご と に有効に し た り 無効にし た り でき ます。 デフ ォル ト の接続フ ァ ク ト リ の有効化および無効化の詳細について は、 Administration Console オン ラ イ ン ヘルプの 「サーバ --> サービ ス --> JMS」 を参照し て く だ さ い。 デフ ォル ト の接続フ ァ ク ト リ がアプ リ ケーシ ョ ンに適合し ない場合、 シ ス テム管 理者は 1 つま たは複数の接続フ ァ ク ト リ を定義およびコ ン フ ィ グ レーシ ョ ン し て、 あ ら か じ め定義 さ れた属性で接続を作成し ます。 ただ し こ れは、 各接続フ ァ ク ト リ にユニー ク な名前が付け られている場合にかぎ り ます。 WebLogic Server では起動時にそれ ら の接続フ ァ ク ト リ が JNDI スペースに追加 さ れます。 アプ リ ケーシ ョ ンでは、 WebLogic JNDI を使用し て接続フ ァ ク ト リ を取 り 出し ます。 ユーザ定義の接続フ ァ ク ト リ の コ ン フ ィ グ レーシ ョ ンおよびデプ ロ イ メ ン ト につ いては、 『管理者ガ イ ド』 の 「JMS の管理」 を参照し て く だ さ い。 シ ス テム管理者は、 ク ラ ス タ内のあ ら ゆ る サーバか ら JMS 送 り 先への ク ラ ス タ ワ イ ド で透過的なア ク セ ス を確立でき ます。 こ の よ う なア ク セ ス を確立する に は、 ク ラ ス タ内の各サーバ イ ン ス タ ン スにデフ ォル ト の接続フ ァ ク ト リ を使用 する か、 1 つま たは複数の接続フ ァ ク ト リ を コ ン フ ィ グ レーシ ョ ン し て ク ラ ス タ 内の 1 つま たは複数のサーバ イ ン ス タ ン スに割 り 当て ます。 こ れによ り 、 各接続 フ ァ ク ト リ を複数の WebLogic Server にデプロ イする こ と が可能 と な り ます。 JMS ク ラ ス タ化の詳細については、3-3 ページの 「WebLogic JMS の ク ラ ス タ化 のコ ン フ ィ グ レーシ ョ ン」 を参照し て く だ さ い。

(34)

2 WebLogic JMS の基礎 注意: 下位互換性を維持する ため、 WebLogic JMS では非推奨の 2 つのデフ ォ ル ト 接続フ ァ ク ト リ を現在も サポー ト し ています。 該当する フ ァ ク ト リ の JNDI 名は、javax.jms.QueueConnectionFactory と javax.jms.TopicConnectionFactoryです。 非推奨の接続フ ァ ク ト リ か ら 新し いデフ ォル ト ま たはユーザ定義の接続 フ ァ ク ト リ への移行については、6-1 ページの 「WebLogic JMS アプ リ ケーシ ョ ンの移植」 を参照し て く だ さ い。 ConnectionFactoryク ラ ス では メ ソ ッ ド は定義 さ れませんが、 そのサブ ク ラ ス では各 メ ッ セージ ング モデルの メ ソ ッ ド が定義 さ れます。 接続フ ァ ク ト リ では 同時使用がサポー ト さ れてお り 、 複数のス レ ッ ド がオブジ ェ ク ト に同時にア ク セ スで き ます。 次の表は、ConnectionFactoryのサブ ク ラ ス を説明し ています。 アプ リ ケーシ ョ ンで ConnectionFactoryク ラ ス を使用する方法については、 4-1 ページの 「WebLogic JMS アプ リ ケーシ ョ ンの開発」 ま たは javax.jms.ConnectionFactory Javadoc を参照し て く だ さ い。

Connection

Connectionオブジ ェ ク ト は、 アプ リ ケーシ ョ ン と メ ッ セージング シ ス テムの間 の開いている通信チャ ネルを表し、 メ ッ セージを生成および消費する ための 表2-2 ConnectionFactory のサブ ク ラス サブ ク ラス メ ッ セージング モデル 作成する もの QueueConnectionFactory PTP JMS PTP プ ロ バ イ ダへのQueueConnection TopicConnectionFactory Pub/sub JMS Pub/sub プ ロ バ イ ダへの

(35)

Connection

Connectionは、 JNDI ル ッ ク ア ッ プを通じ て取得する ConnectionFactoryに

よ っ て作成 さ れます。 ユーザの認証や通信の設定に関わ る リ ソースのオーバーヘ ッ ド があ る ため、 ほ と んどのアプ リ ケーシ ョ ンではすべての メ ッ セージン グで 1 つの接続を確立し ま す。 WebLogic Server では、 JMS ト ラ フ ィ ッ ク はサーバ と の ク ラ イ アン ト 接続で 他の WebLogic サービ ス と 多重化さ れます。 JMS のために、 新たな TCP/IP 接続 が作成さ れ る こ と はあ り ません。 サーブレ ッ ト や他のサーバサ イ ド オブジ ェ ク ト も ま た、 JMS Connection を使用する場合があ り ます。 デフ ォル ト では、 接続は停止モー ド で作成 さ れます。 停止状態の接続をいつどの よ う に開始する のかについては、4-49 ページの 「接続の開始、 停止、 ク ローズ」 を参照し て く だ さ い。 接続では同時使用がサポー ト さ れてお り 、 複数のス レ ッ ド がオブジ ェ ク ト に同時 にア ク セ スでき ます。 次の表は、Connectionのサブ ク ラ ス を説明し ています。 アプ リ ケーシ ョ ンで Connectionク ラ ス を使用する方法については、 4-1 ページ の 「WebLogic JMS アプ リ ケーシ ョ ンの開発」 ま たは javax.jms.Connection Javadoc を参照し て く だ さ い。 表2-3 Connection のサブ ク ラス サブ ク ラス. メ ッ セージン グモデル . 作成する もの

QueueConnection PTP QueueSession。QueueConnectionFactoryで作成

さ れた JMS PTP プ ロ バ イ ダへの接続で構成 さ れ る。

TopicConnection Pub/sub TopicSession。TopicConnectionFactoryで作成

さ れた JMS Pub/sub プ ロ バ イ ダへの接続で構成 さ れ る。

(36)

2 WebLogic JMS の基礎

Session

Session オブジ ェ ク ト では、 生成および消費 さ れる メ ッ セージの順序を定義 し、 複数の メ ッ セージ プ ロデューサ と メ ッ セージ コ ンシ ューマを作成で き ます。 メ ッ セージの生成 と 消費に同じ ス レ ッ ド を使用でき ます。 アプ リ ケーシ ョ ンで メ ッ セージの生成 と 消費に別々の ス レ ッ ド が必要な場合は、 そのアプ リ ケーシ ョ ンで機能ご と に個別のセ ッ シ ョ ン を作成する必要があ り ます。 Session は、Connectionによ って作成 さ れます。 注意: セ ッ シ ョ ンおよびその メ ッ セージのプロデューサ と コ ンシ ューマには、 一度に 1 つのス レ ッ ド し かア ク セ スでき ません。 それ ら に複数のス レ ッ ド が同時にア ク セ ス し た場合、 それ ら の動作は定義 さ れません。 次の表は、 Session のサブ ク ラ ス を説明し ています。 アプ リ ケーシ ョ ンで Session ク ラ ス を使用する方法については、4-1 ページの

「WebLogic JMS アプ リ ケーシ ョ ンの開発」、ま たは javax.jms.Session Javadoc および weblogic.jms.extensions.WLSession Javadoc を参照し て く だ さ い。 表2-4 Session のサブ ク ラス サブ ク ラス . メ ッ セージン グモデル 提供する コ ンテキス トの用途 QueueSession PTP JMS PTP プ ロバ イ ダの メ ッ セージ を生成お よび消費 す る。QueueConnection で作成 さ れ る 。

TopicSession Pub/sub JMS Pub/sub プ ロ バ イ ダの メ ッ セージ を生成お よび消 費する 。TopicConnection に よ っ て作成 さ れ る 。

(37)

Session

非 ト ラ ンザク シ ョ ン

セ ッ シ ョ ン

非 ト ラ ンザ ク シ ョ ン セ ッ シ ョ ンでは、 セ ッ シ ョ ン を作成する アプ リ ケーシ ョ ン で、 次の表で定義さ れてい る 5 つの確認応答モー ド のいずれかが選択 さ れます。 表2-5 非 ト ラ ンザク シ ョ ンセ ッ シ ョ ンで使用する確認応答モー ド [確認応答モー ド] 説明 AUTO_ACKNOWLEDGE 受信側 アプ リ ケーシ ョ ンの メ ソ ッ ド が処理を終えた と き に、 Sessionオブジ ェ ク ト で メ ッ セージ受信の確認応答が行われ る 。 CLIENT_ACKNOWLEDGE Sessionオブジ ェ ク ト の動作は、 アプ リ ケーシ ョ ンに よ る確 認応答 メ ソ ッ ド の呼び出 し に依存する 。 メ ソ ッ ド が呼び出 さ れ る と 、 セ ッ シ ョ ンでは、 前回の確認応答以降に受信 さ れた すべての メ ッ セージに対 し て確認応答が行われ る 。 こ のモー ド を使用す る と 、 アプ リ ケーシ ョ ンでは 1 回の呼び 出 し で複数 メ ッ セージの受信、 処理、 お よび確認応答を行 う こ と がで き る。 注意: Administration Console では、 接続フ ァ ク ト リ の [確認 応答ポ リ シー] 属性がPreviousに設定 さ れてい る の に対 し、 指定のセ ッ シ ョ ンでのすべての受信 メ ッ セー ジ を確認応答 し たい場合、 最後の メ ッ セージ を使用し て確認応答 メ ソ ッ ド を呼び出す。 [確認応答ポ リ シー] 属性の詳細については、 『Administration Console オン ラ イ ンヘルプ』 の 「[JMS 接続フ ァ ク ト リ ]」 を参照。 DUPS_OK_ACKNOWLEDGE 受信側 アプ リ ケーシ ョ ンの メ ソ ッ ド が処理を終えた と き に、 Sessionオブジ ェ ク ト で メ ッ セージ受信の確認応答が行われ る 。 確認応答の重複が許可 さ れ る 。 こ のモー ド では、 最 も効率的に リ ソ ース が利用 さ れ る 。 注意: アプ リ ケーシ ョ ンで重複 メ ッ セージ を処理で き ない場 合は、 こ のモー ド は使用し ない。 重複 メ ッ セージは、 メ ッ セージ を配信す る 最初の試行が失敗 し た場合に送 信 さ れ る。

(38)

2 WebLogic JMS の基礎

ト ラ ンザク シ ョ ン

セ ッ シ ョ ン

ト ラ ンザ ク シ ョ ン セ ッ シ ョ ンでは、 一度に 1 つの ト ラ ンザ ク シ ョ ン し かア ク テ ィ ブにな り ません。 ト ラ ンザ ク シ ョ ン時に送信ま たは受信さ れた メ ッ セージ は、 最小の単位 と し て処理さ れます。 NO_ACKNOWLEDGE 確認応答を必要 と し ない。NO_ACKNOWLEDGEセ ッ シ ョ ンに送 信 さ れた メ ッ セージは、 サーバか ら 即座に削除 さ れ る 。 こ の モー ド で受信 さ れた メ ッ セージは回復 さ れないので、 メ ッ セージ を配信する 最初の試行が失敗し た場合は メ ッ セージが 失われた り 、 重複 メ ッ セージが配信 さ れた り する 。 こ のモー ド は、 セ ッ シ ョ ンの確認応答で提供 さ れ る サービ ス の質を必要 と せず、 それに関連する オーバーヘ ッ ド を避け る 必要があ る アプ リ ケーシ ョ ンで使用する 。 注意: アプ リ ケーシ ョ ンで、 失われた メ ッ セージや重複 メ ッ セージ を処理で き ない場合は、 こ のモー ド は使用し な い。 重複 メ ッ セージは、 メ ッ セージ を配信する 最初の 試行が失敗 し た場合に送信 さ れ る 。 MULTICAST_NO_ACKNOWLEDGE 確認応答を必要 と し ないマルチキ ャ ス ト モー ド 。 MULTICAST_NO_ACKNOWLEDGEセ ッ シ ョ ンに送信 さ れた メ ッ セージでは、 前述のNO_ACKNOWLEDGEモー ド と 同 じ特性が共 有 さ れ る 。 こ のモー ド は、 マルチキ ャ ス ト をサポー ト し、 セ ッ シ ョ ンの 確認応答で提供 さ れ る サービ ス の質を必要 と し ないアプ リ ケーシ ョ ンで使用する 。マルチキ ャ ス ト の詳細については、 4-87 ページの 「マルチキ ャ ス ト の使い方」 を参照。 注意: アプ リ ケーシ ョ ンで、 失われた メ ッ セージや重複 メ ッ セージ を処理で き ない場合は、 こ のモー ド は使用し な い。 重複 メ ッ セージは、 メ ッ セージ を配信する 最初の 試行が失敗 し た場合に送信 さ れ る 。 表2-5 非 ト ランザクシ ョ ン セ ッ シ ョ ンで使用する確認応答モー ド (続き) [確認応答モー ド ] 説明

(39)

Destination ト ラ ンザ ク シ ョ ン セ ッ シ ョ ン を作成する と 、 確認応答モー ド は無視 さ れます。 アプ リ ケーシ ョ ンで ト ラ ンザ ク シ ョ ンがコ ミ ッ ト さ れる と 、 その ト ラ ンザ ク シ ョ ンの間にアプ リ ケーシ ョ ンで受信さ れたすべての メ ッ セージが メ ッ セージ ング シ ス テムに よ っ て確認応答 さ れ、 アプ リ ケーシ ョ ンで送信さ れた メ ッ セージは配 信 さ れ るべ く 受け入れ ら れます。 アプ リ ケーシ ョ ンで ト ラ ンザ ク シ ョ ンがロール バ ッ ク さ れ る と 、 その ト ラ ンザ ク シ ョ ンの間にアプ リ ケーシ ョ ンで受信 さ れた メ ッ セージは確認応答 さ れず、 アプ リ ケーシ ョ ンで送信さ れた メ ッ セージは破棄 さ れます。

JMS は、 Java Transaction API (JTA) を使用する他の Java サービ ス (EJB など ) と の分散 ト ラ ンザ ク シ ョ ンに参加で き ます。 ト ラ ンザ ク シ ョ ンはその ト ラ ンザ ク シ ョ ンに関連付け られた メ ッ セージへのア ク セ スが制限さ れてい る ため、 ト ラ ン ザ ク シ ョ ン セ ッ シ ョ ンでは こ の機能をサポー ト し ません。 JTA の利用の詳細につ いては、5-5 ページの 「JTA ユーザ ト ラ ンザ ク シ ョ ンの使い方」 を参照し て く だ さ い。

Destination

Destinationオブジ ェ ク ト はキ ューま たは ト ピ ッ ク にな り 、 特定プ ロバイ ダの ア ド レ ス構文を カプセル化し ます。 プ ロバイ ダに よ っ て構文は さ ま ざ ま であ る た め、 JMS 仕様では標準のア ド レ ス構文は定義 さ れていません。 接続フ ァ ク ト リ の場合 と 同じ よ う に、 管理者が送 り 先を定義し、 コ ン フ ィ グ レー シ ョ ンする と 、 WebLogic Server の起動時にそれが JNDI スペースに追加さ れま す。 ま た、 アプ リ ケーシ ョ ンでは、 それが作成 さ れた JMS 接続の間だけ存在す る一時的な送 り 先を作成する こ と も で き ます。 注意: 管理者は、 サーバの ク ラ ス タ内の単一の分散送 り 先セ ッ ト の メ ンバー と し て、 複数の物理的な送 り 先を コ ン フ ィ グ レーシ ョ ンする こ と も でき ま す。 詳細については、2-15 ページの 「送 り 先の分散」 を参照し て く だ さ い。 ク ラ イ アン ト サ イ ド では、Queueオブジ ェ ク ト と Topicオブジ ェ ク ト は、 サーバ 上のオブジ ェ ク ト へのハン ド ル と し て機能し ます。 それ ら の メ ソ ッ ド では、 それ ら の名前が返さ れ るだけです。 メ ッ セージ ング を目的 と し てア ク セ スするには、 それ ら にア タ ッ チする メ ッ セージ プ ロデューサ と メ ッ セージ コ ンシ ューマを作 成し ます。

(40)

2 WebLogic JMS の基礎

送 り 先では同時使用がサポー ト さ れてお り 、 複数のス レ ッ ド がオブジ ェ ク ト に同 時にア ク セ スでき ます。 JMS の Queue と Topicは、javax.jms.Destinationを

拡張し ます。 次の表は、Destinationのサブ ク ラ ス を説明し ています。 注意: アプ リ ケーシ ョ ンでは、 キ ュー セ ッ シ ョ ンで QueueBrowserオブジ ェ ク ト を作成する こ と に よ り キ ューを参照する こ と がで き ます。 こ のオブ ジ ェ ク ト では、 キ ュー ブ ラ ウザが作成さ れた時点におけ る キ ュー内の メ ッ セージのスナ ッ プシ ョ ッ ト が生成さ れます。 アプ リ ケーシ ョ ンでは キ ュー内の メ ッ セージ を表示で き ますが、 メ ッ セージは 「読み込まれた」 と は判断 さ れず、 し たがってキ ューか ら削除 さ れる こ と はあ り ません。 キ ューの参照の詳細については、4-69 ページの 「 メ ッ セージ ヘ ッ ダ フ ィ ール ド および メ ッ セージ プ ロパテ ィ フ ィ ール ド の参照」 を参照し て く だ さ い。 アプ リ ケーシ ョ ンで Destinationク ラ ス を使用する方法については、4-1 ページ の 「WebLogic JMS アプ リ ケーシ ョ ンの開発」 ま たは javax.jms.Destination Javadoc を参照し て く だ さ い。 表2-6 Destination のサブク ラス サブク ラス メ ッ セージン グモデル メ ッ セージングモデル Queue PTP JMS PTP プ ロバ イ ダの メ ッ セージ。 TemporaryQueue PTP JMS PTP プ ロバ イ ダの メ ッ セージ。 メ ッ セージが作 成 さ れた JMS 接続の間だけ存在す る。 一時的な キ ューはそれを作成 し たキ ュ ー接続に よ っ てのみ消 費 さ れ る。

Topic Pub/sub JMS Pub/sub プ ロバ イ ダの メ ッ セージ。

TemporaryTopic Pub/sub JMS Pub/sub プ ロバ イ ダの メ ッ セージ。 メ ッ セージが 作成 さ れた JMS 接続の間だけ存在する 。 一時的な ト ピ ッ ク はそれを作成 し た ト ピ ッ ク 接続に よ ってのみ 消費 さ れ る 。

(41)

送 り 先の分散

送り先の分散

管理者は、 WebLogic Server の ク ラ ス タ内の単一の分散送 り 先セ ッ ト の メ ンバー と し て、 複数の物理的な送 り 先を コ ン フ ィ グ レーシ ョ ンする こ と ができ ます。 適 切に構成する と 、 プロデューサ と コ ンシ ューマがその分散送 り 先に対し て送受信 でき る よ う にな り ます。 WebLogic JMS は、 分散送 り 先内で利用可能な全送 り 先 メ ンバーに メ ッ セージの負荷を分散し ます。  ご使用のアプ リ ケーシ ョ ンにおけ る送 り 先の分散の詳細については、4-94 ページの 「分散送 り 先の使用」 を参照し て く だ さ い。  Administration Console を使用し て分散送 り 先を コ ン フ ィ グ レーシ ョ ンする手 順については、 『管理者ガ イ ド 』 の 「分散送 り 先の コ ン フ ィ グ レーシ ョ ン」 を参照し て く だ さ い。

MessageProducer

MessageConsumer

MessageProducerオブジ ェ ク ト では、 メ ッ セージがキ ューま たは ト ピ ッ ク に送 信 さ れます。MessageConsumerオブジ ェ ク ト では、 メ ッ セージがキ ューま たは ト ピ ッ ク か ら受信 さ れます。 メ ッ セージ プ ロデューサ と メ ッ セージ コ ンシ ュー マは、 互いに独立し て機能し ます。 メ ッ セージ コ ンシ ューマが作成 さ れて メ ッ セージを待ってい るかど う かに関係な く 、 メ ッ セージ プ ロデューサでは メ ッ セージが生成および送信さ れます ( こ の逆も同じ )。 Sessionでは、 キ ューおよび ト ピ ッ ク にア タ ッ チ さ れる MessageProducer と MessageConsumerが作成 さ れます。

図 4-2   JMS  アプ リ ケーシ ョ ンの設定
表 4-4   メ ッ セージ プロパテ ィ のデー タ型ご との  set  メ ソ ッ ドおよび  get  メ ソ ッ ド  ( 続き )

参照

関連したドキュメント

Windows Server 2012 Windows Server 2016 Red Hat Enterprise Linux 6 Red Hat Enterprise Linux 7 VMware vSphere 6 VMware vSphere 6.5 VMware vSphere 6.7 Oracle VM 3 UNIX サーバ.

The demographic and geographic factors affecting rural areas, such as their remoteness and dispersed settlement patterns, low population densities, and aging

Microsoft/Windows/SQL Server は、米国 Microsoft Corporation の、米国およびその

SUSE® Linux Enterprise Server 15 for AMD64 & Intel64 15S SLES SUSE® Linux Enterprise Server 12 for AMD64 & Intel64 12S. VMware vSphere® 7

Since the optimizing problem has a two-level hierarchical structure, this risk management algorithm is composed of two types of swarms that search in different levels,

このマニュアル全体を読んで、Oracle Diagnostics Pack に同梱の Oracle Performance Manager、Oracle Capacity Planner、Oracle TopSessions および Oracle Event

WPA-personage, WPA-PSK (AES) WPA-enterprise, WPA-PSK (TKIP) WPA2-personage, WPA2-PSK (AES) WPA2-enterprise, WPA2-PSK

Oracle WebLogic Server の脆弱性 CVE-2019-2725 に関する注 意喚起 ISC BIND 9 に対する複数の脆弱性に関する注意喚起 Confluence Server および Confluence