この章では、Oracle BPELプロセスまたはOracle MediatorコンポーネントとJMS間の通信を可能にする、Oracle JCA Adapter for JMS(Oracle JMSアダプタ)の使用方法について説明します。
この章には、次の項目が含まれます。
JMSアーキテクチャでは、多数のメッセージ・サーバーに対して1つのクライアント・インタフェースが使用されます。 JMSモデルには、Point-to-Pointおよびパブリッシュ・サブスクライブという2つのメッセージ・ドメインがあります。Point-to-Pointドメインでは、メッセージはキューを介して交換され、各メッセージは1人の受信者にのみ配信されます。パブリッシュ・サブスクライブ・モデルでは、メッセージはトピックに送信され、複数のサブスクライブ・クライアントによって読み取られます。
JMSアダプタのサンプル・ファイルを参照するには、次の場所に移動します。
http://www.oracle.com/technology/sample_code/products/adapters
この項には、次の項目が含まれます。
JCA 1.5リソース・アダプタとBPEL Process Managerを双方向で統合するために、JCAバインディング・コンポーネントが使用されています。 JCAバインディング・コンポーネントは規格に準拠しており、基盤となるJCA相互作用をWebサービスとして公開するためのWeb Service Invocation Framework(WSIF)テクノロジが使用されています。
Oracle JMSアダプタのアーキテクチャ、アダプタとOracle BPEL Process Managerの統合およびアダプタのデプロイの詳細は、第3章「アダプタとOracle Application Serverコンポーネントの統合」を参照してください。
Oracle Mediator(メディエータ)はOracle JCAアダプタをサポートしており、それぞれのインバウンドおよびアウトバウンドのアダプタ・サービスを定義できます。 インバウンド・アダプタ・サービスでは、外部メッセージ・システムからデータが受信されてXMLメッセージに変換されます。アウトバウンド・アダプタ・サービスでは、XMLメッセージが特定のアダプタのネイティブ・フォーマットに変換され、データがターゲット・アプリケーションに送信されます。
Oracle JMSアダプタ・サービスの場合、メディエータを使用してJMSキューまたはトピックからのメッセージを送受信できます。
メディエータはOracle BPEL Process Managerの後継であり、このマニュアルのほとんどの部分およびサンプルはOracle BPEL Process Managerを使用することを想定しています。 ただし、アダプタの動作はOracle BPEL Process Managerでもメディエータでも同じです。 この章でOracle BPEL Process Managerに言及している箇所は、メディエータで置き換えてかまいません。
Oracle JMSアダプタには次の特徴があります。
JMSバージョン1.0.2bがベース
汎用Oracle JMSアダプタ
任意のJMSプロバイダで機能します。 AQ JMS(JMSプロバイダOJMS 8.1.7、9.0.1.4および9.2)、TIBCO JMS、IBM WebSphere MQSeries(IBM MQSeries JMS 6.0)、Weblogic JMS、ApacheおよびActive MQで動作確認されています。
JMSトピックおよびキューをサポートしています。
バイト、テキストおよびマップ・メッセージ・タイプをサポートしています。
これらのデータ・タイプは、このリリースでのみサポートされています。アダプタ構成ウィザードにより、実行時のネイティブ・データ・ペイロードの消費にネイティブ・フォーマット・ビルダー・ウィザードが提供されます。ネイティブ・フォーマット・ビルダー・ウィザードでは、基礎となるネイティブ・データのXSD定義が作成されます。
JMSヘッダーおよびプロパティをサポートしています。
JMSメッセージ・セレクタのサポート
JMSトピックおよびキューへのサブスクライブ中のフィルタ処理の実行用にJMSメッセージ・セレクタをサポートしています。このパラメータは、JMSヘッダーおよびプロパティのセクションに存在するフィールドに基づくメッセージをフィルタ処理するためのSQL 92言語に基づいています。
DOM2準拠
Oracle JMSアダプタでは、DOM2仕様に準拠するドキュメント・アウトバウンドを処理および生成できます。
正規化されたメッセージのサポート
ヘッダーの操作と伝播は、重要なビジネス統合メッセージング要件です。 Oracle BPEL Process Manager、メディエータ、Oracle JCAおよびOracle B2Bは、顧客の統合ニーズを解決する上でヘッダー・サポートに大きく依存しています。たとえば、メッセージ・ヘッダーを介して伝播させることで、ファイル名をソース・ディレクトリからターゲット・ディレクトリに保存できます。 また、アウトバウンドOracle JMSアダプタでは、correlationId
およびJMSReplyTo
のアドレスをJMSヘッダーとして伝播することで、非同期リクエスト/レスポンスが容易になります。 Oracle BPEL Process Managerとメディエータでは、様々なUIサポート・レベルでヘッダーにアクセスし、操作して設定できます。
正規化されたメッセージのヘッダーの伝播
正規化されたメッセージは、プロパティとペイロードという2つの部分のみを持つように簡素化されています。通常、プロパティはスカラー型の名前/値ペアです。既存の複雑なヘッダーがプロパティに収まるように、プロパティはスカラー型にフラット化されます。
設計時のヘッダーの操作
複雑なプロパティは事前に決定されているため、設計時にヘッダーを操作する際のユーザー操作は合理化されています。 メディエータまたはOracle BPELデザイナでは、なんらかの予約済キーワードを使用してヘッダーを操作できます。 たとえば、現在、メディエータ・デザイナでは、次の式を使用してインバウンドOracleファイル・アダプタのfileName
ヘッダーにアクセスできます。
$nmproperty.InboundFileHeaderType.fileName
ただし、この方法はユーザー入力に基づいて動的に生成されるプロパティに対処していません。 たとえば、Oracle AQアダプタ・ウィザードでは、AQオブジェクトからの一部のフィールドをヘッダーとして伝播できます。この選択内容に基づいてヘッダー定義が生成されます。これらの定義は事前に決定されていないため、事前決定済のプロパティ定義のリストでは考慮できません。動的プロパティのヘッダー操作は、定義するまで設計できません。この制限に対処するには、必要なサービス(コンポジット・エントリ・ポイント)と参照をすべて生成しておく必要があります。 この制限は、動的プロパティを生成する必要のあるサービスにのみ適用されます。 動的プロパティが生成された後、コンポジットごとに特定の場所で取得される必要があります。 その後にのみ、Oracle MediatorまたはOracle BPELデザイナで動的プロパティを操作できます。
永続JMSサブスクライバの指定をサポートしています。
JMSパブリッシャの永続および非永続モードをサポートしています。
MQプロバイダに対する接続再試行機能はサポート対象外
SolarisでのAQJMSに対するアウトバウンド再試行機能はサポート対象外
注意: Oracle JMSアダプタを使用してAQ-JMSプロバイダに接続する際に、AQの宛先をホストするデータベースが10.1.0.4の場合、データベース・サーバーが停止すると、アウトバウンド方向のアダプタ再試行メカニズムはデータベース・サーバーへの再接続に失敗します。これは、クライアントJDBCとojdbc14.jar との問題によるものです。 これを解決するには、10.1.0.4のJDBCドライバをダウンロードし、$MIDTIER_ORACLE_HOME/jdbc にあるライブラリ(特にojdbc14.jar)を置き換えて、中間層で使用する必要があります。 この問題の解決方法の詳細は、MetaLink Note 317385.1を参照してください。 |
JMS APIでは、JMSパブリッシャによって送信される3つの確認情報を指定します。
DUPS_OK_ACKNOWLEDGE
: メッセージの重複に関連のないコンシューマ用
AUTO_ACKNOWLEDGE
: セッションがメッセージの受信を自動的に確認
CLIENT_ACKNOWLEDGE
: クライアントがメッセージの確認メソッドを呼び出してメッセージを確認
メッセージ・サイズの追跡のサポート
Oracle JMSアダプタはメッセージ・サイズ対応です。 Oracle JMSアダプタではメッセージ・サイズが計算され、JCAバインディング・コンポーネントにレポートされます。 JCAバインディング・コンポーネントにより公開されるサイズ関連APIは、レポート処理に使用できます。
MapMessageデータ型のサポート
MapMessage
は、名前/値ペアを送信するために使用されます。名前は文字列で、値はJavaプリミティブ型です。エントリには、名前ごとに順番にまたはランダムにアクセスできます。エントリの順序は定義されていません。これはメッセージから継承し、マップ・メッセージ本文を追加します。
Oracle JMSアダプタでは、MapMessage
の処理がサポートされます。 現在では、JmsMapMessageConsumeActivationSpec
およびJmsMapMessageProduceInteractionSpec
という新しいActivationSpecおよびInteractionSpecプロパティがサポートされています。
PayloadEntry
プロパティは、ペイロードとして使用されるMapMessage
エントリを指定します。AttachmentList
プロパティが定義されている場合、ユーザーは、ペイロードを添付として送信することもできます。
他のすべてのMapMessage
エントリは、jca.jms.Map.xxxx
により識別されるアダプタ・プロパティに変換されます。xxxx
は、MapMessage
エントリの名前です。
PayloadEntry
プロパティとAttachmentList
プロパティが両方とも定義されていない場合は、エントリMapMessage
はXMLに変換され、そのXMLがペイロードとして転送されます。
エンタープライズ情報システム(EIS)の資格証明のサポート
Oracle JMSアダプタでは、EISとのアウトバウンド接続の確立時の、エンタープライズ情報システム(EIS)の資格証明(ユーザー名やパスワードなど)の保護がサポートされています。 Oracle JMSアダプタのユーザー名とパスワードは、Oracle WebLogic Serverのコンテナ管理のサインオンを使用して保護できます。
エンタープライズ情報システム(EIS)の資格証明の保護のサポートの詳細は、「エンタープライズ情報システムの資格証明の保護」を参照してください。
大きなペイロードのストリーミングのサポート
Oracle JMSアダプタには、ストリーム・ペイロードのサポートが用意されています。 この機能を有効化すると、ペイロードはメモリーDOM内のSOAランタイムで操作されるかわりにデータベースにストリーミングされます。 この機能は、大きなペイロードの処理中に使用できます。 ストリーム・ペイロードのサポートを有効化するには、Oracle JDeveloperの「消費操作のパラメータ」ページで消費操作のパラメータを定義する際に必ず「ストリーミングの有効化」チェック・ボックスを選択します。 「ストリーミングの有効化」チェック・ボックスを選択すると、次の例に示すように、対応するブール・プロパティEnableStreaming
がそれぞれの.jca
ファイルに定義されているActivationSpec
プロパティに追加されます。 EnableStreaming
プロパティが存在しない場合は、デフォルト値のfalseとみなされます。
<activation-spec className="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec"> <property name="DestinationName" value="jms/DemoInQueue"/> <property name="UseMessageListener" value="false"/> <property name="PayloadType" value="TextMessage"/> <property name="EnableStreaming" value="true"/> </activation-spec>
エラー処理のサポート
エラー処理については、「エラー処理」を参照してください。
送信または受信されたメッセージを1つの単位として扱うことで、アプリケーションは、1つのトランザクションで発行および消費のメッセージのグループを調整できます。アプリケーションがトランザクションをコミットすると、JMSプロバイダにより、そのアプリケーションがそのトランザクション内で受信したすべてのメッセージが削除されます。そのトランザクション内で送信されたメッセージは、1つの単位としてすべてのJMSコンシューマに配信されます。 アプリケーションがトランザクションをロールバックすると、そのアプリケーションがそのトランザクション内で受信したメッセージはメッセージ・システムに戻され、受信したメッセージは廃棄されます。 Oracle JMSアダプタはJMSトランザクションをサポートします。JMSで処理されたセッションは、そのセッション内に配置されたトランザクションをサポートします。JMSで処理されたセッションのトランザクションは、そのセッション以外には影響しません。
注意: Oracle JMSアダプタをEJBまたはJMSクライアントのプログラムで使用することはできません。 |
メッセージ機能はプログラム間の通信を可能にするメカニズムです。メッセージは、あるアプリケーションが別のアプリケーションに送信する構造化データです。メッセージ指向ミドルウェア(MOM)は、スケーラブルなエンタープライズ・メッセージング機能をサポートするインフラストラクチャです。 MOMにより、高速で信頼できる非同期の通信、保証付きメッセージ配信、受信通知およびトランザクション制御が実現されます。JMSは、エンタープライズ・メッセージング・システムのメッセージの発行、送信および受信を目的としてSun社により開発されたJavaインタフェースです。JMSはJMSベンダーが実装するAPIです。 オラクル社では、WLS JMSとOracleアドバンスト・キューに基づいたOracle JMSの2つのJMS実装を提供しています。JMSプロデューサによりJMSメッセージが作成され、JMSコンシューマによってJMSメッセージが消費されます。
JMSでは、Point-to-Point(キュー)およびパブリッシュ・サブスクライブ(トピック)という2つのメッセージ・パラダイムをサポートしています。
この項には、次の項目が含まれます。
Point-to-Pointメッセージでは、メッセージは消費されるまでキューに格納されます。1つ以上のプロデューサがキューに書き込み、1つ以上のコンシューマがキューからメッセージを抽出します。JMSコンシューマにより、メッセージの消費後に確認情報が送信されるため、キューからメッセージがパージされます。
パブリッシュ・サブスクライブ・メッセージでは、プロデューサがメッセージをトピックにパブリッシュし、コンシューマが特定のトピックにサブスクライブします。複数のパブリッシャが同じトピックを公開でき、複数のコンシューマが同じトピックにサブスクライブできます。プロデューサによってトピックに公開されたすべてのメッセージは、そのトピックにサブスクライブしたすべてのコンシューマによって受信されます。 デフォルトでは、サブスクライバがメッセージを受信できるのはアクティブなときのみです。 ただし、JMS APIでは、サブスクライバが稼働中ではなくても、パブリッシュされたメッセージをコンシューマが受信できる永続サブスクリプションをサポートしています。永続サブスクリプションでは、コンシューマがアクティブではないときに送信されたメッセージを受信するために、コンシューマを一意のIDで登録します。これらのメッセージはJMSプロバイダにより保存され、コンシューマが再度アクティブになった際に送信されるか、メッセージが失効した場合には記憶域からパージされます。JMSプロデューサは、永続モードまたは非永続モードに設定できます。非永続モードではメッセージは保存されず、非永続サブスクリプションにのみ使用できます。
Oracle WebLogic Serverで永続サブスクリプションの操作を必要とするシナリオでは、次の例に示すように、ClientID
プロパティを定義済のコネクタ・ファクトリが必要です。
<FactoryProperties>ClientID=uniquename</FactoryProperties>
複数の永続サブスクライバを定義する際には、それぞれ一意のClientID
プロパティを指定して複数のコネクタ・ファクトリを定義する必要があります。 Oracle WebLogic Serverではclientid
のバインドが1回しか許可されないため、他のアダプタ相互作用(インバウンド・メッセージの処理に使用する場合のアウトバウンド相互作用など)には同じコネクタ・ファクトリを使用しないように注意してください。 ClientId
を定義済のコネクタ・ファクトリをインバウンドで使用して着信メッセージを処理するシナリオの場合、アウトバウンド・アダプタ相互作用には異なるコネクタ・ファクトリを使用する必要があります。
注意: BPELパートナ・リンクで使用されない永続サブスクライバは、手動で削除する必要があります。 これらの永続サブスクリプションがOracle JMSアダプタにより自動的に削除されることはありません。 |
JMS APIでは、メッセージ消費のための同期および非同期通信の両方をサポートしています。同期の場合、コンシューマはトピックまたはキューのreceive()
メソッドを明示的に呼び出します。非同期の場合、JMSクライアントによりトピックまたはキューにメッセージ・リスナーが登録され、メッセージはそのリスナーのonMessage()
メソッドを呼び出すことで配信されます。
宛先プロパティには、JMSキューまたはトピックのアドレス情報が含まれます。接続は、JMSプロバイダへの物理接続を表します。コネクション・ファクトリは、JMS接続の作成に使用されます。セッションは、キューまたはトピックの宛先、JMSプロデューサ、およびJMSコンシューマのオブジェクトの作成に使用されます。
JMSメッセージには、必須の標準ヘッダー要素、オプションのプロパティ要素およびオプションの標準ペイロード要素があります。ペイロードはテキスト・メッセージ、バイト・メッセージ、マップ・メッセージ、ストリーム・メッセージまたはオブジェクト・メッセージのいずれかになります。プロパティ要素はJMSプロバイダ固有で、JMSプロバイダごとに異なります。
Oracle JMSアダプタのヘッダー・プロパティの詳細は、付録Aの「Oracle JMSアダプタのプロパティ」を参照してください。
この項には、次の項目が含まれます。
次の使用例では、Oracle JMSアダプタの構成手順を説明し、結果のWSDLファイルおよび関連するweblogic-ra.xml
ファイルを検証します。
この項には、次の項目が含まれます。
最初に、SOAコンポジットを含んだJDeveloperアプリケーションを作成する必要があります。 次の手順に従って新規アプリケーションとSOAプロジェクトを作成します。
Oracle JDeveloperを開きます。
「アプリケーション・ナビゲータ」で、「新規アプリケーション」をクリックします。
図8-1に示すように、「汎用アプリケーションの作成 - アプリケーションの名前付け」ページが表示されます。
「アプリケーション名」フィールドにアプリケーションの名前を入力します。 たとえば、AQQueue2Queue
と入力します。
「アプリケーション・テンプレート」リストで、「汎用アプリケーション」を選択します。
「次へ」をクリックします。
図8-2に示すように、「プロジェクトの名前付け」ダイアログが表示されます。
「プロジェクト名」フィールドにわかりやすい名前を入力します。 たとえば、AQQueue2Queue
と入力します。
「プロジェクト・テクノロジ」タブの「選択可能」リストで「SOA」をダブルクリックし、「選択済」リストに移動します。
「次へ」をクリックします。
図8-3に示すように、「汎用アプリケーションの作成 - SOA設定の設定」ページが表示されます。
「コンポジット・テンプレート」リストから「BPELを使用するコンポジット」を選択して「終了」をクリックします。
新規アプリケーションおよびSOAプロジェクトが作成されました。これにより、SOAコンポジットが自動的に作成されます。
図8-4に示すように、「BPELプロセスの作成」ページが表示されます。
「名前」フィールドにBPELプロセスの名前を入力します。 この例では、デフォルト名を使用します。
「テンプレート」リストで「サービスを後で定義」を選択し、「OK」をクリックします。
BPELプロセスが作成されました。
アダプタ構成ウィザードを使用してOracle JMSアダプタを構成するには、次の手順を実行します。
「コンポーネント・パレット」で、「SOA」を選択します。
「サービス・アダプタ」リストから「JMSアダプタ」を「composite.xml」ページの「公開されたサービス」スイムレーンにドラッグ・アンド・ドロップします。
「アダプタ構成ウィザード」が表示されます。
「次へ」をクリックします。
図8-5に示すように、アダプタ構成ウィザードの「サービス名」ページが表示されます。
サービス名を入力して「次へ」をクリックします。
図8-6に示すように、アダプタ構成ウィザードの「JMSプロバイダ」ページが表示されます。
操作を1つ選択します。 この例では「Oracle Weblogic JMS」を選択します。
Oracle Enterprise Messaging Service (OEMS): WebLogicサーバーまたはアドバンスト・キューイング・メッセージ・サービスと統合できます。
サード・パーティ: このオプションを選択すると、サード・パーティのプロバイダと統合できます。
「次へ」をクリックします。
アダプタ構成ウィザードの「サービス接続」ページが表示されます。
設計時環境とデプロイ先サーバーの間の接続性を確立する必要があります。
「Oracle JCAアダプタ用のアプリケーション・サーバー接続の作成」で説明した手順に従って、アプリケーション・サーバー接続を作成します。
「次へ」をクリックします。 図8-7に示すように、「アダプタ・インタフェース」ページが表示されます。
「アダプタ・インタフェース」ページで、「操作およびスキーマから定義(後で指定)」を選択します。
「次へ」をクリックします。
アダプタ構成ウィザードの「操作」ページが表示されます。
「メッセージ消費」、「メッセージ発行」または「リクエスト/リプライ」を選択します。この例では「メッセージ消費」を選択します。
図8-8に示すように、操作名は自動的に入力されます。
「メッセージ消費」オプションを選択すると、JMS宛先からのインバウンド・メッセージをアダプタで消費(受信)できます。
「次へ」をクリックします。
図8-9に示すように、アダプタ構成ウィザードの「消費操作のパラメータ」ページが表示されます。
次のフィールドに値を入力します。
接続先名
メッセージの送信元であるJMSキューまたはトピックのJNDI名です。このフィールドは編集できません。「参照」をクリックしてキューまたはトピックを参照する必要があります。使用しているJMSプロバイダのタイプに基づいて、キューまたはトピックを選択します。
詳細は、次の各項を参照してください。
メッセージ本文のタイプ
サポートされている値は「TextMessage」
、「BytesMessage」
または「MapMessage」
です。このリリースでは、「StreamMessage」
メッセージ・タイプはサポートされていません。
永続サブスクライバID
このフィールドはオプションです。永続サブスクライバを設定する場合には、永続サブスクライバIDが必要です。 接続が解除されるとサブスクライバは通常メッセージを失いますが、永続サブスクライバは再接続の際に保存されているメッセージをダウンロードします。
注意: JMSプロバイダがメモリー、Oracle WebLogic JMSまたはOracle Advanced Queueingメッセージ・サービスの場合、「永続サブスクライバID」オプションが表示されるのはトピックを選択した場合のみです。 ただし、JMSプロバイダがサード・パーティの場合は、常に「永続サブスクライバID」オプションが表示されます。 |
メッセージ・セレクタ
このフィールドもオプションです。ヘッダーおよびプロパティの情報に基づいてメッセージをフィルタ処理します。メッセージ・セレクタ・ルールはブール式です。式がtrue
の場合には、メッセージが消費されます。式がfalse
の場合には、メッセージが拒否されます。
たとえば、次のような式を入力できます。
JMSPriority > 3。これに基づき、優先度が3より高いメッセージが消費され、それ以外のメッセージはすべて拒否されます。
JMSType = 'car' AND color = 'blue' AND weight > 2500。
Country in ('UK', 'US', 'France')。
MessageListenerを使用
このフィールドは、デフォルトで常に「False
」に設定されます。
JNDI名
アダプタが管理モードで確実に実行されるように、JNDI名で指定した値がOracle JMSアダプタのweblogic-ra.xmlファイルに存在する必要があります。
適切なパラメータを入力したら、「次へ」をクリックします。
図8-10に示すように、アダプタ構成ウィザードの「メッセージ」ページが表示されます。このページでの設定により、メッセージ・ペイロードの適切なスキーマが定義されます。
次のいずれかを実行できます。
「ネイティブ・フォーマット変換は不要(スキーマを不透明(Opaque)にする)」を選択します。これにより残りのフィールドが使用できなくなります。
ネイティブ・フォーマットの定義プロセスを支援するネイティブ・フォーマット・ビルダー・ウィザードを起動するには、「ネイティブ・フォーマットのスキーマの定義」をクリックします。
スキーマ・ファイルURLのパスを入力します(またはパスを参照します)。
次に、最後に示した、スキーマ・ファイルURLを参照するオプションの手順を示します。
「参照」ボタンをクリックします。
図8-11に示すように、「タイプ・エクスプローラ」ナビゲーション・ツリーを含む「タイプ・チューザ」ダイアログが表示されます。
ツリーを参照し、適切なスキーマ・タイプを選択して「OK」をクリックします。
今度は、図8-12に示すように、「スキーマ・ファイルのURL」フィールドおよび「スキーマ要素」フィールドが入力された状態で、「メッセージ」ページが再表示されます。
「次へ」をクリックします。
「終了」ページが表示されます。このボックスには、ウィザードにより作成されるアダプタ・ファイルのパスと名前が表示されます。
「終了」をクリックします。
「composite.xml」ページが表示されます。
アダプタ構成ウィザードにより次のコンポジット・ファイルが生成されます。
<composite name="AQQueue2Queue" revision="1.0" label="2007-09-04_11-58-50_914" mode="active" state="on" xmlns="http://xmlns.oracle.com/sca/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy"> <import namespace="http://xmlns.oracle.com/pcbpel/adapter/jms/Inbound/" location="Inbound.wsdl" importType="wsdl"/> <import namespace="http://xmlns.oracle.com/pcbpel/adapter/jms/Outbound/" location="Outbound.wsdl" importType="wsdl"/> <service name="Inbound"> <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/jms/Inbound/#wsdl.interface(Consume_Message_ptt)"/> <binding.jca config="Inbound_jms.jca"/> </service> <component name="BPELProcess1"> <implementation.bpel src="BPELProcess1.bpel"/> </component> <reference name="Outbound"> <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/jms/Outbound/#wsdl.interface(Produce_Message_ptt)"/> <binding.jca config="Outbound_jms.jca"/> </reference> <wire> <source.uri>Inbound</source.uri> <target.uri>BPELProcess1/Inbound</target.uri> </wire> <wire> <source.uri>BPELProcess1/Outbound</source.uri> <target.uri>Outbound</target.uri> </wire> </composite>
次のコード・セグメントでは、アダプタの名前、様々な必要なスキーマの場所およびその他の定義ファイルが定義されています。
<import namespace="http://xmlns.oracle.com/pcbpel/adapter/jms/Inbound/" location="Inbound.wsdl" importType="wsdl"/> <import namespace="http://xmlns.oracle.com/pcbpel/adapter/jms/Outbound/" location="Outbound.wsdl" importType="wsdl"/>
このコード・セグメントでは必要なネームスペースをインポートしています。
<definitions name="Inbound" targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/jms/Inbound/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/jms/Inbound/" xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:imp1="http://xmlns.oracle.com/pcbpel/samples/expense"> <types> <schema xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="http://xmlns.oracle.com/pcbpel/samples/expense" schemaLocation="xsd/expense.xsd"/> </schema> </types> <message name="ExpenseRecord_msg"> <part name="ExpenseRecord" element="imp1:ExpenseRecord"/> </message> <portType name="Consume_Message_ptt"> <operation name="Consume_Message"> <input message="tns:ExpenseRecord_msg"/> </operation> </portType>
このコード・セグメントでは、メッセージ・タイプ、メッセージ名およびパートナ・リンクのポート・タイプが定義されています。
<adapter-config name="dequeue" adapter="Jms Adapter" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata"> <connection-factory location="eis/wls/Queue" UIConnectionName="wls3" UIJmsProvider="WLSJMS" adapterRef=""/> <endpoint-activation portType="Consume_Message_ptt" operation="Consume_Message"> <activation-spec className="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec"> <property name="DestinationName" value="jms/DemoInQueue"/> <property name="UseMessageListener" value="false"/> <property name="PayloadType" value="TextMessage"/> </activation-spec> </endpoint-activation> </adapter-config>
weblogic-ra.xml
ファイルでは、JMSコネクション・ファクトリのエンドポイントが定義されます。コネクション・ファクトリには、各エンドポイントの構成プロパティが含まれます。後続の項で示すように、エンドポイントは、タイプの異なる接続に対応するために追加されます。次の例に、汎用weblogic-ra.xml
ファイルの内容を示します。
<connection-instance> <jndi-name>eis/wls/Queue</jndi-name> <connection-properties> <properties> <property> <name>ConnectionFactoryLocation</name> <value>weblogic.jms.XAConnectionFactory</value> </property> <property> <name>FactoryProperties</name> <value></value> </property> <property> <name>AcknowledgeMode</name> <value>AUTO_ACKNOWLEDGE</value> </property> <property> <name>IsTopic</name> <value>false</value> </property> <property> <name>IsTransacted</name> <value>false</value> </property> <property> <name>Username</name> <value></value> </property> <property> <name>Password</name> <value></value> </property> </properties> </connection-properties> </connection-instance>
新規接続は、Oracle WebLogic Server管理コンソールを使用して作成する方法もあることに注意してください。
Oracle WebLogic Server管理コンソールを使用した新規接続の作成
次の手順に従って、Oracle WebLogic Server管理コンソールで新規接続を作成します。
Oracle WebLogic Server管理コンソールhttp://
servername
:
portnumber
/console
にナビゲートします。
必要な資格証明を使用して、Oracle WebLogic Server管理コンソールのホーム・ページを開きます。
Oracle WebLogic Server管理コンソールのホーム・ページが表示されます。
「ドメイン構造」ペインで「デプロイメント」を選択します。
Oracle WebLogic Server管理コンソールの「デプロイメントの概要」ページが表示されます。
「デプロイメント」で、デプロイしたJMSアダプタをクリックします。 たとえば、JmsAdapterをクリックします。
Oracle WebLogic Server管理コンソールの「JmsAdapterの設定」ページが表示されます。
「構成」タブをクリックし、「アウトバウンド接続プール」タブをクリックします。
「アウトバウンド接続プールの構成表」が表示されます。
「次へ」をクリックします。
「新しいアウトバウンド接続の作成」ページが表示されます。
デフォルトのアウトバウンド接続グループを選択して「次へ」をクリックします。
「次へ」をクリックします。
「JNDI名」フィールドに、新規接続インスタンスの取得に使用するJNDI名を入力します。 たとえば、eis/wls/Queue
と入力します。
JNDIフィールドには任意の名前を指定できることに注意してください。 ただし、Oracle JDeveloperで消費操作または発行操作のパラメータを定義する際に同じJNDI名を使用する必要があります。
「終了」をクリックします。
「デプロイメント・プラン保存アシスタント」ページが表示されます。
構成の変更内容は、新規デプロイメント計画に格納する必要があります。
「パス」フィールドで、デプロイメント計画ファイルのパスを選択または入力します。 パスは「.xml」で終了する必要があります。
「OK」をクリックします。
新規接続が作成されました。 この操作の完了後に、作成したプロパティが正しいかどうかを確認する必要があります。
「JmsAdapterの設定」ページで、「構成」タブをクリックし、「プロパティ」タブをクリックします。
作成した接続はこのページに表示されます。 この値が正しいかどうかを確認します。 たとえば、サード・パーティのJMSサーバーに接続する場合は、接続ファクトリの場所フィールドにサード・パーティのJMSサーバーに適用可能な正しい値が設定されていることを確認します。
注意: この例では、Oracle WebLogic Server管理コンソールを使用してOracle JMSアダプタ用の新規接続を作成しました。 他のアダプタ用の接続を作成するには、同じ手順に従う必要があります。 ただし、手順4では接続の作成対象として適切なアダプタを選択します。 |
「保存」をクリックします。
メッセージ発行操作では、特に「アダプタ構成ウィザードを使用したOracle JMSアダプタの構成」の手順13において、定義の手順が異なります。消費操作パラメータを指定するかわりに、次の発行操作パラメータを指定します。これにより、JMS宛先へのアウトバウンド・メッセージをアダプタで発行(送信)できます。 図8-13に、「発行操作のパラメータ」ページを示します。
接続先名:
メッセージの配信先にする必要のあるJMSキューまたはトピックのJNDI名。 入力する名前は、使用するJMSプロバイダのタイプに基づきます。
接続先名の詳細は、次の項を参照してください。
メッセージ本文のタイプ:
サポートされている値は、TextMessage
、BytesMessage
およびMapMessage
です。 このリリースでは、StreamMessage
メッセージ・タイプはサポートされていません。
配信モード:
値は「永続」
または「非永続」
です。永続配信モードでは、今後の使用に備えて、永続サブスクライバによりメッセージを保存するパブリッシャである永続JMSパブリッシャを指定します。 永続サブスクライバは、「アダプタ構成ウィザードを使用したOracle JMSアダプタの構成」の手順15の対応するフィールドに永続サブスクライバIDのあるメッセージ消費です。非永続サブスクライバでは、アダプタがアクティブではないときに発行されたメッセージは失われます。 永続サブスクライバでは、永続パブリッシャに保存されていたメッセージをダウンロードするため、すべてのメッセージを受信するために常にアクティブである必要はありません。
優先度:
優先度の値を選択します。9
は最も高い優先度を、0
は最も低い優先度を表します。デフォルトは4
です。
TimeToLive:
メッセージが失効して消費できなくなるまでの期間です。
この項では、直接接続と非直接接続用にTibco JMSを使用するOracle JMSアダプタの構成方法について説明します。
次の手順を実行します。
次のファイルを<SOAInstall_DIR>/user_projects/domains/<DOMAIN_NAME>/lib
フォルダにコピーします。
/<YOUR-TIBCO-INSTALL-LOCATION>/clients/java/tibjms.jar
次の例に示すように、AS11gR1SOA/soa/connectors/JmsAdapter.rar
にあるweblogic-ra.xml
ファイルを変更してコネクタ・ファクトリを構成します。
<connection-instance> <jndi-name>eis/tibjms/Topic</jndi-name> <connection-properties> <properties> <property> <name>ConnectionFactoryLocation</name> <value>TopicConnectionFactory</value> </property> <property> <name>FactoryProperties</name> <value>java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory;java.naming.provider.url=tibjmsnaming://<HOST>:<PORT>;java.naming.security.principal=<USERNAME>;java.naming.security.credentials=<PASSWORD></value> </property> <property> <name>AcknowledgeMode</name> <value>AUTO_ACKNOWLEDGE</value> </property> <property> <name>IsTopic</name> <value>true</value> </property> <property> <name>IsTransacted</name> <value>true</value> </property> <property> <name>Username</name> <value><USERNAME></value> </property> <property> <name>Password</name> <value><PASSWORD></value> </property> </properties> </connection-properties> </connection-instance> <connection-instance> <jndi-name>eis/tibjms/Queue</jndi-name> <connection-properties> <properties> <property> <name>ConnectionFactoryLocation</name> <value>QueueConnectionFactory</value> </property> <property> <name>FactoryProperties</name> <value>java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory;java.naming.provider.url=tibjmsnaming://<HOST>:<PORT>;java.naming.security.principal=<USERNAME>;java.naming.security.credentials=<PASSWORD></value> </property> <property> <name>AcknowledgeMode</name> <value>AUTO_ACKNOWLEDGE</value> </property> <property> <name>IsTopic</name> <value>false</value> </property> <property> <name>IsTransacted</name> <value>true</value> </property> <property> <name>Username</name> <value><USERNAME></value> </property> <property> <name>Password</name> <value><PASSWORD></value> </property> </properties> </connection-properties> </connection-instance>
デフォルトの<USERNAME>および<PASSWORD>がそれぞれadmin
およびpassword
であることに注意してください。
または、Oracle WebLogic Server管理コンソールを使用して新規コネクション・ファクトリを構成するには、「アダプタ・コネクション・ファクトリの追加」で説明する手順に従います。
次の手順を実行します。
次のファイルを<SOAInstall_DIR>/user_projects/domains/<DOMAIN_NAME>/lib
フォルダにコピーします。
/<YOUR-TIBCO-INSTALL-LOCATION>/clients/java/tibjms.jar
次の例に示すように、AS11gR1SOA/soa/connectors/JmsAdapter.rar
にあるweblogic-ra.xml
ファイルを変更してコネクタ・ファクトリを構成します。
<connection-instance> <jndi-name>eis/tibjmsDirect/Queue</jndi-name> <connection-properties> <properties> <property> <name>ConnectionFactoryLocation</name> <value>com.tibco.tibjms.TibjmsQueueConnectionFactory</value> </property> <property> <name>FactoryProperties</name> <value>ServerUrl=tcp://<HOST>:<PORT>;UserName=<USERNAME>;UserPassword=<PASSWORD></value> </property> <property> <name>AcknowledgeMode</name> <value>AUTO_ACKNOWLEDGE</value> </property> <property> <name>IsTopic</name> <value>false</value> </property> <property> <name>IsTransacted</name> <value>true</value> </property> <property> <name>Username</name> <value><USERNAME></value> </property> <property> <name>Password</name> <value><PASSWORD></value> </property> </properties> </connection-properties> </connection-instance> <connection-instance> <jndi-name>eis/tibjmsDirect/Topic</jndi-name> <connection-properties> <properties> <property> <name>ConnectionFactoryLocation</name> <value>com.tibco.tibjms.TibjmsTopicConnectionFactory</value> </property> <property> <name>FactoryProperties</name> <value>ServerUrl=tcp://<HOST>:<PORT>;UserName=<USERNAME>;UserPassword=<PASSWORD></value> </property> <property> <name>AcknowledgeMode</name> <value>AUTO_ACKNOWLEDGE</value> </property> <property> <name>IsTopic</name> <value>true</value> </property> <property> <name>IsTransacted</name> <value>true</value> </property> <property> <name>Username</name> <value><USERNAME></value> </property> <property> <name>Password</name> <value><PASSWORD></value> </property> </properties> </connection-properties> </connection-instance>
デフォルトの<USERNAME>および<PASSWORD>がそれぞれadmin
およびpassword
であることに注意してください。
または、Oracle WebLogic Server管理コンソールを使用して新規コネクション・ファクトリを作成するには、「アダプタ・コネクション・ファクトリの追加」で説明する手順に従います。
この項では、非XAおよびXAデータソース用にIBM WebSphere MQ JMSを使用するOracle JMSアダプタの構成方法について説明します。
次の手順を実行します。
次のファイルを<SOAInstall_DIR>/user_projects/domains/<DOMAIN_NAME>/lib
フォルダにコピーします。
/<YOUR-MQSERIES-INSTALL-LOCATION>/java/lib/com.ibm.mq.jar
/<YOUR-MQSERIES-INSTALL-LOCATION>/java/lib/com.ibm.mqjms.jar
/<YOUR-MQSERIES-INSTALL-LOCATION>/java/lib/dhbcore.jar
次の例に示すように、AS11gR1SOA/soa/connectors/JmsAdapter.rar
にあるweblogic-ra.xml
ファイルを変更してコネクタ・ファクトリを構成します。
<connection-factory connector-name="Jms Adapter" location="eis/webspheremq/Queue"><config-property name="connectionFactoryLocation" value="com.ibm.mq.jms.MQQueueConnectionFactory" encodedcredential="false"/><config-property name="factoryProperties"value="QueueManager=<QUEUEMANAGER>;TransportType=1;HostName=<YOUR-HOST>;Port=<YOURPORT>;Channel=<CHANNEL>" encoded-credential="false"/><config-property name="acknowledgeMode" value="AUTO_ACKNOWLEDGE" encoded-credential="false"/><config-property name="isTopic" value="false" encoded-credential="false"/><config-property name="isTransacted" value="true" encoded-credential="false"/><config-property name="username" value="<USERNAME>" encoded-credential="false"/><config-property name="password" value="<PASSWORD>" encoded-credential="false"/></connection-factory>
デフォルトの<USERNAME>および<PASSWORD>がそれぞれMUSR_MQADMIN
およびpassword
であることに注意してください。
または、Oracle WebLogic Server管理コンソールを使用して新規コネクション・ファクトリを作成するには、「アダプタ・コネクション・ファクトリの追加」で説明する手順に従います。
次の手順を実行します。
次のファイルを<SOAInstall_DIR>/user_projects/domains/<DOMAIN_NAME>/lib
フォルダにコピーします。
/<YOUR-MQSERIES-INSTALL-LOCATION>/java/lib/com.ibm.mq.jar
/<YOUR-MQSERIES-INSTALL-LOCATION>/java/lib/com.ibm.mqjms.jar
/<YOUR-MQSERIES-INSTALL-LOCATION>/java/lib/dhbcore.jar
com.ibm.mqetclient.jar
これは、IBM拡張トランザクション・クライアント(別途ライセンスが必要なオプション・コンポーネント)です。
次の例に示すように、AS11gR1SOA/soa/connectors/JmsAdapter.rar
にあるweblogic-ra.xml
ファイルを変更してコネクタ・ファクトリを構成します。
<connection-factory connector-name="Jms Adapter" location="eis/webspheremq/Queue"><config-property name="connectionFactoryLocation" value="com.ibm.mq.jms.MQXAQueueConnectionFactory"encoded-credential="false"/><config-property name="factoryProperties"value="QueueManager=<QUEUEMANAGER>;TransportType=1;HostName=<YOUR-HOST>;Port=<YOURPORT>;Channel=<CHANNEL>" encoded-credential="false"/><config-property name="acknowledgeMode" value="AUTO_ACKNOWLEDGE" encoded-credential="false"/><config-property name="isTopic" value="false" encoded-credential="false"/><config-property name="isTransacted" value="false" encoded-credential="false"/><config-property name="username" value="<USERNAME>" encoded-credential="false"/><config-property name="password" value="<PASSWORD>" encoded-credential="false"/></connection-factory>
デフォルトの<USERNAME>および<PASSWORD>がそれぞれMUSR_MQADMIN
およびpassword
であることに注意してください。
または、Oracle WebLogic Server管理コンソールを使用して新規コネクション・ファクトリを作成するには、「アダプタ・コネクション・ファクトリの追加」で説明する手順に従います。
WebSphere MQ Explorerでキューを右クリックし、「Put Test Message」を選択してメッセージを送信します。
WebSphere MQ Explorerでキューを右クリックし、「Browse Messages」を選択してアウトバウンド・キューにあるメッセージを参照します。
この使用例では、Oracle JMSアダプタでWLS JMSキューとの間のエンキューおよびデキューを実行する方法について説明します。
この項には、次の項目が含まれます。
この使用例では、前提条件として次のタスクを実行する必要があります。
次の手順を実行して、この使用例で必要となるキューを作成します。
Oracle WebLogic Server管理コンソールhttp://
servername
:portnumber
/console
にナビゲートします。
必要な資格証明を使用して、Oracle WebLogic Server管理コンソールのホーム・ページを開きます。
図8-14に示すように、Oracle WebLogic Server管理コンソールのホーム・ページが表示されます。
「ドメイン構造」ペインで、「サービス」、「メッセージング」、「JMSモジュール」の順にナビゲートします。
Oracle WebLogic Server管理コンソールの「JMSモジュール」ページが表示されます。
既存のモジュールのいずれかをクリックします。この例では、「SOAJMSModule」をクリックします。
Oracle WebLogic Server管理コンソールの「SOAJMSModuleの設定」ページが表示されます。
「リソースの概要」セクションで、「新規作成」をクリックします。
Oracle WebLogic Server管理コンソールの「新しいJMSシステム・モジュール・リソースの作成」ページが表示されます。
「キュー」を選択して「次へ」をクリックします。
次のキューの詳細を入力します。
名前
JNDI名
テンプレート
「次へ」をクリックします。
「サブデプロイメント」リストから、使用するサブデプロイメントを選択します。
「終了」をクリックします。
ReceiveQueue
という名前のキューが作成されました。
手順1〜10を繰り返して、SendQueue
という名前のキューを作成します。
設計時環境とデプロイ先サーバーの間の接続性を確立する必要があります。 「Oracle JCAアダプタ用のアプリケーション・サーバー接続の作成」で説明した手順に従って、アプリケーション・サーバー接続を作成します。
SOAコンポジットを含んだOracle JDeveloperアプリケーションを作成する必要があります。 次の手順に従って新規アプリケーションとSOAプロジェクトを作成します。
Oracle JDeveloperを開きます。
「アプリケーション・ナビゲータ」で、「新規アプリケーション」をクリックします。 「汎用アプリケーションの作成 - アプリケーションの名前付け」ダイアログが表示されます。
「アプリケーション名」フィールドにアプリケーションの名前を入力します。 たとえば、queue2queue
と入力します。
「アプリケーション・テンプレート」リストで、「汎用アプリケーション」を選択します。
「次へ」をクリックします。
「プロジェクトの名前付け」ページが表示されます。
「プロジェクト名」フィールドにわかりやすい名前を入力します。 たとえば、queue2queue
と入力します。
「プロジェクト・テクノロジ」タブの「選択可能」リストで「SOA」をダブルクリックし、「選択済」リストに移動します。
「次へ」をクリックします。「汎用アプリケーションの作成 - SOA設定の設定」ページが表示されます。
「コンポジット・テンプレート」リストから「BPELを使用するコンポジット」を選択して「終了」をクリックします。
新規アプリケーションおよびSOAプロジェクトが作成されました。
「BPELプロセスの作成」ページが表示されます。
「名前」フィールドにBPELプロセスの名前を入力します。 たとえば、queue2queue
と入力します。
「テンプレート」リストで「インタフェースを後で定義」を選択し、「OK」をクリックします。
BPELプロセスが作成されました。
設計領域に、queue2queue
アプリケーション、queue2queue
プロジェクトおよびSOAコンポジットが表示されます。
次の場所から、Q2Qorders.xsd
ファイルをプロジェクトのXSDフォルダにコピーします。
http://www.oracle.com/technology/sample_code/products/adapters
次の手順を実行し、メッセージをキューにデキューするアダプタ・サービスを作成します。
「サービス・アダプタ」リストから「JMSアダプタ」を「composite.xml」ページの「公開されたサービス」スイムレーンにドラッグ・アンド・ドロップします。
アダプタ構成ウィザードの「ようこそ」ページが表示されます。
「次へ」をクリックします。
「サービス名」ページが表示されます。
「サービス名」フィールドにInbound
と入力して「OK」をクリックします。
「JMSプロバイダ」ページが表示されます。
図8-15に示すように、「Oracle Enterprise Messaging Service (OEMS)」ボックスで「Oracle Weblogic JMS」を選択し、「次へ」をクリックします。「サービス接続」ページが表示されます。
図8-16に示すように、「アプリケーション・サーバー接続の作成」で作成した接続を選択します。
「次へ」をクリックします。「アダプタ・インタフェース」ページが表示されます。
「操作およびスキーマから定義(後で指定)」を選択して「次へ」をクリックします。「操作」ページが表示されます。
図8-17に示すように、「メッセージ消費」を選択して「次へ」をクリックします。
「消費操作のパラメータ」ページが表示されます。
「参照」をクリックし、「接続先」フィールドで「ReceiveQueue」を選択します。
「消費操作のパラメータ」ページが表示されます。
消費操作のパラメータを入力して「次へ」をクリックします。
「メッセージ」ページが表示されます。
注意: アダプタが管理モードで確実に実行されるように、JNDI名で指定した値がOracle JMSアダプタのweblogic-ra.xml ファイルに存在する必要があります。 |
「URL」フィールドの端にある「参照」をクリックします。
「タイプ・チューザ」ダイアログが表示されます。
図8-18に示すように、「プロジェクトのスキーマ・ファイル」、「Q2Qorders.xsd」および「Items」を順番に選択します。
「次へ」をクリックします。 図8-19に示すように、「メッセージ」ページの「URL」にQ2Qorders.xsdスキーマ・ファイルが表示されます。
「次へ」をクリックします。「終了」ページが表示されます。
「終了」をクリックします。 JMSインバウンド・アダプタ・サービスの構成を完了しました。
リクエスト・メッセージをエンキューし、対応するレスポンス・メッセージ(レポート)をキューからデキューするアダプタ・サービスを作成する手順は、次のとおりです。
「コンポーネント・パレット」から、「JMSアダプタ」を「公開されたサービス」スイムレーンにドラッグ・アンド・ドロップします。アダプタ構成ウィザードの「ようこそ」ページが表示されます。
「次へ」をクリックします。「サービス名」ページが表示されます。
「サービス名」フィールドにOutboundと入力して「OK」をクリックします。「JMSプロバイダ」ページが表示されます。
「Oracle Enterprise Messaging Service (OEMS)」ボックスで「Oracle Weblogic JMS」を選択し、「次へ」をクリックします。「サービス接続」ページが表示されます。
「アプリケーション・サーバー接続の作成」で作成した接続を選択し、「次へ」をクリックします。「アダプタ・インタフェース」ページが表示されます。
「操作およびスキーマから定義(後で指定)」を選択して「次へ」をクリックします。「操作」ページが表示されます。
「メッセージ発行」を選択して「次へ」をクリックします。「発行操作のパラメータ」ページが表示されます。
「参照」をクリックし、「接続先」フィールドで「SendQueue」を選択します。「発行操作のパラメータ」ページが表示されます。
「次へ」をクリックします。「メッセージ」ページが表示されます。
「URL」フィールドの端にある「参照」をクリックします。 「タイプ・チューザ」ダイアログが表示されます。
「プロジェクトのスキーマ・ファイル」、「Q2Qorders.xsd」および「Items」を順番に選択します。
「次へ」をクリックします。 「メッセージ」ダイアログの「URL」にQ2Qorders.xsdスキーマ・ファイルが表示されます。
「次へ」をクリックします。「終了」ページが表示されます。
「終了」をクリックします。JMSアダプタ・サービスの構成が完了し、「composite.xml」ページが表示されます。
作成した3つのコンポーネント(インバウンド・アダプタ・サービス、BPELプロセスおよびアウトバウンド・アダプタ参照)を接続する必要があります。コンポーネントを接続する手順は、次のとおりです。
「公開されたサービス」領域にあるインバウンドOracle JMSアダプタ・コンポーネント内の小さい三角形を、「コンポーネント」領域のBPELプロセス内に緑の三角形として表示されるドロップ・ゾーンにドラッグします。
「コンポーネント」領域にあるBPELプロセス内の小さい三角形を、「外部参照」領域のアウトバウンドOracle JMSアダプタ内に緑の三角形として表示されるドロップ・ゾーンにドラッグします。
Oracle JDeveloperのcomposite.xmlが図8-20のように表示されます。
「ファイル」、「すべて保存」を順番にクリックします。
「queue2queue」をダブルクリックします。
「queue2queue.bpel」ページが表示されます。
図8-21に示すように、「コンポーネント・パレット」から、receive、assignおよびinvokeアクティビティを「コンポーネント」領域にこの順序でドラッグ・アンド・ドロップします。
「Receive」をダブルクリックします。
「Receive」ダイアログが表示されます。
「パートナ・リンク」フィールドの端にある「パートナ・リンクの参照」をクリックします。
「パートナ・リンク・チューザ」ダイアログが表示されます。
「Inbound」を選択して「OK」をクリックします。
「パートナ・リンク」フィールドに値Inboundが移入された状態で「Receive」ダイアログが表示されます。
「変数」フィールドの端に表示される「変数の自動作成」アイコンをクリックします。
「変数の作成」ダイアログが表示されます。
デフォルトを受け入れて「OK」をクリックします。
図8-22に示すように、「インスタンスの作成」ボックスを選択して「OK」をクリックします。
invokeアクティビティをダブルクリックします。
「Invoke」ダイアログが表示されます。
「パートナ・リンク」フィールドの端にある「パートナ・リンクの参照」をクリックします。
「パートナ・リンク・チューザ」ダイアログが表示されます。
「Outbound」を選択して「OK」をクリックします。
「パートナ・リンク」フィールドに値Outboundが移入された状態で「Invoke」ダイアログが表示されます。
「入力変数」フィールドの端に表示される「入力変数の自動作成」アイコンをクリックします。
「変数の作成」ダイアログが表示されます。
デフォルトを受け入れて「OK」をクリックします。
図8-23に示すように、「Invoke」ダイアログが表示されます。
「OK」をクリックします。
assignアクティビティをダブルクリックします。
「Assign」ダイアログが表示されます。
「+」アイコンをクリックして「コピー操作」を選択します。 「コピー操作の作成」ダイアログが表示されます。
図8-24に示すように、変数を選択して「OK」をクリックします。
「Assign」ダイアログで「OK」をクリックします。
「ファイル」、「すべて保存」を順番にクリックします。
前述の手順で作成したSOAプロジェクトおよびアプリケーションについて、アプリケーション・プロファイルをデプロイする必要があります。Oracle JDeveloperを使用してアプリケーション・プロファイルをデプロイするには、次の手順に従います。
第2章の「Oracle JCAアダプタ用のアプリケーション・サーバー接続の作成」で説明されている手順を使用して、アプリケーション・サーバー接続を作成します。
「Oracle JDeveloperからのOracle JCAアダプタ・アプリケーションのデプロイ」で説明されている手順を使用して、アプリケーションをデプロイします。
EMコンソールを使用して、デプロイ済のEMコンポジットを監視できます。次の手順を実行します。
http://
servername
:
portnumber
/em
にナビゲートします。
デプロイしたコンポジットがアプリケーション・ナビゲータ・ツリーに表示されます。
「最後の5つのインスタンス」ペインに、新規インスタンスのエントリがあります。 これは、queue2queue.java
を使用してメッセージをエンキューするときにトリガーされたインスタンスです。
インスタンスのいずれかをクリックします。 「フローのトレース」ページが表示されます。
「TextMessage」コンポーネント・インスタンスをクリックします。 「監査」ページが表示されます。
「フロー - デバッグ」タブをクリックしてインスタンスをデバッグします。
Oracle JMSアダプタを使用してリモートWLS JMS宛先にアクセスできます。 リモート宛先は、リモートOracle WebLogic Serverドメインの一部であるWLS JMSサーバー内で定義されているキューまたはトピックを指します。
このようなアクセスを実行するには、リモートWLS JMSサーバーと通信するように構成されたコネクタ・ファクトリを使用する必要があります。 そのためには、次の例に示すように、weblogic-ra.xml内で定義されているコネクタ・ファクトリの<FactoryProperties>プロパティをリモート・サーバー構成に設定します。
<property> <name>FactoryProperties</name> <value>java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url= t3://<HOST>:<PORT>;java.naming.security.principal= <USERNAME>;java.naming.security.credentials=<PASSWORD></value> </property>
Oracle JMSアダプタでリモートWLS JMSサーバーにあるリモート・キューから読み取れるようにするには、次のように構成する必要があります。
両方のサーバーに一意のドメイン名とJMSサーバー名が必要です。
2つのサーバー間でグローバルな信頼を有効化する必要があります。
サーバー間でグローバルな信頼を有効化する方法については、次のリンクを参照してください。
http://edocs.bea.com/wls/docs100/ConsoleHelp/taskhelp/security/EnableGlobalTrustBetweenDomains.html
この構成は、WLS9.2サーバーにあるキューまたはトピックに接続する際にも正常に動作します。
Oracle JMSアダプタでは、同期と非同期のリクエスト-リプライ相互作用パターンの両方がサポートされています。
非同期リクエスト-リプライ・パターン
アダプタ構成ウィザードを使用すると、Oracle JMSアダプタを非同期リクエスト-リプライ相互作用パターンに使用できるプロセスをモデル化できます。
基本的に、このパターンではOracle JMSアダプタはJMS宛先にメッセージを送信できます。 メッセージがリプライ・キューで受信されると、Oracle JMSアダプタはメッセージを正しいコンポジットまたはコンポーネント・インスタンスにルーティングできます。 相関付けはリクエスト・メッセージのJMSメッセージIDに基づいて実行され、このIDはリプライ・メッセージのJMSconversationId
および基礎となるコンポーネントの対話IDとなります。
同期リクエスト-リプライ・パターン
アダプタ構成ウィザードを使用すると、Oracle JMSアダプタを同期リクエスト-リプライ相互作用パターンに使用できるプロセスをモデル化できます。 この場合、Oracle JMSアダプタはリクエスト・キューにリクエストを送信し、リプライ・キューからのレスポンスを待ってから実行を継続します。 下位では、Oracle JMSアダプタにより新規の相互作用パターンJmsRequestReplyInteractionSpec
が使用されます。 仕様では、リクエストとリプライの宛先名の構成が許可されています。 11R1の新機能であるバリエーションでは、リプライ・キューの一部として一時返信先の使用が許可されます。 基本的に、このパターンではOracle JMSアダプタはJMS宛先にメッセージを送信できます。 その後、アダプタはJMSReplyTo
ヘッダーをリプライの宛先に設定します。 この値を使用してサード・パーティ・クライアントからリプライの宛先にメッセージが送信され、その後にメッセージがOracle JMSアダプタによりデキューされます。
Oracle JMSアダプタを同期パターンで使用する場合は、非XAコネクション・ファクトリを使用し、コネクタ・ファクトリのisTransacted
プロパティをtrueに設定してください。WLS JMSとともに使用する場合は、コネクション・ファクトリをweblogic.jms.ConnectionFactory
または他の定義済の非XAコネクション・ファクトリにする必要があります。 また、WLS JMSをアダプタと同じローカルJVMで実行する場合は、コネクタ・ファクトリのisTransacted
プロパティがtrueではなくfalseに設定されていることを確認する必要があります。
この使用例では、Oracle JMSアダプタでAQ JMSキューとの間のエンキューおよびデキューを実行する方法について説明します。
このサンプル(AQQueuetoQueue
)は、次の場所にあります。
http://www.oracle.com/technology/sample_code/products/adapters
この項には、次の項目が含まれます。
この使用例を実行するには、前提条件として次のタスクを実行する必要があります。
Oracle WebLogic Server管理コンソールでAQ JMSを構成するには、次の手順を実行する必要があります。
Oracle WebLogic JMSモジュールの追加
Oracle WebLogic JMSモジュールの追加はオプションです。 AQ JMS外部サーバーを既存のJMSモジュールに作成することもできます。
Oracle WebLogic Server管理コンソールhttp://
servername
:
portnumber
/console
にナビゲートします。
必要な資格証明を使用して、Oracle WebLogic Server管理コンソールのホーム・ページを開きます。
Oracle WebLogic Server管理コンソールのホーム・ページが表示されます。
「ドメイン構造」ペインで、「サービス」、「メッセージング」、「JMSモジュール」の順にナビゲートします。
Oracle WebLogic Server管理コンソールの「JMSモジュール」ページが表示されます。
「新規作成」をクリックして新規のWebLogic JMSモジュールを作成します。
Oracle WebLogic Server管理コンソールの「JMSシステム・モジュールの作成」ページが表示されます。
JMSモジュール名を入力して「次へ」をクリックします。
Oracle WebLogic Server管理コンソールの「JMSシステム・モジュールの作成」ページが表示されます。
SOAコンポーネントが実行中のターゲット・サーバーを選択し、「次へ」をクリックします。
Oracle WebLogic Server管理コンソールの「JMSシステム・モジュールの作成」ページが表示されます。
「終了」をクリックします。
JMSモジュールが作成されました。
JMSモジュールへのAQ JMS外部サーバーの追加
次のステップは、次の手順に従ってJMSモジュールにAQ JMS外部サーバーを追加することです。
作成したJMSモジュールをクリックします。
Oracle WebLogic Server管理コンソールの「AQJMSModuleの設定」ページが表示されます。
「リソースの概要」表で、「新規作成」をクリックして新規のJMSシステム・モジュール・リソースを作成します。
Oracle WebLogic Server管理コンソールの「新しいJMSシステム・モジュール・リソースの作成」ページが表示されます。
「作成するリソースのタイプを選択してください。」で、「外部サーバー」を選択して「次へ」をクリックします。
Oracle WebLogic Server管理コンソールの「新しいJMSシステム・モジュール・リソースの作成」ページが表示されます。
「名前」フィールドに外部サーバー名を入力し、「終了」をクリックします。
Oracle WebLogic Server管理コンソールの「<JMSモジュール名>の設定」ページが表示されます。
AQ JMS外部サーバーの構成
次のステップは、作成したAQ JMS外部サーバーを構成することです。
「リソースの概要」表に表示されるAQ JMS外部サーバーをクリックします。
Oracle WebLogic Server管理コンソールの「TestAQJMS_ForeignServerの設定」ページが表示されます。
次の値を入力します。
JNDI初期コンテキスト・ファクトリ: oracle.jms.AQjmsInitialContextFactory
AQ JMS外部サーバーがWebLogicサーバー側コンポーネントで使用される場合は、次の値を指定して、このAQ JMS外部サーバーを使用してデータソースを構成する必要があります。
「JNDIプロパティ」フィールドにdatasource=<datasource jndi location>と入力します。 プレースホルダをデータソースのJNDIロケーションで置き換えます。
ただし、AQ JMS外部サーバーがWebLogicアプリケーション・クライアントで使用される場合は、作成したAQ JMS外部サーバーを指定してJDBC URLを構成する必要があります。
JNDI接続URL: WebLogicサーバーでJNDIプロバイダへの接続に使用するURLを指定します。
この値は、AQ JMS外部サーバーがWebLogicアプリケーション・クライアントで使用される場合にのみ必須です。
JNDIプロパティ資格証明: JNDIプロバイダ用に設定する必要のある資格証明を指定します。
この値は、AQ JMS外部サーバーがWebLogicアプリケーション・クライアントで使用される場合にのみ必須です。
注意: RACデータベースをアダプタ・エンドポイントとして使用する場合は、前述の手順で説明したJNDIプロパティが指すデータソースでマルチ・データソースを指す必要があります。このようなエンドポイントに使用される個別データソースとマルチ・データソースには、「Oracle JCAアダプタで使用するデータソースの推奨設定」に示す推奨設定を使用する必要があります。 |
AQ JMS外部サーバーへのコネクション・ファクトリの追加
AQJMS外部サーバーにコネクション・ファクトリを追加する手順は、次のとおりです。
「<外部サーバー名>の設定」ページの「接続ファクトリ」タブで、作成したAQJMS外部サーバーをクリックします。
「新規作成」をクリックします。
Oracle WebLogic Server管理コンソールの「新しい外部JMS接続ファクトリの作成」ページが表示されます。
「名前」フィールドに、このコネクション・ファクトリの名前を入力します。 これは、Oracle WebLogic Serverで参照される論理名です。
「ローカルJNDI名」フィールドに、このコネクション・ファクトリを参照するためにアプリケーションで使用するローカルJNDI名を入力します。
注意: サンプルの使用例AQQueuetoQueue で提供されるJNDI名がeis/aqjms/Queueのキューに接続する場合は、ローカルJNDI名にaqjms/XAQueueConnectionFactory を指定してください。
また、JNDI名が |
「リモートJNDI名」フィールドに、要件に応じて次のいずれかの値を入力します。 このコネクション・ファクトリをグローバル変換に使用する場合はXAベースのコネクション・ファクトリを使用し、それ以外の場合は非XAベースのコネクション・ファクトリを使用します。
QueueConnectionFactory
TopicConnectionFactory
ConnectionFactory
XAQueueConnectionFactory
XATopicConnectionFactory
XAConnectionFactory
「OK」をクリックします。
AQ JMS外部サーバーへの宛先の追加
AQJMS外部サーバーに宛先を追加する手順は、次のとおりです。
「<外部サーバー名>の設定」ページの「宛先」タブをクリックします。
「新規作成」をクリックし、この宛先の名前を指定します。 これはOracle WebLogic Serverにより参照される論理名で、この宛先名では何も実行されません。
「ローカルJNDI名」フィールドに、この宛先を参照するためにアプリケーションで使用するローカルJNDI名を入力します。
「リモートJNDI名」フィールドに、宛先がキューの場合はQueues/<queue name>
、宛先がトピックの場合はTopics/<topic name>
と入力します。
「OK」をクリックします。
Oracle WebLogic Server管理コンソールを再起動します。
Oracle WebLogic ServerでAQJMSの構成を完了しました。
キューを作成する手順は、次のとおりです。
setup_user.sql
スクリプトを実行します。
createqueues.sql
スクリプトを実行します。
これらのスクリプトは次の場所にあります。
http://www.oracle.com/technology/sample_code/products/adapters
設計時環境とデプロイ先サーバーの間の接続性を確立する必要があります。 「Oracle JCAアダプタ用のアプリケーション・サーバー接続の作成」で説明した手順に従って、アプリケーション・サーバー接続を作成します。
SOAコンポジットを含んだOracle JDeveloperアプリケーションを作成する必要があります。 次の手順に従って新規アプリケーションとSOAプロジェクトを作成します。
Oracle JDeveloperを開きます。
「アプリケーション・ナビゲータ」で、「新規アプリケーション」をクリックします。 「汎用アプリケーションの作成 - アプリケーションの名前付け」ダイアログが表示されます。
「アプリケーション名」フィールドにアプリケーションの名前を入力します。 たとえば、AQQueue2Queue
と入力します。
「アプリケーション・テンプレート」リストで、「汎用アプリケーション」を選択します。
「次へ」をクリックします。
「プロジェクトの名前付け」ページが表示されます。
「プロジェクト名」フィールドにわかりやすい名前を入力します。 たとえば、AQQueue2Queue
と入力します。
「プロジェクト・テクノロジ」タブの「選択可能」リストで「SOA」をダブルクリックし、「選択済」リストに移動します。
「次へ」をクリックします。「汎用アプリケーションの作成 - SOA設定の設定」ページが表示されます。
「コンポジット・テンプレート」リストから「BPELを使用するコンポジット」を選択して「終了」をクリックします。
新規アプリケーションおよびSOAプロジェクトが作成されました。
「BPELプロセスの作成」ページが表示されます。
「名前」フィールドにBPELプロセスの名前を入力します。
「テンプレート」リストで「インタフェースを後で定義」を選択し、「OK」をクリックします。
BPELプロセスが作成されました。
AQQueue2Queue
アプリケーション、AQQueue2Queue
プロジェクトおよびSOAコンポジットが設計領域に表示されます。
次の場所から、expense.xsd
ファイルをプロジェクトのXSDフォルダにコピーします。
http://www.oracle.com/technology/sample_code/products/adapters
次の手順を実行し、メッセージをキューにデキューするアダプタ・サービスを作成します。
「サービス・アダプタ」リストから「JMSアダプタ」を「composite.xml」ページの「公開されたサービス」スイムレーンにドラッグ・アンド・ドロップします。アダプタ構成ウィザードの「ようこそ」ページが表示されます。
「次へ」をクリックします。「サービス名」ページが表示されます。
「サービス名」フィールドにInboundと入力して「OK」をクリックします。「JMSプロバイダ」ページが表示されます。
「Oracle Enterprise Messaging Service (OEMS)」ボックスで「Oracle Advanced Queueing」を選択し、「次へ」をクリックします。「サービス接続」ページが表示されます。
「アプリケーション・サーバー接続の作成」で作成した接続を選択します。
「次へ」をクリックします。「アダプタ・インタフェース」ページが表示されます。
「操作およびスキーマから定義(後で指定)」を選択して「次へ」をクリックします。「操作」ページが表示されます。
「メッセージ消費」を選択して「次へ」をクリックします。「消費操作のパラメータ」ページが表示されます。
「参照」をクリックし、「接続先」フィールドで「testInQueue」を選択します。
「次へ」をクリックします。「メッセージ」ページが表示されます。
「URL」フィールドの端にある「参照」をクリックします。 「タイプ・チューザ」ダイアログが表示されます。
「プロジェクトのスキーマ・ファイル」と「expense.xsd」を順番に選択します。
「次へ」をクリックします。 「メッセージ」ページの「URL」フィールドにexpenses.xsdスキーマ・ファイルが表示されます。
「次へ」をクリックします。「終了」ページが表示されます。
「終了」をクリックします。 JMSインバウンド・アダプタ・サービスの構成を完了しました。
リクエスト・メッセージをエンキューし、対応するレスポンス・メッセージ(レポート)をキューからデキューするアダプタ・サービスを作成する手順は、次のとおりです。
「コンポーネント・パレット」から、「JMSアダプタ」を「公開されたサービス」スイムレーンにドラッグ・アンド・ドロップします。アダプタ構成ウィザードの「ようこそ」ページが表示されます。
「次へ」をクリックします。「サービス名」ページが表示されます。
「サービス名」フィールドにOutboundと入力して「OK」をクリックします。「JMSプロバイダ」ページが表示されます。
「Oracle Enterprise Messaging Service (OEMS)」ボックスで「Oracle Advanced Queueing」を選択し、「次へ」をクリックします。「サービス接続」ページが表示されます。
「アプリケーション・サーバー接続の作成」で作成した接続を選択し、「次へ」をクリックします。「アダプタ・インタフェース」ページが表示されます。
「操作およびスキーマから定義(後で指定)」を選択して「次へ」をクリックします。「操作」ページが表示されます。
「メッセージ発行」を選択して「次へ」をクリックします。「発行操作のパラメータ」ページが表示されます。
「参照」をクリックし、「接続先」フィールドで「testOutQueue」を選択します。「発行操作のパラメータ」ページが表示されます。
「次へ」をクリックします。「メッセージ」ページが表示されます。
「URL」フィールドの端にある「参照」をクリックします。 「タイプ・チューザ」ダイアログが表示されます。
「プロジェクトのスキーマ・ファイル」と「expense.xsd」を順番に選択します。
「次へ」をクリックします。 「メッセージ」ダイアログの「URL」フィールドにexpense.xsdスキーマ・ファイルが表示されます。
「次へ」をクリックします。「終了」ページが表示されます。
「終了」をクリックします。JMSアダプタ・サービスの構成が完了し、「composite.xml」ページが表示されます。
作成した3つのコンポーネント(インバウンド・アダプタ・サービス、BPELプロセスおよびアウトバウンド・アダプタ参照)を接続する必要があります。 コンポーネントをまとめて接続する手順は、次のとおりです。
「公開されたサービス」領域にあるインバウンドOracle JMSアダプタ・コンポーネント内の小さい三角形を、「コンポーネント」領域のBPELプロセス内に緑の三角形として表示されるドロップ・ゾーンにドラッグします。
「コンポーネント」領域にあるBPELプロセス内の小さい三角形を、「外部参照」領域のアウトバウンドOracle JMSアダプタ内に緑の三角形として表示されるドロップ・ゾーンにドラッグします。
Oracle JDeveloperのcomposite.xmlが図8-25のように表示されます。
「ファイル」、「すべて保存」を順番にクリックします。
BPELプロセスをダブルクリックします。 「BPELProcess1.bpel」ページが表示されます。
「コンポーネント・パレット」から、receive、assignおよびinvokeアクティビティを「コンポーネント」領域にこの順序でドラッグ・アンド・ドロップします。
receiveアクティビティをダブルクリックします。
「Receive」ダイアログが表示されます。
「パートナ・リンク」フィールドの端にある「パートナ・リンクの参照」をクリックします。
「パートナ・リンク・チューザ」ダイアログが表示されます。
「Inbound」を選択して「OK」をクリックします。
「パートナ・リンク」フィールドに値Outboundが移入された状態で「Receive」ダイアログが表示されます。
「変数」フィールドの端に表示される「変数の自動作成」アイコンをクリックします。 「変数の作成」ダイアログが表示されます。
デフォルトを受け入れて「OK」をクリックします。
「インスタンスの作成」ボックスを選択します。
Outboundのためのinvokeアクティビティをダブルクリックします。
「Invoke」ダイアログが表示されます。
「入力変数」フィールドの端に表示される「入力変数の自動作成」アイコンをクリックします。
「パートナ・リンク」フィールドの端にある「パートナ・リンクの参照」をクリックします。
「パートナ・リンク・チューザ」ダイアログが表示されます。
「Outbound」を選択して「OK」をクリックします。
「パートナ・リンク」フィールドに値Outboundが移入された状態で「Invoke」ダイアログが表示されます。
デフォルトを受け入れて「OK」をクリックします。
「OK」をクリックします。
assignアクティビティをダブルクリックします。
「Assign」ダイアログが表示されます。
「+」アイコンをクリックして「コピー操作」を選択します。
「コピー操作の作成」ダイアログが表示されます。
変数を選択して「OK」をクリックします。
「Assign」ダイアログで「OK」をクリックします。
「ファイル」、「すべて保存」を順番にクリックします。
注意: Oracle JMSアダプタを使用して永続サブスクリプションを使用するAQ JMSトピックからデキューする際に、デキュー操作が低パフォーマンスであることに気づいた場合は、アダプタ・サービスごとに複数のインバウンド・スレッドを使用することでパフォーマンス全体を高速化できます。Oracle JMSアダプタでは、エンドポイント・プロパティ ただし、非永続サブスクリプションを使用する場合、メッセージが重複するため、この解決策は機能しないことに注意してください。 |
前述の手順で作成したSOAプロジェクトおよびアプリケーションについて、アプリケーション・プロファイルをデプロイする必要があります。 Oracle JDeveloperを使用してアプリケーション・プロファイルをデプロイするには、次の手順に従います。
第2章の「Oracle JCAアダプタ用のアプリケーション・サーバー接続の作成」で説明されている手順を使用して、アプリケーション・サーバー接続を作成します。
「Oracle JDeveloperからのOracle JCAアダプタ・アプリケーションのデプロイ」で説明されている手順を使用して、アプリケーションをデプロイします。
EMコンソールを使用して、デプロイ済のEMコンポジットを監視できます。次の手順を実行します。
http://
servername
:portnumber
/em
にナビゲートします。 デプロイしたコンポジットがアプリケーション・ナビゲータ・ツリーに表示されます。
「最後の5つのインスタンス」ペインに、新規インスタンスのエントリがあります。 これは、AQQueue2Queue.java
を使用してメッセージをエンキューするときにトリガーされたインスタンスです。
インスタンスのいずれかをクリックします。 「フローのトレース」ページが表示されます。
「TextMessage」コンポーネント・インスタンスをクリックします。 「監査」ページが表示されます。
「フロー - デバッグ」タブをクリックしてインスタンスをデバッグします。
この項では、Oracle Application Server 11gで作成されたキューとトピックにOC4J 10.1.3.4からアクセスする手順について説明します。 そのためには、Oracle WebLogic Serverを使用してOracle BPEL Process Manager JMSアダプタを構成する必要があります。
Oracle WebLogic Serverを使用してOracle BPEL Process Manager JMSアダプタを構成する手順は、次のとおりです。
次の手順に従ってwlfullclient.jar
ファイルを作成します。
次の例に示すようにserver/lib
ディレクトリに移動します。
cd WL_HOME
/server/lib
次のコマンドを使用して、server/lib
ディレクトリにwlfullclient.jar
ファイルを作成します。
java -jar ../../../modules/com.bea.core.jarbuilder_X.X.X.X.jar
X.X.X.X
は、WL_HOME
/server/lib
ディレクトリにあるjarbuilderモジュールのバージョン番号です。次に例を示します。
java -jar ../../../modules/com.bea.core.jarbuilder_1.0.1.0.jar
wlfullclient.jar
ファイルを、次の場所にある10.1.3.4サーバーにコピーします。
<ORACLEAS_HOME>/j2ee/<OC4J_INSTANCE>/connectors/JmsAdapter/JmsAdapter
次の例に示すように、oc4j-ra.xml
ファイル内のコネクタ・ファクトリ設定を構成します。
<connector-factory location="eis/wlsjms/Queue" connector-name="Jms Adapter"> <config-property name="connectionFactoryLocation" value="weblogic.jms.ConnectionFactory"/> <config-property name="factoryProperties" value="java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://w3.us.oracle.com:7001;java.naming.security.principal=weblogic;java.naming.security.credentials=weblogic"/> <config-property name="acknowledgeMode" value="AUTO_ACKNOWLEDGE"/> <config-property name="isTopic" value="false"/> <config-property name="isTransacted" value="false"/> <config-property name="username" value=""/> <config-property name="password" value=""/> <connection-pooling use="none"> </connection-pooling> <security-config use="none"> </security-config> </connector-factory>
注意: isTransacted 構成プロパティの値は、通常はFALSE に設定する必要があります。 現在、XAとWebLogic JMSの統合は、アダプタがOracle WebLogic Serverにデプロイされていないかぎりサポートされていません。 |
次の例に示すように、10.1.3.4サーバーのserver.xml
ファイルを変更し、environment-naming-url-factory-enabled="true"
プロパティを追加します。
<application-server ... ... environment-naming-url-factory-enabled="true" ... >
10.1.3.4サーバーを再起動して変更内容を有効にします。