Microsoft .NET 対応の WebLogic JMS クライアントの使用

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

WebLogic JMS .NET クライアントの概要

以下の節では WebLogic JMS .NET クライアントの概要を示し、JMS .NET クライアント アプリケーションから WebLogic JMS リソースにアクセスする方法について解説します。また、WebLogic JMS .NET API についても簡単に説明します。

ここでは、.NET のプログラミングおよび JMS 1.1 の概念と機能に精通している読者を対象としています。

 


WebLogic JMS .NET クライアントとは

WebLogic JMS .NET クライアントは完全に管理された .NET 実行時ライブラリとアプリケーション プログラミング インタフェース (API) です。このクライアントを使用すると、プログラマは WebLogic Java Message Service (JMS) のアプリケーションとリソースにアクセスできる .NET C# クライアント アプリケーションを作成できます。

WebLogic JMS は JMS 1.1 仕様を完全にサポートするエンタープライズ レベルのメッセージング システムであり、標準の JMS API に加えて、多数の WebLogic JMS 拡張機能も提供しています。WebLogic JMS の機能を理解するには、edocs Web サイトの「Oracle WebLogic Server 10g リリース 3 メッセージング」を参照してください。WebLogic Server の付加価値 JMS 機能の概要については、『WebLogic JMS のコンフィグレーションと管理』の「WebLogic Server の付加価値 JMS 機能」を参照してください。

JMS .NET API のすべてのクラスとインタフェースの詳細については、.NET クライアントの WebLogic メッセージング API リファレンスを参照してください。

WebLogic JMS .NET クライアントは WebLogic Server 10g リリース 3 以降に付属しており、Microsoft .NET Framework バージョン 2.0 から 3.5 まででサポートされます。インストールの詳細については「WebLogic JMS .NET クライアント ライブラリのインストールおよびコピー」で説明します。

サポートされる JMS の機能

このリリースで、WebLogic JMS .NET クライアントは JMS バージョン 1.1 仕様の主要な標準機能をサポートします。サポートされない JMS 1.1 の標準機能のリストについては、「WebLogic JMS .NET クライアントの使用に関する制限事項」を参照してください。

標準の JMS 1.1 仕様のサポートに加えて、WebLogic JMS .NET クライアントはいくつかの WebLogic JMS 拡張機能もサポートしています。サポートされる機能の詳細と JMS .NET クライアントでの使用方法については、「WebLogic JMS 拡張機能の使用」を参照してください。

メッセージング モデル

WebLogic JMS .NET クライアントは以下のメッセージング モデルをサポートしています。

メッセージは永続または非永続として指定できます。

詳細については、『WebLogic JMS プログラマーズ ガイド』の「メッセージング モデルについて」を参照してください。

メッセージ タイプ

WebLogic JMS .NET クライアントは JMS 1.1 仕様で定義されている以下のメッセージ タイプをサポートします。

WebLogic JMS で提供されている XMLMessage タイプの拡張機能はこのリリースではサポートされていません。このタイプのメッセージを .NET クライアントで受信した場合は、自動的に TextMessage タイプに変換されます。

サポートされるメッセージ タイプの使用の詳細については、「異なる言語環境間でのメッセージの交換」を参照してください。

 


WebLogic JMS .NET クライアントの仕組み

次の図では、.NET Framework CLR で実行される JMS .NET クライアント アプリケーションが WebLogic Server にデプロイされている JMS リソースにアクセスする仕組みを示します。

図 1-1 JMS .NET クライアントのアーキテクチャ

JMS .NET クライアントのアーキテクチャ

注意 : 図 1-1 に示された WebLogic コンポーネントはすべて WebLogic Server 10g リリース 3 以降の単一のインスタンスにホストされています。複数サーバまたはクラスタのコンフィグレーションでは、WebLogic Server の各コンポーネントは WebLogic Server の別々のインスタンス上で実行できます。ただし、JMS .NET クライアント ホストは WebLogic Server 10g リリース 3 以降で実行する必要があり、接続ホストと JMS サーバは WebLogic Server 8.1 以降の同じクラスタ内で実行する必要があります。

図に示された主なコンポーネントは以下のとおりです。

JMS サーバへのトラフィックは常に、.NET クライアントから JMS .NET クライアント ホストを通じて接続ホストへ、さらに JMS サーバへとルーティングされます。JMS .NET クライアントへのトラフィックは常に、JMS サーバから接続ホストへ、さらに JMS .NET クライアント ホストを通じて .NET クライアントへとルーティングされます。

図 1-1 に示したような、JMS .NET クライアントと JMS サーバの間のメッセージ交換のプロセスを簡単にまとめると、以下のようになります。

  1. JMS .NET クライアントは、WebLogic Server 10g リリース 3 以降で実行されている JMS .NET クライアント ホストとの間に最初の T3 ネットワーク接続を確立します。
  2. JMS .NET クライアントは JMS .NET クライアント ホストから接続ファクトリを取得します。
  3. JMS .NET クライアント ホストは JNDI から接続ファクトリを取得します。
  4. JMS .NET クライアントは接続ファクトリを使用して接続を作成します。JMS .NET クライアント ホストから、接続ファクトリが存在する接続ホストの 1 つに向かって接続が確立されます。
  5. 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 プロトコルをサポートするネットワーク チャネルを追加する必要があります。コンフィグレーション情報については、以下のトピックを参照してください。

JMS .NET クライアント用の JMS リソースのコンフィグレーション

JMS .NET クライアント アプリケーションが WebLogic Server にデプロイされている JMS リソースにアクセスする前に、WebLogic Server システム管理者は必要な JMS リソース (接続ファクトリ、JMS サーバ、送り先など) をコンフィグレーションしておく必要があります。JMS リソースのコンフィグレーション手順については、以下を参照してください。

 


以前のリリースの WebLogic Server との相互運用

JMS .NET クライアントは WebLogic Server 10g リリース 3 以降とのみ直接通信できます。図 1-2 に示すように、JMS .NET クライアント ホストは WebLogic Server 10g リリース 3 以降で実行する必要がありますが、接続ホストと JMS サーバは WebLogic Server 8.1 以降で実行できます。接続ホストと JMS サーバは両方とも同じクラスタ内に配置する必要があります。

図 1-2 JMS .NET クライアントの相互運用性

JMS .NET クライアントの相互運用性

送り先が WebLogic Server 8.1 以降で実行されていて、WebLogic Server 10g リリース 3 以降で実行されている .NET クライアント ホストと同じクラスタ内にない場合、その送り先にアクセスするには、WebLogic Server のリモート インスタンスを外部サーバとしてコンフィグレーションする必要があります。詳細については、『WebLogic JMS のコンフィグレーションと管理』の「外部サーバ リソースからサードパーティ JMS プロバイダへのアクセスのコンフィグレーション」を参照してください。

注意 : JMS Java クライアントを使用し、外部サーバを使用してサードパーティの JMS プロバイダに接続することもできますが、この機能は WebLogic JMS .NET クライアントではサポートされていません。

 


WebLogic JMS .NET API について

以下の表では、JMS .NET クライアント アプリケーションの作成に使用できる JMS .NET API の主要なクラスとインタフェースを示します。JMS .NET API のすべてのクラスとインタフェースの詳細については、.NET クライアントの WebLogic メッセージング API リファレンスを参照してください。

表 1-1 WebLogic JMS .NET のクラスとインタフェース
インタフェース/クラス
説明
Constants
Constants のクラス群は、API で一般的に使用される定数や列挙値を定義するために使用する。
ContextFactory
ContextFactory はコンテキストの作成に使用する。コンテキストは、.NET クライアントからクライアント ホストへのネットワーク接続。
IContext
IContext オブジェクトは .NET クライアントからクライアント ホストへのネットワーク接続を表現する。送り先や接続ファクトリのルックアップ、不要になったネットワーク接続のクローズに使用される。
IConnectionFactory
IConnectionFactory オブジェクトは JMS 接続コンフィグレーション情報をカプセル化する。JMS .NET クライアントは IContext オブジェクトを使用して接続ファクトリをルックアップし、その接続ファクトリを使用して JMS サーバとの IConnection を作成する。
IConnection
IConnection オブジェクトは JMS .NET クライアント ホストと JMS 接続ホストの間のアクティブな接続。接続の作成時に認証が行われる場合もある。接続はセッションを作成するために使用する。
ISession
ISession オブジェクトはメッセージを生成および消費するためのシングル スレッドのエンティティ。セッションでは複数のメッセージ プロデューサとコンシューマを作成して処理できる。
IDestination
IDestination オブジェクトはキューかトピックかを識別する。キュー送り先ではポイント ツー ポイント メッセージング モデルから、トピック送り先では pub/sub メッセージング モデルから配信されるメッセージを管理する。
ITopic
ITopic オブジェクトは、プロバイダ固有のトピック名をカプセル化した pub/sub の IDestination。クライアントがトピックの ID を JMS API メソッドに指定する方法となる。IDestination をパラメータとして使用するメソッドでは、ITopic オブジェクトを引数として使用できる。たとえば、以下のメソッドを呼び出すと、ITopic を使用して IMessageConsumerIMessageProducer を作成できる。
ISession.CreateConsumer(IDestination destination)
ISession.CreateProducer(IDestination destination)
IQueue
IQueue オブジェクトは、プロバイダ固有のキュー名をカプセル化したポイント ツー ポイントの IDestination。クライアントがキューの ID を JMS API メソッドに指定する方法となる。
IQueueITopic は両方とも IDestination を継承しているため、IDestination をパラメータとして使用するメソッドでは、IQueue オブジェクトを引数として使用できる。たとえば、以下のメソッドを呼び出すと、IQueue を使用して IMessageConsumerIMessageProducer を作成できる。
ISession.CreateConsumer(IQueue queue)
ISession.CreateProducer(IQueue queue)
IMessageConsumer
JMS .NET クライアントは IMessageConsumer オブジェクトを使用して、送り先からメッセージを受信する。IMessageConsumer オブジェクトを作成するには、セッションで提供されるメッセージ コンシューマ作成メソッドに IDestination オブジェクトを渡す。
IMessageProducer
JMS .NET クライアントは IMessageProducer オブジェクトを使用して、送り先にメッセージを送信する。IMessageProducer オブジェクトを作成するには、セッションで提供されるメッセージ プロデューサ作成メソッドに IDestination オブジェクトを渡す。
IMessage
IMessage インタフェースはすべての JMS メッセージのルート インタフェース。すべてのメッセージで使用されるメッセージ ヘッダと確認応答メソッドを定義する。
JMS メッセージは以下の部分から構成される。
ヘッダ - すべてのメッセージは同じヘッダ フィールドのセットをサポートする。ヘッダ フィールドには、メッセージの識別やルーティングのためにクライアントとプロバイダの両方で使用される値が格納される。
プロパティ - 各メッセージには、アプリケーション定義のプロパティ値をサポートするための組み込みの機能が含まれている。プロパティは、アプリケーション定義のメッセージ フィルタリングをサポートするための効率的なメカニズムを提供する。
本文 - JMS API では複数のタイプのメッセージ本文を定義している。現在使用されている主要なメッセージング方式に対応している。
IMapMessage
IMapMessage オブジェクトは名前と値のペアを送信するために使用する。名前は String オブジェクト、値は Java および C# プログラミング言語のプリミティブ データ型。名前には必ず値が必要であり、値を null や空の文字列にすることはできない。このエントリには、名前を指定して順次的またはランダムにアクセスできる。エントリの順序は定義されない。IMapMessageIMessage インタフェースを継承し、マップを格納するメッセージ本文を追加したもの。
IObjectMessage
IObjectMessage オブジェクトは Java および C# プログラミング言語のシリアライズ可能なオブジェクトを格納したメッセージを送信するために使用する。IMessage インタフェースを継承し、オブジェクトの 1 つの参照を格納した本文を追加したもの。C# オブジェクトを Java プログラムから、または Java オブジェクトを C# プログラムから読み込むことはできない。詳細については、「異なる言語環境間でのメッセージの交換」を参照。
IStreamMessage
IStreamMessage オブジェクトは Java プログラミング言語のプリミティブ型のストリームを送信するために使用する。格納と読み取りは順次的に行われる。IMessage インタフェースを継承し、ストリームのメッセージ本文を追加したもの。メソッドは主に java.io.DataInputStreamjava.io.DataOutputStream のメソッドに基づいている。
ITextMessage
ITextMessage オブジェクトは String を格納したメッセージを送信するために使用する。IMessage インタフェースを継承し、テキストのメッセージ本文を追加したもの。
IBytesMessage
IBytesMessage オブジェクトは未解釈のバイト ストリームを格納したメッセージを送信するために使用する。IMessage インタフェースを継承し、バイトのメッセージ本文を追加したもの。メッセージの受信側でバイトの解釈を行う。


  ページの先頭       前  次