この付録では、正規化されたメッセージのプロパティをメッセージ・ヘッダーを介して伝播できるように設定する方法について説明します。
項目は次のとおりです。
ヘッダーの操作と伝播は、重要なビジネス統合メッセージング要件です。Oracle BPEL Process Manager、Oracle Mediator、Oracle JCAアダプタおよびOracle B2Bは、顧客の統合ニーズを解決する上でヘッダー・サポートに大きく依存しています。たとえば、メッセージ・ヘッダーを介してファイル名を伝播することで、そのファイル名をソース・ディレクトリからターゲット・ディレクトリに保存できます。Oracle BPEL Process ManagerとOracle Mediatorでは、様々なユーザー・インタフェース・サポート・レベルでヘッダーにアクセスし、操作して設定できます。
図H-1に詳細を示します。
正規化されたメッセージは、プロパティとペイロードという2つの部分のみを持つように簡素化されています。
通常、プロパティはスカラー型の名前/値ペアです。既存の複雑なヘッダーがプロパティに収まるように、プロパティはスカラー型にフラット化されます。
複雑なプロパティは事前に決定されているため、設計時にヘッダーを操作する際のユーザー操作は合理化されています。メディエータ・エディタまたはOracle BPELデザイナでは、なんらかの予約済キーワードを使用してヘッダーを操作できます。
ただし、この方法はユーザー入力に基づいて動的に生成されるプロパティに対処していません。選択内容に基づいてヘッダーが定義されます。これらの定義は事前に決定されていないため、事前決定済のプロパティ定義のリストでは考慮できません。動的プロパティのヘッダー操作は、定義するまで設計できません。この制限に対処するには、必要なサービス(コンポジット・エントリ・ポイント)と参照をすべて生成しておく必要があります。この制限は、動的プロパティを生成する必要のあるサービスに適用されます。動的プロパティが生成された後、コンポジットごとに格納される必要があります。その後にのみ、メディエータ・エディタまたはOracle BPELデザイナで動的プロパティを操作できます。
正規化されたメッセージのプロパティの詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』および『Oracle Fusion Middleware Oracle B2Bユーザーズ・ガイド』を参照してください。
表H-1に、Oracle BPEL Process Managerの正規化メッセージに対して事前に決定されているプロパティを示します。
表H-1 Oracle BPEL Process Managerのプロパティ
プロパティ名 | 伝播可能(はい/いいえ) | 方向(インバウンド/アウトバウンド) | データ型 | 有効値の範囲 | 説明 |
---|---|---|---|---|---|
|
いいえ |
インバウンド |
文字列 |
文字列、サイズ制限: 100。 |
|
|
いいえ |
インバウンド |
文字列 |
文字列、サイズ制限: 100。 |
|
|
いいえ |
インバウンド |
文字列 |
文字列、サイズ制限: 100。 |
|
|
はい |
両方 |
文字列 |
文字列、サイズ制限: 1000。 |
BPELインスタンスを関連付ける必要がある追加情報が含まれます。渡されたすべての情報は、 |
|
はい |
インバウンド |
整数に解釈可能な文字列 |
[1-10]. 1が最も優先度の高い値です。 |
|
|
はい |
インバウンド |
ブール |
true (デフォルト値)またはfalse |
一方向起動(つまり、非同期BPELプロセスの起動)に対してtrueに設定した場合、致命的な接続障害が発生したときにBPELプロセス・サービス・エンジンによって再試行されます。再試行の回数は、 |
|
いいえ |
インバウンド |
文字列 |
文字列、サイズ制限: 100。 |
|
表H-2に、Web Services Addressing (WS-Addressing)の正規化メッセージに対して事前に決定されているプロパティを示します。
表H-2 Oracle Web Services Addressingのプロパティ
プロパティ名 | 伝播可能(はい/いいえ) | 方向(インバウンド/アウトバウンド) | データ型 | 有効値の範囲 | 説明 |
---|---|---|---|---|---|
|
いいえ |
両方 |
文字列 |
URI形式 |
このプロパティは、メッセージの識別子と、そのメッセージに対する応答の送信先であるエンドポイントをエンドポイント参照として指定します。 |
|
いいえ |
両方 |
文字列 |
URI形式 |
このオプションの(繰返し)要素情報アイテムは、1つの抽象リレーションシップ・プロパティ値を |
|
いいえ |
両方 |
文字列 |
URI形式 |
非同期で通信する2つのコンポーネント間の規約を表します。 |
|
いいえ |
両方 |
QName |
任意のQName |
この値は、サービスのコールバックの |
|
いいえ |
両方 |
QName |
任意のQName |
この値は、サービスのコールバックのサービスを構成するためにWebサービスに渡されます。WS-Addressingコールバックのエンドポイント参照の |
|
いいえ |
両方 |
文字列 |
URI形式 |
この必須要素(コンテンツが |
|
いいえ |
両方 |
文字列 |
URI形式 |
このオプション要素(コンテンツが |
Oracle BPEL Process Managerはbpelx
拡張を使用して、メッセージ交換処理で、正規化されたメッセージのプロパティを操作します。構文は、BPELプロジェクトでBPELバージョン1.1と2.0のどちらがサポートされているかによって異なります。
例H-1は、BPEL 1.1におけるbpelx
拡張構文を示しています。
例H-1 BPEL 1.1において正規化されたメッセージ・ヘッダーのbpelx拡張構文
<invoke ...> <bpelx:inputProperty name="NCName" expression="string" variable="NCName" part="NCName" query="string"/>* <bpelx:outputProperty name="NCName" expression="string" variable="NCName" part="NCName" query="string"/>* </invoke> <receive ...> <bpelx:property name="NCName" expression="string" variable="NCName" part="NCName" query="string"/>* </receive> <onMessage...> <bpelx:property name="NCName" expression="string" variable="NCName" part="NCName" query="string"/>* </onMessage> <reply ...> <bpelx:property name="NCName" expression="string" variable="NCName" part="NCName" query="string"/>* </reply>
例H-2は、BPEL 2.0におけるbpelx
拡張構文を示しています。
例H-2 BPEL 2.0において正規化されたメッセージ・ヘッダーのbpelx拡張構文
<invoke ...> <bpelx:fromProperties>? <bpelx:fromProperty name="NCName" .../>+ </bpelx:fromProperties> <bpelx:toProperties>? <bpelx:toProperty name="NCName" .../>+ </bpelx:toProperties> </invoke> <receive ...> <bpelx:fromProperties>? <bpelx:fromProperty name="NCName" .../>+ </bpelx:toProperties> </receive> <onEvent ...> <bpelx:fromProperties>? <bpelx:fromProperty name="NCName" .../>+ </bpelx:fromProperties> </onEvent> <reply...> <bpelx:toProperties>? <bpelx:toProperty name="NCName" .../>+ </bpelx:toProperties> </reply> <reply ...> <bpelx:toProperties> <bpelx:toProperty name="NCName" .../> </bpelx:toProperties> </reply>
次の点に注意してください。
toProperty
はfrom-spec
です。from-spec
から、指定した名前のプロパティに値をコピーします。
fromProperty
はto-spec
です。プロパティからto-spec
に値をコピーします。