WebLogic JMS プログラマーズ ガイド

     前  次    目次     
ここから内容の開始

概要とロードマップ

マニュアルの内容と対象読者

このマニュアルの手引き

関連ドキュメント

JMS 開発者向けのサンプルとチュートリアル

Avitek Medical Records アプリケーション (MedRec) とチュートリアル

WebLogic Server 配布キットの JMS サンプル

このリリースでの JMS の新機能と変更点

WebLogic JMS について

Java Message Service と WebLogic JMS の概要

Java Message Service とは

Java 仕様の実装

J2EE 仕様

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

アプリケーション設計のベスト プラクティス

メッセージの設計

アプリケーション オブジェクトのシリアライズ

文字列のシリアライズ

サーバサイドのシリアライズ

選択

メッセージの圧縮

メッセージ プロパティとメッセージ ヘッダ フィールド

メッセージの順序

トピックとキュー

非同期コンシューマと同期コンシューマ

永続メッセージと非永続メッセージ

確認応答とコミットの延期

非恒久サブスクライバでの AUTO_ACK の使用

代替のサービス品質、マルチキャスト、NO_ACKNOWLEDGE

MULTICAST_NO_ACKNOWLEDGE の使用

NO_ACKNOWLEDGE の使用

マルチスレッド化の回避

基本的な JMS アプリケーションの開発

必要なパッケージのインポート

JMS アプリケーションの設定

手順 1 : JNDI で接続ファクトリをルックアップする

手順 2 : 接続ファクトリを使用して接続を作成する

キュー接続の作成

トピック接続の作成

手順 3 : 接続を使用してセッションを作成する

キュー セッションの作成

トピック セッションの作成

手順 4 : 送り先 (キューまたはトピック) をルックアップする

JNDI 名の使用

参照の使用

送り先ルックアップ時のサーバ アフィニティ

手順 5 : セッションと送り先を使用してメッセージ プロデューサとメッセージ コンシューマを作成する

QueueSender と QueueReceiver の作成

TopicPublisher と TopicSubscriber の作成

手順 6a : メッセージ オブジェクトを作成する (メッセージ プロデューサ)

手順 6b : 非同期メッセージ リスナを登録する (メッセージ コンシューマ) (オプション)

手順 7 : 接続を開始する

例 : PTP アプリケーションの設定

例 : Pub/Sub アプリケーションの設定

メッセージの送信

メッセージ オブジェクトを作成する

メッセージを定義する

メッセージを送り先に送信する

キュー センダを使用してメッセージを送信する

TopicPublisher を使用してメッセージを送信する

メッセージ プロデューサ属性の設定

例 : PTP アプリケーション内でのメッセージの送信

例 : Pub/Sub アプリケーション内でのメッセージの送信

メッセージの受信

メッセージの非同期受信

非同期メッセージ パイプライン

メッセージ パイプラインのコンフィグレーション

パイプライン メッセージの動作

メッセージの同期受信

プリフェッチ モードを使用した同期メッセージ パイプラインの作成

例 : PTP アプリケーション内でのメッセージの同期受信

例 : Pub/Sub アプリケーション内でのメッセージの同期受信

受信メッセージの回復

受信メッセージの確認応答

オブジェクト リソースの解放

アプリケーションの管理

ロールバック、回復、再配信、または期限切れメッセージの管理

メッセージの再配信遅延の設定

再配信遅延の設定

送り先での再配信遅延のオーバーライド

メッセージの再配信制限の設定

送り先のメッセージ再配信制限のコンフィグレーション

配信されなかったメッセージに対するエラー送り先のコンフィグレーション

メッセージの再配信の順序付け

メッセージング ブリッジおよび MDB で必須のメッセージ パイプライン設定

パフォーマンスの制限

期限切れメッセージの処理

メッセージ配信時間の設定

プロデューサに対する配信時間の設定

メッセージに対する配信時間の設定

配信時間のオーバーライド

存続時間の値との関係

相対配信時間のオーバーライドの設定

スケジューリング済み配信時間のオーバーライドの設定

JMS スケジュール インタフェース

接続の管理

接続例外リスナの定義

接続メタデータへのアクセス

接続の開始、停止、クローズ

セッションの管理

セッション例外リスナの定義

セッションのクローズ

送り先の管理

送り先の動的作成

送り先の動的削除

送り先を削除するための事前条件

送り先削除後の動作

削除された送り先のトラブルシューティングに使用するメッセージのタイムスタンプ

削除した送り先の統計

一時的な送り先の使い方

一時的なキューの作成

一時的なトピックの作成

一時的な送り先の削除

恒久サブスクリプションの設定

永続ストアの定義

クライアント ID の定義

恒久サブスクリプション用のサブスクライバの作成

ベスト プラクティス : 問題が発生した JMS ClientID は常に閉じる

恒久サブスクリプションの削除

恒久サブスクリプションの変更

恒久サブスクリプションの管理

メッセージ ヘッダ フィールドおよびメッセージ プロパティ フィールドの設定と参照

メッセージ ヘッダ フィールドの設定

メッセージ プロパティ フィールドの設定

メッセージ ヘッダ フィールドおよびメッセージ プロパティ フィールドの参照

メッセージのフィルタ処理

SQL 文を使用したメッセージ セレクタの定義

XML セレクタ メソッドを使用した XML メッセージ セレクタの定義

メッセージ セレクタの表示

トピック サブスクライバのメッセージ セレクタへのインデックス付けによるパフォーマンス最適化

XML メッセージの送信

WebLogic XML API

String 表現の使用

DOM 表現の使用

JMS モジュール ヘルパーを使用したアプリケーションの管理

JMSModuleHelper を使用した JMS システム リソースのコンフィグレーション

JMS サーバとストア アンド フォワード エージェントのコンフィグレーション

JMSModuleHelper のサンプル コード

JMS システム リソースの作成

JMS システム リソースの削除

JMSModuleHelper 使用時のベスト プラクティス

WebLogic Server でのマルチキャストの使い方

マルチキャストを使用する利点

マルチキャストを使用する上での制限事項

WebLogic Server でのマルチキャストのコンフィグレーション

マルチキャストの前提条件

手順 1 : JMS アプリケーションを設定し、マルチキャスト セッションとトピック サブスクライバを作成する

手順 2 : メッセージ リスナを設定する

マルチキャストのコンフィグレーション属性の動的コンフィグレーション

例 : マルチキャスト TTL (存続時間)

分散送り先の使用

分散送り先とは

分散送り先を使用する理由

分散送り先の作成

分散送り先の種類

共通分散送り先

重み設定された分散送り先

分散送り先の使用

分散キューの使用

キューの転送

QueueSender

QueueReceiver

QueueBrowser

分散トピックの使用

TopicPublisher

TopicSubscriber

分散トピックへのメッセージ駆動型 Bean のデプロイ

分散送り先メンバーへのアクセス

共通送り先メンバーへのアクセス

uddMemberName

uddMemberJNDIName

重み設定された送り先メンバーへのアクセス

分散送り先のフェイルオーバ

分散送り先でのメッセージ駆動型 Bean の使用

分散送り先の一般的な使用例

生成の最大化

可用性の最大化

キューの使用

トピックの使用

メッセージのスタック

WebLogic JMS を EJB やサーブレットと組み合わせて使用するために拡張された J2EE サポート

WebLogic JMS ラッパーの有効化

EJB またはサーブレットのデプロイメント記述子における JMS オブジェクトのリソースとしての宣言

ラップされた JMS 接続ファクトリの宣言

JMS の送り先の宣言

J2EE コンテナによる JMS メッセージの送信

JMS ラッパーの内部での処理

トランザクションの自動登録

コンテナ管理のセキュリティ

接続テスト

J2EE の準拠

プールされた JMS 接続オブジェクト

プールされた接続のモニタ

プールによるパフォーマンスの向上

セッション オブジェクトのプールによる JNDI ルックアップの高速化

キャッシングによるオブジェクト作成の高速化

適切なトランザクション モードの登録

JMS ラッパー関数の例

ejb-jar.xml

weblogic-ejb-jar.xml

PoolTest.java

PoolTestHome.java

PoolTestBean.java

リモートまたは外部 JMS プロバイダへのアクセスの簡略化

メッセージ順序単位の使用

メッセージ順序単位とは

順序単位によるメッセージ処理について

JMS 仕様に準拠したメッセージ処理

順序単位によるメッセージ処理

順序単位によるメッセージ配信

メッセージ順序単位のケース スタディ

Joe による本の注文

Joe の注文の処理

メッセージ順序単位による問題解決

順序単位の作成方法

順序単位をプログラム的に作成する

順序単位を管理者が作成する

接続ファクトリと送り先の順序単位をコンフィグレーションする

順序単位の命名規約

メッセージ順序単位の高度なトピック

処理中にメッセージが遅延した場合の処理

フィルタのせいでメッセージを配信できない場合の処理

送り先ソート キーを使用している場合の処理

分散送り先で順序単位を使用する

パス サービスを使用する

ハッシュ ベースのルーティングを使用する

共通分散送り先でのルーティングをコンフィグレーションする

トピックで順序単位を使用する

JMS メッセージ管理で順序単位を使用する

WebLogic ストア アンド フォワードで順序単位を使用する

WebLogic メッセージング ブリッジで順序単位を使用する

メッセージ順序単位の制限事項

作業単位メッセージ グループの使用

作業単位メッセージ グループとは

作業単位によるメッセージ処理について

UOW に関連する基本用語

UOW メッセージを処理する場合のルール

メッセージ作業単位のケース スタディ

オンライン ショップでさまざまな商品を注文する

メッセージ作業単位による注文処理の仕組み

作業単位メッセージ グループの作成方法

UOW メッセージ プロパティを設定するプロデューサの記述方法

UOW プロデューサのサンプル コード

UOW 例外

中間送り先の UOW コンシューマおよびプロデューサの記述方法

最終送り先のコンフィグレーション

UOW メッセージの最終分散送り先へのルーティング

最終送り先の UOW コンシューマの記述方法

メッセージ作業単位の高度なトピック

メッセージ プロパティの処理

システム生成のプロパティ

最後の構成メッセージのプロパティ

構成メッセージの不均一性

ReplyTo メッセージ プロパティ

UOW と共通分散送り先

UOW とストア アンド フォワード送り先

UOW メッセージ グループの制限事項

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

トランザクションの概要

JMS トランザクション セッションの使い方

手順 1 : JMS アプリケーションを設定し、トランザクション セッションを作成する

手順 2 : 必要な処理を実行する

手順 3 : JMS トランザクション セッションをコミットまたはロールバックする

JTA ユーザ トランザクションの使い方

手順 1 : JMS アプリケーションを設定し、非トランザクション セッションを作成する

手順 2 : JNDI でユーザ トランザクションをルックアップする

手順 3 : JTA ユーザ トランザクションを開始する

手順 4 : 必要な処理を実行する

手順 5 : JTA ユーザ トランザクションをコミットまたはロールバックする

メッセージ駆動型 Bean を使用した JTA ユーザ トランザクション内の非同期メッセージング

例 : JTA ユーザ トランザクションにおける JMS と EJB

WebLogic JMS C API

WebLogic JMS C API とは

システム要件

WebLogic JMS C API のコード例

設計上の原則

ハンドルへの Java オブジェクトのマッピング

スレッドの利用

例外処理

型の変換

Integer (int)

Long (long)

Character (char)

String

メモリ割り当てとガベージ コレクション

接続のクローズ

ヘルパー関数

セキュリティの考慮事項

実装のガイドライン

サーバ障害からの回復

JMS クライアントの自動フェイルオーバ

JMS プロデューサの自動フェイルオーバ

プロデューサのサンプル コード

再使用可能な ConnectionFactory オブジェクト

再使用可能な Destination オブジェクト

再接続される Connection オブジェクト

再接続される Connection の特殊なケース

再接続される Session オブジェクト

再接続される Session の特殊なケース

再接続される MessageProducer オブジェクト

再接続される MessageProducer および分散送り先の特殊なケース

JMS コンシューマの自動フェイルオーバのコンフィグレーション

コンシューマ クライアントのサンプル コード

クライアントの自動更新オプションのコンフィグレーション

再接続される Consumer の一般的なケース

同期コンシューマ

非同期コンシューマ

再接続される Consumer の特殊なケース

分散送り先のコンシューマ

メッセージ駆動型 EJB

恒久サブスクリプションの ClientID が指定されたコンシューマ接続

非恒久サブスクリプションとメッセージの破棄

重複メッセージ

確認応答モードによる違い

コンシューマはクラスタ内で移行される JMS 送り先と再接続できない

JMS クライアントの自動フェイルオーバを明示的に無効にする

プログラムを使用する場合

管理機能を使用する場合

JMS クライアントの自動フェイルオーバの制限事項

自動フェイルオーバを使用した JMS クライアントのベスト プラクティス

トランザクションを使用してメッセージ作業をグループ化する

JMS クライアントで必ず close() メソッドを呼び出す

WebLogic Server 9.0 以前のリリースでの障害に関するプログラミングの考慮事項

新しいサーバへの JMS データの移行

非推奨となった WebLogic JMS 機能

サーバ セッション プールの定義

手順 1 : JNDI でサーバ セッション プール ファクトリをルックアップする

手順 2 : サーバ セッション プール ファクトリを使用してサーバ セッション プールを作成する

キュー接続コンシューマで使用するサーバ セッション プールを作成する

トピック接続コンシューマで使用するサーバ セッション プールを作成する

手順 3 : 接続コンシューマを作成する

キュー用の接続コンシューマを作成する

トピック用の接続コンシューマを作成する

例 : PTP クライアントのサーバ セッション プールの設定

例 : Pub/Sub クライアントのサーバ セッション プールの設定

リモート JMS プロバイダの統合 FAQ

JMS と JNDI 用語について

トランザクションについて

リモート プロバイダとの統合方法

リモート プロバイダとの統合時のベスト プラクティス

外部 JMS サーバ定義の使い方

EJB およびサーブレットの JMS リソース参照の使い方

WebLogic ストア アンド フォワードの使い方

WebLogic JMS SAF クライアントの使い方

メッセージング ブリッジの使い方

メッセージング Bean の使い方

JMS 相互運用性リソース


  ページの先頭       前  次