1 WebLogic JMS .NETクライアントの概要
ここでは、.NETのプログラミングおよびJMS 1.1の概念と機能に精通している読者を対象としています。
この章の内容は次のとおりです。
WebLogic JMS .NETクライアントとは
WebLogic JMS .NETクライアントは完全に管理された.NET実行時ライブラリとアプリケーション・プログラミング・インタフェース(API)です。これにより、プログラマは、WebLogic Java Message Service (JMS)アプリケーションおよびリソースにアクセスするために、.NET C#またはサポートされている他の.NETプログラミング言語を使用してクライアント・アプリケーションを作成できます。
WebLogic JMSは、JMS 1.1仕様(http://www.oracle.com/technetwork/java/jms/index.html
を参照)を完全にサポートするエンタープライズ・レベルのメッセージング・システムで、標準のJMS APIに加えて、多数のWebLogic JMS拡張も提供しています。WebLogic ServerのJMSの付加価値機能のサマリーは、Oracle WebLogic Server JMSリソースの管理で、WebLogic ServerのJMSの付加価値機能を参照してください。
JMS .NET APIのすべてのクラスとインタフェースの詳細は、Oracle WebLogic Server Microsoft .NETメッセージングAPIドキュメントを参照してください。
WebLogic JMS .NETクライアントはWebLogic Serverに付属しており、Microsoft .NET Frameworkでサポートされます。インストールの詳細は、「WebLogic JMS .NETクライアント・ライブラリのインストールおよびコピー」で説明します。
サポートされるJMSの機能
このリリースでは、WebLogic JMS .NETクライアントは、JMSバージョン1.1仕様(http://www.oracle.com/technetwork/java/jms/index.html
を参照)の主な標準機能をサポートします。サポートされないJMS 1.1の標準機能のリストについては、「WebLogic JMS .NETクライアントの使用に関する制限事項」を参照してください
標準のJMS 1.1仕様のサポートに加えて、WebLogic JMS .NETクライアントはいくつかのWebLogic JMS拡張機能もサポートしています。サポートされる機能の詳細とJMS .NETクライアントでの使用方法については、「WebLogic JMS拡張機能の使用」を参照してください
メッセージング・モデル
WebLogic JMS .NETクライアントは以下のメッセージング・モデルをサポートしています。
-
ポイント・ツー・ポイント(PTP)メッセージング・モデル。1つのアプリケーションが1つの宛先にメッセージを送信できます。
-
パブリッシュ/サブスクライブ(pub/sub)メッセージング・モデル。1つのアプリケーションが複数のアプリケーションにメッセージを送信できます。
メッセージは永続または非永続として指定できます。
-
永続メッセージは確実に1回のみ配信されることが保証されています。メッセージはJMSサーバーに障害が起きても失われず、一度アプリケーションで確認応答されれば再配信されることはありません。メッセージは、ファイルまたはデータベースに正常に書き込まれるまで送信されたとは判断されません。
-
非永続メッセージは格納されません。最大で1回配信されることが保証されています。メッセージはJMSプロバイダで障害が起きると失われ、再配信されることはありません。
詳細は、Oracle WebLogic Server JMSアプリケーションの開発のメッセージング・モデルの理解に関する項を参照してください。
メッセージ・タイプ
JMS 仕様(http://www.oracle.com/technetwork/java/jms/index.html
を参照)に定義されているように、WebLogic JMS .NETクライアントは次のメッセージ・タイプをサポートします。
-
Message
-
BytesMessage
-
MapMessage
-
ObjectMessage (同じ言語で記述されたプロデューサとコンシューマの間のみ)
-
StreamMessage
-
TextMessage
WebLogic JMSで提供されているXMLMessageタイプの拡張機能はこのリリースではサポートされていません。このタイプのメッセージを.NETクライアントで受信した場合は、自動的にTextMessageタイプに変換されます。
サポートされるメッセージ・タイプの使用の詳細は、「異なる言語環境間でのメッセージの交換」を参照してください
WebLogic JMS .NETクライアントの仕組み
次の図では、.NET Framework CLRで実行されるJMS .NETクライアント・アプリケーションがWebLogic ServerにデプロイされているJMSリソースにアクセスする仕組みを示します。
ノート:
図1-1に示されたWebLogicコンポーネントはすべてWebLogic Server 10gリリース3以降の単一のインスタンスにホストされています。複数サーバーまたはクラスタの構成では、WebLogic Serverの各コンポーネントはWebLogic Serverの別々のインスタンス上で実行できます。ただし、JMS .NETクライアント・ホストはWebLogic Server 10gリリース3以降で実行する必要があり、接続ホストとJMSサーバーはWebLogic Server 9.x以降の同じクラスタ内で実行する必要があります。
図に示された主なコンポーネントは以下のとおりです。
-
C#またはサポートされている.NETプログラミング言語で記述されたJMS .NETクライアント。.NET Framework CLR内で実行されます。宛先に対してメッセージを生成したり、宛先からのメッセージを消費したりします。
-
WebLogic Server 10gリリース3以降で実行されるJMS .NETクライアント・ホスト。JMS .NETクライアントとWebLogic JMSの間のインタフェースを提供します。
-
.NETクライアント・ホスト上に構成されている標準のT3プロトコル・リスニング・ポート。
-
1つまたは複数の接続ホスト(つまり、接続ファクトリ)。
-
一連のJMS宛先が定義されている1つまたは複数のJMSサーバー。
JMSサーバーへのトラフィックは常に、.NETクライアントからJMS .NETクライアント・ホストを通じて接続ホストへ、さらにJMSサーバーへとルーティングされます。JMS .NETクライアントへのトラフィックは常に、JMSサーバーから接続ホストへ、さらにJMS .NETクライアント・ホストを通じて.NETクライアントへとルーティングされます。
図1-1に示したように、JMS .NETクライアントとJMSサーバーの間のメッセージ交換のプロセスを簡単にまとめると、以下のステップのようになります。
- JMS .NETクライアントは、WebLogic Server 10gリリース3以降で実行されているJMS .NETクライアント・ホストとの間に最初のT3ネットワーク接続を確立します。
- JMS .NETクライアントはJMS .NETクライアント・ホストから接続ファクトリを取得します。
- JMS .NETクライアント・ホストはJNDIから接続ファクトリを取得します。
- JMS .NETクライアントは接続ファクトリを使用して接続を作成します。JMS .NETクライアント・ホストから、接続ファクトリが存在する接続ホストの1つに向かって接続が確立されます。
- JMS .NETクライアントがメッセージを送信(生成)すると、JMS .NETクライアント・ホストはそのメッセージを接続ホストに送信します。接続ホストは、宛先をホストしているJMSサーバーにメッセージをルーティングします。一方、JMS .NETクライアントがメッセージを受信(消費)する場合は、接続ホストが、宛先をホストしているJMSサーバーからJMS .NETクライアント・ホストへメッセージをルーティングします。JMS .NETクライアント・ホストはJMS .NETクライアントへメッセージを渡します。
JMS .NETクライアント・アプリケーションの作成手順と例については、「WebLogic JMS .NET APIを使用した基本的なJMSアプリケーションの開発」で説明しています。
WebLogic Serverの構成
以下の節では、JMS .NETクライアント・アプリケーションがJMSリソースにアクセスするために必要な構成について説明します。
リスニング・ポートの構成
JMS .NETクライアントでは、JMS .NETクライアント・ホストをホストしているWebLogic Serverインスタンスで、T3プロトコル用に構成されたリスニング・ポートが有効になっている必要があります。WebLogic Serverをインストールしたときに、デフォルト・ポートはT3プロトコルを使用するように構成されます。デフォルト・ポートの構成は変更したり無効にしたりできるため、システム管理者はサーバーのデフォルト・ポートでT3プロトコルが有効になっていることを確認するか、T3プロトコルをサポートするネットワーク・チャネルを追加する必要があります。構成情報については、以下のトピックを参照してください。
-
Oracle WebLogic Server管理コンソール・オンライン・ヘルプのデフォルト・ネットワーク接続の構成に関する項
-
『Oracle WebLogic Serverサーバー環境の管理』のネットワーク・チャネルの理解に関する項
JMS .NETクライアント用のJMSリソースの構成
JMS .NETクライアント・アプリケーションがWebLogic ServerにデプロイされているJMSリソースにアクセスする前に、WebLogic Serverシステム管理者は必要なJMSリソース(接続ファクトリ、JMSサーバー、宛先など)を構成しておく必要があります。JMSリソースの構成手順については、以下を参照してください:
-
Oracle WebLogic Server管理コンソール・オンライン・ヘルプのメッセージの構成に関する項
以前のリリースのWebLogic Serverとの相互運用
JMS .NETクライアントはWebLogic Server 10gリリース3以降とのみ直接通信できます。図1-2に示すように、JMS .NETクライアント・ホストはWebLogic Server 10gリリース3以降で実行する必要があります。ただし、接続ホストとJMSサーバーはWebLogic Server 9.x以降で実行できます。接続ホストとJMSサーバーは両方とも同じクラスタ内に配置する必要があります。
宛先がWebLogic Server 9.x以降で実行されていて、WebLogic Server 10gリリース3以降で実行されている.NETクライアント・ホストと同じクラスタ内にない場合、その宛先にアクセスするには、WebLogic Serverのリモート・インスタンスを外部サーバーとして構成する必要があります。詳細は、『Oracle WebLogic Server JMSリソースの管理』の外部サーバー・リソースからサード・パーティJMSプロバイダへのアクセスの構成に関する項を参照してください。
ノート:
JMS Javaクライアントを使用し、外部サーバーを使用してサード・パーティのJMSプロバイダに接続することもできますが、この機能はWebLogic JMS .NETクライアントではサポートされていません。
WebLogic JMS .NET APIの理解
以下の表では、JMS .NETクライアント・アプリケーションの作成に使用できるJMS .NET APIの主要なクラスとインタフェースを示します。JMS .NET APIのすべてのクラスとインタフェースの詳細は、Oracle WebLogic Server Microsoft .NETメッセージングAPIドキュメントを参照してください。
表1-1 WebLogic JMS .NETのクラスとインタフェース
インタフェース/クラス | 説明 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ISession.CreateConsumer(IDestination destination) ISession.CreateProducer(IDestination destination) |
|
ISession.CreateConsumer(IQueue queue) ISession.CreateProducer(IQueue queue) |
|
JMS .NETクライアントは |
|
JMS .NETクライアントは |
|
JMSメッセージは以下の部分から構成されます。 ヘッダー - すべてのメッセージは同じヘッダー・フィールドのセットをサポートします。ヘッダー・フィールドには、メッセージの識別やルーティングのためにクライアントとプロバイダの両方で使用される値が格納されます。 プロパティ - 各メッセージには、アプリケーション定義のプロパティ値をサポートするための組込みの機能が含まれています。プロパティは、アプリケーション定義のメッセージ・フィルタリングをサポートするための効率的なメカニズムを提供します。 本文 - JMS APIでは複数のタイプのメッセージ本文を定義しています。現在使用されている主要なメッセージング方式に対応しています。 |
|
|
|
|
|
|
|
|
|
|