ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server JMS プログラマーズ ガイド
11
g
リリース 1 (10.3.1)
B55536-01
次へ
目次
タイトルおよび著作権情報
はじめに
ドキュメントのアクセシビリティについて
表記規則
サポートおよびサービス
1
概要とロードマップ
ドキュメントの内容と対象読者
このドキュメントの手引き
関連ドキュメント
JMS 開発者向けのサンプルとチュートリアル
Avitek Medical Records アプリケーション (MedRec) とチュートリアル
このリリースでの JMS の新機能と変更点
2
WebLogic JMS について
Java Message Service と WebLogic JMS の概要
Java Message Service とは
Java 仕様の実装
Java EE 仕様
JMS 仕様
WebLogic JMS のアーキテクチャ
主要な構成要素
メッセージング モデルについて
ポイント ツー ポイント メッセージング
パブリッシュ/サブスクライブ メッセージング
メッセージの永続性
JMS パブリック API の付加価値拡張機能
WebLogic Server の付加価値 JMS 機能
JMS API について
ConnectionFactory
デフォルト接続ファクトリの使い方
接続ファクトリのコンフィグレーションとデプロイメント
ConnectionFactory クラス
Connection
Session
WebLogic JMS セッションのガイドライン
Session のサブクラス
非トランザクション セッション
トランザクション セッション
Destination
送り先の分散
MessageProducer と MessageConsumer
Message
メッセージ ヘッダ フィールド
メッセージ プロパティ フィールド
メッセージ本文
ServerSessionPoolFactory
ServerSessionPool
ServerSession
ConnectionConsumer
3
アプリケーション設計のベスト プラクティス
メッセージの設計
アプリケーション オブジェクトのシリアライズ
文字列のシリアライズ
サーバサイドのシリアライズ
選択
メッセージの圧縮
メッセージ プロパティとメッセージ ヘッダ フィールド
メッセージの順序
トピックとキュー
非同期コンシューマと同期コンシューマ
永続メッセージと非永続メッセージ
確認応答とコミットの延期
非恒久サブスクライバでの AUTO_ACK の使用
代替のサービス品質、マルチキャスト、NO_ACKNOWLEDGE
MULTICAST_NO_ACKNOWLEDGE の使用
NO_ACKNOWLEDGE の使用
マルチスレッド化の回避
JMSXUserID プロパティの使用
4
基本的な JMS アプリケーションの開発
必要なパッケージのインポート
JMS アプリケーションの設定
手順 1 : JNDI で接続ファクトリをルックアップする
手順 2 : 接続ファクトリを使用して接続を作成する
キュー接続の作成
トピック接続の作成
手順 3 : 接続を使用してセッションを作成する
キュー セッションの作成
トピック セッションの作成
手順 4 : 送り先 (キューまたはトピック) をルックアップする
JNDI 名の使用
参照の使用
手順 5 : セッションと送り先を使用してメッセージ プロデューサとメッセージ コンシューマを作成する
QueueSender と QueueReceiver の作成
TopicPublisher と TopicSubscriber の作成
手順 6a : メッセージ オブジェクトを作成する (メッセージ プロデューサ)
手順 6b : 非同期メッセージ リスナを登録する (メッセージ コンシューマ) (オプション)
手順 7 : 接続を開始する
例 : PTP アプリケーションの設定
手順 1
手順 2
手順 3
手順 4
手順 5
手順 6
手順 7
例 : Pub/Sub アプリケーションの設定
手順 1
手順 2
手順 3
手順 4
手順 5
手順 6
手順 7
メッセージの送信
メッセージ オブジェクトを作成する
メッセージを定義する
メッセージを送り先に送信する
キュー センダを使用してメッセージを送信する
TopicPublisher を使用してメッセージを送信する
メッセージ プロデューサ属性の設定
例 : PTP アプリケーション内でのメッセージの送信
例 : Pub/Sub アプリケーション内でのメッセージの送信
メッセージの受信
メッセージの非同期受信
非同期メッセージ パイプライン
メッセージの同期受信
プリフェッチ モードを使用した同期メッセージ パイプラインの作成
例 : PTP アプリケーション内でのメッセージの同期受信
例 : Pub/Sub アプリケーション内でのメッセージの同期受信
受信メッセージの回復
受信メッセージの確認応答
オブジェクト リソースの解放
5
アプリケーションの管理
ロールバック、回復、再配信、または期限切れメッセージの管理
メッセージの再配信遅延の設定
再配信遅延の設定
送り先での再配信遅延のオーバーライド
メッセージの再配信制限の設定
送り先のメッセージ再配信制限のコンフィグレーション
配信されなかったメッセージに対するエラー送り先のコンフィグレーション
メッセージの再配信の順序付け
メッセージング ブリッジおよび MDB で必須のメッセージ パイプライン設定
パフォーマンスの制限
期限切れメッセージの処理
メッセージ配信時間の設定
プロデューサに対する配信時間の設定
メッセージに対する配信時間の設定
配信時間のオーバーライド
存続時間の値との関係
相対配信時間のオーバーライドの設定
スケジューリング済み配信時間のオーバーライドの設定
JMS スケジュール インタフェース
接続の管理
接続例外リスナの定義
接続メタデータへのアクセス
接続の開始、停止、クローズ
セッションの管理
セッション例外リスナの定義
セッションのクローズ
送り先の管理
送り先の動的作成
送り先の動的削除
送り先を削除するための事前条件
送り先削除後の動作
削除された送り先のトラブルシューティングに使用するメッセージのタイムスタンプ
削除した送り先の統計
一時的な送り先の使い方
一時的なキューの作成
一時的なトピックの作成
一時的な送り先の削除
恒久サブスクリプションの設定
永続ストアの定義
クライアント ID の定義
恒久サブスクリプション用のサブスクライバの作成
ベスト プラクティス : 問題が発生した JMS ClientID は常に閉じる
恒久サブスクリプションの削除
恒久サブスクリプションの変更
恒久サブスクリプションの管理
メッセージ ヘッダ フィールドおよびメッセージ プロパティ フィールドの設定と参照
メッセージ ヘッダ フィールドの設定
メッセージ プロパティ フィールドの設定
メッセージ ヘッダ フィールドおよびメッセージ プロパティ フィールドの参照
メッセージのフィルタ処理
SQL 文を使用したメッセージ セレクタの定義
XML セレクタ メソッドを使用した XML メッセージ セレクタの定義
メッセージ セレクタの表示
トピック サブスクライバのメッセージ セレクタへのインデックス付けによるパフォーマンス最適化
XML メッセージの送信
WebLogic XML API
String 表現の使用
DOM 表現の使用
6
JMS モジュール ヘルパーを使用したアプリケーションの管理
JMSModuleHelper を使用した JMS システム リソースのコンフィグレーション
JMS サーバとストア アンド フォワード エージェントのコンフィグレーション
JMSModuleHelper のサンプル コード
JMS システム リソースの作成
JMS システム リソースの削除
JMSModuleHelper 使用時のベスト プラクティス
7
WebLogic JMS でのマルチキャストの使い方
マルチキャストを使用する利点
マルチキャストを使用する上での制限事項
WebLogic Server ユニキャストの使用
WebLogic Server でのマルチキャストのコンフィグレーション
マルチキャストの前提条件
手順 1 : JMS アプリケーションを設定し、マルチキャスト セッションとトピック サブスクライバを作成する
手順 2 : メッセージ リスナを設定する
マルチキャストのコンフィグレーション属性の動的コンフィグレーション
例 : マルチキャスト TTL (存続時間)
8
分散送り先の使用
分散送り先とは
分散送り先を使用する理由
分散送り先の作成
分散送り先の種類
共通分散送り先
重み設定された分散送り先
分散送り先の使用
分散キューの使用
キューの転送
QueueSender
QueueReceiver
QueueBrowser
分散トピックの使用
TopicPublisher
TopicSubscriber
分散トピックへのメッセージ駆動型 Bean のデプロイ
分散送り先メンバーへのアクセス
共通送り先メンバーへのアクセス
重み設定された送り先メンバーへのアクセス
分散送り先のフェイルオーバ
分散送り先でのメッセージ駆動型 Bean の使用
分散送り先の一般的な使用例
生成の最大化
可用性の最大化
キューの使用
トピックの使用
メッセージのスタック
9
WebLogic JMS を EJB やサーブレットと組み合わせて使用するために拡張されたサポート
WebLogic JMS ラッパーの有効化
EJB またはサーブレットのデプロイメント記述子における JMS オブジェクトのリソースとしての宣言
ラップされた JMS 接続ファクトリの宣言
JMS の送り先の宣言
Java EE コンテナによる JMS メッセージの送信
JMS ラッパーの内部での処理
トランザクションの自動登録
コンテナ管理のセキュリティ
接続テスト
Java EE の準拠
プールされた JMS 接続オブジェクト
プールされた接続のモニタ
プールによるパフォーマンスの向上
セッション オブジェクトのプールによる JNDI ルックアップの高速化
キャッシングによるオブジェクト作成の高速化
適切なトランザクション モードの登録
JMS ラッパー関数の例
ejb-jar.xml
weblogic-ejb-jar.xml
PoolTest.java
PoolTestHome.java
PoolTestBean.java
リモートまたは外部 JMS プロバイダへのアクセスの簡略化
10
メッセージ順序単位の使用
メッセージ順序単位とは
順序単位によるメッセージ処理について
JMS 仕様に準拠したメッセージ処理
順序単位によるメッセージ処理
順序単位によるメッセージ配信
メッセージ順序単位のケース スタディ
Joe による本の注文
Joe の注文の処理
メッセージ順序単位による問題解決
順序単位の作成方法
順序単位をプログラム的に作成する
順序単位を管理者が作成する
接続ファクトリと送り先の順序単位をコンフィグレーションする
順序単位の命名規約
メッセージ順序単位の高度なトピック
処理中にメッセージが遅延した場合の処理
フィルタのせいでメッセージを配信できない場合の処理
送り先ソート キーを使用している場合の処理
分散送り先で順序単位を使用する
パス サービスを使用する
ハッシュ ベースのルーティングを使用する
共通分散送り先でのルーティングをコンフィグレーションする
トピックで順序単位を使用する
順序単位と分散トピック
順序単位、トピック、およびメッセージ駆動型 Bean
JMS メッセージ管理で順序単位を使用する
WebLogic ストア アンド フォワードで順序単位を使用する
WebLogic メッセージング ブリッジで順序単位を使用する
メッセージ順序単位の制限事項
11
作業単位メッセージ グループの使用
作業単位メッセージ グループとは
作業単位によるメッセージ処理について
UOW に関連する基本用語
UOW メッセージを処理する場合のルール
メッセージ作業単位のケース スタディ
オンライン ショップでさまざまな商品を注文する
メッセージ作業単位による注文処理の仕組み
作業単位メッセージ グループの作成方法
UOW メッセージ プロパティを設定するプロデューサの記述方法
UOW プロデューサのサンプル コード
UOW 例外
中間送り先の UOW コンシューマおよびプロデューサの記述方法
最終送り先のコンフィグレーション
UOW メッセージの最終分散送り先へのルーティング
最終送り先の UOW コンシューマの記述方法
メッセージ作業単位の高度なトピック
メッセージ プロパティの処理
システム生成のプロパティ
最後の構成メッセージのプロパティ
構成メッセージの不均一性
ReplyTo メッセージ プロパティ
UOW と共通分散送り先
UOW とストア アンド フォワード送り先
UOW メッセージ グループの制限事項
12
WebLogic JMS によるトランザクションの使い方
トランザクションの概要
JMS トランザクション セッションの使い方
手順 1 : JMS アプリケーションを設定し、トランザクション セッションを作成する
手順 2 : 必要な処理を実行する
手順 3 : JMS トランザクション セッションをコミットまたはロールバックする
JTA ユーザ トランザクションの使い方
手順 1 : JMS アプリケーションを設定し、非トランザクション セッションを作成する
手順 2 : JNDI でユーザ トランザクションをルックアップする
手順 3 : JTA ユーザ トランザクションを開始する
手順 4 : 必要な処理を実行する
手順 5 : JTA ユーザ トランザクションをコミットまたはロールバックする
メッセージ駆動型 Bean を使用した JTA ユーザ トランザクション内の非同期メッセージング
例 : JTA ユーザ トランザクションにおける JMS と EJB
手順 1
手順 2
手順 3
手順 4
手順 5
クロス ドメイン セキュリティの使用
13
WebLogic JMS C API
WebLogic JMS C API とは
システム要件
設計上の原則
ハンドルへの Java オブジェクトのマッピング
スレッドの利用
例外処理
型の変換
Integer (int)
Long (long)
Character (char)
String
メモリ割り当てとガベージ コレクション
接続のクローズ
ヘルパー関数
セキュリティの考慮事項
実装のガイドライン
クライアントのクラッシュにおけるスレッドのデタッチ問題の回避策
14
サーバ障害からの回復
JMS クライアントの自動フェイルオーバ
JMS プロデューサの自動フェイルオーバ
プロデューサのサンプル コード
再使用可能な ConnectionFactory オブジェクト
再使用可能な Destination オブジェクト
再接続される Connection オブジェクト
再接続される Session オブジェクト
再接続される MessageProducer オブジェクト
JMS コンシューマの自動フェイルオーバのコンフィグレーション
コンシューマ クライアントのサンプル コード
クライアントの自動更新オプションのコンフィグレーション
再接続される Consumer の一般的なケース
再接続される Consumer の特殊なケース
JMS クライアントの自動フェイルオーバを明示的に無効にする
プログラムを使用する場合
管理機能を使用する場合
JMS クライアントの自動フェイルオーバの制限事項
自動フェイルオーバを使用した JMS クライアントのベスト プラクティス
トランザクションを使用してメッセージ作業をグループ化する
JMS クライアントで必ず close() メソッドを呼び出す
WebLogic Server 9.0 以前のリリースでの障害に関するプログラミングの考慮事項
新しいサーバへの JMS データの移行
A
非推奨となった WebLogic JMS 機能
サーバ セッション プールの定義
手順 1 : JNDI でサーバ セッション プール ファクトリをルックアップする
手順 2 : サーバ セッション プール ファクトリを使用してサーバ セッション プールを作成する
キュー接続コンシューマで使用するサーバ セッション プールを作成する
トピック接続コンシューマで使用するサーバ セッション プールを作成する
手順 3 : 接続コンシューマを作成する
キュー用の接続コンシューマを作成する
トピック用の接続コンシューマを作成する
例 : PTP クライアントのサーバ セッション プールの設定
手順 1
手順 2
手順 3
例 : Pub/Sub クライアントのサーバ セッション プールの設定
手順 1
手順 2
手順 3
B
FAQ : リモート JMS プロバイダの統合
JMS および JNDI の用語
トランザクションについて
リモート プロバイダと統合する方法
リモート プロバイダを統合する場合のベスト プラクティス
外部 JMS サーバ定義の使用
EJB/サーブレットの JMS リソース参照の使用
WebLogic ストア アンド フォワードの使用
WebLogic JMS SAF クライアントの使用
メッセージング ブリッジの使用
メッセージング Bean の使用
AQ JMS の使用
JMS の相互運用性に関するドキュメント
C
送り先のルックアップ方法
JNDI 名の使用
参照の使用
[送り先識別子を作成] の使用
送り先のルックアップ方法の例
送り先
createQueue および createTopic の構文 (送り先の場合)
JNDI 構文 (送り先の場合)
共通分散送り先
createQueue および createTopic Syntax の構文 (UDD の場合)
JNDI 構文 (UDD の場合)
論理 UDD の参照
重み設定された分散送り先