Oracle® Fusion Middleware

Oracle WebLogic Server JMSリソース・アダプタの管理

12c (12.2.1.1.0)

E79372-01(原本部品番号:E78173-01)

このドキュメントは、WebLogic JMSを使用したOracle WebLogic Serverと相互運用するために、サード・パーティのアプリケーション・サーバーでホストされているJMSリソース・アダプタを構成および管理する方法について説明します。

Oracle Fusion Middleware Oracle WebLogic Server JMSリソース・アダプタの管理, 12c (12.2.1.1.0)

E79372-01

Copyright © 2016, Oracle and/or its affiliates.  All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- ドキュメントのアクセシビリティについて

- 表記規則

1 概要とロードマップ

- ドキュメントの範囲および対象読者

- このドキュメントの構成

- 関連ドキュメント

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

- JMSリソース・アダプタのサンプル

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

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

- ダウンロード可能なその他のJMSサンプル

- このリリースでの新機能と変更された機能

2 WebLogic JMSリソース・アダプタの理解

- JMSリソース・アダプタの概要

- サポートされているアプリケーション・サーバー

- サポートされているWebLogic Server宛先

- WebLogic Server内のJMSリソース・アダプタの場所

3 Oracle GlassFish ServerでのJMSリソース・アダプタの管理

- JMSリソース・アダプタ・コンポーネント

- JMS環境でJMSリソース・アダプタを統合する方法

- 一般的な制限および考慮点

- weblogic.jms.extension APIのサポート

- サポートされているweblogic.jms.extensionインタフェース

- サポートされているweblogic.jms.extensionクラス

- JMSリソース・アダプタのサンプル

4 Oracle GlassFish ServerでのJMSリソース・アダプタの管理

- 構成情報およびその他の考慮点

- 追加のGlassFish Serverリソース

5 メッセージの消費の理解

- インバウンド・メッセージを消費するためのMDBの構成

- ra.xmlファイルでのinbound-resourceadapterプロパティの構成

- 必須のactivation-configプロパティ

- オプションのactivation-configプロパティ

- inbound-resourceadapterの構成例

- ejb-jar.xmlファイルでのactivation-configプロパティの構成

- ejb-jar.xmlファイルと注釈

- ejb-jar.xmlファイルでの必須のactivation-configプロパティの構成

- キューの構成例

- トピックの構成例

- ejb-jar.xmlファイルでのオプションのactivation-configプロパティの構成

- JMSリソース・アダプタactivation-configプロパティを含むejb-jar.xmlファイルの例

- スレッド管理

- 物理宛先の最大スレッドの設定

- 分散宛先の最大スレッドの設定

- 例外キューの使用

- ユーザー名とパスワードのプロパティの設定

- 詳細なWebLogic JMSリソースの構成

- JMSリソース・アダプタと共有可能なサブスクリプション

- 順序付けメッセージ処理の使用

- 分散トピックから消費する場合の設計戦略

- レプリケートされた分散トピックとパーティション化された分散トピック

- 分散トピックのOne-Copy-Per-Application設計戦略

- One-Copy-Per-Applicationの実装

- One-Copy-Per-ApplicationのEJB構成の例

- 分散トピックのOne-Copy-Per-Server設計戦略

- One-Copy-Per-Serverの実装

- スタンドアロン(非分散)トピックからの消費

- インバウンド通信のベスト・プラクティス

6 アウトバウンドJMSメッセージの送信

- JMSリソース・アダプタ・アウトバウンド通信の基本

- アウトバウンド接続の定義

- JMSリソース・アダプタの接続ファクトリ

- JMSリソース・アダプタ接続ファクトリのプロパティの構成

- JMSリソース・アダプタ・アウトバウンド接続の制限

- アウトバウンド・メッセージをロード・バランシングする方法の理解

- 接続ファクトリを使用したRMIロード・バランシング

- 分散宛先へのメッセージのロード・バランシング

- アウトバウンド通信のトランザクション・サポートの構成

- アウトバウンド通信の認証の構成

7 宛先およびネーミング・コンテキストの構成

- 管理対象オブジェクトのコンテキスト・オブジェクトについて

- 自動宛先ラッピングの使用

- キューおよびトピック用の管理対象オブジェクト

- 管理対象オブジェクト・スタンザの例

8 リソース・プロバイダの理解

- 基本的なリソース・プロバイダの構成

- リソース・プロバイダの高度な構成方法

- リソース・プロバイダの構成例

9 トランザクション処理の理解

- JMSリソース・アダプタのトランザクション・サポート

- アウトバウンド通信のトランザクション・サポート

- インバウンド・トランザクションのトランザクション・サポート

- トランザクションにおける接続の遅延登録

- WebLogicのクラスタ全体のリカバリ

10 障害の管理の理解

- WebLogic Serverの障害

- WebLogic分散宛先メンバーの障害

- トランザクション・リカバリ

- WebLogic Serverが使用不可能になった場合のトランザクション・リカバリ

- 外部サーバーが使用不可能になった場合のトランザクション・リカバリ

- WebLogicサービスの移行の理解

11 JMSリソース・アダプタ接続の保護

- Java Connector Architectureセキュリティ

- WebLogic JMSセキュリティ

- JMSセキュリティ・モデルの概要

- JMSリソースの保護

- ユーザー名とパスワード資格証明の指定

- Java Connector Architectureコンテナを使用したインバウンド接続のユーザー名とパスワードの指定

- JNDIを使用したインバウンド接続のユーザー名とパスワードの指定

- 接続ファクトリを使用したインバウンド接続のユーザー名とパスワードの指定

- アウトバウンド接続のユーザー名とパスワードの指定

- Oracleウォレットを使用した資格証明の保護

- 資格証明を設定するためのJNDIの構成例

- wljmsra暗号化ユーティリティの使用

- 通信の保護

12 JMSリソース・アダプタのデプロイメント・ディスクリプタ要素とプロパティ

- JMSリソース・アダプタのra.xmlファイルの例

- JMSリソース・アダプタの要素の説明

- activationspec

- activationspec-class

- adminobject

- adminobject-class

- adminobject-interface

- authentication-mechanism

- authentication-mechanism-type

- config-property-name

- config-property-type

- config-property-value

- connection-definition

- connectionfactory-impl-class

- config-property

- connectionfactory-interface

- connection-impl-class

- connection-interface

- connector

- credential-interface

- display-name

- eis-type

- inbound-resourceadapter

- managedconnectionfactory-class

- messageadapter

- messagelistener

- messagelistener-type

- reauthentication-support

- required-config-property

- resourceadapter

- resourceadapter-class

- resourceadapter-version

- outbound-resourceadapter

- transaction-support

- vendor-name

- JMSリソース・アダプタのインバウンド・プロパティ

- JMSリソース・アダプタのアウトバウンドの構成プロパティ

- 管理対象オブジェクトの構成プロパティ

はじめに

ここでは、ドキュメントのアクセシビリティの機能と、このマニュアル(Oracle WebLogic Server JMSリソース・アダプタの管理)で使用している表記規則について説明します。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティへの取り組みについては、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)にアクセスしてください。

Oracleサポートへのアクセス

サポートを購入したオラクル社のお客様は、My Oracle Supportを介して電子的なサポートにアクセスできます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info、聴覚に障害があるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 概要とロードマップ

このドキュメントでは、このマニュアル(Oracle WebLogic Server JMSリソース・アダプタの管理)の内容および構成について説明します。

次のトピックが含まれています:

- ドキュメントのスコープと対象読者

- このドキュメントの手引き

- 関連ドキュメント

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

- このリリースでの新機能と変更された機能

ドキュメントの範囲および対象読者

このドキュメントは、外部アプリケーション・サーバーでWebLogic JMSを使用し、WebLogic JMSクライアントを統合するJava EE Connector Architectureリソース・アダプタを使用して相互運用する必要があるシステム管理者を対象としています。

ここでは、Javaプラットフォーム、Enterprise Edition (Java EE)、Java EE Connector Architectureバージョン1.7リソース・アダプタおよびJMSのプログラミングの概念に精通している読者を対象としています。このドキュメントでは、WebLogic Serverで提供される付加価値機能と、WebLogic JMSリソース・アダプタの構成および使用方法に関する主要な情報を重点的に扱います。

このドキュメントの構成

- この章(概要とロードマップ)では、このマニュアルの構成、新機能、および関連ドキュメントについて説明します。

- WebLogic JMSリソース・アダプタの理解では、WebLogic JMSリソース・アダプタのコンポーネント、概念および機能の概要について説明します。

- Oracle GlassFish ServerでのJMSリソース・アダプタの管理では、外部アプリケーション・サーバーでWebLogic JMSを使用して相互運用するために、JMSリソース・アダプタを使用する際に必要なコンポーネント、設計オプションおよびその他の前提条件としての考慮点を説明します。

- Oracle GlassFish ServerでのJMSリソース・アダプタの管理では、Oracle GlassFish ServerでJMSリソース・アダプタのデプロイを使用する場合の追加の構成情報および考慮点について説明します。

- メッセージの消費の理解では、JMSリソース・アダプタが外部アプリケーション・サーバーでWebLogic JMSメッセージをインバウンド・メッセージとして非同期に消費するためのメッセージドリブンBean (MDB)を構成するために、JMSリソース・アダプタのra.xmlファイルを構成する方法について説明します。

- アウトバウンドJMSメッセージの送信では、JMSリソース・アダプタを使用したJMSメッセージの送信方法について説明します。

- 宛先およびネーミング・コンテキストの構成では、インバウンドとアウトバウンドの通信の宛先およびネーミング・コンテキストを定義するadminobject要素の構成に関する情報を提供します。

- リソース・プロバイダの理解では、リソース・プロバイダの使用方法と構成方法について説明します。リソース・プロバイダでは、JMSリソース・アダプタによるWebLogic JMSプロバイダへの接続を可能にするJNDIプロパティを定義します。

- トランザクション処理の理解では、外部アプリケーション・サーバーとWebLogic Serverの間で相互運用するためにJMSリソース・アダプタを使用する場合のトランザクション処理およびリカバリについて説明します。

- 障害の管理の理解では、JMSリソース・アダプタがWebLogic Serverおよび外部アプリケーション・サーバーの障害に対応する方法について説明します。

- JMSリソース・アダプタ接続の保護では、JMSリソース・アダプタのセキュリティの考慮点について説明します。

- JMSリソース・アダプタのデプロイメント・ディスクリプタとプロパティでは、WebLogic JMSリソース・アダプタのデプロイメント・ディスクリプタ・ファイルra.xmlについて説明します。

関連ドキュメント

JMSリソース・アダプタの構成および使用に関連するトピックについては、次のドキュメントを参照してください。

- Oracle WebLogic Server JMSリソースの管理では、WebLogic JMSリソースを構成および管理する方法について説明します。

- Oracle WebLogic Server JMS アプリケーションの開発では、WebLogic JMSアプリケーションを開発する方法について説明します。

- Oracle WebLogic Serverのパフォーマンスのチューニングでは、WebLogic Serverでのパフォーマンスの監視およびコンポーネントのチューニングに関する情報を提供します。

- Oracle WebLogic Serverアプリケーションの開発では、WebLogic Serverアプリケーションを開発する方法について説明します。

- 『Oracle WebLogic Serverへのアプリケーションのデプロイ』は、WebLogic Serverアプリケーションのデプロイに関する主要な情報源です。

- 『Oracle WebLogic Serverリソース・アダプタの開発』 は、WebLogicリソース・アダプタとJava EEコネクタ・アーキテクチャのWebLogic Server実装についてのガイドです。

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

このドキュメントの他にも、様々なサンプル・コードやチュートリアルがJMS開発者向けに用意されています。サンプルとチュートリアルではWebLogic Server JMSの動作が例示され、主要なJMS開発タスクを実行する実際的な手順が示されています。

独自のJMSアプリケーションを開発する前に、まずJMSサンプルの一部またはすべてを実行することをお薦めします。

JMSリソース・アダプタのサンプル

このサンプルは、外部アプリケーション・サーバーにデプロイされたWebLogic JMSリソース・アダプタを利用し、WebLogic JMSサービスと相互運用する方法を示しています。このサンプルは、WebLogic環境にサンプルをインストールする場合に含まれます。

JMSリソース・アダプタの例の詳細は、JMSリソース・アダプタのサンプルを参照してください。

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

MedRecはWebLogic Serverに付属したエンドツーエンドのサンプルJava EEアプリケーションであり、一元的で独立した医療記録管理システムをシミュレートします。MedRecアプリケーションには、患者、医師、および管理者に対して、様々なクライアントを使用して患者のデータを管理するフレームワークが用意されています。

MedRecはWebLogic ServerとJava EEの機能を例示し、Oracle推奨のベスト・プラクティスを重要点として示します。MedRecは、WebLogic Serverインストールとともにオプションでインストールできます。MedRecは、ORACLE_HOME\user_projects\domains\medrecディレクトリから起動できます(ORACLE_HOMEは、Oracle WebLogic ServerをインストールしたときにOracle Homeとして指定したディレクトリです)。

サンプル・アプリケーション・スイートのインストールおよび構成の詳細は、Oracle WebLogic Serverの理解のサンプル・アプリケーションとコード例を参照してください。

MedRecには、Webアプリケーション、Webサービス、ワークフロー・アプリケーションおよびクライアント・アプリケーションからのリクエストを共同で処理する複数のEnterprise Java Beans (EJB)で主に構成されるサービス層があります。MedRecには、メッセージドリブンEJB、ステートレス・セッションEJB、ステートフル・セッションEJB、およびエンティティEJBが含まれます。

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

WebLogic Server では、必要に応じてAPIサンプル・コードをWL_HOME\samples\server\examples\src\examplesにインストールできます。WL_HOMEはWebLogic Serverの最上位のインストール・ディレクトリを示します。サンプル・サーバーを起動して、サンプルとその実行手順に関する情報をWebLogic Serverのスタート・メニューから取得します。

ダウンロード可能なその他のJMSサンプル

その他のAPIサンプルは、http://www.oracle.com/technology/index.htmlのOracle Technology Networkからダウンロードできます。これらのサンプルは、WebLogic Serverの既存のサンプル・ディレクトリ構造に解凍する.zipファイルで配布されます。ダウンロードしたサンプルは、インストール済のWebLogic Serverサンプルと同じ方法でビルドして実行します。

このリリースでの新機能と変更された機能

このリリースで導入されたWebLogic Serverの新機能の一覧については、Oracle WebLogic Server 12.2.1の新機能を参照してください。

2 WebLogic JMSリソース・アダプタの理解

次の各項では、WebLogic JMSリソース・アダプタのコンポーネント、概念および機能の概要について説明します。

- JMSリソース・アダプタの概要

- サポートされているアプリケーション・サーバー

- サポートされているWebLogic Server宛先

- WebLogic Server内のJMSリソース・アダプタの場所

JMSリソース・アダプタの概要

WebLogic Serverは、Java EE Connector Architectureバージョン1.7に準拠したリソース・アダプタ(JMSリソース・アダプタと呼ばれる)を提供し、サポートされている外部アプリケーション・サーバーとのWebLogic JMSクライアントの統合を実現します。

JMSリソース・アダプタには次の機能があります。

- JMS用のJava EE Connector Architectureアウトバウンドおよびインバウンド規約の実装。

- JMS接続ファクトリおよび宛先を参照するためのJNDIマッピング。

- メッセージドリブンBean (MDB)統合(メッセージ・ロード変更の動的調整を含む)

- JMS接続プーリング

- JMS操作の遅延解決、開始順序非依存、JMSプロバイダの開始と停止などの動的管理の許可、プロバイダ障害時における接続の再試行を含む
詳細は、トランザクションにおける接続の遅延登録を参照してください。

- WebLogic JMSに対するクラスタ対応のXAサポート。これは、透過的に非WebLogicトランザクション・マネージャと統合されており、すべての典型的な障害状況から適切に回復します。
詳細は、トランザクション・リカバリを参照してください。

- 分散宛先のすべてのアクティブ・メンバーが常に処理できる(滞留するメッセージがない)、非同期メッセージ処理のサポート。さらに、非同期メッセージ処理は、分散トピック全体にパーティション化された単一の論理恒久サブスクリプションなど、メッセージング・システムの高度なパブリッシュ・オプションやサブスクライブ・オプションを提供します。

- アダプタをラッピングしたオブジェクトを、WebLogic JMSインタフェースにキャストすることを可能にする、WebLogic JMS拡張機能のサポート。
詳細は、weblogic.jms.extension APIのサポートを参照してください。

- WebLogicセキュリティ・モデルのサポート。
詳細は、JMSリソース・アダプタ接続の保護を参照してください。

- 高度なポイズン・メッセージの処理。JMSリソース・アダプタは、指定されたエラー宛先へ何度も再配信されたメッセージを自動的にリダイレクトするように構成されています。
詳細は、例外キューの使用を参照してください。

- 宛先コンテキストの単一のリソース・アダプタ管理対象オブジェクトの使用による、宛先の複数のJNDIマッピング構成の簡略化。これにより、アプリケーションは任意の数の宛先を直接参照することが可能になり、複数の管理対象オブジェクトおよびresource-env参照を構成する必要がなくなります。
詳細は、自動宛先ラッピングの使用を参照してください。

サポートされているアプリケーション・サーバー

このリリースのJMSリソース・アダプタでは、Oracle GlassFish version 3.1以上へのデプロイメントがサポートされています。

注意:

Oracle WebLogic ServerでのJMSリソース・アダプタのデプロイはサポートされていません。

サポートされているWebLogic Server宛先

このリリースのJMSリソース・アダプタでは、Oracle WebLogic Serverリリース12.1.2以上の宛先との外部アプリケーション・サーバーの相互運用性がサポートされています。

WebLogic Server内のJMSリソース・アダプタの場所

JMSリソース・アダプタは、WebLogic ServerインストールのWL_HOME\server\libディレクトリにあるファイルwljmsra.jarに含まれています。

3 Oracle GlassFish ServerでのJMSリソース・アダプタの管理

次の各項では、外部アプリケーション・サーバーでWebLogic JMSを使用して相互運用するために、JMSリソース・アダプタを使用する際に必要な主要コンポーネント、設計オプションおよびその他の前提条件としての考慮点を含む、JMSリソース・アダプタ実装について説明します。

- JMSリソース・アダプタ・コンポーネント

- JMS環境でJMSリソース・アダプタを統合する方法

- 一般的な制限および考慮点

- weblogic.jms.extension APIのサポート

- JMSリソース・アダプタのサンプル

JMSリソース・アダプタ・コンポーネント

JMSリソース・アダプタには次のコンポーネントがあります。

- ra.xmlファイル: 外部アプリケーション・サーバーとWebLogic JMSの間で相互運用するために、JMSリソース・アダプタを構成する際に使用されるxmlファイルです。

- wlthint3client.jarファイル: WebLogicシンT3 Javaクライアントは、外部アプリケーション・サーバーおよびWebLogic Server上で実行されるアプリケーション間の統合を提供する、軽量のクライアントです。一般的なユースケースの1つに、WebLogic JMS宛先との統合があります。
詳細は、Oracle WebLogic Serverスタンドアロン・クライアントの開発のWebLogicシンT3クライアントの理解を参照してください。

- Oracleウォレットのサポート用の次のクラス・ファイルとJARファイル:

- oraclepki.jar

- osdt_cert.jar

- osdt_core.jar

- WalletUtilWrapper.class

詳細は、Oracleウォレットを使用した資格証明の保護を参照してください。

- weblogic.jms.ra.jarファイル: Java EE Connector Architectureバージョン1.7に準拠したWebLogic Serverリソース・アダプタの実装。

JMS環境でJMSリソース・アダプタを統合する方法

次のタスクを実行してJMSリソース・アダプタを外部アプリケーション・サーバーと統合し、アプリケーションがWebLogic JMSと相互運用できるようにするのに必要な手順の基本的な概要を説明します。

- アプリケーションがJMS準拠でweblogic.jms.extensions APIを使用できることを確認します。
JMSリソース・アダプタの機能、サポートおよび制限の詳細は、WebLogic JMSリソース・アダプタの理解および一般的な制限および考慮点を参照してください。

WebLogic JMSのプログラミングに関する基本情報は、Oracle WebLogic Server JMSアプリケーションの開発のWebLogic JMSの理解を参照してください。

- 使用環境にあわせて、次の各章の説明に従ってra.xmlファイルを構成します。

- メッセージの消費の理解

- アウトバウンドJMSメッセージの送信

- 宛先およびネーミング・コンテキストの構成

- リソース・プロバイダの理解

- JMSリソース・アダプタをデプロイおよび管理します。デプロイ、構成および監視などの管理タスクに対して、外部アプリケーション・サーバーのネイティブ・サポートを使用します。詳細は、Oracle GlassFish ServerでのJMSリソース・アダプタの管理を参照してください。
エラー・メッセージでは、JMSリソース・アダプタおよびその他のOracle Fusion Middlewareコンポーネントの使用時に発生するエラー・メッセージについて説明します。

一般的な制限および考慮点

JMSリソース・アダプタを使用する場合は、次の考慮点と制限に注意してください。

- 2つ以上のJMSリソース・アダプタが同じアプリケーション・サーバー上にデプロイされている場合、それらのデプロイメントでwljmsra.rarファイルの同じバージョンのOracle WebLogic Serverを使用する必要があります。異なるリリース・バージョンのJMSリソース・アダプタには、予測できない結果を引き起こす可能性がある差異が含まれている場合があります。

- リスニング・メッセージドリブンBean (MDB)が使用不可能になった場合、JMSリソース・アダプタによって恒久サブスクライバが自動的にサブスクライブ解除(つまり削除)されることはありません。WebLogic Server MDBはサブスクライブ解除の機能をサポートしていますが、サブスクリプションを作成して名前を付けることもできます。外部アプリケーション・サーバーを使用すると、通常ユーザーはMDB構成でサブスクリプション名を指定できるため、指定された恒久サブスクライバのサブスクライブ解除が適切であるかどうかを判断することが困難になります。指定されたサブスクリプションの削除が適切であると判断できた場合でも、Java Connector Architecture規約では、サブスクライバを削除するためのコールバック・インタフェースの標準実装は提供されません。

- JMSクライアントの自動フェイルオーバーはサポートされていません。
詳細は、JMSリソース・アダプタ・アウトバウンド接続の制限を参照してください。

- WebLogic JMSリソース・アダプタを自動的に使用するアプリケーションは、外部アプリケーション・サーバーの接続マネージャに関連付けられているWebLogic JMS接続を使用します。様々なJava EE仕様で説明されているように、これらのJMSの管理対象接続は、他のアプリケーションによって再利用するために、作成および使用され、外部アプリケーション・サーバーの接続プールに返されます。これには次の制限があります。

- 接続上でのsetClientIDメソッドの使用はサポートされていません。接続上にClientIDプロパティが設定されている場合、接続は削除できないため、その接続を再利用するすべてのアプリケーションはClientID値を取得することになります。また、このような接続を使用するアプリケーションでは、すでにこの操作が実行されているためsetClientIDメソッドを接続上で呼び出すことはできません。

- Java EE 7仕様で指定されているように、setExceptionListenerなどのコンテナによる接続管理を妨げる可能性のあるその他のメソッドはサポートされていません。

- 接続ファクトリの設定の一部として、たとえばsetSubscriptionSharingPolicyメソッドを使用して接続プロパティを設定する必要があります。そうでない場合、接続上でプロパティを直接設定する前に、管理対象接続プールに接続およびセッションが作成されていることを確認する必要があります。

- MDBのメッセージ・リスナーを構成する場合、<trans-attribute>要素に使用できる値は、REQUIREDおよびNOT_SUPPORTEDのみです。
詳細は、次のURLでTransactionAttributeTypeに列挙されたタイプの説明を参照してください。

http://docs.oracle.com/javaee/7/api/javax/ejb/TransactionAttributeType.html

weblogic.jms.extension APIのサポート

次の各項では、JMSリソース・アダプタがweblogic.jms.extensions APIをサポートする方法について説明します。

- サポートされているweblogic.jms.extensionインタフェース

- サポートされているweblogic.jms.extensionクラス

サポートされているweblogic.jms.extensionインタフェース

JMSリソース・アダプタはカスタム・ラッパー・クラスを使用してweblogic.jms.extensionsインタフェースを自動的に実装し、順序単位(UOO)やメッセージ・スケジューリングなどのWebLogic機能をサポートします。JMSリソース・アダプタra.xmlファイルには、適切なWebLogic JMSラッパー・クラスに対応するエントリが事前に入力されているため、サポートされているWebLogic JMS機能にアクセスするための追加の構成は必要ありません。

注意:

weblogic.jms.extensions APIを使用する場合、JMSリソース・アダプタの接続ファクトリに説明されているようにWebLogic接続ファクトリを使用します。

JMSリソース・アダプタでは、次のweblogic.jms.extensionsインタフェースをサポートしています。

- weblogic.jms.extensions.WLConnection

- weblogic.jms.extensions.WLSession

- weblogic.jms.extensions.WLQueueSession

- weblogic.jms.extensions.WLTopicSession

- weblogic.jms.extensions.WLDestination

- weblogic.jms.extensions.WLMessageProducer

- weblogic.jms.extensions.WLMessage

- weblogic.jms.extensions.XMLMessage

サポートされているweblogic.jms.extensionクラス

JMSリソース・アダプタでは、次のweblogic.jms.extensionsクラスをサポートしています。

- weblogic.jms.extensions.ClientSAFEncrypt

- weblogic.jms.extensions.ClientSAFFactory

- weblogic.jms.extensions.ClientSAFGenerate

- weblogic.jms.extensions.ClientSAFParser

- weblogic.jms.extensions.ConsumerInfo

- weblogic.jms.extensions.DestinationInfo

- weblogic.jms.extensions.JMSDestinationAvailabilityHelper

- weblogic.jms.extensions.JMSHelper

- weblogic.jms.extensions.JMSMessageFactoryImpl

- weblogic.jms.extensions.JMSMessageInfo

- weblogic.jms.extensions.JMSModuleHelper

- weblogic.jms.extensions.JMSRuntimeHelper

- weblogic.jms.extensions.Schedule

JMSリソース・アダプタのサンプル

Oracleでは、WebLogicのサンプル・コンポーネントをインストールして構成するときに使用できるJMSリソース・アダプタのサンプルを提供します。このサンプルは、外部アプリケーション・サーバーにデプロイされたJMSリソース・アダプタを使用する方法を示しています。このサンプルは、単純な従業員クロックイン・アプリケーションを使用してWebLogic JMSサービスと相互運用する方法を示しています。

このサンプルは、次の方法を示します。

- WebLogic Serverクラスタの構成および使用

- WebLogic接続ファクトリの構成および使用

- 分散トピックとキューの構成および使用

- サポートされているアプリケーション・サーバーにリストされた、サポートされている外部アプリケーション・サーバーへのJMSリソース・アダプタのデプロイ。

- 次を指定するJMSリソース・アダプタconfig-propertiesファイルの構成

- JMSサービスを提供するWebLogic ServerインスタンスのWebLogic JNDIコンテキスト

- DistributedQueueとしてWebLogic JNDIにバインドされている宛先に、ローカルJNDI名sample/destination/queueをマッピングするadminobject要素

- DistributedTopicとしてWebLogic JNDIにバインドされている宛先に、ローカルJNDI名sample/destination/topicをマッピングするadminobject要素

- weblogic.jms.ConnectionFactoryとしてWebLogic JNDIにバインドされている接続ファクトリにマッピングされる、sampleまたはfactoryとしてローカルJNDI名にバインドされている接続ファクトリ

- JMSリソース・アダプタの接続ファクトリおよび宛先に定義されているローカルJNDI名にマッピングされる、サーブレットのweb.xmlデプロイメント・ディスクリプタ・ファイルの要素resource-refおよびresource-env-refの構成

- MDBがインバウンド・メッセージを消費できるために必要なactivation-config要素の構成

インストールされると、JMSリソース・アダプタのサンプルはORACLE_HOME\wl_server\samples\server\examples\src\samples\jms\resourceAdapterにあります。詳細は、Oracle WebLogic Serverの理解のサンプル・アプリケーションとコード例を参照してください。

4 Oracle GlassFish ServerでのJMSリソース・アダプタの管理

この章の内容は次のとおりです。

- 構成情報およびその他の考慮点

- 追加のGlassFish Serverリソース

構成情報およびその他の考慮点

JMSリソース・アダプタをデプロイするときは、次に示した構成情報およびその他の考慮点に注意してください。:

- セキュアなメソッドを使用した資格証明を設定するメソッドを提供するために、Java Connector Architectureコンテナを使用することをお薦めします。
詳細は、JMSリソース・アダプタ接続の保護を参照してください。

- 接続の遅延登録をサポートします。詳細は、トランザクションにおける接続の遅延登録を参照してください。

- GlassfishのXAResourceタイムアウト値は、デフォルトでは30秒で、トランザクション・タイムアウトからは独立しています。これより長いXAResourceタイムアウトが必要な場合、Glassfishのシステム・プロパティserver-config.transaction-service.property.xaresource-txn-timeoutをトランザクション・タイムアウト値と同じ値に設定する必要があります。

- Oracle GlassFish 3.1.xでは、アウトバウンド・メッセージ・ドリブンBean (MDB)接続がロールバックされたトランザクションにどのようにして関連付けられたままになるかに関する既知の問題があります。
アプリケーションがXA対応MDBのonMessageメソッド内で、javax.ejb.MessageDrivenContext.setRollbackOnlyメソッドを使用する(つまり、XAでバックアップされたアウトバウンド接続ファクトリを使用する)場合、javax.transaction.xa.XAException: The resource already has an active association with a transactionというメッセージを受信する場合があります。ロールバックおよびそれに関連付けられている接続が別のトランザクションで再使用されるために接続プールから取得された後、この例外がスローされます。有償版のOracle GlassFishを使用している場合は、OracleのGlassfishのサポート担当者にお問い合せください。オープン・ソース・バージョンを所有している場合は、http://java.net/jira/browse/GLASSFISH-19094でパッチを入手できます。

- Glassfish 3.1クラスタ環境にJMSリソース・アダプタをデプロイしている場合、ClassNotFoundException例外を受け取ることがあります。この場合、wljmsra.rarファイルにパッケージされているwlthint3client.jarファイルを<Glassfish_install_dir>/libディレクトリにコピーします。詳細は、http://java.net/jira/browse/GLASSFISH-19111を参照してください。

- WARファイルのデプロイとアンデプロイを複数回行うと、次の例外を受け取る場合があります。
Failed to generate class for weblogic.messaging.dispatcher.FastDispatcherImpl_12120_WLStub

この例外を回避するには、GlassFish Serverを再起動します。

- 3.1.2および3.1.2.2リリースにおける新規製品機能のサマリーおよび既知の問題と制限の説明と回避策は、Oracle GlassFish Serverリリース・ノートのOracle GlassFish Server 3.1.2および3.1.2.2のリリース・ノートを参照してください。

追加のGlassFish Serverリソース

追加のGlassFish Serverリソースは、次のリファレンスを参照してください。

- Oracle GlassFish Serverのダウンロード・ページは次のURLで利用できます。
https://glassfish.java.net/download.html

- Oracle GlassFish Server 3.1 Quick Start Guide。次のURLで利用できます。
http://docs.oracle.com/cd/E18930_01/html/821-2432/index.html

5 メッセージの消費の理解

次の各項では、外部アプリケーション・サーバーでWebLogic JMSメッセージをインバウンド・メッセージとして非同期に消費するためのメッセージドリブンBean (MDB)を構成するように、JMSリソース・アダプタのra.xmlファイルを構成する方法について説明します。

- インバウンド・メッセージを消費するためのMDBの構成

- 詳細なWebLogic JMSリソースの構成

- インバウンド通信のベスト・プラクティス

インバウンド・メッセージを消費するためのMDBの構成

WebLogic宛先からのメッセージを非同期に消費するためのMDBを必要とするアプリケーションでは、JMSリソース・アダプタのインバウンド実装を使用します。MDBの動作は、アプリケーションをデプロイする前に、次のファイルのプロパティ値を構成することによって決定されます。

- ra.xmlファイルでのinbound-resourceadapterプロパティの構成

- ejb-jar.xmlファイルでのactivation-configプロパティの構成

- スレッド管理

ra.xmlファイルでのinbound-resourceadapterプロパティの構成

次の各項では、ra.xmlファイルでインバウンド構成のinbound-resourceadapterプロパティを定義する方法について説明します。

- 必須のactivation-configプロパティ

- オプションのactivation-configプロパティ

- inbound-resourceadapterの構成例

必須のactivation-configプロパティ

必須のinbound-resourceadapterプロパティは、WebLogic JMSリソース・アダプタのra.xmlファイルで指定されます。このファイルは、使用中のWebLogic ServerインストールのWL_HOME\server\libディレクトリにあります。

指定する必要があるJMSのプロパティには、次のものがあります。

- ConnectionFactory

- destination

- destinationType

ConnectionFactory、destinationおよびdestinationTypeプロパティの値は、ejb-jar.xmlファイルのactivation-configプロパティとして定義されます。また、ejb-jar.xmlで構成されたJNDI名は、connection-definitionおよびadminobject要素のJMSリソース・アダプタ値に割り当てられたJNDI名にマッピングする必要があります。

次のトピックも参照してください。

- ejb-jar.xmlファイルでのactivation-configプロパティの構成

- JMSリソース・アダプタ接続ファクトリのプロパティの構成

- 宛先およびネーミング・コンテキストの構成

オプションのactivation-configプロパティ

JMSリソース・アダプタでは、その他多数のactivation-configプロパティがサポートされています。

ejb-jar.xmlファイルでのactivation-configプロパティの構成およびJMSリソース・アダプタのインバウンド・プロパティを参照してください。

inbound-resourceadapterの構成例

次のコード例は、inbound-resourceadapter構成を示しています。

. . .
<inbound-resourceadapter>
<messageadapter>
<messagelistener>
<messagelistener-type>
javax.jms.MessageListener
</messagelistener-type>
<activationspec>
<activationspec-class>
weblogic.jms.ra.ActivationSpecImpl
</activationspec-class>
<required-config-property>
<config-property-name>ConnectionFactory</config-property-name>
</required-config-property>
<required-config-property>
<config-property-name>Destination</config-property-name>
</required-config-property>
<required-config-property>
<config-property-name>DestinationType</config-property-name>
</required-config-property>
</activationspec>
</messagelistener>
</messageadapter>
</inbound-resourceadapter>
. . .

ejb-jar.xmlファイルでのactivation-configプロパティの構成

次の各項では、ejb-jar.xmlファイルでactivation-configプロパティを構成する方法について説明します。

- ejb-jar.xmlファイルと注釈

- ejb-jar.xmlファイルでのオプションのactivation-configプロパティの構成

- JMSリソース・アダプタactivation-configプロパティを含むejb-jar.xmlファイルの例

ejb-jar.xmlファイルと注釈

ejb-jar.xmlの要素については、http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsdでスキーマを参照してください。

ejb-jar.xmlはEJB 3.0の時点でオプションです。注釈を使用すると、ディスクリプタ要素のかわりにメタデータを宣言できます。

EJB 3.2に準拠したMDBをプログラムおよび実装する方法は、Oracle WebLogic ServerメッセージドリブンBeanの開発のEJB 3.2に準拠したMDBの使用を参照してください。

ejb-jar.xmlファイルでの必須のactivation-configプロパティの構成

ra.xmlファイルのinbound-resourceadapterのすべてのrequired-config-propertyプロパティに、activation-config-propertyプロパティを構成する必要があります。

一般的な必須のJMSプロパティには次のものがあります。

- ConnectionFactory: JMSコネクタの接続ファクトリのJNDIロケーション。

- destination: JMSコネクタの宛先のJNDIロケーション。

- destinationType: 次のいずれかのタイプになります。

- javax.jms.Topic

- javax.jms.Queue

- javax.jms.Destination

また、MDBアプリケーションがオプションのactivation-configプロパティを使用している場合は、外部アプリケーション・サーバーで、これらのオプションのactivation-configプロパティがra.xmlファイルにrequired-config-property要素として定義されている必要がある場合があります。

詳細は、アプリケーション・サーバーのベンダーが提供するドキュメントで確認してください。

キューの構成例

次の例は、キューの構成のactivation-configプロパティを示しています。この例では、MDBは、JNDI名wljmsra/xacfを持つ接続ファクトリからの接続を使用して、JNDI名wljmsra/queueを持つキューからメッセージをデキューします。

. . .
<activation-config-property>
<activation-config-property-name>
ConnectionFactory
</activation-config-property-name>
<activation-config-property-value>
wljmsra/xacf
</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>
Destination
</activation-config-property-name>
<activation-config-property-value>
wljmsra/queue
</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>
DestinationType
</activation-config-property-name>
<activation-config-property-value>
javax.jms.Queue
</activation-config-property-value>
</activation-config-property>
. . .

トピックの構成例

次の例は、トピックの構成のactivation-configプロパティを示しています。この例では、MDBは、JNDI名wljmsra/txacf1を持つ接続ファクトリからの接続を使用して、JNDI名wljmsra/pdtopic1を持つトピックからメッセージをデキューします。

. . .
<activation-config-property>
<activation-config-property-name>
ConnectionFactory
</activation-config-property-name>
<activation-config-property-value>
wljmsra/txacf1
</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>
Destination
</activation-config-property-name>
<activation-config-property-value>
wljmsra/pdtopic1
</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>
DestinationType
</activation-config-property-name>
<activation-config-property-value>
javax.jms.Topic
</activation-config-property-value>
</activation-config-property>
. . .

ejb-jar.xmlファイルでのオプションのactivation-configプロパティの構成

使用環境に合った適切なMDB動作を取得するのに必要な追加プロパティを構成します。詳細は、JMSリソース・アダプタ・インバウンド・プロパティを参照してください。

JMSリソース・アダプタactivation-configプロパティを含むejb-jar.xmlファイルの例

次の例は、JMSリソース・アダプタactivation-configプロパティを含むejb-jar.xmlファイルを示しています。

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee">
<display-name>WebLogic RA Demo</display-name>
<enterprise-beans>
<message-driven>
<display-name>My queue MDB</display-name>
<ejb-name>queueMDB</ejb-name>
<ejb-class>jms.ra.DisQueueMDB</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Container</transaction-type>
<activation-config>
<activation-config-property>
<activation-config-property-name>
ConnectionFactory
</activation-config-property-name>
<activation-config-property-value>
java:sample/factory
</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>
Destination
</activation-config-property-name>
<activation-config-property-value>
java:sample/destination/queue
</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>
DestinationType
</activation-config-property-name>
<activation-config-property-value>
javax.jms.Queue
</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>UserName</activation-config-property-name>
<activation-config-property-value></activation-config-property-value>                </activation-config-property>
<activation-config-property>
<activation-config-property-name>Password</activation-config-property-name>
<activation-config-property-value></activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>ClientId</activation-config-property-name>
<activation-config-property-value>queueMDB</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>MessageSelector</activation-config-property-name>
<activation-config-property-value></activation-config-property-value>
</activation-config-property>
</activation-config>
</message-driven>
. . .
</message-driven>
</enterprise-beans>
. . .
</ejb-jar>

その他のejb-xml.jarファイルの例については、JMSリソース・アダプタの例に説明されているWebLogic Server環境のJMSリソース・アダプタのサンプル・アプリケーション例を確認してください。

スレッド管理

JMSリソース・アダプタでは、インバウンド・メッセージを消費するMDBによって使用される宛先のスレッドを管理するために、次のプロパティを提供しています。

- minListenerThreads: 個々の物理宛先に対して作成されるリスナー・スレッドの最小数。

- maxTotalListenerThreads: 宛先に使用できるリスナー・スレッドの最大数。

- maxListenerThreads: 宛先内の個々の物理宛先に対して作成されるリスナー・スレッドの最大数。

物理宛先の最大スレッドの設定

宛先に対して最大数のスレッド(maxListenerThreads)を構成する場合、次に注意してください。

- キュー: 2つ以上のスレッドを使用すると、メッセージが消費される速度の向上に役立つ場合があります。

- トピック: この値は常に1に設定する必要があります。各リスナー・スレッドは、独自のセッションとTopicSubscriberを取得します。

- 恒久サブスクライバ: 同じサブスクリプション名のサブスクライバを複数持てない場合があります。

- 非恒久サブスクライバ: この値は常に1に設定する必要があります。スレッドを増加すると、サブスクライバが増加し、処理する各メッセージのコピーが過剰になります。

分散宛先の最大スレッドの設定

maxTotalListenerThreadsプロパティを使用すると、分散宛先のスレッドの追加処理を制限または指定できます。

- maxTotalListenerThreadsの値が関連付けられている分散宛先内の物理宛先の数より小さい場合、JMSリソース・アダプタは、分散宛先内の物理宛先の数と同じ値を使用し、警告メッセージを記録します。

- 外部アプリケーション・サーバーが分散宛先内の物理宛先の数以上のスレッドを指定できない場合、JMSリソース・アダプタは警告メッセージを記録します。

- JMSリソース・アダプタでは、スレッドを割り当てるための公平性ポリシーを実装しているので、maxListenerThreadsより小さい数が現在設定され、より多くのスレッドを必要としている個々の物理宛先は、同じ分散宛先内の他の物理宛先(少なくともさらに2つ多いスレッドを持つ)からスレッドを再割当てできます。この公平性ポリシーは、外部アプリケーション・サーバーのWorkManagerインスタンス(JMSリソース・アダプタによるmaxTotalListenerThreadsでの新規スレッドの追加リクエストを許可しない)からは独立しています。
スレッド不足の決定および既存のスレッドの転送の両方が、メッセージの処理中(onMessageのコール中)に行われるため、ある宛先から別の宛先へのスレッドの再割当てのプロセスには時間がかかります。2つのスレッドが含まれているため、転送プロセスは2つ分のonMessage処理時間がかかります。

例外キューの使用

JMSリソース・アダプタを使用すると、インバウンド通信の例外キューを構成して、インバウンドMDBキューのポイズン・メッセージを処理できます。UseExceptionQueueプロパティが有効になっている場合、他の場合には破棄されてしまうメッセージが例外キューに送信されます。メッセージは通常、maxDeliveryCount値を超えた場合に、例外キューに送信されます。詳細は、maxDeliveryCountを参照してください。

メッセージは、次のルールを使用して例外キューへ処理されます。

- メッセージは、例外キューに直接設定されません。

- 同じタイプの新しいメッセージが作成されます。

- 元のメッセージのプロパティおよびボディが新しいメッセージにコピーされます。
リソース・プロバイダによって元のヘッダーがオーバーライドされないようにするために、それぞれがGJRA_CopyOfJMS{Header}プロパティにコピーされます。javax.jms.Destinationは有効なプロパティ・タイプではないため、各宛先ヘッダーは説明メッセージに変換されます。JMSX*のプロパティ(たとえばJMSXDeliveryCount)は変換されないことに注意してください。

注意:

コピー・プロセスの一部が失敗した場合、次のルールを使用して処理は続行されます。Bytes、MapおよびStreamメッセージ・タイプでは、メッセージ・ボディの一部のみがコピーされることになる場合があります。

- コピー・プロセスが成功したら、値trueが設定されたブール・プロパティGJRA_CopySuccessfulが追加されます。

- メッセージが配信されなかった理由を説明した文字列プロパティGJRA_DeliveryFailureReasonが追加されます。

- 配信障害の直前にMDBのonMessageメソッドが例外を生成する場合、例外情報を含む文字列プロパティGJRA_onMessageExceptionsが追加されます。

- 元のメッセージのコピーが例外キューに送信されます。

注意:

例外キューへの元のメッセージのコピーの送信は、1回のみ試行されます。この試行に失敗すると、メッセージは例外キューに配置されることなく破棄されます。詳細は、includeBodiesInExceptionQueueを参照してください。

プライマリ宛先に使用される接続ファクトリは、例外キューに対しても使用されます。(Destinationプロパティで指定された)プライマリ宛先がトピックの場合、接続ファクトリはキューとトピックの両方をサポートしている必要があります。たとえば、<connectionfactory-interface>要素はjavax.jms.ConnectionFactoryまたはjavax.jms.XAConnectionFactoryのいずれかである必要があります。

ユーザー名とパスワードのプロパティの設定

ユーザー名とパスワードのプロパティを使用すると、リソース・プロバイダに認証パラメータを渡せます。これらのプロパティのどちらも設定されていない場合、このMDBのインバウンド・メッセージ処理に使用される接続が、引数なしのcreateConnectionメソッドを使用して作成されます。これらのいずれかまたは両方が設定されている場合、userNameまたはpasswordプロパティ、あるいはその両方が、ユーザー名とパスワードの引数としてcreateConnectionメソッドに渡されます。これらのいずれか1つのみが設定されている場合、createConnection引数リストのそのプロパティ値にかわってnullが使用されます。

詳細なWebLogic JMSリソースの構成

次の各項では、インバウンド・メッセージに対して詳細なメッセージ処理を構成する方法について説明します。

- JMSリソース・アダプタと共有可能なサブスクリプション

- 順序付けメッセージ処理の使用

- 分散トピックから消費する場合の設計戦略

- スタンドアロン(非分散)トピックからの消費

JMSリソース・アダプタと共有可能なサブスクリプション

JMSリソース・アダプタは、インバウンド・メッセージの処理時に、構成済の接続ファクトリの設定をオーバーライドしてSHARABLEサブスクリプション共有ポリシーとUNRESTRICTEDクライアントIDポリシーを使用します。JMSリソース・アダプタのMDBはサブスクリプション名を生成しないため、恒久サブスクリプションにはsubscriptionNameを指定する必要があります。サブスクリプションは、恒久または非恒久の場合に、次のように共有されます。

- 恒久: 同じ分散トピック上のコンシューマは、同じclientID、メッセージ・セレクタおよびsubscriptionNameを持つ場合にのみ、恒久サブスクリプションを共有できます。

- 非恒久: 同じ分散トピック上のコンシューマは、同じclientIDとmessageSelectorを持つ場合にのみ、非恒久サブスクリプションを共有できます。

MDBが着信メッセージを消費していることを確認するために、常にclientIdを構成します。次に例を示します。

. . .
<activation-config>
<activation-config-property>

<activation-config-property-name>clientId</activation-config-property-name>
<activation-config-property-value>myMDB</activation-config-property-value>
</activation-config-property>
</activation-config>
. . .

詳細は、Oracle WebLogic Server JMSリソースの管理.の共有サブスクリプションの構成を参照してください。

順序付けメッセージ処理の使用

アプリケーションでサブスクリプション・メッセージの単一スレッド式処理が必要な場合は、WebLogic JMSの順序単位(UOO)処理を使用するようアプリケーションを構成する必要があります。

詳細は、Oracle WebLogic Server JMSアプリケーションの開発のメッセージ順序単位の使用を参照してください。

分散トピックから消費する場合の設計戦略

次の項では、分散トピックを使用して高可用性アプリケーションを開発する際に使用できる設計戦略について説明します。

- レプリケートされた分散トピックとパーティション化された分散トピック

- 分散トピックのOne-Copy-Per-Server設計戦略

- 分散トピックのOne-Copy-Per-Application設計戦略

レプリケートされた分散トピックとパーティション化された分散トピック

レプリケートされた分散トピックとパーティション化された分散トピックは、インバウンド・メッセージの消費で次のようにサポートされています。

- レプリケートされた分散トピック: すべての物理トピック・メンバーが送信された各メッセージを受信します。メッセージが物理的なトピック・メンバーのいずれかに着信すると、メッセージのコピーが内部で自動的に他のトピック・メンバーに転送されます。

- パーティション化された分散トピック: メッセージを受信する分散トピック・メンバーは、メッセージを認識するメンバーのみです。メッセージは他のメンバーには転送されず、他のメンバーのサブスクライバはメッセージのコピーを受信しません。着信メッセージは、JMS AffinityおよびLoad Balance属性を使用して、分散トピック・メンバー間でロード・バランシングできます。Oracle WebLogic Server JMSリソースの管理のパーティション化された分散トピックのロード・バランシングを参照してください。

分散トピックのOne-Copy-Per-Application設計戦略

One-Copy-Per-Applicationは、使用可能なデフォルトの設計パターンで、次の特徴があります。

- 各アプリケーションが全体として(つまり、アプリケーションのすべてのインスタンスをあわせて)、分散トピックにパブリッシュされる各メッセージのコピーを1つ取得します。つまり、各インスタンスは分散トピックに送信されるメッセージのサブセットのみを取得します。

- クライアントIDポリシーはUNRESTRICTEDです。

- サブスクリプション共有ポリシーはSHARABLEです。

- サブスクライバが恒久の場合は、同一のサブスクリプションを使用します。

- すべてのコンシューマが同じトピック・インスタンス(または分散トピックのメンバー)にサブスクライブします。

One-Copy-Per-Applicationの実装

One-Copy-Per-Application設計戦略を実装するには、activation-config要素にTopicMessageDistributionMode=One-Copy-Per-Applicationの値を持つ、ProviderPropertiesプロパティをEJBで指定する必要があります。

詳細は、One-Copy-Per-ApplicationのEJB構成の例を参照してください。

注意:

TopicMessageDistributionMode=One-Copy-Per-Serverを指定しない場合は、JMSリソース・アダプタではメッセージの重複を避けるために、デフォルトでTopicMessageDistributionMode=One-Copy-Per-Applicationに設定されます。

One-Copy-Per-ApplicationのEJB構成の例

ejb-jar.xmlファイルからの次のコード・スニペットは、One-Copy-Per-Applicationメッセージ処理を実装しています。

. . .
<mdb-resource-adapter>
<resource-adapter-mid>wljmsra</resource-adapter-mid>
<activation-config>
<activation-config-property>
<activation-config-property-name>ClientId</activation-config-property-name>
<activation-config-property-value>RDT2MDB</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>ProviderProperties</activation-config-property-name>
<activation-config-property-value>TopicMessageDistributionMode=One-Copy-Per-Application</activation-config-property-value>
</activation-config-property>
</activation-config>
</mdb-resource-adapter>

<!-- Mapping a Queue admin-object to the Resource-Adapter name -->
<resource-env-ref>
<resource-env-ref-name>jms/ResultTopic</resource-env-ref-name>
<jndi-name>wljmsra/rtopic1</jndi-name>
</resource-env-ref>

<!-- Mapping a Connection Factory to the Resource-Adapter name -->
<resource-ref>
<res-ref-name>jms/ResultXACFFactory</res-ref-name>
<jndi-name>wljmsra/xacf</jndi-name>
</resource-ref>
. . .

分散トピックのOne-Copy-Per-Server設計戦略

One-Copy-Per-Serverは、アプリケーションの各インスタンスが、トピックにパブリッシュされた各メッセージのコピーを1つ受信する設計パターンです。

One-Copy-Per-Serverの実装

One-Copy-Per-Server設計戦略を実装するには、次のことを行う必要があります。

- 外部サーバー・インスタンスの起動時に、weblogic.jms.ra.providers.wl.ServerIDプロパティを指定します。たとえば、-Dweblogic.jms.ra.providers.wl.ServerID=aUniqueIdForTheServer
上のプロパティ仕様で、aUniqueIdForTheServerは外部サーバーの一意の識別子を表します。

Oracle Glassfishの場合、asadminコマンドを使用して、次のようにこのプロパティを構成できます。

asadmin> create-jvm-options --user myUsername --password myPassword --host localhost --port 4848 -Dweblogic.jms.ra.providers.wl.ServerID="aUniqueIdForTheServer"

- activation-config要素にTopicMessageDistributionMode=One-Copy-Per-Serverの値を持つ、ProviderPropertiesプロパティをEJBで指定します。詳細は、One-Copy-Per-ApplicationのEJB構成の例を参照してください。

One-Copy-Per-Serverの例

ejb-jar.xmlファイルからの次のコード・スニペットは、One-Copy-Per-Serverメッセージ処理を実装しています。

. . .
<mdb-resource-adapter>
<resource-adapter-mid>wljmsra</resource-adapter-mid>
<activation-config>
<activation-config-property>
<activation-config-property-name>ClientId</activation-config-property-name>
<activation-config-property-value>RDTMDB</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>ProviderProperties</activation-config-property-name>
<activation-config-property-value>TopicMessageDistributionMode=One-Copy-Per-Server</activation-config-property-value>
</activation-config-property>
</activation-config>
</mdb-resource-adapter>
<!-- Mapping a Queue admin-object to the Resource-Adapter name -->
<resource-env-ref>
<resource-env-ref-name>jms/ResultTopic</resource-env-ref-name>
<jndi-name>wljmsra/rtopic1</jndi-name>
</resource-env-ref>
<!-- Mapping a Connection Factory to the Resource-Adapter name -->
<resource-ref>
<res-ref-name>jms/ResultXACFFactory</res-ref-name>
<jndi-name>wljmsra/xacf</jndi-name>
</resource-ref>
. . .

スタンドアロン(非分散)トピックからの消費

MDBアプリケーションをホストする各外部アプリケーション・サーバー・インスタンスでは、トピックが同じクラスタ内または異なるクラスタ内のどちらで実行されているかに関係なく、トピックに対してMDBプールが作成されます。N個のノードのMDBクラスタでは、N個のMDBプールが作成されます。各MDBプールはトピック上に個別のサブスクリプションを作成し、異なるMDBプールからのサブスクライバは同じサブスクリプションを共有しません。

詳細は、One-Copy-Per-Serverの実装を参照してください。

インバウンド通信のベスト・プラクティス

インバウンド通信用のJMSリソース・アダプタを構成するために次に示したチューニングの推奨事項およびベスト・プラクティスに注意してください。

- JMSリソース・アダプタで分散宛先メンバーより多いスレッドが割り当てられていることを確認します。

- トピックの使用時には、常にclientIDを構成します。JMSリソース・アダプタは、インバウンド・メッセージの処理時に、恒久サブスクライバまたは非恒久サブスクライバに対して構成されたclientIdを必要とする、SHARABLEサブスクリプション共有ポリシーを使用します。
clientIDが設定されていない場合、MDBは、外部アプリケーション・サーバー・ログに記録されたメッセージおよびエラー条件を受信しません。

詳細は、JMSリソース・アダプタと共有可能なサブスクリプションを参照してください。

- キューの場合、maxListenerThreadsの値を2つ以上のスレッドに増やすと、メッセージが消費される速度が向上する可能性があります。

- JMSリソース・アダプタでは、共有可能な接続はサポートされていません。アプリケーションのデプロイメント・ディスクリプタ・ファイル(web.xmlおよびejb-jar.xml)の<resource-ref>要素を使用して、そのアプリケーションでルックアップして使用されるJMS接続ファクトリを識別する場合、<res-sharing-scope>子要素をunsharableに設定する必要があります。この要素のデフォルト値はsharableです。
次に例を示します。

. . .
<resource-ref>
<res-ref-name>jms/ReplyFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<res-auth>Application</res-auth>
<res-sharing-scope>unsharable</res-sharing-scope>
</resource-ref>

アプリケーションで@Resourceインジェクションが使用されている場合は、http://docs.oracle.com/javaee/7/api/javax/annotation/Resource.html#shareable--を参照してください。

6 アウトバウンドJMSメッセージの送信

次の各項では、JMSリソース・アダプタを使用したJMSメッセージの送信方法について説明します。

- JMSリソース・アダプタ・アウトバウンド通信の基本

- アウトバウンド接続の定義

- JMSリソース・アダプタ・アウトバウンド接続の制限

- アウトバウンド・メッセージをロード・バランシングする方法の理解

- アウトバウンド通信のトランザクション・サポートの構成

- アウトバウンド通信の認証の構成

JMSリソース・アダプタ・アウトバウンド通信の基本

JMSリソース・アダプタはWebLogic JMSクライアントのシン・ラッパーです。ユーザーは、接続クライアントIDをRESTRICTED(制限付き)またはUNRESTRICTED(制限なし)のいずれかに、サブスクリプションをSharable(共有可能な)またはExclusive(排他的)のいずれかに設定するよう選択できます。

アウトバウンド接続の定義

JMSリソース・アダプタは事前定義された多くのJMS接続ファクトリを提供します。各JMS接続ファクトリ・インタフェースには、独自の<connection-definition>要素があります。各<connection-definition>は、Java Connector Architecture仕様によって要求されるクラスおよびインタフェースと、追加の構成プロパティを定義します。

JMSリソース・アダプタの接続ファクトリ

JMSリソース・アダプタでは次の接続ファクトリがサポートされます。

- WebLogic JMS non-XA ConnectionFactory

- WebLogic JMS non-XA QueueConnectionFactory

- WebLogic JMS non-XA TopicConnectionFactory

- WebLogic JMS XA ConnectionFactory

- WebLogic JMS XA QueueConnectionFactory

- WebLogic JMS XA TopicConnectionFactory

詳細は、JMSリソース・アダプタra.xmlファイルの例のra.xmlファイルの<outbound-resourceadapter>要素を参照してください。

JMSリソース・アダプタ接続ファクトリのプロパティの構成

JMSリソース・アダプタでは、ra.xmlファイルまたは、JMSリソース・アダプタのアウトバウンドの構成プロパティに説明されているようにJMSリソース・アダプタがデプロイされている外部アプリケーション・サーバーのJava EEコンテナに設定できる追加の構成プロパティがサポートされています。

次に、追加の構成パラメータを使用したWebLogic XA接続ファクトリの例を示します。

. . .
<connection-definition>
<managedconnectionfactory-class>
weblogic.jms.ra.WLManagedXAConnectionFactory
</managedconnectionfactory-class>
<config-property>
<config-property-name>LoggerName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>weblogic.jms.ra</config-property-value>
</config-property>
<config-property>
<config-property-name>LogLevel</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>FINEST</config-property-value>
</config-property>
<config-property>
<config-property-name>group</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<config-property-name>rpResourceLocation</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<config-property-name>autoCloseSession</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<connectionfactory-interface>
weblogic.jms.ra.WLXAConnectionFactoryInterface
</connectionfactory-interface>
<connectionfactory-impl-class>
weblogic.jms.ra.WLXAConnectionFactory
</connectionfactory-impl-class>
<connection-interface>
weblogic.jms.ra.WLXAConnectionInterface
</connection-interface>
<connection-impl-class>
weblogic.jms.ra.WLXAConnection
</connection-impl-class>
</connection-definition>
. . .

JMSリソース・アダプタ・アウトバウンド接続の制限

次の接続管理の制限に注意してください。

- WebLogic JMSクライアントの自動フェイルオーバー機能を使用すると、サーバーまたはネットワークに障害が発生した場合、JMSクライアントはクラスタ内の使用可能な別のサーバー・インスタンスに自動的に再接続できるようになります。この機能によって、管理対象接続に最適な介在トランザクション・マネージャ(ITM)を関連付けることができるJMSリソース・アダプタの機能が妨げられますJMSリソース・アダプタはこの機能を自動的に無効化し、アプリケーション・コードが自動的な再接続をプログラムによって有効化しようとする場合に、例外をスローします。

- UPおよびDOWNイベントは、現在WebLogic Serverでサポートされていません。また、特定のWebLogic Serverインスタンスへの接続を作成することはできません。接続不良が再使用される前に、パージ中のJMSリソース・アダプタ接続ではそれらが即時に識別されない可能性があるため、これにより、接続不良の使用が繰り返されます。

- 現在UPイベントがWebLogic Serverでサポートされていないため、JMSリソース・アダプタで接続のリバランスはサポートされません。

- JMSリソース・アダプタ・アウトバウンドの実装では、アウトバウンド・アプリケーションが通信しているクラスタの管理対象サーバー・インスタンスのUPおよびDOWNイベントは認識されません。この制限のため、次に注意してください。

- パージ中のJMSリソース・アダプタ接続では、接続不良が再使用される前にそれを即時に識別できない可能性があるため、接続不良の使用が繰り返される場合があります。

- JMSリソース・アダプタでは、自動リバランス接続はサポートされていません。

アウトバウンド・メッセージをロード・バランシングする方法の理解

WebLogic Serverクラスタは、同時に動作し、連携して高度なスケーラビリティと信頼性を実現する複数の管理対象サーバー・インスタンスで構成されます。JMS分散宛先には通常、複数の管理対象サーバー・インスタンスに分散されたメンバー・セットが含まれており、各メンバーは個々のJMSサーバー・インスタンスでホストされています。詳細は、Oracle WebLogic Serverクラスタの管理のWebLogic Serverクラスタの理解を参照してください。

次の各項では、JMSリソース・アダプタによってWebLogic JMSアウトバウンド通信をロード・バランシングする方法について説明します。

- 接続ファクトリを使用したRMIロード・バランシング

- 分散宛先へのメッセージのロード・バランシング

接続ファクトリを使用したRMIロード・バランシング

JMSリソース・アダプタでは、異なるWebLogic Serverインスタンスを指す接続およびセッションを作成するために、WebLogic JMS接続ファクトリを使用したRMIオブジェクトのロード・バランシングがサポートされています。

詳細は、Oracle WebLogic Serverクラスタの管理のクラスタでのロード・バランシングを参照してください。

分散宛先へのメッセージのロード・バランシング

WebLogic分散宛先(DD)へのロード・バランシングは、追加構成を指定せずに自動的にサポートされています。DDは、JMSリソース・アダプタからは単一の論理的な宛先にみえます。分散宛先とそのメンバーの両方が、WebLogic JNDIに通知されます。JMSリソース・アダプタの管理対象接続が指すインスタンスとは異なるWebLogic Serverインスタンス上の分散宛先のメンバーにメッセージをロード・バランシングする場合、管理対象接続の介在トランザクション・マネージャ(ITM)は、必要に応じて、XAのコールを別のWebLogic Serverインスタンス上の対応するトランザクション・コーディネータに透過的に引き継ぐことによって、そのインスタンスに送信されたメッセージを登録できます。

注意:

恒久サブスクリプションの作成、使用およびサブスクライブ解除を行う場合は、個々の分散トピック・メンバーを参照する必要があります。

アウトバウンド通信のトランザクション・サポートの構成

JMSリソース・アダプタは、Java Connector Architecture標準に従って、WebLogic JMSを使用したアプリケーションに対するアウトバウンドXA機能を提供します。詳細は、アウトバウンド通信のトランザクション・サポートを参照してください。

アウトバウンド通信の認証の構成

ra.xmlファイルのauthentication-mechanism要素を、Java Connector Architectureセキュリティに説明されているように構成します。

7 宛先およびネーミング・コンテキストの構成

次の各項では、インバウンドとアウトバウンド通信の宛先およびネーミング・コンテキストを定義するためのadminobject要素の構成について説明します。

- 管理対象オブジェクトのコンテキスト・オブジェクトについて

- 自動宛先ラッピングの使用

- キューおよびトピック用の管理対象オブジェクト

- 管理対象オブジェクト・スタンザの例

管理対象オブジェクトのコンテキスト・オブジェクトについて

管理対象オブジェクトのコンテキスト・オブジェクトは、自動宛先ラッピングを動的に使用してキューとトピックをルックアップするために使用されます。これは、自動宛先ラッピングの使用に説明されています。

自動宛先ラッピングを使用すると、アプリケーションはWebLogic JNDIコンテキストを表すアプリケーション・サーバーのJNDIツリーに管理対象オブジェクトをバインドできます。次に、アプリケーションは、このWebLogic JNDIコンテキストをルックアップし、JMS宛先の名前で、WebLogic JNDIツリー内をルックアップできます。これにより、アプリケーション・サーバー内で1つの管理対象オブジェクトのみを構成すればよくなるので、大量の宛先を持つアプリケーションの構成が簡略化されます。

次の要素を使用して、管理対象オブジェクトのコンテキスト・オブジェクトを定義します。

- <adminobject-interface>: weblogic.jms.ra.WLDestinationContextInterfaceを使用します。

- <adminobject-class>: weblogic.jms.ra.WLDestinationContextを使用します。

<config-property>要素内で、次の構成プロパティを使用します。

- group: このadminobject定義に関連付けされるグループの名前です。

- rpContextLocation: 管理対象オブジェクトのコンテキスト・オブジェクトを使用して、JMS宛先をルックアップする方法を記述しているリソース・アダプタに情報を提供します。これは次の構文を使用して指定します。
connector:<connectorName>/

groupDefinition内で定義されているマクロが、このプロパティ値のコネクタの値に使用される場合があります。たとえば、グループ内のマクロ{connectorName}の値がwlDevelopmentである場合、connector:wlDevelopment/のかわりに、connector:{connectorName}/を使用できます。詳細は、リソース・プロバイダの高度な構成方法を参照してください。

自動宛先ラッピングの使用

自動宛先ラッピングを使用すると、管理対象オブジェクトはプロバイダの宛先を自動的にラップでき、管理対象オブジェクトをプロバイダの宛先ごとに作成する必要がなくなり、管理対象オブジェクトを宛先のJNDIに明示的にバインドします。1つの管理対象オブジェクトがリソース・プロバイダごとに定義されるので、JNDIのURLを動的に構築して、このコンテキスト内の各宛先をアクセスできます。

アプリケーションは、JNDIにバインドされているJMSリソース・アダプタの管理対象オブジェクトをルックアップします。これらの管理対象オブジェクトはJMS宛先または宛先コンテキストを表す場合があります。JMS宛先として使用する場合は、JMS宛先ごとに1つの管理対象オブジェクトを定義する必要があります。アプリケーションが20個のJMS宛先を使用している場合には、個別の管理対象オブジェクトを20個(各宛先に1つ)作成する必要があります。また、アプリケーションは、これらの20個のJMS宛先を定義して、それらのJava EEディスクリプタにresource-env-referencesとしてマップする必要があります。

宛先コンテキスト管理対象オブジェクトを使用すると、単一の宛先コンテキストを統合でき、これがJMSプロバイダとして機能するWebLogic Serverインスタンスで任意の数のJMS宛先をルックアップするために使用されます。アプリケーションが宛先コンテキストに対して定義する必要があるresource-env-refマッピングは1つのみです。アプリケーションは、宛先コンテキストをルックアップして、宛先にリモートのWebLogic JNDI名を追加します。

自動宛先ラッピングにより、次のような場合に構成が簡略化されます。

- デプロイメント時に、WebLogic Server JMS宛先を決めることができない。たとえば、JMSリソース・アダプタが、実行時にユーザーからソース宛先とターゲット宛先のみを入手している場合。

- アプリケーションが大量の宛先をアクセスする必要がある。これにより、リソース・プロバイダのすべての宛先に、JMSリソース・アダプタ宛先の一致セットを構成する必要がなくなります。そうでない場合、アプリケーションで使用される前に、各リソース・プロバイダの宛先は構成済の管理対象オブジェクトにマッピングする必要があります。

たとえば、WebLogic JMSサーバーを表す管理対象オブジェクトは、外部のアプリケーション・サーバーでJNDI名myContextにバインドされます。JNDI名がjms/barのWebLogic JMS宛先がこのWebLogic Server JNDIツリー内に構成されている場合、自動宛先ラッピングは外部サーバーのJNDIルックアップ内のmyContext/jms/barを使用します。

次に、キューの自動ラッピングの例を示します。

. . .
<adminobject-config location="myContext">
<adminobject-class>weblogic.jms.ra.WLDestinationContext</adminobject-class>
<config-property name="group" value="wls"/>
<config-property name="rpContextLocation" value="connector:{rp_name}/"/>
</adminobject-config>
. . .

前の例で、rp_nameはra.xmlファイルで定義されているリソース・プロバイダの名前です。詳細は、管理対象オブジェクト構成のプロパティを参照してください。

アプリケーション内で、javax.naming.ContextとしてmyContextをルックアップします。

. . .
@Resource(mappedName="myContext")
private javax.naming.Context wljmsraContext;
. . .

これで、次のコンテキストを使用してキュー宛先をルックアップできます。

. . .
Queue theMdbQueue = (Queue) wlraContext.lookup("com.oracle.jms.qa.myQ1");
. . .

キューおよびトピック用の管理対象オブジェクト

次のタイプの管理対象オブジェクトをJMSキューおよびトピック用に作成できます。

- キューの場合、<adminobject-class>オブジェクトのインスタンス: oracle.j2ee.ra.jms.generic.WLQueueAdmin

- トピックの場合、<adminobject-class>オブジェクトのインスタンス: oracle.j2ee.ra.jms.generic.WLTopicAdmin

管理対象オブジェクト・スタンザの例

次の管理対象オブジェクト・スタンザを作成できます。

. . .
<!-- Context admin object -->
<adminobject>
<adminobject-interface>weblogic.jms.ra.WLDestinationContextInterface</adminobject-interface>
<adminobject-class>weblogic.jms.ra.WLDestinationContext</adminobject-class>
<config-property>
<config-property-name>group</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<config-property-name>rpContextLocation</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<adminobject>

<!-- Queue admin object -->
<adminobject>
<adminobject-interface>weblogic.jms.ra.WLQueueAdminInterface</adminobject-interface>
<adminobject-class>weblogic.jms.ra.WLQueueAdmin</adminobject-class>
<config-property>
<config-property-name>group</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<<config-property>
<config-property-name>rpResourceLocation</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
</adminobject>

<!-- Topic admin object -->
<adminobject>
<adminobject-interface>weblogic.jms.ra.WLTopicAdminInterface</adminobject-interface>
<adminobject-class>weblogic.jms.ra.WLTopicAdmin</adminobject-class>
<config-property>
<config-property-name>group</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<config-property-name>rpResourceLocation</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
</adminobject>
. . .

8 リソース・プロバイダの理解

次の各項では、リソース・プロバイダの構成方法と使用方法について説明します。リソース・プロバイダでは、JMSリソース・アダプタによるWebLogic JMSプロバイダへの接続を可能にするJNDIプロパティを定義します。

- 基本的なリソース・プロバイダの構成

- リソース・プロバイダの高度な構成方法

- リソース・プロバイダの構成例

基本的なリソース・プロバイダの構成

JMSリソース・アダプタは、ra.xmlファイルのresourceProviderDefinitionsという名前の構成プロパティを使用してJNDIプロパティなどのリソース・プロバイダを定義します。resourceProviderDefinitionsプロパティは、WebLogic JMSにアクセスするためにJMSリソース・アダプタによって使用されます。複数のリソース・プロバイダをra.xmlファイルに構成できます。

注意:

resourceProviderDefinitionsプロパティを指定するとき、WebLogic Server JNDIのURLに1つ以上のカンマが複数のプロパティを区切るために含まれている場合は、パーセント文字(%)をエスケープ文字として使用する必要があります。

たとえば、URLがt3://host:port,host2:port2のように表されている場合、カンマがhost:portの後に挿入されているためJMSリソース・アダプタはURLの解析に失敗します。

この問題を解決するには、パーセント文字(%)をカンマの直前に挿入します。たとえば、t3://host:port%,host2,portです。

リソース・プロバイダを構成するには、ra.xmlファイルで次の手順を実行します。

a. resourceProviderDefinitionsプロパティを<config-property-name>要素の値として指定します。次に例を示します。

<config-property-name>resourceProviderDefinitions</config-property-name>

b. java.lang.Stringを<config-property-type>要素の値として指定します。次に例を示します。

<config-property-type>java.lang.String</config-property-type>

c. リソース・プロバイダ用の特定のJNDIプロパティを、次の名前-値ペアのパターンを使用して定義します。

(RP_NAME: jndiEnv=property1=(value1,property2=value2,...))

この名前-値パターンの説明は次のとおりです。

- RP_NAMEはリソース・プロバイダのJNDIプロパティ用の一意の名前であり、<connection-definition>要素と<adminobject>要素のrpResourceLocation構成プロパティで使用されます。詳細は、アウトバウンドJMSメッセージの送信を参照してください。

注意:

定義された各リソース・プロバイダ名(RP_NAME)は、ra.xmlファイル内で一意である必要があります。

- property1=value1,property2=value2,...は、名前-値ペアのカンマ区切りのリストで、リソース・プロバイダのJNDIプロパティを定義します。

構成例については、リソース・プロバイダの構成例を参照してください。

リソース・プロバイダの高度な構成方法

JMSリソース・アダプタはgroupDefinitionsプロパティをサポートして、リソース・プロバイダを構成するための高度な方法を提供します。これにより、接続ファクトリおよび管理対象オブジェクトの柔軟なアドレス解決が提供される一方で、互換性のあるメッセージング・オブジェクトのセットを作成できますgroupDefinitionsプロパティの使用は、次のコンポーネントに依存します。

- Group: 接続ファクトリおよび関連付けられた宛先管理対象オブジェクトなどの互換性のあるメッセージング・オブジェクトのセット。

- Macro: rpResourceLocation構成プロパティにかわって、接続ファクトリおよび管理対象オブジェクト内で使用されるGroupコンポーネント。

ra.xmlファイルでgroupDefinitionsプロパティを構成するには、次の手順を実行します。

1. groupDefinitionsを<config-property-name>要素の値として指定します。次に例を示します。

<config-property-name>groupDefinitions</config-property-name>

2. java.lang.Stringを<config-property-type>要素の値として指定します。次に例を示します。

<config-property-type>java.lang.String</config-property-type>

3. Group構成を次のパターンを使用して定義します。

<config-property-value>
GROUP_NAME: macro
</config-property-value

先行のパターンの説明は次のとおりです。

- GROUP_NAMEは、Group構成を表す一意の名前です。

- macroは、互換性のあるメッセージ・オブジェクトのセットを定義する名前-値ペアのカンマ区切りのリストです。JMSリソース・アダプタでは、rpResourceLocation構成プロパティのかわりに、接続ファクトリおよび管理対象オブジェクト内で、これらのペアが使用されます。

構成例については、リソース・プロバイダの構成例を参照してください。

リソース・プロバイダの構成例

次に、リソース・プロバイダの構成例を示します。この例の説明は、次のとおりです。

- 2つのリソース・プロバイダ(rp1とrp2)が構成されます。

- 2つのグループ・オブジェクト(GroupAとGroupB)が構成されます。

. . .
<config-property>
<config-property-name>resourceProviderDefinitions</config-property-name>
<config-property-type>java.lang.String</config-property-type>
// Example Configuration for two resource providers: rp1 and rp2
<config-property-value>
(rp1: jndiEnv=(java.naming.factory.initial=
weblogic.jms.WrappedInitialContextFactory,
java.naming.provider.url=t3://@@@HOST@@@:7002,
java.naming.security.principal=wxyzUser1,
java.naming.security.credentials=wxyzPass1))
(rp2: jndiEnv=(java.naming.factory.initial=
weblogic.jms.WrappedInitialContextFactory,
java.naming.provider.url=t3://anotherhost:8002,
java.naming.security.principal=wxyzUser1,
java.naming.security.credentials=wxyzPass1))
</config-property-value>
. . .
</config-property>
<config-property>
<config-property-name>groupDefinitions</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>
(GroupA:  connectorName=rp1,
cf=myCF,
xacf=myXACF,
topic1=myT1,
topic2=myT2,
queue1=myQ1,
queue2=myQ12)
(GroupB:  connectorName=rp2,
cf=example/cf,
xacf=example/xacf,
queue1=queue1,
queue2=queue2)
</config-property-value>
</config-property>
. . .

9 トランザクション処理の理解

次の各項では、外部アプリケーション・サーバーとWebLogic Serverの間で相互運用するためにJMSリソース・アダプタを使用する場合のトランザクション処理およびリカバリについて説明します。

- JMSリソース・アダプタのトランザクション・サポート

- トランザクションにおける接続の遅延登録

- WebLogicのクラスタ全体のリカバリ

JMSリソース・アダプタのトランザクション・サポート

サード・パーティ・アプリケーション・サーバーにおいては、JMSの2つの主要なユースケースがあります。ユース・ケースの1つに、ユーザーがJMSプロバイダと同期して対話するアウトバウンド通信が含まれます。その他のユースケースには、ユーザーがJMSプロバイダと非同期に対話するインバウンド通信(たとえば、メッセージドリブンBean (MDB)を介した)が含まれます。

アウトバウンド通信のトランザクション・サポート

JMSリソース・アダプタは、Java Connector Architecture仕様に従って、WebLogic JMSを使用したアプリケーションに対するアウトバウンドXA機能を提供します。JMSリソース・アダプタの管理対象接続は、WebLogic JMSクライアント接続および、WebLogic Serverクラスタ・メンバーを指すセッションを保持します。管理対象接続は、同じWebLogic Serverクラスタ・メンバーを指す介在トランザクション・マネージャ(ITM)スタブも参照します。WebLogic ITMは、別のWebLogic Serverインスタンスで発生するJMS操作を処理できますが、JMS操作およびITMを同じインスタンスの同じクラスタ・メンバーに配置するほうがより効率的です(ITMアフィニティ)。

JMSリソース・アダプタの管理対象接続がグローバル・トランザクションに含まれている場合、次に注意してください。

- Oracle GlassFishサーバー・インスタンスは、管理対象接続上でgetXAResourceメソッドを呼び出して、その操作をグローバル・トランザクションに登録します(リソース・アダプタとアプリケーション・サーバー間のJava Connector Architectureトランザクション規約による)。

- クラスタ全体のリカバリが有効な場合、ITYMは任意のXAコールを透過的に処理して、ITMアフィニティを維持するために適切なクラスタ・メンバー・インスタンスに転送します。
詳細は、配布されたトランザクションのクラスタ全体のトランザクション・リカバリを、クラスタのすべてのITMにわたって構成できます。Oracle WebLogic Server JTAアプリケーションの開発のクラスタ全体のリカバリを参照してください。

- 管理対象接続は対応するITMを指すXAResourceラッパーを戻します。

- このラッパーによって、ITMのXAResourceラッパーにXAのコールが引き継がれます。

インバウンド・トランザクションのトランザクション・サポート

インバウンドのユースケースでは、リソース・アダプタのインバウンド通信規約またはネイティブMDBコードのいずれかを実装することによって、メッセージが受信されます。次の点に注意してください。

- リソース・アダプタの規約が使用される場合、リソース・アダプタはMDB宛先(WebLogic Server宛先)からメッセージを受信し、それらをMDBに配布します。多くの場合、リソース・アダプタは、メッセージを同時に受信するために、複数のワーカー・スレッドを生成します。各スレッドは、個別のエンドポイントと個別のWebLogic JMSセッションを使用します。メッセージ受信の操作をグローバル・トランザクションに登録する外部アプリケーション・サーバーの場合、JMSリソース・アダプタは、XAResourceラッパーを渡すMessageEndpointFactory createEndpoint(XAResource)メソッドを使用して、エンドポイントを作成します。このラッパーには、メッセージを受信しているWebLogic JMSセッションと同じWebLogic Serverインスタンスを指すITMスタブが含まれています。WebLogic宛先が分散宛先の場合、ワーカー・スレッドは宛先メンバー全体に均等に分散されます。

- ネイティブMBDが使用されている場合、アプリケーション・サーバーがメッセージを受信します。JMSリソース・アダプタを使用する場合の使用シナリオはアウトバウンドの使用の場合と同じです。トランザクション管理についても同じです。

トランザクションにおける接続の遅延登録

一般に、アプリケーション・コンポーネントがトランザクションのコンテキストにおいて接続ハンドルをリクエストするとき、接続は自動的にトランザクションに登録されます。これは、接続がまったく使用されずに不必要なオーバーヘッドを招く場合でも発生します。

遅延登録では、新しい接続は、それがトランザクションで実際に使用される場合にのみ(つまり、データがその接続を介して送信される場合にのみ)、トランザクションに登録されます。

アプリケーション環境で使用するには、JMSリソース・アダプタと外部アプリケーション・サーバーの両方が、この機能を使用できるように遅延登録をサポートする必要があります。

WebLogicのクラスタ全体のリカバリ

WebLogic Server管理コンソールのクラスタ: 構成: JTAページで「クラスタ全体の回復の有効化」を選択することで、クラスタのすべてのITMにわたる分散トランザクションのクラスタ全体のトランザクション・リカバリを構成できます。

クラスタ全体のリカバリが有効な場合、WebLogic Serverクラスタ内の各ITMは、クラスタ全体にわたるトランザクションの分散を認識します。これにより、各クラスタ・メンバー上のITMでは特定のXA呼出しを処理する必要があるか、または別のクラスタ・メンバーの適切なITMに転送する必要があるかが判断されます。

WebLogic Serverのトランザクション処理の詳細は、障害の管理の理解およびOracle WebLogic Server JTAアプリケーションの開発のサード・パーティ・トランザクション・マネージャで管理されるトランザクションへの参加を参照してください。

10 障害の管理の理解

次の各項では、JMSリソース・アダプタがWebLogic Serverおよび外部アプリケーション・サーバーの障害に対応する方法について説明します。

- WebLogic Serverの障害

- WebLogic分散宛先メンバーの障害

- トランザクション・リカバリ

- WebLogicサービスの移行の理解

WebLogic Serverの障害

JMSリソース・アダプタは、例外リスナーおよびJMS操作を通じて接続障害を検出します。WebLogic Serverインスタンス障害が検出されると、対応する接続およびセッションはクローズされ、新しい接続およびセッションが作成されます。障害が発生した接続は、再利用されるのを防ぐために接続プールからパージされます。

注意:

障害が発生したWebLogic Serverインスタンスが再起動されたり、新しいサーバー・インスタンスがクラスタに参加した場合、リソース・アダプタは、プール内の既存の接続を新しいサーバーまたは再起動されたインスタンスにロード・バランシングしません。

WebLogic分散宛先メンバーの障害

WebLogic Server分散宛先メンバーに障害が発生すると、JMSリソース・アダプタのインバウンドMDBコンテナは、既存の接続およびセッションをすべて閉じて、使用可能なクラスタ・メンバーへの新しい接続およびセッションを開きます。

- 障害が発生したクラスタ・メンバーがリストアされたり、新しいメンバーが追加された場合、JMSリソース・アダプタは、メッセージがすべての分散宛先メンバーに均等に分散されるように、ワークロードをリバランスします。JMSリソース・アダプタは、リバランスを実行するために、宛先メンバーのUPおよびDOWNイベントをリスニングします。この動作を取得するには、サーバー・アフィニティを無効にしてロード・バランシングを有効にする必要があります。詳細は、Oracle WebLogic Serverクラスタの管理のJMSのロード・バランシングを参照してください。

- すぐにリカバリできない障害については、アダプタはその障害をログに記録し、定期的に再試行します。

トランザクション・リカバリ

次の各項では、トランザクションが完了する前に、外部アプリケーション・サーバーまたはWebLogic Serverが使用不可能になった場合のトランザクション・リカバリ・プロセスについて説明します。

- WebLogic Serverが使用不可能になった場合のトランザクション・リカバリ

- 外部サーバーが使用不可能になった場合のトランザクション・リカバリ

WebLogic Serverが使用不可能になった場合のトランザクション・リカバリ

この項では、WebLogic Serverインスタンスが使用不可能な場合の、外部トランザクション・マネージャによって指示されたトランザクションの処理方法について説明します。

- 準備前の障害
トランザクションが準備される前に、サード・パーティ・トランザクション・マネージャによって指示されたトランザクションに参加するWebLogic Serverインスタンスが使用不可能になった場合、トランザクションは失われます。

- 準備後の障害
トランザクションが準備された後に、外部トランザクション・マネージャによって指示されたトランザクションに参加するWebLogic Serverインスタンスが使用不可能になった場合、結果はインダウト・トランザクションになります。

次のいずれかの状態になるまで、外部トランザクション・マネージャは定期的にトランザクションの再試行を続けます。

- トランザクションがタイムアウトになり、リソースがリカバリされる。

- 元のWebLogic Serverインスタンスが使用可能になり、トランザクションが解決される。

- WebLogic Server環境でクラスタ全体のリカバリがサポートされている場合、別のクラスタ・メンバー上の適切な介在トランザクション・マネージャ(ITM)に転送されると、トランザクションが解決される。
詳細は、Oracle WebLogic Server JTAアプリケーションの開発のクラスタ全体のリカバリおよびOracle WebLogic Server Java APIリファレンスのInterposedTransactionManagerを参照してください。

外部トランザクション・マネージャが、同じXAResourceを使用してトランザクションを完了する場合、JMSリソース・アダプタXAResourceラッパーは、再試行されるたびに、ITMスタブをルックアップします。外部トランザクション・マネージャが、異なるXAResourceを使用してトランザクションを完了する場合、ライブ・インスタンス上のITMは、XAコールをターゲット・インスタンスに透過的に転送します。どちらの場合も、障害が発生したITMが再起動または移行のいずれかによってリストアされた後にのみ、トランザクションが完了します。

外部サーバーが使用不可能になった場合のトランザクションのリカバリ

外部サーバーが再起動されると、リカバリ・プロセスが始まります。クラスタ全体のリカバリが有効な場合、影響を受けたクラスタ化されたWebLogic ServerのITMは、recoverメソッドがコールされた際に発生したすべてのインダウト・トランザクションを返します。各ITMは、それ自身でまたは責任のあるITMに転送することによって、すべてのインダウト・トランザクションに対してXAResourceのcommitおよびrollbackコールを処理します。

詳細は、Oracle WebLogic Server JTAアプリケーションの開発のクラスタ全体のリカバリを参照してください。

注意:

リカバリ・プロセスが成功するには、クラスタ内のすべてのITMをポーリングしてインダウト・トランザクションの完全なリストがコンパイルされるため、クラスタ内の個々のITMすべてが使用可能である必要があります。

外部トランザクション・マネージャは、JMSリソース・アダプタによって提供されるXAResourceラッパーと対話します。XAResourceラッパーはXAコールをITMスタブに引き継ぎます。JMSリソース・アダプタは、標準のJMS APIと固有のWebLogic JMS拡張APIをクライアント・インタフェースとして使用します。外部サーバー内で実行されるアプリケーション(EJBやサーブレットなど)は、JMSリソース・アダプタ・ラッパーを通じてJMSリソース・アダプタおよびWebLogic JMSと対話します。JMS操作のWebLogic Serverクライアント・オブジェクトへの引き継ぎの他に、JMSリソース・アダプタ・ラッパーは、適切なJMSコールを捕捉することによって、遅延登録およびトランザクション・ブランチの終了も行います。

WebLogicサービスの移行の理解

次のトピックでは、WebLogic Serverサービスの移行中のJMSリソース・アダプタの動作に関する情報を提供します。

WebLogic JMSサーバーが移行可能なターゲットを使用するように構成されている場合、サービスの移行が完了すると、JMSリソース・アダプタ・インスタンスは移行後のWebLogic JMSサービスに再接続します。

注意:

WebLogic JMSサービスの移行では、JMSサービスの高可用性が提供されますが、ロード・バランシングは提供されません。

詳細は、Oracle WebLogic Serverクラスタの管理の移行可能なサービスを参照してください。

JMSサービスの移行中のJMSリソース・アダプタによるインバウンドとアウトバウンドの通信の処理方法の詳細について次に注意してください。

- インバウンド通信
JMSサービスの移行中に、JMSリソース・アダプタは既存のWebLogic JMSの接続とセッションをクローズします。JMSサーバーとその分散宛先メンバーの移行が行われたWebLogic Serverインスタンスを指すように、新しい接続およびセッションが作成されます。

- アウトバウンド通信
JMSサービスの移行中に、障害が発生したWebLogic Serverインスタンスの分散宛先メンバーは、使用可能なWebLogic Serverインスタンスに移行されます。JMSリソース・アダプタに関連付けられているWebLogic JMSクライアントは移行を検出し、JMS操作を移行後の新しい宛先メンバーにリダイレクトします。

11 JMSリソース・アダプタ接続の保護

次の各項では、JMSリソース・アダプタのセキュリティの考慮点について説明します。

- Java Connector Architectureセキュリティ

- WebLogic JMSセキュリティ

- ユーザー名とパスワード資格証明の指定

- Oracleウォレットを使用した資格証明の保護

- 通信の保護

Java Connector Architectureセキュリティ

JMSリソース・アダプタは、http://download.oracle.com/otndocs/jcp/connector_architecture-1_7-mrel-spec/にあるJava™ EE Connector Architectureバージョン1.7の仕様に記載されている、Java Connector Architectureセキュリティ契約に完全に準拠しています。

アウトバウンド通信の場合、ra.xmlファイルで、authentication-mechanism-type、credential-interfaceおよびreauthentication-support要素を指定できます。

次に例を示します。

. . .
<outbound-resourceadapter>
. . .
<authentication-mechanism>
<authentication-mechanism-type>
BasicPassword
</authentication-mechanism-type>
<credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
</authentication-mechanism>
<reauthentication-support>false</reauthentication-support>
. . .
</outbound-resourceadapter>
. . .

WebLogic JMSセキュリティ

次の各項では、WebLogic JMSセキュリティに関する情報を提供します。

- JMSセキュリティ・モデルの概要

- JMSリソースの保護

JMSセキュリティ・モデルの概要

WebLogic JMSでは、スレッドベースのセキュリティ・モデルが使用されます。スレッドのサブジェクトは、JNDIユーザー名とパスワード資格証明としてJNDIルックアップで確立されます。WebLogic JMSでは、サーバーで後から認証する際に使用されるのと同じサブジェクトの下の同じスレッド内で、関連するすべての操作が実行されると想定しています。JMS接続の作成に使用されるユーザー名とパスワードは、認証フェーズでは無視されます。

JMSリソースの保護

サービスまたはアプリケーションとしてデプロイされているJMSリソースを保護できます。JMS宛先を保護するには、すべての宛先(JMSキューとJMSトピック)に対して、グループとしてまたは個々の宛先(JMSキューまたはJMSトピック)として、JMSサーバー上にセキュリティ・ポリシーおよびセキュリティ・ロールを作成します。

Oracle WebLogic Serverロールおよびポリシーを使用したリソースの保護のJava Messaging Service (JMS)リソースを参照してください。

ユーザー名とパスワード資格証明の指定

次のどの方法でもユーザー名とパスワード資格証明を指定できます。

- Java Connector Architectureコンテナを使用したインバウンド接続のユーザー名とパスワードの指定

- JNDIを使用したインバウンド接続のユーザー名とパスワードの指定

- 接続ファクトリを使用したインバウンド接続のユーザー名とパスワードの指定

- アウトバウンド接続のユーザー名とパスワードの指定

ホスト・アプリケーション・サーバーのJava Connector Architectureコンテナを使用することをお薦めします。ほとんどのベンダーが、セキュアなメソッドを使用して資格証明を動的に設定する方法を提供するJava Connector Architectureコンテナを提供しています。その他のメソッドでは、通常、資格証明はクリア・テキストで格納されます。資格証明を暗号化しないメソッドを選択した場合は、Oracleウォレットを使用してそれらを保護します。

詳細は、Oracleウォレットを使用した資格証明の保護を参照してください。

Java Connector Architectureコンテナを使用したインバウンド接続のユーザー名とパスワードの指定

アプリケーションは、インバウンドのリソース・アダプタのactivation-specで、ユーザー名とパスワード資格証明を指定できます。activation specは、外部アプリケーション・サーバーのJava Connector ArchitectureコンテナによってJMSリソース・アダプタに渡されます。

外部アプリケーション・サーバーのJava Connector Architectureコンテナを使用してユーザー名とパスワードを指定する方法の詳細は、Oracle GlassFish ServerでのJMSリソース・アダプタの管理を参照してください。

JNDIを使用したインバウンド接続のユーザー名とパスワードの指定

次に示すように、ユーザー名とパスワード資格証明を含めるようにresourceProviderDefinitionsのjndiEnvプロパティを構成できます。

<config-property-name>resourceProviderDefinitions</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>
(weblogicAdmin: jndiEnv=(java.naming.factory.initial=weblogic.jms.WrappedInitialContextFactory,
java.naming.provider.url='t3://host:port',
java.naming.security.principal=xxxx,
java.naming.security.credentials=yyyy))
</config-property-value>
</config-property>

詳細は、資格証明を設定するためのJNDIの構成例を参照してください。

接続ファクトリを使用したインバウンド接続のユーザー名とパスワードの指定

JMSリソース・アダプタでは、JNDIの新しい初期コンテキスト・ファクトリweblogic.jms.WrappedInitialContextFactoryを使用したセキュリティ・モデルに基づく接続が提供されるため、外部アプリケーション・サーバーとのセキュリティの相互運用性が簡略化されます。生成されるサブジェクトは、次のルールを使用して決定されます。

- サブジェクトは、接続ユーザー名とパスワードを使用して作成された各接続に関連付けられています。

- ユーザー名とパスワードを指定せずに接続が作成された場合、JNDIのユーザー名とパスワードが使用されます。

- 後続のすべてのJMS操作では、スレッド上にあるサブジェクトに関係なく、接続の作成コールで生成されたサブジェクトが使用されます。

アウトバウンド接続のユーザー名とパスワードの指定

アウトバウンド接続の場合、createConnection(java.lang.String, java.lang.String) APIを使用できます。

JMSリソース・アダプタでは、アウトバウンド接続用のユーザー名とパスワードを実装するための構成属性は提供されていません。

アウトバウンド接続の保護に関する詳細は、通信の保護を参照してください。

一部の外部アプリケーション・サーバーでは、ドメイン間でのセキュアな資格証明が提供されている場合があります。その場合、詳細はベンダーのドキュメントを参照してください。

Oracleウォレットを使用した資格証明の保護

Oracleウォレットでは、複数のドメイン間で資格証明を保護するための単純でわかりやすいメソッドが提供されています。これにより、個々の資格証明を変更しなくてもウォレットを更新して資格証明を更新できます。

資格証明を保護するには、次のことを行う必要があります。

- ウォレット・ファイルを作成し、JMSリソース・アダプタ暗号化ユーティリティを使用して必要な資格証明を追加する。このステップにより、保護された資格証明にエイリアスをマッピングするcwallet.ssoファイルが、指定された場所に作成されます。
詳細は、wljmsra暗号化ユーティリティの使用を参照してください。

- JMSリソース・アダプタのデプロイメント・ディスクリプタまたは接続プール構成のエイリアスを指定する。

- JMSリソース・アダプタのデプロイメント・ディスクリプタまたは接続プール構成のcwallet.ssoファイルの場所を指定する。

資格証明を設定するためのJNDIの構成例

次の表は、JMSリソース・アダプタJNDI環境プロパティの設定方法の例を示しています。

JNDIの設定

動作

java.naming.security.principal=principal

java.naming.security.principal=principal

java.naming.security.credentials=credentials

JMSリソース・アダプタの実行時には、Oracle WebLogic Server宛先にアクセスするために、principalとcredentialsの値が使用されます。

java.naming.security.principal=principal

java.naming.security.credentials=->alias

weblogic.jms.walletDir=dirctory

JMSリソース・アダプタの実行時には、ユーザー名としてprincipalの値が使用され、directoryの値によって指定されたディレクトリにあるcwallet.ssoファイルに格納されているパスワードを取得および使用するために、aliasの値が使用されます。

java.naming.security.principal=->alias1

java.naming.security.credentials=->alias2

weblogic.jms.walletDir=dirctory

JMSリソース・アダプタの実行時には、ユーザー名を取得および使用するために、alias1の値が使用され、directoryの値によって指定されたディレクトリにあるcwallet.ssoファイルに格納されているパスワードを取得および使用するために、alias2の値が使用されます。

java.naming.security.principal=->alias

java.naming.security.credentials=->

weblogic.jms.walletDir=dirctory

JMSリソース・アダプタの実行時には、ユーザー名と、directoryの値によって指定されたディレクトリにあるcwallet.ssoファイルに格納されているパスワードを取得および使用するために、aliasの値が使用されます。

java.naming.security.principal=principal

java.naming.security.credentials=->

weblogic.jms.walletDir=dirctory

JMSリソース・アダプタの実行時には、ユーザー名としてprincipalの値が使用され、directoryの値によって指定されたディレクトリにあるcwallet.ssoファイルに格納されているパスワードを取得および使用するために、principalの値が使用されます。

wljmsra暗号化ユーティリティの使用

JMSリソース・アダプタは、Oracleウォレット・ファイルにアプリケーションの資格証明を追加するためのコマンド行ユーティリティを提供します。ユーティリティを実行するには、WL_HOMEserver/libディレクトリに変更し、次のコマンドを入力して有効なコマンドを表示します。

java -jar wljmsra.rar help
Usage:
create <dir>: Create wallet under given directory.
add <alias> <value> [dir]: Add value using the alias.
replace <alias> <value> [dir]: Replace value of the alias.
remove <alias> [dir]: Remove an alias.
dump [dir]: List all aliases in the wallet.
help: This help.

次の例では、ディレクトリmywalletにウォレット・ファイルを作成するための暗号化ユーティリティを使用します。

java -jar wljmsra.rar create mywallet
Info: Created wallet under directory 'mywallet'.

次の例では、エイリアスを作成するための暗号化ユーティリティを使用します。

java -jar wljmsra.rar add user6 pwd6
Info: Added alias 'user6'.

次の例では、エイリアスを置換するための暗号化ユーティリティを使用します。

java -jar wljmsra.rar replace user6 newpwd6
Info: Replaced alias 'user6'.

次の例では、エイリアスを削除するための暗号化ユーティリティを使用します。

java -jar wljmsra.rar remove user6
Info: Removed alias 'user6'.

次の例では、ウォレット内のエイリアスを表示するための暗号化ユーティリティを使用します。

java -jar wljmsra.rar dump mywallet
Info: Aliases found in wallet under 'mywallet'.
user4
Info: 1 aliases found.

セキュアな通信

送信される情報を保護するには、SSLまたはt3sを使用することをお薦めします。

詳細は、Oracle WebLogic Serverセキュリティの管理12c (12.2.1)のSSLの構成を参照してください。

12 JMSリソース・アダプタのデプロイメント・ディスクリプタ要素とプロパティ

Java Connector Architectureに準拠したJMSリソース・アダプタのデプロイメント・ディスクリプタの名前はra.xmlです。このファイルは、WebLogic JMSクライアントをサポートされている外部アプリケーション・サーバーと統合するために使用します。

次の各項では、WebLogic JMSリソース・アダプタのデプロイメント・ディスクリプタ・ファイルra.xmlについて説明します。

- JMSリソース・アダプタのra.xmlファイルの例

- JMSリソース・アダプタの要素の説明

- JMSリソース・アダプタのインバウンド・プロパティ

- JMSリソース・アダプタのアウトバウンドの構成プロパティ

- 管理対象オブジェクトの構成プロパティ

JMSリソース・アダプタのra.xmlファイルの例

次に、ra.xmlデプロイメント・ディスクリプタ・ファイルの例を示します。

<?xml version="1.0" encoding="UTF-8"?>

<connector xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd"
version="1.5">

<display-name>Oracle JMS Connector</display-name>
<vendor-name>Oracle Corporation</vendor-name>
<eis-type>JMS</eis-type>
<resourceadapter-version>2.0</resourceadapter-version>

<resourceadapter>
<resourceadapter-class>weblogic.jms.ra.ResourceAdapterImpl</resourceadapter-class>
<config-property>
<config-property-name>resourceProviderDefinitions</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<config-property-name>groupDefinitions</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>
(:)
</config-property-value>
</config-property>

<outbound-resourceadapter>

<!-- *************  WebLogic JMS Connection Factories  ************* -->

<!--  WebLogic JMS non-XA javax.jms.ConnectionFactory  -->
<connection-definition>
<managedconnectionfactory-class>
weblogic.jms.ra.WLManagedConnectionFactory
</managedconnectionfactory-class>
<connectionfactory-interface>
weblogic.jms.ra.WLConnectionFactoryInterface
</connectionfactory-interface>
<connectionfactory-impl-class>
weblogic.jms.ra.WLConnectionFactory
</connectionfactory-impl-class>
<connection-interface>
weblogic.jms.ra.WLConnectionInterface
</connection-interface>
<connection-impl-class>
weblogic.jms.ra.WLConnection
</connection-impl-class>
</connection-definition>

<!--  WebLogic JMS non-XA javax.jms.QueueConnectionFactory  -->

<connection-definition>
<managedconnectionfactory-class>
weblogic.jms.ra.WLManagedQueueConnectionFactory
</managedconnectionfactory-class>
<connectionfactory-interface>
weblogic.jms.ra.WLQueueConnectionFactoryInterface
</connectionfactory-interface>
<connectionfactory-impl-class>
weblogic.jms.ra.WLQueueConnectionFactory
</connectionfactory-impl-class>
<connection-interface>
weblogic.jms.ra.WLQueueConnectionInterface
</connection-interface>
<connection-impl-class>
weblogic.jms.ra.WLQueueConnection
</connection-impl-class>
</connection-definition>

<!--  WebLogic JMS non-XA javax.jms.TopicConnectionFactory  -->

<connection-definition>
<managedconnectionfactory-class>
weblogic.jms.ra.WLManagedTopicConnectionFactory
</managedconnectionfactory-class>
<connectionfactory-interface>
weblogic.jms.ra.WLTopicConnectionFactoryInterface
</connectionfactory-interface>
<connectionfactory-impl-class>
weblogic.jms.ra.WLTopicConnectionFactory
</connectionfactory-impl-class>
<connection-interface>
weblogic.jms.ra.WLTopicConnectionInterface
</connection-interface>
<connection-impl-class>
weblogic.jms.ra.WLTopicConnection
</connection-impl-class>
</connection-definition>

<!--  WebLogic JMS XA javax.jms.ConnectionFactory  -->

<connection-definition>
<managedconnectionfactory-class>
weblogic.jms.ra.WLManagedXAConnectionFactory
</managedconnectionfactory-class>
<connectionfactory-interface>
weblogic.jms.ra.WLXAConnectionFactoryInterface
</connectionfactory-interface>
<connectionfactory-impl-class>
weblogic.jms.ra.WLXAConnectionFactory
</connectionfactory-impl-class>
<connection-interface>
weblogic.jms.ra.WLXAConnectionInterface
</connection-interface>
<connection-impl-class>
weblogic.jms.ra.WLXAConnection
</connection-impl-class>
</connection-definition>

<!--  WebLogic JMS XA javax.jms.QueueConnectionFactory  -->

<connection-definition>
<managedconnectionfactory-class>
weblogic.jms.ra.WLManagedXAQueueConnectionFactory
</managedconnectionfactory-class>
<connectionfactory-interface>
weblogic.jms.ra.WLXAQueueConnectionFactoryInterface
</connectionfactory-interface>
<connectionfactory-impl-class>
weblogic.jms.ra.WLXAQueueConnectionFactory
</connectionfactory-impl-class>
<connection-interface>
weblogic.jms.ra.WLXAQueueConnectionInterface
</connection-interface>
<connection-impl-class>
weblogic.jms.ra.WLXAQueueConnection
</connection-impl-class>
</connection-definition>

<!--  WebLogic JMS XA javax.jms.TopicConnectionFactory  -->

<connection-definition>
<managedconnectionfactory-class>
weblogic.jms.ra.WLManagedXATopicConnectionFactory
</managedconnectionfactory-class>
<connectionfactory-interface>
weblogic.jms.ra.WLXATopicConnectionFactoryInterface
</connectionfactory-interface>
<connectionfactory-impl-class>
weblogic.jms.ra.WLXATopicConnectionFactory
</connectionfactory-impl-class>
<connection-interface>
weblogic.jms.ra.WLXATopicConnectionInterface
</connection-interface>
<connection-impl-class>
weblogic.jms.ra.WLXATopicConnection
</connection-impl-class>
</connection-definition>

<!-- ******************  miscellaneous outbound   ****************** -->

<transaction-support>XATransaction</transaction-support>

<authentication-mechanism>
<authentication-mechanism-type>
BasicPassword
</authentication-mechanism-type>
<credential-interface>
javax.resource.spi.security.PasswordCredential
</credential-interface>
</authentication-mechanism>
<reauthentication-support>false</reauthentication-support>

</outbound-resourceadapter>

<inbound-resourceadapter>
<messageadapter>
<messagelistener>
<messagelistener-type>
javax.jms.MessageListener
</messagelistener-type>
<activationspec>
<activationspec-class>
weblogic.jms.ra.ActivationSpecImpl
</activationspec-class>
<required-config-property>
<config-property-name>ConnectionFactory</config-property-name>
</required-config-property>
<required-config-property>
<config-property-name>Destination</config-property-name>
</required-config-property>
<required-config-property>
<config-property-name>DestinationType</config-property-name>
</required-config-property>
</activationspec>
</messagelistener>
</messageadapter>

</inbound-resourceadapter>

<!-- ******************  WebLogic JMS Destinations  ****************** -->

<!-- WebLogic JMS javax.jms.Queue, weblogic.jms.extensions.WLDestination -->
<adminobject>
<adminobject-interface>
weblogic.jms.ra.WLQueueAdminInterface
</adminobject-interface>
<adminobject-class>
weblogic.jms.ra.WLQueueAdmin
</adminobject-class>
</adminobject>

<!-- WebLogic JMS javax.jms.Topic, weblogic.jms.extensions.WLDestination -->
<adminobject>
<adminobject-interface>
weblogic.jms.ra.WLTopicAdminInterface
</adminobject-interface>
<adminobject-class>
weblogic.jms.ra.WLTopicAdmin
</adminobject-class>
</adminobject>

<!-- javax.naming.Context for looking up weblogic.jms.extensions.WLDestination -->

<adminobject>
<adminobject-interface>
weblogic.jms.ra.WLDestinationContextInterface
</adminobject-interface>
<adminobject-class>
weblogic.jms.ra.WLDestinationContext
</adminobject-class>
</adminobject>

</resourceadapter>

</connector>

JMSリソース・アダプタの要素の説明

ra.xmlデプロイメント・ディスクリプタ・ファイルの要素階層は次のとおりです。許容される出現回数は要素名に続く中カッコ内に示されます。

<connector> {1}
<display-name> {0 or 1}
<vendor-name {0 or 1}
<eis-type> {1}
<resourceadapter-version> {1}
<resourceadapter> {1}
<resourceadapter-class> {1}
<config-property> {0 or more}
<config-property-name> {1}
<config-property-type> {1}
<config-property-value {0 or 1}
<outbound-resourceadapter> {1}
<connection-definition> {1 or more}
<managedconnectionfactory-class{1}
<config-property> {0 or more}
<config-property-name> {1}
<config-property-type> {1}
<config-property-value {0 or 1}
<connectionfactory-interface> {1}
<connectionfactory-impl-class> {1}
<connection-interface> {1}
<connection-impl-class> {1}
<transaction-support> {1}
<authentication-mechanism> {1}
<authentication-mechanism-type> {1}
<credential-interface> {1}
<reauthentication-support> {1}
<inbound-resourceadapter> {1}
<messageadapter> {1}
<messagelistener> {1}
<messagelistener-type> {1}
<activationspec> {1}
<activationspec-class> {1}
<required-config-property> {0 or more}
<config-property-name> {1}
<adminobject> {1 or more}
<adminobject-interface> {1}
<adminobject-class> {1}
<config-property> {0 or more}
<config-property-name> {1}
<config-property-type> {1}
<config-property-value {0 or 1}

activationspec

<messagelistener>要素の<activationspec>子要素は、アクティブ化仕様を指定するために使用します。情報には、アクティブ化仕様の完全修飾Javaクラス名と必要な一連の構成プロパティ名が含まれます。

activationspec-class

<activationspec>要素の<activationspec-class>子要素は、アクティブ化仕様クラスの完全修飾Javaクラス名を指定するために使用します。このクラスは、javax.resource.spi.ActivationSpecインタフェースを実装する必要があります。JavaBeanとなるには、このクラスの実装が必要です。

adminobject

<resourceadapter>要素の<adminobject>子要素は、管理対象オブジェクトに関する情報を指定するために使用します。管理対象オブジェクトは、メッセージ・スタイルまたはメッセージ・プロバイダに固有です。これには、管理対象オブジェクトによって実装されるJavaタイプのインタフェース、そのJavaクラス名およびその構成プロパティに関する情報が含まれます。

adminobject-class

<adminobject>要素の<adminobject-class>子要素は、管理対象オブジェクトによって実装されるJavaタイプのインタフェースの完全修飾名を指定するために使用します。

adminobject-interface

<adminobject>要素の<adminobject-interface>子要素は、管理対象オブジェクトによって実装されるJavaタイプのインタフェースの完全修飾名を指定するために使用します。

authentication-mechanism

<outbound-resourceadapter>要素の<authentication-mechanism>子要素は、リソース・アダプタでサポートされている認証メカニズムを指定します。

BasicPasswordメカニズム・タイプでは、javax.resource.spi.security.PasswordCredentialインタフェースをサポートする必要があります。Kerbv5メカニズム・タイプでは、org.ietf.jgss.GSSCredentialインタフェースまたは非推奨のjavax.resource.spi.security.GenericCredentialインタフェースをサポートする必要があります。

authentication-mechanism-type

<authentication-mechanism>要素の<authentication-mechanism-type>子要素は、認証メカニズムを指定します。値は次のとおりです。

- BasicPassword

- Kerbv5

config-property-name

<config-property>または<required-config-property>要素の<config-property-name>子要素は、構成プロパティの名前を定義し、文字列として入力されます。有効な名前は、リソース・アダプタまたは管理対象オブジェクトに固有です。

config-property-type

<config-property>要素の<config-property-type>子要素は、構成プロパティ値のデータ型を定義し、java.lang.Stringとして入力されます。

config-property-value

<config-property>要素の<config-property-value>子要素は、構成プロパティの値を定義し、文字列として入力されます。

connection-definition

<outbound-resourceadapter>要素の<connection-definition>子要素は、接続ファクトリを定義するために、Java Connector Architecture仕様によって要求されるクラスおよびインタフェースを定義します。

connectionfactory-impl-class

<connection-definition>要素の<connectionfactory-imlp-class>子要素は、リソース・アダプタに固有のConnectionFactoryインタフェースを実装するConnectionFactoryクラスの完全修飾名を定義します。詳細は、http://java.sun.com/xml/ns/javaee/connector_1_6.xsdを参照してください。

config-property

<resourceadapter>要素、<adminobject>要素および<connection-definition>要素の<config-property>子要素は、リソース・アダプタの管理対象オブジェクトの構成プロパテを定義します。構成プロパティは、標準コネクタのデプロイメント・ディスクリプタに定義されているのと同じ方法で定義されます。

connectionfactory-interface

<connection-definition>要素の<connectionfactory-interface>子要素は、リソース・アダプタでサポートされているConnectionFactoryインタフェースの完全修飾名を指定します。詳細は、http://java.sun.com/xml/ns/javaee/connector_1_6.xsdを参照してください。

connection-impl-class

<connection-definition>要素の<connection-imlp-class>子要素は、リソース・アダプタに固有の接続インタフェースを実装する接続クラスの完全修飾名を指定します。詳細は、http://java.sun.com/xml/ns/javaee/connector_1_6.xsdを参照してください。

connection-interface

<connection-definition>要素の<connection-interface>子要素は、リソース・アダプタでサポートされている接続インタフェースの完全修飾名を指定します。

connector

<connector>要素は、WebLogic JMSリソース・アダプタのデプロイメント・ディスクリプタ・ファイルra.xmlのルート要素です。

credential-interface

<outbound-resourceadapter>要素の<authentication-mechanism>子要素は、資格証明を表現するためにリソース・アダプタの実装がサポートするインタフェースを指定します。値は次のとおりです。

- javax.resource.spi.security.PasswordCredential

- org.ietf.jgss.GSSCredential

- javax.resource.spi.security.GenericCredential

display-name

<display-name>要素は、JMSリソース・アダプタの表示名(GUIツールで表示できる短い名前)を指定する任意要素です。

eis-type

<eis-type>要素は、このデプロイメント・ディスクリプタ・ファイルのJMSとしてEnterprise Information System (EIS)リソースを指定します。

inbound-resourceadapter

<resourceadapter>要素の<inbound-resourceadapter>子要素は、インバウンドのリソース・アダプタに関する情報を指定するために使用します。これには、<messageadapter>要素を介して指定されたリソース・アダプタのライブラリの実装に固有の情報が含まれます。

managedconnectionfactory-class

<connection-definition>要素の<managedconnectionfactory-class>子要素は、javax.resource.spi.ManagedConnectionFactoryインタフェースを実装するJavaクラスの完全修飾名を指定します。このJavaクラスは、コネクタ・アーキテクチャ指定の規約の、リソース・アダプタの実装の一部として指定されます。JavaBeanとなるには、このクラスの実装が必要です。詳細は、http://java.sun.com/xml/ns/javaee/connector_1_6.xsdを参照してください。

messageadapter

<inbound-resourceadapter>要素の<messageadapter>子要素は、リソース・アダプタのメッセージング機能を指定するために使用します。これには、<messagelistener>要素を介して指定されたリソース・アダプタのライブラリの実装に固有の情報が含まれます。

messagelistener

<messageadapter>要素の<messagelistener>子要素は、<messagelistener-type>要素を介して指定されたメッセージ・リスナーの実装を指定するために使用します。

messagelistener-type

<messageadapter>要素の<messagelistener-type>子要素は、メッセージング・リソース・アダプタでサポートされている特定のメッセージ・リスナーを指定するために使用します。これには、Javaタイプのメッセージ・リスナー・インタフェースおよびアクティブ化仕様に関する情報が含まれます。

reauthentication-support

<outbound-resourceadapter>要素の<reauthentication-support>子要素は、リソース・アダプタの実装で既存の管理対象接続のインスタンスの再認証をサポートするかどうかを指定します。値はtrueまたはfalseのいずれかです。

required-config-property

<activationspec>要素の<required-config-property>子要素は、必要なプロパティを指定するために使用します。

resourceadapter

<resourceadapter>要素には、外部JMSプロバイダにデプロイされている単一のリソース・アダプタの構成が含まれます。

resourceadapter-class

<resourceadapter>要素の<resourceadapter-class>子要素は、JMSリソース・アダプタの実装クラスを指定します。

resourceadapter-version

<resourceadapter-version>要素は、このデプロイメント・ディスクリプタ・ファイルのリリース・バージョン番号を指定します。

outbound-resourceadapter

<resourceadapter>要素の<outbound-resourceadapter>子要素は、外部アプリケーション・サーバーからEnterprise Information System (EIS)に接続するために使用する構成を定義します。構成では、リソース・アダプタの接続ファクトリを定義します。

transaction-support

<outbound-resourceadapter>要素の<transaction-support>子要素は、リソース・アダプタによって提供されるトランザクション・サポートのレベルを指定します。値は次のいずれかになります。

- NoTransaction

- LocalTransaction

- XATransaction

vendor-name

オプションのvendor-name要素は、GUIツールで表示できるJMSリソース・アダプタのベンダー、Oracle Corporationを指定します。

JMSリソース・アダプタのインバウンド・プロパティ

次の表には、インバウンド・メッセージを消費するMDBの構成に使用する追加のプロパティに関する情報が表示されます。

プロパティ

値

説明

acknowledgeMode

String

Auto-acknowledgeまたはDups-ok-acknowledgeに設定します。メッセージを消費し、MDBのonMessageメソッドをコールするリスナー・スレッドにより提供されるサービスのクオリティ(QoS)を制御します。

注意: このリリースのJMSリソース・アダプタでは、このプロパティは無視されます。少なくともAuto-acknowledgeと同等の堅牢性を備えたQoSが、常に使用されます。将来のバージョンでは、Dups-ok-acknowledgeのリクエストを受け入れる可能性があります。

デフォルトはAuto-acknowledgeです。

clientId

String

JMSクライアントの識別に使用される文字列値。設定すると、リスナー・スレッドにより使用される接続は、この値を使用するように設定されます。

clientIdは、WebLogic Server JMSトピックと相互運用するアプリケーションに必要です。

connectionFactory

String

接続ファクトリのJNDI名。

JMSリソース・アダプタはこの接続ファクトリを使用して、MDBのonMessage用のメッセージを受信するために使用されるJMS接続を作成します。例外キューが有効な場合、例外キューへのメッセージを生成するために、JMSコネクタもこの接続ファクトリから作成された接続を使用します。

詳細は、この表の、useExceptionQueueプロパティの説明を参照してください。

onMessageメソッドがXAトランザクションが実行されるように構成されている場合、このプロパティによって指定された接続ファクトリはXAと関連付けられている必要があります。

connectionFactoryにnull以外の値を設定する必要があります。

destination

String

宛先のJNDI名。

JMSリソース・アダプタはこの宛先からメッセージを受信し、受信したメッセージをこのMDBのonMessageに渡します。

destinationにnull以外の値を設定する必要があります。

destinationType

JMStype

次のいずれかになります: javax.jms.Topic、javax.jms.Queue、javax.jms.Destination。

destinationTypeにnull以外の値を設定する必要があります。

exceptionQueue

String

例外キューとして使用するjavax.jms.QueueのJNDIロケーション。

詳細は、例外キューの使用を参照してください。

UseExceptionQueueがtrueの場合は必須で、UseExceptionQueueがfalseの場合は無視されます。

FailureRetryInterval

long

WorkManagerがエンドポイントにリスナー・スレッドを割り当てるまでにアプリケーション・サーバーが待機する時間(ミリ秒)。

デフォルトは60,000ミリ秒です。

includeBodiesInExceptionQueue

boolean

trueの場合、例外キューに送信されるメッセージにメッセージ本文を含めます。通常の操作中に多くのメッセージが例外キューに送信される状況で、そのメッセージ本文が例外キューに不要の場合、この値をfalseに設定すると、パフォーマンスを向上させることができます。例外キューの使用がfalseの場合、このプロパティは無視されます。

詳細は、例外キューの使用を参照してください。

このプロパティが適用されない場合は、次の2つです。

- 元のメッセージにメッセージ本文が含まれない場合は、例外キューに送信されるメッセージにもメッセージ本文は含まれません。

- なんらかの理由で元のメッセージのコピーを作成できない場合には、かわりに元のメッセージが例外キューに送信されます。これにより、例外キューにメッセージ本文が送信されます。

デフォルト値はtrueです。

listenerThreadMaxIdleDuration

long

メッセージを受信していないリスナー・スレッドをプールに戻す前に使用可能な時間(ミリ秒)。

エンドポイントがアクティブであるかぎり、その結果使用可能なスレッド数がminListenerThreadsの値より小さい場合、アイドル・スレッドは削除されません。

詳細は、minListenerThreadsを参照してください。

デフォルト値は300,000です。

loggerName

String

このエンドポイントのログ出力の取得に使用される名前(java.util.logging.Logger.getLoggerを参照)。

logLevel

Level

各ログ・メッセージには、関連する重大度があります。重大度は、ログ・メッセージの重要性と緊急度を大まかに示します。サポートされている値は次のとおりです。

- ConnectionPool

- ConnectionOps

- TransactionalOps

- ListenerThreads

- INFO

- CONFIG

- FINE

- FINER

- FINEST

- SEVERE

- WARNING

- OFF

maxDeliveryCount

Int

MaxDeliveryCntの値を超えるJMSXDeliveryCount値がメッセージに含まれる場合、そのメッセージは破棄されます。

例外キューが有効な場合は、そのメッセージのコピーが例外キューに送信されます。MaxDeliveryCntの値が0 (ゼロ)の場合、メッセージは破棄されません。

詳細は、この表の、useExceptionQueueプロパティの説明を参照してください。

注意: MDBが例外をスローすることでメッセージに応答すると、メッセージは配信されたとみなされず、再配信される可能性があります。MDBが特定のメッセージに常に例外をスローして応答し、メッセージが破棄されないようにMaxDeliveryCntが0 (ゼロ)に設定されている場合、MDBが無限ループに陥り、同じメッセージの処理に失敗し続ける可能性があります。

デフォルト値は5です。

maxListenerThreads

Int

エンドポイントに対して作成されるリスナー・スレッドの最大数。

- キューの場合: 2つ以上のスレッドを使用すると、メッセージが消費される速度の向上に役立つ場合があります。

- トピックの場合: この値は常に1に設定する必要があります。各リスナー・スレッドは、独自のセッションとTopicSubscriberを取得します。

- 恒久サブスクライバの場合: 複数のトピック・サブスクライバが同じサブスクリプション名を同時に複数の接続から使用する場合、この値は1より大きい値に設定できます。

- 非恒久サブスクライバの場合: 1つのスレッドを使用します。スレッドを増加すると、サブスクライバが増加し、処理する各メッセージのコピーも増加することになります。

デフォルト値は1です。

maxTotalListenerThreads

Int

エンドポイントに対して作成されるリスナー・スレッドの追加数。

JMSリソース・アダプタでは、スレッドを割り当てるための公平性ポリシーを実装しており、これによって、より小さい数でより多くのスレッドを必要としている宛先が、他のエンドポイント(少なくともさらに2つ多いスレッドを持つ)からスレッドを再割当てできます。

詳細は、maxListenerThreadsを参照してください。

この公平性ポリシーは、アプリケーション・サーバーのWorkManagerがJMSリソース・アダプタによるmaxTotalListenerThreadsでの新規スレッドの追加リクエストを許可しない場合でも、続けて機能します。

デフォルト値は1000です。

messageSelector

String

MDBのonMessageメソッドに送信されたメッセージのフィルタ処理に使用されるセレクタ式。これは、リスナー・スレッドに対して作成されたJMSセッション用のメッセージのフィルタ処理に使用されます。

デフォルト値はnullで、メッセージのフィルタ処理なしです。

minListenerThreads

Int

このエンドポイントに対して作成されるリスナー・スレッドの最小数。

有効な値の範囲は、1からmaxListenerThreadsです。

詳細は、maxListenerThreadsを参照してください。

アプリケーション・サーバーにより1つ以上のリスナー・スレッドの作成が可能になっても、MinListenerThreadsで指定されたスレッド数が作成されない場合は、エンドポイントのアクティブ化は失敗せず、使用可能な数のリスナー・スレッドが使用されます。

デフォルト値は1です。

noLocal

boolean

trueの場合、メッセージはローカルに公開されません。

場合によっては、1つの接続でトピックに対して公開とサブスクライブの両方が行えます。サブスクライバのnoLocal属性を使用すると、サブスクライバは独自の接続によって公開されるメッセージの配信を禁止できます。

デフォルト値はfalseです。

password

String

リソース・プロバイダのパスワード。

詳細は、ユーザー名とパスワードのプロパティの設定を参照してください。

デフォルト値はnullです。

providerProperties

String

カンマ(「,」)で区切られた名前/値ペアとして定義されている、追加のベンダー固有プロパティのリスト。

次に例を示します。

my_property_name=my_property_value,another_property_name=another_property_value

詳細は、Oracle WebLogic Server Java APIリファレンスのWLConnectionを参照してください。

receiveTimeout

long

現行のトランザクションを終了するまでにJMSリソース・アダプタがメッセージの到着を待機する時間(ミリ秒)。

トランザクション・マネージャにより、トランザクションが存続する時間が制限されます。この値は、トランザクションで問題が発生しないかぎり、onMessage中にトランザクション・マネージャによるトランザクションのタイムアウトが行われるように設定します。たとえば、トランザクション・マネージャのタイムアウトが30秒に設定されていて、onMessageルーチンはトランザクションで問題が発生しないかぎり10秒より長くかからない場合、この値は200,000 (20秒)に設定します。

デフォルト値は15,000です。

subscriptionDurability

boolean

Durableの場合、サブスクライバがアクティブでない間に送信されたメッセージもサブスクリプションが受信するように指定されます。

有効な値はDurableまたはNonDurableです。

javax.jms.Topicまたはjavax.jms.DestinationのDestinationTypeとnull以外のsubscriptionNameプロパティが必要です。

詳細は、この表の、useExceptionQueueプロパティの説明を参照してください。

デフォルト値はNonDurableです。

subscriptionName

String

リスナー・スレッドの恒久サブスクライバの作成時に、サブスクライバにマッピングされる参照名。

subscriptionDurabilityプロパティの値がDurableで、DestinationTypeがjavax.jms.Topicまたはjavax.jms.Destinationの場合、このプロパティは必須です。その他のケースではすべて無視されます。

特定のJMSサーバーでは、(1つ以下のリスナー・スレッドを保持する必要のある)最大1つのMDBにサブスクリプション名が割り当てられます。

useExceptionQueue

boolean

trueの場合、他の場合には破棄されてしまうメッセージが例外キューに送信されます。メッセージは通常、maxDeliveryCount値を超えた場合に、例外キューに送信されます。有効なexceptionQueue名が必要です。

詳細は、maxDeliveryCountを参照してください。

userName

String

リソース・プロバイダのユーザー名。

詳細は、ユーザー名とパスワードのプロパティの設定を参照してください。

デフォルト値はnullです。

JMSリソース・アダプタのアウトバウンドの構成プロパティ

各JMS接続ファクトリ・インタフェースには、独自の<connection-definition>要素があります。<connection-definition>は、Java Connector Architecture仕様によって要求されるクラスおよびインタフェースを定義し、リソース・アダプタの構成プロパティを定義します。構成プロパティは、ra.xmlファイルで設定することも、このリソース・アダプタがデプロイされているJava EEコンテナによって提供される構成ツールを使用して設定することもできます。

次の表に、サポートされているアウトバウンドの構成プロパティをリストします。

プロパティ

値

説明

group

String

この接続定義に関連付けされるグループの名前。

詳細は、JMSリソース・アダプタ接続ファクトリのプロパティの構成を参照してください。

rpResourceLocation

String

<connection-definition>要素に関連付けられたJMS接続ファクトリをルックアップする方法を記述しているリソース・アダプタに情報を提供します。通常の形式は、connector:connectorName/remote-jndi-nameです。

groupDefinition内で定義されているマクロが、このフィールドの値として使用される場合があります。

詳細は、JMSリソース・アダプタ接続ファクトリのプロパティの構成を参照してください。

autoCloseSession

boolean

trueの場合、JMSリソース・アダプタは接続のクローズ時にセッションをクローズしようとします。

これは、セッションがオープンされている場合にXA接続をクローズしない、外部JMSプロバイダに対する回避策です。

providerCustomization

String

JMSプロバイダ固有のカスタム・コードを指定します。値は完全修飾クラス名です。

プロバイダのカスタム・コードは、JMSリソース・アダプタ・カスタマイズAPIがフックを提供するすべてのもの(インバウンド、アウトバウンドおよびリカバリ・シナリオを含む)をカスタマイズできます。JMSプロバイダの接続ファクトリがpublic String getOracleJMSRAProviderCustomization()メソッドを実装している場合は、ProviderCustomizationプロパティを設定する必要はありません。両方が指定されている場合、ProviderCustomizationプロパティ(nullまたは空白の値に設定されていない場合)がgetOracleJMSRAProviderCustomization()メソッドより優先されます。

clientId

String

オプション。

このconnection-definitionから作成されたすべての接続では、JMSのclientIDにsetClientIdの値が設定されています。

これは、WebLogic Serverインスタンスの接続ファクトリ用に事前構成されたclientIdがない場合にのみ使用してください。

管理対象オブジェクトの構成プロパティ

次の管理対象オブジェクトの構成プロパティがサポートされています。

プロパティ

値

説明

group

String

この接続定義に関連付けされるグループの名前。

詳細は、宛先およびネーミング・コンテキストの構成を参照してください。

rpResourceLocation

String

<connection-definition>要素に関連付けられたJMS接続ファクトリをルックアップする方法を記述しているリソース・アダプタに情報を提供します。通常の形式は、connector:connectorName/remote-jndi-nameです。connectorNameはresourceProviderDefinitionsで定義される必要があります。

詳細は、基本的なリソース・プロバイダの構成を参照してください。

groupDefinition内で定義されているマクロが、このフィールドの値として使用される場合があります。

詳細は、宛先およびネーミング・コンテキストの構成を参照してください。

rpContextLocation

String

WebLogic Serverインスタンス内でキューまたはトピックを検索するのに使用される、宛先コンテキストをルックアップする方法を記述しているリソース・アダプタに情報を提供します。通常の形式は、connector:connectorName/です。connectorNameはresourceProviderDefinitionsで定義される必要があります。

詳細は、基本的なリソース・プロバイダの構成を参照してください。

オラクルの法律上の注意点について

コピーライトについて

Copyright © 1994-2017, Oracle and/or its affiliates. All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

アルファ版およびベータ版ドラフト・ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のアルファ版およびベータ版ドラフト・ドキュメントについて

このドキュメントが非公開の試作版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のベータ・トライアル契約のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle PartnerNetwork Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティについて

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。