この章では、JCAトランスポートの概要と、サービスでの使用および構成方法について説明します。また、Oracle JCAアダプタ・フレームワークについても説明し、Oracle Service Bus (OSB)での特定のアダプタの使用方法に関するガイダンスを提供します。
OSBは、エンタープライズ・リソース・プランニング(ERP)システムなどのエンタープライズ情報システム(EIS)と相互作用するJ2EEコネクタ・アーキテクチャ(JCA)トランスポートを提供しており、これにより、EISアプリケーションおよびサービスがサービス・バス環境に参加することが可能になります。JCAトランスポートが動作するアダプタのリストについては、25.2.1項「アダプタ・サポート」を参照してください。
この章の内容は以下のとおりです。
JCAトランスポートでは、Oracle Service BusとEISシステムの間のネイティブ接続が提供されており、これによってサービス・バス・レイヤーでのシステム間の対話が可能になり、OSBの機能および性能を利用できます。
JCAプロキシまたはビジネス・サービスで、図25-1に示すように、EISシステムと対話するよう、JCAトランスポートが組込みJCAアダプタ・フレームワークおよびJCA準拠のアダプタと連携して動作します。実線の矢印はリクエストを示し、点線の矢印はレスポンスを示します。
JCAプロキシ・サービスは、サポートされるアダプタを介したEISエンドポイントを呼び出すサポート対象のJCAアダプタおよびJCAビジネス・サービスからのインバウンド・リクエストをリスニングします。
この項では、JCAトランスポートの機能と特性について説明します。
Oracle JCAアダプタは、正規化メッセージ・プロパティを介してヘッダー情報を送信します(AQ用Oracle JCAアダプタのペイロード・ヘッダーを除きます)。
OSBでは、JCAアダプタの正規化メッセージ・プロパティがサポートされます。Oracle JCAアダプタからのインバウンド・メッセージについては、Oracle Service Bus JCAトランスポートによって、正規化メッセージ・プロパティがキー値のペアとしてトランスポート・ヘッダーに自動的にマップされます。JCAアダプタへのアウトバウンド・メッセージについては、JCAトランスポートによって、トランスポート・ヘッダーが正規化メッセージ・プロパティに自動的に変換されます。
次に、正規化メッセージ・プロパティをサポートする、Oracle Service Busでの事前定義済のトランスポート・ヘッダーのリストを示します。OSBでは、この他のすべての正規化メッセージ・プロパティはユーザー定義のトランスポート・ヘッダーにマップされます。
注意: Oracle Service Busで正規化メッセージ・プロパティをSOAPメッセージ・ヘッダーにマップすることはできません。 |
JCAアダプタでの正規化メッセージ・プロパティの詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
次に示すのは、$inboundおよび$outboundリクエスト変数の事前定義済Oracle Service Busトランスポート・ヘッダーです。
jca.aq.Priority(int)
jca.aq.Correlation(string)
jca.aq.HeaderDocument(string)
jca.apps.HeaderDocument(string)
jca.file.FileName
jca.file.Directory
jca.file.Size
jca.file.Batch
jca.file.BatchIndex
jca.file.LastModifiedTime
jca.ftp.FileName
jca.ftp.Directory
jca.ftp.Size
jca.ftp.Batch
jca.ftp.BatchIndex
jca.ftp.CreationTime (SFTPのみでサポート)
jca.ftp.LastModifiedTime
次に示すのは、$inboundリクエスト変数の事前定義済Oracle Service Busトランスポート・ヘッダーです。
jca.aq.MessageId(string)
jca.aq.Attempts(int)
jca.aq.EnqueueTime(string)
jca.aq.OrigMessageId(string)
次に示すのは、$outboundリクエスト変数の事前定義済Oracle Service Busトランスポート・ヘッダーです。
jca.aq.Delay(int)
jca.aq.Expiration(int)
jca.aq.RecipientList(string)
jca.aq.ExceptionQueue(string)
jca.db.ProxyUserName(string)
jca.db.ProxyPassword(string)
jca.db.ProxyRoles(string)
jca.db.ProxyCertificate(string)
jca.db.ProxyDistinguishedName(string)
jca.db.ProxyIsThickDriver(boolean)
jca.db.XADataSourceName(string)
jca.db.DataSourceName(string)
jca.apps.Username(string)
jca.apps.Responsibility(string)
jca.apps.RespApplication(string)
jca.apps.SecurityGroup(string)
jca.apps.NLSLanguage(string)
jca.apps.ORG_ID(integer)
jca.apps.ecx.TransactionType(string)
jca.apps.ecx.TransactionSubtype(string)
jca.apps.ecx.PartySiteId(string)
jca.apps.ecx.MessageType(string)
jca.apps.ecx.MessageStandard(string)
jca.apps.ecx.DocumentNumber(integer)
jca.apps.ecx.ProtocolType(string)
jca.apps.ecx.ProtocolAddress(string)
jca.apps.ecx.Username(string)
jca.apps.ecx.Password(string)
jca.apps.ecx.Attribute1(string)
jca.apps.ecx.Attribute2(string)
jca.apps.ecx.Attribute3(string)
jca.apps.ecx.Attribute4(string)
jca.apps.ecx.Attribute5(string)
jca.apps.ecx.Payload(string)
JCAトランスポートでは、25.5.2項「プロキシ・サービスとビジネス・サービスのためのJCAトランスポートの構成」で説明するように、JCAプロキシ・サービスまたはビジネス・サービスの構成で設定できる複数のサービス・エンドポイント・プロパティがサポートされます。サポートされるエンドポイント・プロパティを次に示します。
詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のOracle JCAアダプタのエンドポイント・プロパティに関する項、および『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』のOracle JCAアダプタのプロパティに関する項を参照してください。
JCAプロキシ・サービスでサポートされるエンドポイント・プロパティは次のとおりです。
jca.retry.count
jca.retry.interval
jca.retry.backoff
jca.retry.maxInterval
AQ用のOracle JCAアダプタ
DequeueTimeOut
ConnectionRetryDelay
adapter.aq.dequeue.threads
データベースおよびOracle Applications用のOracle JCAアダプタ
activationInstances
ファイル用のOracle JCAアダプタ
ignoreListingErrors
IgnoreZeroByteFile
jca.message.encoding
notifyEachBatchFailure
oracle.tip.adapter.file.debatching.rejection.quantum
oracle.tip.adapter.file.highavailability.maxRetry
oracle.tip.adapter.file.highavailability.maxRetryInterval
oracle.tip.adapter.file.rejectOriginalContent
oracle.tip.adapter.file.timeout.recoverpicked.minutes
oracle.tip.adapter.file.timeout.recoverunpicked.minutes
payloadThreshold
recoveryInterval
serializeTranslation
useFileSystem
FTP用のOracle JCAアダプタ
IgnoreZeroByteFile
oracle.tip.adapter.file.rejectOriginalContent
serializeTranslation
timestampOffset
ignoreListingErrors
jca.message.encoding
notifyEachBatchFailure
oracle.tip.adapter.file.debatching.rejection.quantum
oracle.tip.adapter.file.highavailability.maxRetry
oracle.tip.adapter.file.highavailability.maxRetryInterval
oracle.tip.adapter.file.timeout.recoverpicked.minutes
oracle.tip.adapter.file.timeout.recoverunpicked.minutes
payloadSizeThreshold
recoveryInterval
useFileSystem
JCAビジネス・サービスでサポートされるエンドポイント・プロパティは次のとおりです。
jca.retry.count
jca.retry.interval
jca.retry.backoff
jca.retry.maxInterval
jca.retry.maxPeriod
Oracle Applications用のOracleアダプタ
ユーザー名
職責
ファイル用のOracle JCAアダプタ
inMemoryTranslation
IgnoreZeroByteFile
oracle.tip.adapter.file.mutex
oracle.tip.adapter.file.rejectOriginalContent
serializeTranslation
FTP用のOracle JCAアダプタ
IgnoreZeroByteFile
oracle.tip.adapter.file.rejectOriginalContent
serializeTranslation
timestampOffset
inMemoryTranslation
oracle.tip.adapter.file.mutex
データベース用のOracle JCAアダプタ
cacheConnections - Oracle Service Busは暗黙的にこのプロパティの値をtrueに設定します。このプロパティの値がtrueに設定されていると、データベース・アダプタに対するアウトバウンド接続がキャッシュされます。デフォルトを変更してこのプロパティをfalseに設定すると、アウトバウンドを呼び出すたびに接続のオープンとクローズが発生します。
ここでは、JCAトランスポートおよびJCAアダプタ・フレームワークがどのようにセキュリティを処理するかを説明します。
JNDIサービス・アカウントは、エンドポイント検証時と実行時の両方で使用されます。
エンドポイント検証の際、静的サービス・アカウントにエンドポイントが関連付けられている場合、アダプタの接続ファクトリに対するJNDIルックアップが静的サービス・アカウントのサブジェクトを使用して実行されます。サービスがサービス・アカウントを使用しない場合は、匿名サブジェクトが使用されます。
実行時には、JCAプロキシ・サービス・アカウントでは静的サービス・アカウントしかサポートされません。静的サービス・アカウントがサービスで構成されている場合、アダプタの接続ファクトリに対するJNDIルックアップを実行するためにサービス・アカウントのサブジェクトが使用されます。そうでない場合は、匿名サブジェクトが使用されます。
実行時のJCAビジネス・サービスでは、静的サービス・アカウント、パス・スルー・サービス・アカウントおよびマッピング・サービス・アカウントがサポートされます。サービス・アカウントがJCAビジネス・サービスで構成されている場合、アダプタ接続ファクトリおよび後続のアウトバウンド呼出しに対するJNDIルックアップは、そのサービス・アカウントのサブジェクトを使用して実行されます。サービスがサービス・アカウントを使用しない場合は、匿名サブジェクトが使用されます。
EISデータベースに接続するOracleアダプタ(データベース、AQおよびOracle Applications用のOracleアダプタ)は、アダプタで管理される接続ファクトリに関連するJDBCデータソースを使用して接続します。他のOracleアダプタ(ファイル用のOracle JCAアダプタなど)は、アウトバウンド接続で、Oracle WebLogic Serverによるコンテナ管理およびアプリケーション管理のサインオンをサポートします。詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』のエンタープライズ情報システムの資格証明の保護に関する項を参照してください。
JCAビジネス・サービスで使用するJNDIサービス・アカウントのタイプによって、サブジェクト付きのアウトバウンド・サービス・エンドポイントが以下の方法で呼び出されます。
サービス・アカウントを使用しない-匿名サブジェクトはアウトバウンドJCAエンドポイントを呼び出すために使用します。
パススルー・サービス・アカウントを使用する-インバウンド・リクエストに関連するサブジェクトはアウトバウンドJCAエンドポイントを呼び出すために使用します。
静的なサービス・アカウントを使用する-サービス・アカウントの静的ユーザー名/パスワードに関連するサブジェクトはアウトバウンドJCAエンドポイントを呼び出すために使用します。
マッピング・サービス・アカウントを使用する-サービス・アカウントのマップされたユーザー名/パスワードに関連するサブジェクトはアウトバウンドJCAエンドポイントを呼び出すために使用します。
JCAトランスポートは、Oracle WebLogic Server NonCatalogログ機能を使用してメッセージをロギングします。JCAアダプタ・フレームワークのログは、Oracle WebLogic Serverのログにリダイレクトされます。
Oracle Service Busトランスポートのデバッグ・ロギングが有効の場合のみ、JCAトランスポート、JCAアダプタ・フレームワーク、およびJCAアダプタ(Oracle BAMアダプタを除く)によって生成されるデバッグ・ログ・レコードがWebLogic Serverのログにリダイレクトされます。デバッグ・モードを有効にするには、サーバーを起動する前に、ドメイン・ディレクトリのalsbdebug.xml
ファイルを編集し、カテゴリのalsb-jca-framework-adapter-debugフラグをtrue
に設定する必要があります。JCAフレームワークおよびアダプタのメッセージのログにはタグJCA_FRAMEWORK_AND_ADAPTERが付けられます。
注意: alsb-transports-debugフラグは、他のすべてのトランスポートで使用されます。JCAトランスポート、フレームワークおよびアダプタには影響しません。 |
詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Busのデバッグに関する項を参照してください。
RMIベースおよびSOAPベースの接続プールを使用してOracle BAM Adapterバッチ処理のデバッグレベル・ロギングを有効にするには、次のロガー・エントリをdomain_home/config/fmwconfig/servers/server_name/logging.xmlに追加します。
RMI/EJBの場合 - <logger name="oracle.bam.adc.api.batching.BatchProcessor" level="FINER"/>
SOAPの場合 - <logger name="oracle.bam.adapter.adc.soap.SOAPBatchProcessor" level="FINER"/>
ここでは、JCAトランスポートのエラー処理情報について説明します。
JCAフレームワークおよびアダプタがEISからの例外をスローすると、JCAビジネス・サービスがその例外をjca-runtime-fault-detail
要素内のSOAPフォルトに伝播します。
次の1つ以上のサブ要素でEISフォルトの詳細にアクセスできます。
eis-error-code
(string) - JCAフレームワークおよびアダプタによって伝播されたEISエラー・コードをキャプチャします(可能な場合)。
eis-error-message
(string) - JCAフレームワークおよびアダプタによって伝播されたEISエラー・メッセージをキャプチャします(可能な場合)。
exception
(string) - JCAフレームワークおよびアダプタのスタック・トレースをキャプチャします。
このフォルト構造はJCAトランスポート・スキーマで定義されます。
注意: JCAトランスポートによるEISフォルトの処理方法は、今後のリリースで変わる可能性があります。 |
JCAトランスポートでは次の環境変数値を宣言します。これらは、異なるデプロイメント環境間でOracle Service Bus構成を移動する場合も保持できます。
これらの値の説明は、25.5.2項「プロキシ・サービスおよびビジネス・サービスのためのJCAトランスポートの構成」を参照してください。
JCA JNDIサービス・アカウント(JCA_ENV_JNDI_SERVICE_ACCOUNT)
ワーク・マネージャ
JCAは常にWSDLフラグを使用(JCA_ENV_ALWAYS_USE_WSDL)
JCA接続モード(JCA_ENV_CONNECTION_MODE)
JCA上書き接続認証フラグ(JCA_ENV_OVERWRITE_CONNECTION_FACTORY_AUTHENTICATION_PROPERTIES)
JCA認証上書きサービス・アカウント(JCA_ENV_CONNECTION_AUTHENTICATION_OVERWRITE_SERVICE_ACCOUNT)
JCAトランスポートは様々なEISアダプタと互換性があります。この項では、Oracle Service BusとJCAトランスポートにサポートされるアダプタの使用方法について説明します。
Oracle Service BusでJCAプロキシ・サービスまたはビジネス・サービスを作成するには、WSDLが必要となります。サポートされるアダプタと対話するプロキシ・サービスまたはビジネス・サービスのために、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のリソースの命名制限に関する項に従って、EISシステム環境にJCAファイルとWSDLを生成する必要があります。JCAファイルとWSDLを生成した後に、それらをOracle Service Bus構成にインポートし、JCAファイルを使用してJCAサービスを作成します。
たとえば、Oracle JCAアダプタと対話するサービスを作成するとき、JCAファイルとWSDLをOracle JDeveloperで生成し、それらのファイルをOracle Service Bus IDEにインポートし、JCAファイルに基づいてJCAサービスを作成および構成します。詳細は、2.2.2項「アウトバウンドJCAファイルからJCAビジネス・サービスを生成する」および2.3.2項「インバウンドJCAファイルからJCAプロキシ・サービスを生成する」を参照してください。
JCAサービスの生成のためにJCAファイルとWSDLファイルをOracle Service Bus管理コンソールにインポートすることもできます。Oracle Service Bus管理コンソールのオンライン・ヘルプを参照してください。
この項には次のトピックが含まれます:
Oracle Service Bus JCAトランスポートでは、以下のJCA準拠のアダプタと対話できます。
カスタムJCAアダプタ - 25.2.8項「カスタムJCAアダプタの使用」を参照
Oracle Applications用のOracleアダプタ
AQ用のOracle JCAアダプタ
データベース用のOracle JCAアダプタ
ファイル/FTP用のOracle JCAアダプタ
ソケット用のOracle JCAアダプタ
Oracle BAM Adapter (Business Activity Monitoring)
PeopleSoft (Oracle Application Adapters 10g)
SAP R/3(Oracle Application Adapters 10g)
Siebel (Oracle Application Adapters 10g)
J.D. Edwards (Oracle Application Adapters 10g)
Oracleアダプタの詳細は、次のガイドを参照してください。
『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』
『Oracle Fusion Middleware Oracle Business Activity Monitoringユーザーズ・ガイド』
Oracle Application Adapters 10gドキュメント(http://download.oracle.com/docs/cd/E13199_01/oracleappsadapter/docs1031/
)
JCAトランスポートはOracle Service Bus JCAアダプタ・フレームワークを使用して、外部EISサービスに接続を提供するJCA準拠のアダプタと対話します。JCAアダプタ・フレームワークは、これらのアダプタと対話する複雑さを除去してくれるため、ユーザーはOracle Service Busのプロキシおよびビジネス・サービス開発に集中できます。
インバウンド対話では、JCAプロキシ・サービスは関連するJCAアダプタ・エンドポイントにリスナーを登録します。JCAプロキシにメッセージを送信したEISシステムにイベントが発生すると、JCAアダプタ・フレームワークによりリクエストのみのパターンまたはリクエスト/レスポンスのパターンのプロキシ・サービスが呼び出されます。
アウトバウンド対話で、クライアントがOracle Service Busを介してEISサービスを呼び出すと、JCAビジネス・サービスによりJCAアダプタ・フレームワークを介してJCAアダプタ・エンドポイントが呼び出されます。
JCAアダプタ・フレームワークの構成は不要です。Oracle Service BusでJCAプロキシ・サービスおよびビジネス・サービスを作成し、必要に応じてアダプタをデプロイすると、JCAアダプタ・フレームワークはデプロイされ、自動的に機能します。
Oracle JCAアダプタ(AQ、データベースおよびOracle Applications用のOracle JCAアダプタなど)はOracle Service Busドメインに自動的にデプロイされます。(サポートされている他のサードパーティ・リソース・アダプタは、Oracle WebLogic Serverコンソールで手動でインストールし、デプロイする必要があります。)
Oracle WebLogic Serverで各アダプタのデータ・ソースを作成し、各アダプタを構成します。すでにデプロイ済のOracleアダプタ(AppsAdapter、AqAdapter、DbAdapterなど)を構成するには、次の一般的な手順を実行します。
データ・ソースを作成します。Oracle WebLogic Serverコンソールで、EISデータベースに接続するためのデータ・ソースを作成して構成します。
デプロイされたリソース・アダプタを構成します。Oracle WebLogic Serverコンソールで、作成したデータ・ソースを使用するようにアダプタの構成を変更します。
「デプロイメント」→アダプタ→「構成」→「アウトバウンド接続プール」を選択します。
新しいデータ・ソースに基づく新しい接続プール・ファクトリを作成します。処理中に、接続プール・ファクトリPlan.xmlファイルの場所を指定します。このファイルは接続ファクトリの構成設定を永続化します。
接続プール・ファクトリを作成したら、名前をクリックしてプロパティを変更します。このためには、XADataSourceName(XAデータ・ソース用)またはdatasourceName(非XAデータ・ソース用)の「プロパティ」フィールドをクリックし、作成したデータ・ソースの名前を入力し、[Enter]を押します。
注意: データ・ソースの名前を入力してから、カーソルが入力フィールドにあるときに[Enter]を押す必要があります。こうしないと、接続プール・ファクトリのプロパティが保存されません。 |
チェンジ・センターの変更をアクティブ化します。
アダプタ固有の構成情報については、以下の項を参照してください。
デフォルトでは、データベースをポーリングするOracleアダプタは1スレッドを使用してデータベースをポーリングします(アクティブ化指定のNumberOfThreads=1プロパティ)。設計に基づき、アダプタはこのスレッドを解放しないため、サーバー・ログにスタック・スレッド・スタック・トレースが表示されます。NumberOfThreadsを2以上に設定すると、それらすべてのスレッドにスタック・トレースが表示されます。スタック・スレッド・スタック・トレースは無視できます。
アダプタに関するスタック・スレッド・スタック・トレースの表示を防ぐには、次の設定を含むようにワーク・マネージャを構成します。
<ignore-stuck-threads>true</ignore-stuck-threads>
JCAプロキシ・サービスで、作成したワーク・マネージャをトランスポートのディスパッチ・ポリシーが使用するように構成します。
ワーク・マネージャの詳細は、次の説明を参照してください。
『Oracle Fusion Middleware Oracle WebLogic Serverサーバー環境の構成』のワーク・マネージャを使用したスケジューリング済作業の最適化に関する説明
『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Busでのワーク・マネージャの使用に関する項
Oracle Service BusとOracleデータベース・アダプタの構成における重要な点を次に示します。構成手順の詳細は、OSBでのJCA DBアダプタに関するチュートリアル(http://www.oracle.com/technetwork/middleware/service-bus/learnmore/index.html
)を参照してください。
データ・ソース: データベース用のOracle JCAアダプタのデータ・ソースについては、次のオプションを設定します。
オプション | 設定 |
---|---|
初期容量 |
0 |
予約時の接続のテスト |
選択 |
テスト頻度 |
5 |
テスト対象の表名 |
SQL SELECT 1 FROM DUAL |
アイドル・プール接続を信頼する秒数 |
0 |
接続作成の再試行間隔(秒) |
10 |
注意: 特定のOracleデータベース表をポーリングするプロキシ・サービスは1つのみです。 |
AQ用のOracle JCAアダプタのデータ・ソースでは、「予約時に接続をテスト」オプションを選択します。
この項では、Oracle Service BusでカスタムJCAアダプタを登録および使用する方法について説明します。OSBにカスタム・アダプタを登録すると、他のJCAアダプタと同様に、そのカスタム・アダプタをJCAトランスポートと組み合せて使用できます。
OSBでカスタムJCAアダプタを登録および使用するには、次の手順を実行します。
カスタムJCAアダプタを作成します。『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』のカスタム・アダプタの作成に関する項を参照してください。
OSB_ORACLE_HOME/config/adapter/OSBSupportedAdapters.xmlで、サポートされるアダプタ・タイプのリストにカスタム・アダプタを追加します。カスタム・アダプタ・タイプの名前は、JCAファイルの<adapter-config>要素のadapter属性値から取得します。
たとえば、アダプタのJCAファイルが次のようであるとします。
<adapter-config name="custom-adapter-endpoint" adapter="My Adapter"
wsdlLocation="custom-adapter-endpoint.wsdl"
xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
. . .
</adapter-config>
OSBSupportedAdapters.xmlのエントリは次のようになります。
<jca:adapter-type>MY_ADAPTER</jca:adapter-type>
大文字への変換とスペースのアンダースコア文字への置換に注意してください。
カスタム・アダプタのJCAリソースをOSBにインポートし、プロキシ・サービスまたはビジネス・サービスの構成時にOSBのJCAトランスポートを使用してカスタム・アダプタを使用します。
JCAトランスポート構成ページの「動的エンドポイント・プロパティ」セクションで、カスタム・エンドポイント・プロパティを追加および構成します(オプション)。
JCAトランスポートでは、カスタム・アダプタの正規化メッセージ・プロパティもサポートされます。25.1.2項「トランスポート・ヘッダーおよび正規化メッセージ・プロパティ」を参照してください。
注意: TopLink XMLマッピング・ファイルやXSLTファイルなどの依存関係リソースを含むサポート対象の一部のOracle SOA Suiteアダプタとは異なり、OSBでは、カスタム・アダプタでの依存関係リソースの使用がサポートされません。 |
JCAアダプタ・フレームワークにより、拒否されたメッセージ(データ・エラーのメッセージ)がアダプタごとに/domain/jca/.../rejectedMessagesディレクトリに自動的にログされます。
この項では、Oracle Service Busを介したEISサービスを呼び出す方法について説明します。
JCAトランスポートは、リクエストおよび同期リクエスト/レスポンスのメッセージ・パターンをサポートします。ここでは、図25-2に示すように、同期リクエスト/レスポンスのパターンについて説明します。
図25-2 クライアントによるOracle Service Busを介したEISサービスの呼出し
クライアントからEISサービスを呼び出すために、以下のガイドラインを使用してください。
特定のアダプタに関する構成の問題は、25.2項「アダプタの操作」を参照してください。
Oracle Service Busで、呼び出すEISサービスを表すビジネス・サービスを作成します。
アウトバウンドJCAビジネス・サービスをOracle Service Busで作成します。詳細は、2.2.2項「アウトバウンドJCAファイルからJCAビジネス・サービスを生成する」を参照してください。
その他のビジネス・サービス構成の詳細は、2.2項「ビジネス・サービスの操作」を参照してください。
ビジネス・サービスを呼び出すOracle Service Busでのプロキシ・サービスを作成します。
25.1.1項「メッセージ」で説明されているように、プロキシ・メッセージ・フローでは、JCAトランスポートのサポートされるメッセージ・フォーマットでメッセージを送信するために必要なトランスフォーメーションを実行します。
クライアントから目的のペイロードのプロキシ・サービスを呼び出します。
その他のプロキシ・サービス構成の詳細は、2.3項「プロキシ・サービスの操作」を参照してください。
この項では、Oracle Service Busを介してEISから外部サービスを呼び出す方法について説明します。
JCAトランスポートは、リクエストおよび同期リクエスト/レスポンスのメッセージ・パターンをサポートします。ここでは、図25-3に示すように、同期リクエスト/レスポンスのパターンについて説明します。
以下のガイドラインを使用して、EISから外部サービスを呼び出します。
特定のアダプタに関する構成の問題は、25.2項「アダプタの操作」を参照してください。
呼び出したい外部サービスを表すOracle Service Busでのビジネス・サービスを作成します。
ビジネス・サービス構成の詳細は、2.2項「ビジネス・サービスの操作」を参照してください。
ビジネス・サービスを呼び出すOracle Service Busでのプロキシ・サービスを作成します。
インバウンドJCAプロキシ・サービスをOracle Service Busで作成します。詳細は、2.3.2項「インバウンドJCAファイルからJCAプロキシ・サービスを生成する」を参照してください。
プロキシ・メッセージ・フローでは、呼び出す外部サービスでサポートされるメッセージ・フォーマットでメッセージを送信するために、必要なトランスフォーメーションを実行します。
通常どおり、EISからプロキシ・サービスを呼び出します。
Oracle Service Busで、JCAトランスポートはEISからのサービス呼出しをリスニングするJCAアダプタ・エンドポイントにリスナーを登録します。JCAアダプタ・フレームワークはサービス呼出しをプロキシ・サービスに渡します。
その他のプロキシ・サービス構成の詳細は、2.3項「プロキシ・サービスの操作」を参照してください。
この項では、JCAトランスポート固有の構成オプションについて説明します。一般的なビジネスおよびプロキシ・サービスの構成の説明については、以下のトピックを参照してください。
『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』
JCAサービスの次のエンドポイントURIフォーマットを使用してください。
jca://<resource_adapter_jndi>
ここで、resource_adapter_jndiは、JCAファイルに含まれるconnection-factory要素の"location"属性の値です。この値は、アダプタの接続ファクトリJNDIと一致します。
JCAサービス・エンドポイントは、WSDL、XMLスキーマ、サービス・アカウント、JCAリソース、XMLスキーマおよびXMLリソース(TopLinkまたはEclipseLinkマッピング・ファイル)に依存します。それらのうちいずれかのリソース・タイプが更新され、サービス用に保存されると、JCAサービス・エンドポイントが自動的に削除、再作成および再デプロイされます。JCAプロキシ・サービスでは、新しいアダプタ・リスナーもインバウンド・リクエストをリスニングするために初期化されます。
表25-1で説明されているように、JCAエンドポイント再デプロイメントは、「常にJCAファイルからの構成を使用」オプションをサービスで選択しているかどうかによって、実行時にサービスに潜在的な影響を及ぼします。例:
「常にJCAファイルからの構成を使用」を選択すると、JCAエンドポイントの再デプロイメント後に、実行時にリソース・アダプタと接続および対話するために、更新されたJCAファイルが使用されます。
「常にJCAファイルからの構成を使用」を選択しないと、実行時にリソース・アダプタと対話するために、対応する更新済のJCAファイル・プロパティではなく、既存のサービス構成いオーバーライドが使用されます。
表25-1に、EclipseまたはOracle Service Bus管理コンソールにおけるJCAトランスポートの構成ページに含まれるオプションを示します。
表25-1 JCAトランスポート構成オプション
オプション | 説明 |
---|---|
JCAファイル |
「参照」をクリックしてJCAリソースを選択します。JCAリソースによって、使用されるアダプタの詳細、WSDLへのバインド、TopLinkまたはEclipseLinkマッピング・ファイル、サービスで必要なアクティブ化/相互指定プロパティなど、サービスの様々な面が定義されます。 有効なJCAリソースを選択したら、その他のトランスポート構成フィールドが使用可能になります。 |
アダプタ名 |
JCAサービスで使用するアダプタの名前を示す読取り専用の値。 |
アダプタ・タイプ |
アダプタ・タイプを示す読取り専用の値。 |
ディスパッチ・ポリシー |
このエンドポイントのディスパッチ・ポリシーに使用するOracle WebLogic Serverワーク・マネージャのインスタンスを選択します。デフォルトのワーク・マネージャは、他にワーク・マネージャがない場合に使用されます。 ワーク・マネージャの詳細は、次の説明を参照してください。
|
JNDIサービス・アカウント |
JNDIサービス・アカウントはJNDIコンテキスト・セキュリティのためのアカウントで、EISアダプタ管理対象の接続ファクトリへのアクセスに使用します。「参照」をクリックして、サービス・アカウントを選択します。サービス・アカウントを指定しない場合は、匿名サブジェクトが使用されます。 JCAビジネス・サービスでは、静的またはパススルーなど、構成できるJNDIサービス・アカウントのタイプに制限はありませんが、ランタイムはユーザー名とパスワードにアクセスできる必要があります。JCAプロキシ・サービスは静的JNDIサービス・アカウントのみを使用できます。 JNDIサービス・アカウントの詳細は、25.1.4項「セキュリティ」を参照してください。 |
エンドポイント・プロパティ |
このフィールドでは、サービスが使用するアダプタ・タイプの再試行回数など、エンドポイント・プロパティに値を割り当てることができます。 サポートされるエンドポイント・プロパティのリストは、25.1.3項「エンドポイント・プロパティ」を参照してください。 |
動的エンドポイント・プロパティ |
このオプションを使用すると、リクエスト・パラメータをJCA準拠サービスに渡すことができます。たとえば、動的エンドポイント・プロパティを使用して、データベース問合せパラメータをデータベース用のOracle JCAアダプタに渡すことができます。 パラメータを使用する問合せの詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』のデータベース用のOracle JCAアダプタに関する項を参照してください。 指定する動的エンドポイント・プロパティごとに名前と値のペアを入力します。エンドポイント・プロパティ・キーが問合せパラメータ名と一致します。 このセクションを使用して、カスタム・アダプタのエンドポイント・プロパティを追加および構成します。 |
常にJCAファイルからの構成を使用 |
このオプションを使用して、「アクティブ化指定プロパティ」(プロキシ・サービス)および「相互指定プロパティ」(ビジネス・サービス)を常にJCAファイルから使用するかどうかを決定します。 このオプションが選択されている場合(デフォルト)、JCAトランスポートはJCAファイルのアクティブ化/相互指定プロパティを使用してJCAフレームワークと対話します。 このオプションが選択されていない場合は、アクティブ化/相互指定プロパティをオーバーライドできます。 このオプションを使用する場合の再デプロイメントの影響については、25.5.1.1項「エンドポイント再デプロイメント」を参照してください。 |
操作名 |
選択したWSDL操作の読取り専用の名前を表示します。操作は、「アクティブ化/対話の仕様プロパティ」フィールドで示すように、独自のアクティブ化/対話の仕様プロパティを持つことができます。 |
アクティブ化指定プロパティ/相互指定プロパティ |
「アクティブ化指定プロパティ」はプロキシ・サービス用のフィールド名で、「相互指定プロパティ」はビジネス・サービス用のフィールド名です。 このサービスがEISアプリケーションによって呼び出されたインバウンド・サービスである場合、このフィールドには、「操作名」フィールドで示すように、JCAインバウンド操作のアクティブ化仕様プロパティが表示されます。 「常にJCAファイルからの構成を使用」を選択解除すると、アクティブ化/相互指定プロパティをオーバーライドできます。 注意: Oracle Adapter Suiteアダプタの場合、アクティブ化/相互指定プロパティが読取り専用として表示されます。Oracle Adapter Suiteアダプタには独自の構成が保存されています。これは、Oracle Adapter Suite管理ツールで変更する必要があります。 |
接続プロパティ(レガシー) |
非管理対象モード接続プロパティ(このリリースでは非推奨)を使用するレガシーJCAサービスの場合、 |
エンドポイントおよびアクティブ化/相互指定プロパティの詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
JCA WSDLはドキュメントliteralバインディングのみサポートします。JCAプロキシ・サービスの操作構成用のアルゴリズムは、 SOAPActionヘッダーのみです。Oracle Service Bus effective WSDLは常にSOAPActionを含みます。SOAPActionフィールドの値は操作名です。
JCAトランスポートはメッセージ・コンテンツのストリーミングまたは添付をサポートしません。コンテンツ・ストリーミングを有効にするかどうかは、実行時にJCAトランスポートに影響しません。コンテンツ・ストリーミングはトランスポートの制御なしのサービス構成オプションであるため、コンテンツ・ストリーミングを有効にしても、トランスポートによって検証エラーが発生することはありません。