Oracle® Fusion Middleware Oracle WebLogic Server Microsoft .NET対応のWebLogic JMSクライアントの使用 11gリリース1 (10.3.6) B55555-07 |
|
![]() 前 |
![]() 次 |
この章ではWebLogic JMS .NETクライアントの概要を示し、JMS .NETクライアント・アプリケーションからWebLogic JMSリソースにアクセスする方法について解説します。また、WebLogic JMS .NET APIについても簡単に説明します。
ここでは、.NETのプログラミングおよびJMS 1.1の概念と機能に精通している読者を対象としています。
WebLogic JMS .NETクライアントは完全に管理された.NET実行時ライブラリとアプリケーション・プログラミング・インタフェース(API)です。このクライアントを使用すると、プログラマはWebLogic Java Message Service (JMS)のアプリケーションとリソースにアクセスできる.NET C#クライアント・アプリケーションを作成できます。
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 10gリリース3以降に付属しており、Microsoft .NET Frameworkバージョン2.0から3.5まででサポートされます。インストールの詳細は、第2章「WebLogic JMS .NETクライアント・ライブラリのインストールおよびコピー」で説明します。
このリリースでは、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 1.1仕様(http://www.oracle.com/technetwork/java/jms/index.html
を参照)に定義されているように、WebLogic JMS .NETクライアントは次のメッセージ・タイプをサポートします。
Message
BytesMessage
MapMessage
ObjectMessage (同じ言語で記述されたプロデューサとコンシューマの間のみ)
StreamMessage
TextMessage
WebLogic JMSで提供されているXMLMessageタイプの拡張機能はこのリリースではサポートされていません。このタイプのメッセージを.NETクライアントで受信した場合は、自動的にTextMessageタイプに変換されます。
サポートされるメッセージ・タイプの使用の詳細は、「異なる言語環境間でのメッセージの交換」を参照してください。
次の図では、.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#で記述された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クライアント・アプリケーションの作成手順と例については、第3章「WebLogic JMS .NET APIを使用した基本的なJMSアプリケーションの開発」で説明しています。
以下の節では、JMS .NETクライアント・アプリケーションがJMSリソースにアクセスするために必要な構成について説明します。
JMS .NETクライアントでは、JMS .NETクライアント・ホストをホストしているWebLogic Serverインスタンスで、T3プロトコル用に構成されたリスニング・ポートが有効になっている必要があります。WebLogic Serverをインストールしたときに、デフォルト・ポートはT3プロトコルを使用するように構成されます。デフォルト・ポートの構成は変更したり無効にしたりできるため、システム管理者はサーバーのデフォルト・ポートでT3プロトコルが有効になっていることを確認するか、T3プロトコルをサポートするネットワーク・チャネルを追加する必要があります。構成情報については、以下のトピックを参照してください。
Oracle WebLogic Server管理コンソール・ヘルプのデフォルト・ネットワーク接続の構成に関する項
『Oracle WebLogic Serverサーバー環境の構成』のネットワーク・チャネルの理解に関する項
JMS .NETクライアント・アプリケーションがWebLogic ServerにデプロイされているJMSリソースにアクセスする前に、WebLogic Serverシステム管理者は必要なJMSリソース(接続ファクトリ、JMSサーバー、宛先など)を構成しておく必要があります。JMSリソースの構成手順については、以下を参照してください:
『Oracle WebLogic Server JMSの構成と管理』
Oracle 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クライアントではサポートされていません。 |
以下の表では、JMS .NETクライアント・アプリケーションの作成に使用できるJMS .NET APIの主要なクラスとインタフェースを示します。JMS .NET APIのすべてのクラスとインタフェースの詳細は、ドキュメントを参照してください。
表1-1 WebLogic JMS .NETのクラスとインタフェース
インタフェース/クラス | 説明 |
---|---|
Constants |
|
ContextFactory |
|
IContext |
|
IConnectionFactory |
|
IConnection |
|
ISession |
|
IDestination |
|
ITopic |
ISession.CreateConsumer(IDestination destination) ISession.CreateProducer(IDestination destination) |
IQueue |
ISession.CreateConsumer(IQueue queue) ISession.CreateProducer(IQueue queue) |
IMessageConsumer |
JMS .NETクライアントは |
IMessageProducer |
JMS .NETクライアントは |
IMessage |
JMSメッセージは以下の部分から構成されます。 ヘッダー - すべてのメッセージは同じヘッダー・フィールドのセットをサポートします。ヘッダー・フィールドには、メッセージの識別やルーティングのためにクライアントとプロバイダの両方で使用される値が格納されます。 プロパティ - 各メッセージには、アプリケーション定義のプロパティ値をサポートするための組込みの機能が含まれています。プロパティは、アプリケーション定義のメッセージ・フィルタリングをサポートするための効率的なメカニズムを提供します。 本文 - JMS APIでは複数のタイプのメッセージ本文を定義しています。現在使用されている主要なメッセージング方式に対応しています。 |
IMapMessage |
|
IObjectMessage |
|
IStreamMessage |
|
ITextMessage |
|
IBytesMessage |
|