ユーザーズ ガイド

     前  次    目次     
ここから内容

メッセージ コンテキスト

この章では、Oracle Service Bus メッセージ コンテキスト モデルとメッセージ フローで使用する事前定義されたコンテキスト変数について説明します。内容は以下のとおりです。

 


メッセージ コンテキスト モデル

メッセージ コンテキストは、Oracle Service Bus でメッセージがルーティングされるときに、メッセージ コンテキストとメッセージに関する情報を保持する一連のプロパティです。これらのプロパティは、コンテキスト変数と呼ばれます。たとえば、サービス エンドポイントは、事前定義されたコンテキスト変数によって表されます。Oracle Service Bus は、ユーザ定義のコンテキスト変数もサポートします。

メッセージ コンテキストは、XML スキーマによって定義されます。通常は、XQuery 式を使用して、プロキシ サービスを定義するメッセージ フローのコンテキスト変数を操作します。

 


事前定義されたコンテキスト変数

事前定義されたコンテキスト変数を表 5-1 に示します。事前定義されたコンテキスト変数の型は、メッセージ関連の変数、inbound および outbound 変数、operation 変数、fault 変数に分けられます。

メッセージ コンテキスト変数の要素の型については、「メッセージ コンテキスト スキーマ」を参照してください。

表 5-1 Oracle Service Bus の事前定義されたコンテキスト変数
コンテキスト変数1
説明
関連トピック
header
SOAP メッセージの場合、header には SOAP ヘッダが格納される。(プロキシ サービスが SOAP 1.2 の場合、header には SOAP 1.2 Header 要素が格納される)。
メッセージのタイプが SOAP 以外の場合、header には空の SOAP ヘッダ要素が格納される。
body
メッセージ タイプによって異なる。
  • SOAP メッセージの場合は、SOAP エンベロープから抽出した <SOAP:Body> 部を格納する。(プロキシ サービスが SOAP 1.2 の場合、body 変数には SOAP 1.2 Body 要素が格納されます)。
  • バイナリ以外の非 SOAP メッセージの場合は、メッセージ コンテンツ全体を <SOAP:Body> 要素でラップして格納する。
  • バイナリ メッセージの場合は、バイナリ メッセージのメモリ内コピーへの参照を <SOAP:Body> でラップして格納する。
  • Java オブジェクトの場合は、Java オブジェクトのメモリ内コピーへの参照を <SOAP:Body> でラップして格納する。
attachments
メッセージの MIME 添付を格納する。
inbound
以下の内容を格納する。
  • メッセージを受信したプロキシ サービスに関する情報。
  • 着信転送ヘッダ。
outbound
以下の内容を格納する。
  • メッセージの送信先の対象サービスに関する情報。
  • 発信転送ヘッダ。
operation
プロキシ サービスで呼び出される操作を指定する。
fault
メッセージの処理中に発生したエラーに関する情報を格納する。

1メッセージ コンテキスト スキーマは、メッセージ コンテキスト変数の要素の型を指定します。

 


メッセージ関連の変数

メッセージ関連の変数である headerbody、および attachments は、Oracle Service Bus のメッセージ フローでのメッセージの標準書式を表します。これらの変数は、プロキシ サービスが受信したメッセージ コンテンツを使用して初期化され、他のサービスにルーティングまたはパブリッシュされる送信メッセージを作成するために使用されます。

メッセージの処理の一部としてメッセージを変更するには、これらの変数を変更する必要があります。

メッセージ ペイロード (つまり、ヘッダや添付を除くメッセージ コンテンツ) は、body 変数に格納されます。送信メッセージに含める変数のコンテンツは Oracle Service Bus からメッセージがディスパッチ (パブリッシュまたはルーティング) される時点で決定されます

この決定は、対象のエンドポイントが SOAP メッセージを受信するか非 SOAP メッセージを受信するかによって異なります。

header 変数

header 変数には、メッセージに関連付けられている SOAP ヘッダが格納されます。header 変数は、下位要素にヘッダを含む <SOAP:Header> 要素を参照します。(プロキシ サービスが SOAP 1.2 の場合、header 変数には SOAP 1.2 Header 要素が格納されます)。非 SOAP メッセージまたはヘッダがない SOAP メッセージの場合、<SOAP:Header> 要素は空になり、下位要素を持ちません。

body 変数

body 変数はコアのメッセージ ペイロードを表し、常に <SOAP:Body> 要素を参照します。(プロキシ サービスが SOAP 1.2 の場合、body には SOAP 1.2 Body 要素が格納されます)。SOAP メッセージでも非 SOAP メッセージでも、コアのペイロードは同じ変数とパッケージで使用できます。つまり、<SOAP:Body> 要素でラップされます。

attachments 変数

attachments 変数には、メッセージに関連付けられた添付が格納されます。attachments 変数は、XML スキーマで定義されます。これは、単一のルート ノードである <ctx:attachments> と、各添付の <ctx:attachment> 下位要素で構成されます。この下位要素には、添付に関する情報 (MIME ヘッダから派生) と添付コンテンツが含まれます。他のメッセージ関連の変数と同様に、attachments は常に設定されます。ただし、添付がない場合は、attachments 変数は空の <ctx:attachments> 要素で構成されます。

各添付要素には、表 5-2 に示す一連の下位要素が含まれます。

表 5-2 attachments 変数の下位要素
attachments 変数の要素
説明1
Content-ID
添付を識別するグローバルにユニークな参照。型は string
Content Type
添付のメディアのタイプとサブタイプを指定する。型は string
Content-Transfer-Encoding
添付のコード化方法を指定する。型は string
Content-Description
コンテンツの説明。型は string
Content-Location
添付を識別するローカルにユニークな URI ベースの参照。型は string
Content-Disposition
受信者による添付の処理方法を指定する。型は string
body
添付データを保持する。型は anyType

1 メッセージ コンテキスト スキーマは、メッセージ コンテキスト変数の要素の型を指定します。

型なしの body 要素以外のすべての要素には MIME での解釈と同じ方法で解釈された文字列値が含まれます。たとえば、Content-Type 要素の有効な値は、text/xmltext/xml; charset=utf-8 などです。

添付の解析は再帰的ではありません。添付の Content-Typemultipart/... の場合、body 要素には元の MIME コンテンツがパッケージ化されずにバイトのストリームとして保持され、添付の下位要素は含まれません。MIME ストリームにはバイナリ データが含まれることがあり、その場合このストリームは <binary-content> 参照要素で表します。

バイナリ コンテンツの処理方法については、「body 変数と attachments 変数内のバイナリ コンテンツ」を参照してください。

Content-Typemultipart/form-data であるメッセージは、実行時に以下のように作成されます。

HTTP、HTTPS、または電子メール転送の場合のみ、添付ファイルが着信要求および発信応答 (つまりプロキシ サービスが受信するメッセージ内) でサポートされます。添付ファイルは、発信要求および着信応答 (つまりプロキシ サービスが送信するメッセージ) に関するすべての転送タイプでサポートされます。

Oracle Service Bus では、EJB、Tuxedo、または DSP ベースのサービスへの添付ファイルの送信はサポートしていません。

body 変数と attachments 変数内のバイナリ コンテンツ

body 変数と attachments 変数では、テキスト ベース、XML ベース、および MFL ベースのコンテンツが XML 要素内に直接挿入されます。バイナリ データの場合、XML で使用できないバイト値が含まれることがあるため、Oracle Service Bus ではバイナリ コンテンツは XML 要素内に挿入されません。したがって、バイナリ コンテンツは操作できませんが効率的に処理されます。

バイナリ コンテンツが受信されると、Oracle Service Bus ランタイムによってバイナリ コンテンツがメモリ内ハッシュ テーブルに格納され、そのコンテンツへの参照が XML (body または attachments) 要素に挿入されます。この参照は、以下の XML コードで表されます。

<binary-content ref="..."/>

この ref 属性に、バイナリ コンテンツをユニークに識別する URI または URN を指定します。この XML は、Oracle Service Bus パイプライン、ブランチ、またはルート ノードで他のコンテンツと同様に操作できます。ただし、影響を受けるのは、元のバイナリ コンテンツではなく参照だけです。

次に例を示します。

メッセージが Oracle Service Bus から送信されると、参照 XML の URI を使用して、関連バイナリ コンテンツが送信メッセージ内に復元されます。発信メッセージの作成方法については、「送信するメッセージの作成」を参照してください。

クライアントと特定の転送 (特に、電子メール、ファイル、FTP) では、この同じ参照 XML を使用して参照渡しを実装できます。この場合、実行時のプロキシ サービスではなく転送またはクライアントによって、参照 XML が作成されます。また、ref 属性内の URI の値は、参照 XML を作成するユーザによって指定されます。参照 XML が実行時のプロキシ サービスによって作成されない場合 (特に、URI の参照先が、内部で管理されているバイナリ コンテンツであると認識されない場合)、URI は Oracle Service Bus により逆参照されず、送信メッセージにコンテンツが挿入されません。

body 変数内の Java コンテンツ

Oracle Service Bus パイプラインでは、Java コールアウト アクションへの入力および出力として、Java オブジェクトをサポートしています。Java コールアウトから返された POJO はパイプラインにキャッシュされ、そのキーは <java-content ref="cid:kkkkeeeeyyyy"/> の形式の XML メッセージにラップされて返されます。ここで、cid:kkkkeeeeyyyy は、生成アクションによって自動的に生成されたキーであり、パイプラインのキャッシュにあるオブジェクトのインデックスを指定するために使用されます。後続するすべてのアクションに対して、この XML が変更されずに引数として渡されます。

コンフィグレーション時には POJO 変数のコンテンツは、パイプライン アクションからは直接アクセスできません。代わりに、コンテンツは以下の方法で操作できます。

(<java-content.../> 内に) Java オブジェクトのキーを保持しているすべての変数を削除した場合、または <java-content.../> スニペットを指しているすべての XPath を削除した場合、Java オブジェクトはパイプラインのキャッシュから削除されます。

body コンテンツのストリーミング

メッセージ コンテンツを処理する際に、Oracle Service Bus パイプラインによってコンテンツをメモリにロードするのではなく、コンテンツをストリームするように指定できます。プロキシ サービスのコンテンツ ストリーミングを有効にするときは、メッセージ処理時の中間手順として、ストリーミングされたコンテンツをメモリとディスク ファイルのどちらにバッファリングするかを指定します。これらの一時ファイルの作成は、パフォーマンスに影響を及ぼすことがあります。一時ファイルの保護については、『Oracle Service Bus のセキュリティ ガイド』を参照してください。

ストリーミング オプションを有効にした場合、コンテンツ ストリーミングは body 変数だけに適用されます

一般に、コンテンツ ストリーミングを使用するのは次のような場合です。

コンテンツ ストリーミングを使用する際のベスト プラクティス

以下のガイドラインと推奨事項に従ってください。

添付ファイルのストリーミング

メッセージの添付ファイルを処理する際に、添付ファイルをメモリにバッファリングして XML として解析するのではなく、MIME 添付ファイルをディスクにページングしてからコンテンツをストリーミングするように指定できます。サイズの大きい添付ファイルを扱う場合は、この方法が特に効果的です。

この方法を使用すると、ヘッダのみがバッファリングされ、残りのメッセージ ペイロードは、小さい複数の部分を同時に読み込むことができるストリームとしてエクスポーズされます。ストリーミングされた転送により、サイズの大きいメモリ バッファが不要になるため、サービスのスケーラビリティが向上します。

Oracle Service Bus では、以下の転送を使用するプロキシ サービスおよびビジネス サービスについて、MIME 添付ファイルのストリーミングがサポートされます。

注意 : Oracle Service Bus は、電子メール、SB、または WS 転送の添付ファイルのストリーミングをサポートしません。

HTTP プロキシ サービスに対して有効になっている場合、設定は着信要求メッセージの処理に適用されます。HTTP ビジネス サービスの場合、設定は発信要求メッセージの処理に適用されます。発信要求メッセージをディスパッチすることができる以下のアクションは、添付ファイルのストリーミングをサポートします。

ストリーミングが有効になっている場合、バイナリ、テキスト、または XML のすべての添付ファイルは不透明なデータとして処理されます。つまり、添付ファイルのストリーミングが有効になっている場合、添付ファイルの XML コンテンツに基づいた XQuery/XPath 式を実行することはできません。

着信メッセージの処理

Oracle Service Bus が着信メッセージを受信したとき、添付ファイルのストリーミングがコンフィグレーションされている場合は、各 MIME 添付ファイルのコンテンツはディスク上の別々のファイルに保存されます。

各添付ファイルの標準 MIME ヘッダ (これには、Content-ID、Content-Type、Content-Transfer-Encoding、Content-Description、Content-Location、および Content-Disposition (指定されている場合) が含まれます) を attachment 要素の下に追加するように、$attachments 変数の値が設定されます。

body 子要素には、ソース リポジトリ内の対応するソースを参照する単一の binary-content 子要素が含まれます。

たとえば、$attachments 変数は次のようになります。

<con:attachments xmlns:con="http://www.oracle.com/wli/sb/context">
<con:attachment>
<con:Content-Type>image/jpeg</con:Content-Type>
<con:Content-ID>
&lt;1.urn:uuid:BFB7D745CBAF21BA5B12023554608963@apache.org>
</con:Content-ID>
<con:Content-Transfer-Encoding>
binary
</con:Content-Transfer-Encoding>
<con:body>
<con:binary-content ref="cid:23976580:1183dd6aab9:-7fe0"/>
</con:body>
</con:attachment>
</con:attachments>

これは添付ファイルのコンテンツ タイプに関係なく実行されます。つまり、たとえば text/xml 添付ファイルは、image/jpeg 添付ファイルと同じように、バイナリ コンテンツ要素を含む不透明なバイナリ データとして扱われます。

このスタイルのメッセージ処理は、添付ファイルがストリーミングされない場合とは異なります。添付ファイルがストリーミングされない場合は、text/xmltext/plain などの特定のファイル タイプが認識されて、添付ファイルの XML body 要素 (XML コンテンツを格納するため) またはテキスト コンテンツの初期化に使用されます。

発信メッセージの処理

Oracle Service Bus が発信メッセージを処理するとき、添付ファイルをストリーミングするようにコンフィグレーションされている場合は、各 MIME 添付ファイルのコンテンツはディスク上の別々のファイルに保存されます。Oracle Service Bus は、着信要求の場合と同様に $attachments メッセージ コンテキスト変数を初期化します (「着信メッセージの処理」を参照してください)。

MTOM/XOP サポートについて

Oracle Service Bus では、MTOM/XOP 形式の着信メッセージをデコードして解析し、必要に応じて MTOM/XOP 形式を使用して応答を送信するように、プロキシ サービスをコンフィグレーションできます。また、発信メッセージを MTOM/XOP 形式でエンコードするようにビジネス サービスをコンフィグレーションできます。

Oracle Service Bus は、着信 MTOM/XOP ペイロードを受け入れてデコードするために、次のバインディング タイプを持つプロキシ サービスをサポートしています。

MTOM/XOP ペイロードを受信するその他のサービス バインディング タイプのプロキシ サービスは、MIME マルチパート要求と同じようにペイロードを処理し、MTOM 固有の処理は行いません。

また、次の Oracle Service Bus 転送は MTOM/XOP をサポートします。

Oracle Service Bus は、次の発信メッセージをディスパッチできるすべての既存アクションをサポートします。

ただし、MTOM および SOAP with Attachments (SwA) を組み合わせること、およびメッセージレベルのセキュリティで MTOM を使用することはできません。また、メイン ペイロードをストリーミングしながら MTOM を使用することはできません。

プロキシ サービスのコンフィグレーション

プロキシ サービスで MTOM/XOP 形式の着信メッセージをデコードして解析し、必要に応じて MTOM/XOP 形式を使用して応答を送信することができます。[XOP/MTOM サポート] が有効になっている場合は、$header および $body メッセージ コンテキスト変数のバイナリ データを処理する方法を次のオプションからさらに選択します。

バイナリ データに直接アクセスする必要がある場合 (Java コールアウトまたはメッセージ フォーマット言語 (MFL) 変換にデータを渡す場合など) は、[参照によるバイナリ データを含む] オプションを使用できます。

[値によるバイナリ データを含む] は次の場合に使用できます。

[XOP/MTOM サポート] がプロキシ サービスに対して有効になっている場合は、すべての着信メッセージが MTOM 形式である必要はありません。代わりに、この設定では、MTOM 形式のメッセージが到着したときに、プロキシ サービスでそれを適宜処理する必要があることを指定します。[XOP/MTOM サポート] が有効になっていないプロキシ サービスが MTOM 形式のメッセージを受信した場合、サービスはメッセージを拒否し、ランタイム エラーを発行することにも注意してください。

参照によるバイナリ オプションについて

参照によるバイナリ オプションが選択されている場合は、Oracle Service Bus はメッセージのルートを解析して xop:Include タグの存在をチェックします。これらのタグが検出された場合、タグはバイナリ リポジトリ内の対応するソースへの参照を含む ctx:binary-content 要素に変換されます。結果としてのドキュメントは $body メッセージ コンテキスト変数によって表されます。対照的に、$attachments メッセージ コンテキスト変数は情報を含みません (null です)。

つまり、パイプライン アクションが $body メッセージ コンテキスト変数のコンテンツにアクセスした場合、アクションは xop:Include 要素を検出しない代わりに、ctx:binary-content 要素を使用して動作します。

プロキシ サービスがクライアントに応答を返信する必要がある場合、バインディング レイヤは ctx:binary-content 参照をメッセージのルートにある xop:Include タグに置換し、対応する各バイナリ コンテンツ参照に別々の MIME 部分を追加して、MTOM/XOP パッケージ応答を作成します。

値によるバイナリ オプションについて

値によるバイナリ オプションが選択されている場合は、Oracle Service Bus が着信 MIME メッセージのルートを解析して xop:Include タグの有無をチェックします。該当するタグが検出された場合、対応する MIME 部分の本体 (バイナリ データ) は Base64 でエンコードされ、結果としてのテキストが $body メッセージ コンテキスト変数の xop:Include タグを置換します。

対照的に、$attachments メッセージ コンテキスト変数は情報を含みません (null です)。

ビジネス サービスのコンフィグレーション

ビジネス サービスを有効にすると、発信メッセージを MTOM/XOP 形式でエンコードできます。[XOP/MTOM サポート] が有効になっている場合は、$header および $body メッセージ コンテキスト変数のバイナリ データを処理する方法を次のオプションからさらに選択します。

[XOP/MTOM サポート] がビジネス サービスに対して有効になっている場合は、すべての発信メッセージが MTOM 形式である必要はありません。代わりに、この設定はビジネス サービスが MTOM ペイロードを処理できることを指定します。

発信メッセージの処理

MTOM/XOP サポートが有効になっている場合、Oracle Service Bus は $body メッセージ コンテキスト変数のコンテンツを調べて ctx:binary-content 要素を検索します。要素がある場合、Oracle Service Bus は ctx:binary-contentxop:Include 要素およびペイロードの対応する MIME 部分に置換して、MTOM/XOP MIME パッケージを作成します。

MTOM/XOP が有効で本体にバイナリ コンテンツが含まれている場合、コンテンツのサイズに関係なく (たとえば、1KB より小さい場合でも) Oracle Service Bus は常に MTOM/XOP を使用します。

また、Oracle Service Bus は MTOM と SwA の組み合わせをサポートしません。そのため、ビジネス サービスへの発信要求をディスパッチする必要があり、次の条件に該当する場合、システムは実行時例外を送出します。

 


inbound 変数と outbound 変数

inbound コンテキスト変数と outbound コンテキスト変数には、着信エンドポイントと発信エンドポイントに関する情報が格納されます。inbound 変数には要求メッセージを受信したプロキシ サービスに関する情報が格納され、outbound 変数 にはメッセージの送信先である対象ビジネス サービスに関する情報が格納されます。

outbound 変数は、ルート ノードのルート アクションとパブリッシュ アクションで設定されます。$outbound を変更するには、ルート ノードで要求アクションと応答アクションをコンフィグレーションし、パブリッシュ アクションで要求アクションをコンフィグレーションします。

警告 : inbound コンテキスト変数と outbound コンテキスト変数に対して行った変更の一部は、実行時には無視されます。つまり、特定のヘッダとメタデータの値は、Oracle Service Bus ランタイムで上書きされる場合や無視される場合があります。この制限は、転送ヘッダとサービス コールアウト アクションを使用して転送ヘッダとメタデータを設定する場合、およびテスト コンソールを使用してプロキシ サービスまたはビジネス サービスをテストする場合にも適用されます。

制限のあるヘッダおよびメタデータについては、「ランタイムによって転送ヘッダの設定が使用されるしくみについて」を参照してください。メッセージ フローで、ルート ノードの要求アクションまたは応答アクションおよびパブリッシュ アクション以外で $outbound に加えた変更は無視されます。つまり、これらの変更は、ルート ノードとパブリッシュ アクションで $outbound が初期化されるときに上書きされます。

サービス コールアウト アクションで outbound 変数を変更することはできません。

inbound 変数と outbound 変数の特性は以下のとおりです。

HTTP、HTTPS、または電子メール転送の場合のみ、添付ファイルが着信要求および発信応答 (つまりプロキシ サービスが受信するメッセージ内) でサポートされます。

添付ファイルは、発信要求および着信応答 (つまりプロキシ サービスが送信するメッセージ) に関するすべての転送タイプでサポートされます。

Oracle Service Bus では、EJB、Tuxedo、または DSP ベースのサービスへの添付ファイルの送信はサポートしていません。

inbound 変数と outbound 変数の下位要素

この節では、コンテキスト変数 inbound および outbound の下位要素について説明します。また、どの下位要素が実行時に初期化されるかについての情報も示します。コンテキスト変数が初期化される方法については、「コンテキスト変数の初期化」を参照してください。以下の下位要素があります。

service

service 要素は、inboundoutbound いずれの場合も読み込み専用です。下位要素としては providerNameoperation があります。

表 5-3 service 要素の下位要素
下位要素1
説明
providerName
サービス キー プロバイダの名前を指定する。
パブリッシュ アクションおよびルーティング アクションのコンフィグレーションに基づいて初期化される。
operation
outbound のみ)
outbound 変数で使用され、対象ビジネス サービスで呼び出される処理の名前を指定する。
inbound および outbound に基づいて初期化される。

注意 : この要素は outbound 変数に対してのみ使用される。inbound メッセージの場合は、プロキシ サービスで呼び出される処理の名前が operation 変数によって指定される。

1 メッセージ コンテキスト スキーマは、メッセージ コンテキスト変数の要素の型を指定します。

transport

transport 要素は inbound の場合は読み込み専用です。ただし例外として、response 要素ではこの要素を変更して応答転送ヘッダを設定できます。transport 要素の下位要素を表 5-4 に示します。

表 5-4 transport 要素の下位要素
下位要素1 
説明
uri
以下のようにエンドポイントの URI を指定する。
  • inbound 変数で使用する場合は、メッセージを受信する URI。
  • outbound 変数で使用する場合は、メッセージの送信時に使用する URI。この値は、サービス ディレクトリに登録されている URI 値をオーバーライドする。
初期化
URI 要素は以下のように初期化される。
  • inbound 変数の場合は常に初期化される。
  • outbound 変数の場合は初期化されない。outbound に対して URI を設定すると、サービス コンフィグレーションで指定された URI のセットがオーバーライドされる。この要素を設定した場合、URI フェイルオーバはサポートされない。
request
inbound 変数では、この要素は読み込み専用2outbound 変数の場合は変更可能。
要求に関する転送固有のメタデータ (転送ヘッダを含む) を指定する。この要素の値は転送プロトコルによって定義される (具体的には、転送 SDK によって定義された RequestMetaData XML)。したがって、この要素の構造は使用される転送によって異なる。
この要素の転送固有の型については、Oracle Service Bus インストールの以下のディレクトリに用意された該当する転送スキーマを参照。
ORACLE_HOME/osb_10.3/lib/transports/
ここで、ORACLE_HOME は Oracle Service Bus をインストールしたディレクトリを表す。
初期化
URI 要素は以下のように初期化される。
  • inbound 変数の場合は、Oracle Service Bus で受信した要求メッセージの情報を使用して初期化される。
  • outbound 変数の場合は、適切な型の request 要素が作成される。使用される型は転送依存。request 要素は通常は空の要素として初期化されるが、一部の重要な転送ヘッダ (content-typeSOAPAction など) については例外。
ルート ノードの要求アクションで $outbound をコンフィグレーションすると、ファイル転送プロトコルを使用して次のように発信メッセージのファイル名を設定できる。
  • fileName のみを指定した場合、その名前のファイルは対象ビジネス サービスのエンドポイント URI で指定される場所に格納される。
  • isFilePathtrue に設定している場合、fileName の値は対象ビジネス サービスのエンドポイント URI に追加された相対パスとして使用される。たとえば、エンドポイント URI が file:////apollo/ob/data で、fileName ヘッダを ./foo/bar.xml に設定し、isFilePathtrue に設定している場合、メッセージは /apollo/ob/data/foo/bar.xml に格納される。
  • その名前のファイルがすでに存在する場合、path/filename_random-number.xml の形式で新しい名前が生成される。ここで、random-number0 999999 の整数。

response
この要素は、outbound 変数の場合は読み込み専用。inbound 変数の場合は変更可能。
応答に関する転送固有のメタデータ (転送ヘッダを含む) を指定する。この要素の値は転送プロトコルによって定義される (具体的には、転送 SDK によって定義された ResponseMetaData XML)。したがって、この要素の構造は使用される転送によって異なる。
この要素の転送固有の型については、Oracle Service Bus インストールの以下のディレクトリに用意された該当する転送スキーマを参照。
ORACLE_HOME/osb_10.3/lib/transports/
ここで、ORACLE_HOME は Oracle Service Bus をインストールしたディレクトリを表す。
初期化
URI 要素は以下のように初期化される。
  • outbound 変数の場合は、Oracle Service Bus で受信した応答メッセージの情報を使用して初期化される。
  • inbound 変数の場合は、適切な型の response 要素が作成される。使用される型は転送依存。response 要素は通常は空の要素として初期化されるが、一部の重要な転送ヘッダ (content-typeSOAPAction など) については例外。
標準 HTTP ヘッダの説明については、http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html を参照。
標準 JMS ヘッダの説明については、「JMS パブリック API の付加価値拡張機能」を参照。

注意 : MQ ヘッダ ApplOriginDataApplIdentityDataAccounting Token には Oracle JMS と同等のものがない。

mode
通信スタイルが request (一方向) であるか、request-response (双方向) であるかを指定する。
初期化
inbound 変数、outbound 変数のいずれの場合も、サービスおよびそのサービスの操作 (該当する場合) の情報を使用して初期化される。たとえば、要求のみの操作が呼び出されるとき、mode 要素は request-response ではなく request に設定される。
qualityOfService
この要素は、inbound 変数の場合は読み込み専用。
outbound (パブリッシュ アクションまたはルーティング アクションの発信要求アクション) の場合は変更可能。
メッセージ送信時または受信時に使用するサービスの品質を指定する。有効な値は best-effortexactly-once
  • best-effort では、それぞれの送信で独自のトランザクション コンテキストが定義される (トランザクション対応の転送方式の場合)。

    best-effort では、メッセージ処理の信頼性が低く、重複したメッセージは除去されないが、パフォーマンスは最適化される。

    パブリッシュ アクションの結果としてメッセージが送信されるような場合、送信エラーはすべて省略される。

    ルーティング ノードからメッセージが送信されるような場合、送信エラーは省略されない。
  • exactly-once では、送信が着信トランザクション コンテキストの一部として含まれ (コンテキストが存在し、発信転送がトランザクション対応の場合)、エラーが発生して処理が中断され、関連するエラー ハンドラがトリガされる (ルーティングとパブリッシュのいずれの場合も)。

    exactly-once 品質とは、発信メッセージの送信が開始されるまでは終了エラーが発生しないことを前提として、メッセージが着信から発信へと厳密に 1 回だけ配信されることを示す。
初期化
qualityOfService 要素は、inbound 変数および outbound 変数で以下のように初期化される。
  • inbound 変数の場合、サービス品質 (QoS) は転送方式によって決定される。たとえば、JMS/XA 転送では QoS が「必ず 1 回」となり、HTTP 転送では「ベスト エフォート」となる
  • outbound 変数の場合は、QoS の設定はパブリッシュ時とルーティング時で次のように異なる。

    ルーティング
    - メッセージがルート ノードから別のサービスにルーティングされるとき、QoS は常に inbound コンテキスト変数の値を使用して初期化される。つまり、outbound の QoS は、inbound の QoS が「必ず 1 回」の場合に限り「必ず 1 回」に設定される。それ以外の場合、outbound の QoS は「ベスト エフォート」となる。

    パブリッシュ
    - メッセージがパブリッシュ アクションの結果として別のサービスへとパブリッシュされるとき、サービスの品質 (QoS) は、inbound の設定に関係なく常に「ベスト エフォート」に設定される
retryCount
(outbound のみ)
Oracle Service Bus からメッセージを送信するときの再試行回数を指定する。
retryCount が設定されている場合は、対象サービスのコンフィグレーションに含まれるすべての再試行回数の値がこの設定によりオーバーライドされる。

1メッセージ コンテキスト スキーマは、メッセージ コンテキスト変数の要素の型を指定します。

2この読み込み専用ルールは強制されません。読み込み専用の要素を変更すると予期できない動作が生じることがあります。

security

security 要素の下位要素を表 5-5 に示します。

表 5-5 security 要素の下位要素
下位要素1
説明
transportClient
(inbound のみ、読み込み専用2)
認証された転送レベル ユーザ情報を指定する。ユーザ情報にはユーザ名とオプションの principals が含まれる。principals には 0 個以上の group を含めて、subject が属する group ごとに 1 つの要素を含めることができる。

注意 : subject が匿名の場合、username は "anonymous" であり、group 要素はない。

Oracle Service Bus によって初期化される。inbound の transportClient 要素は読み込み専用。
messageLevelClient
(inbound のみ、読み込み専用2)
認証されたメッセージレベル ユーザ情報を指定する。ユーザ情報にはユーザ名とオプションの principals が含まれる。principals には 0 個以上の group を含めて、subject が属する group ごとに 1 つの要素を含めることができる。

注意 : subject が匿名の場合、username は "anonymous" であり、group 要素はない。

Oracle Service Bus によって初期化される。inbound の messageLevelClient 要素は読み込み専用。
doOutboundWss
(outbound のみ)
Oracle Service Bus は、ルーティング時またはパブリッシュ時にこの要素の値を設定する。
使用頻度の低いデザイン パターンには、この値を false に設定して、プロキシ サービスが発信 WS-Security SOAP エンベロープを自動的に生成しないようにするものもある。
Oracle Service Bus の今後のリリースで、発信 WS-Security を無効化しやすくする方法を提供する予定。
詳細については、『Oracle Service Bus のセキュリティ ガイド』の「メッセージ レベルのセキュリティ」トピックにある「発信 WS-Security の無効化」に関する説明を参照。

1 メッセージ コンテキスト スキーマは、メッセージ コンテキスト変数の要素の型を指定します。

2 この読み込み専用ルールは強制されません。読み込み専用の要素を変更すると予期できない動作が生じることがあります。

関連トピック

『Oracle Service Bus Console の使い方』の「プロキシ サービス : アクション

『Oracle Service Bus Console の使い方』の「プロキシ サービス : メッセージ フロー」にある「ルート ノード アクションの追加」

標準 HTTP ヘッダの説明については、http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html を参照。

標準 JMS ヘッダについては、 http://edocs.bea.com/wls/docs_92/jms/fund.html#jms_features を参照してください。

 


operation 変数

operation 変数は、読み込み専用の変数です。この変数には、プロキシ サービスで呼び出される操作を指定する文字列が格納されます。プロキシ サービスに対する処理が定義されていない場合は、operation 変数が設定されず、null と等価の値が返されます。

Oracle Service Bus では、パフォーマンスを最適化するために operation 変数が inbound 変数の下位要素ではなくスタンドアロン変数として提供されます。処理の計算は、inbound 変数がアクセスされたときではなく、operation 変数が明示的にアクセスされるまで延期されることがあります。

 


fault 変数

fault 変数は、メッセージ処理中に発生したすべてのエラーに関する情報を保持するために使用します。エラーが発生すると、この変数に情報が格納されてから、適切なエラー ハンドラが呼び出されます。

注意 : この変数はエラー ハンドラ パイプラインでのみ定義され、要求パイプラインや応答パイプライン、ルート ノードやブランチ ノードでは設定されません。

fault 変数には、表 5-6 に示す errorCodereasondetails、および location の各下位要素が含まれます。

表 5-6 fault 変数の下位要素
fault 変数の要素
説明1
errorCode
エラー コードを文字列値で指定する。
reason
エラーの説明を格納する。
details
エラーに関連するユーザ定義 XML コンテンツを格納する。
location
エラーが発生したノード、パイプライン、およびステージを指定する。また、エラーがエラー ハンドラ内で発生したかどうかも指定する。以下の下位要素があります。
  • node - エラーが発生したパイプライン、ブランチ、またはルート ノードの名前を示す文字列。
  • pipeline - 該当する場合、エラーが発生したパイプラインの名前を示す文字列。
  • stage - 該当する場合、エラーが発生したステージの名前を示す文字列。
  • error-handler - エラー ハンドラ内でエラーが発生したことを示すブール値。

1 メッセージ コンテキスト スキーマは、メッセージ コンテキスト変数の要素の型を指定します。

fault 変数のコンテンツは、SOAP ベースのプロキシ サービスからの返信時にエラーを生成しやすいよう、SOAP エラーに基づいてモデル化されています。Oracle Service Bus によって生成されるエラー コードの値はシステム エラー コードに対応し、エラー コードの先頭には BEA という文字列が付加されます。

エラーに関連付けられたエラー コードは、fault コンテキスト変数の要素内に表示されます。次の XQuery ステートメントを使用して値にアクセスできます。

$fault/ctx:errorCode/text()

Oracle Service Bus では、考えられる 3 つのクラスのエラーに対応する 3 つの汎用エラー コードが定義されています。汎用コードの形式は BEA-xxx000 です。ここで、xxx は汎用カテゴリを次のように表します。

これにより、次のように汎用コードが生成されます。

Oracle Service Bus では、特定のエラーを示すユニークなコードが定義されています。次に例を示します。

BEA-382030 - メッセージ解析エラーを示します (SOAP プロキシ サービスが非 SOAP メッセージを受信したなど)。

BEA-382500 - サービス コールアウト アクションが SOAP エラー応答を受信した場合に備えて予約されています。

これらのエラー コードおよびその他の特定のエラー コードについては、『Oracle Service Bus Console の使い方』の「エラー コード」を参照してください。また、「メッセージ フローでのエラー処理」も参照してください。

 


コンテキスト変数の初期化

メッセージ コンテキストとその変数は、メッセージ受信時およびメッセージ処理の開始前にバインディング レイヤで初期化されます。コンテキスト変数を初期化する方法を表 5-7 に示します。

表 5-7 コンテキスト変数の初期化
コンテキスト変数
初期化方法
outbound
ルーティングが行われていないか、エラーが発生していないため、null に初期化される。
outbound 変数は、ルート ノードのルート アクションとパブリッシュ アクションで初期化される。ルーティング ノードの要求アクションとパブリッシュ アクションで (さらに、ルーティング ノードの応答アクションでも) $outbound を変更できる。詳細については、「inbound 変数と outbound 変数」を参照。
outbound の下位要素の初期化については、「inbound 変数と outbound 変数の下位要素」を参照。
fault
inbound
登録されたプロキシ サービスに関する Service Bus メタデータと、特定の受信要求に関する転送レベル メタデータ (転送ヘッダ、認証されたユーザ情報など) から取得したサービス、転送、およびセキュリティの情報で初期化される。
inbound の下位要素の初期化については、「inbound 変数と outbound 変数の下位要素」を参照。
header
着信メッセージのコンテンツを使用して初期化される。初期化の実行方法は、この節の以降のトピックで説明するようにプロキシ サービスのタイプによって異なる。
headerbodyattachments の 3 つの変数は、ルーティングの後に、受信した応答のコンテンツを使用して再初期化される。ルーティングが実行されない場合や、通信モードが要求のみの場合、これらの変数は再初期化されない。つまり、これらの変数のコンテンツはクリアされない。
body
attachments
operation

attachments コンテキスト変数の初期化

attachments コンテキスト変数は、メッセージに含まれるすべての MIME 添付ファイルで初期化されますが、メイン メッセージを表す部分は含まれません (SOAP、XML、MFL など形式を問わず)。各 <attachment> 要素は、MIME パッケージの各部分に伴う MIME ヘッダを使用して初期化されます。

<attachment><body> 要素のコンテンツは、添付の Content-Type に応じて以下のいずれかになります。

header、body コンテキスト変数の初期化

この節では、コンテキスト変数 header および body の初期化が行われる方法について説明します。これらの変数の初期化方法は、プロキシ サービスのタイプが SOAP サービスXML サービス (非 SOAP)メッセージング サービスのいずれであるかによって異なります。

SOAP サービス

SOAP ベースのサービスへのメッセージは、<soap:Envelope> 要素に含まれる XML を含む SOAP メッセージです。添付を含むメッセージの場合、着信メッセージのコンテンツは、SOAP エンベロープをその一部として (通常は最初の部分、または最上位の Content-Type ヘッダで指定される部分) 含む MIME パッケージです。コンテキスト変数は以下のように初期化されます。

XML サービス (非 SOAP)

XML ベースのサービスへのメッセージは XML ですが、プロキシ サービス コンフィグレーションで許可された型を使用できます。添付を含むメッセージの場合、着信メッセージのコンテンツは、プライマリ XML ペイロードをその一部として (通常は最初の部分、または最上位の Content-Type ヘッダで指定される部分) 含む MIME パッケージです。

コンテキスト変数は以下のように初期化されます。

メッセージング サービス

メッセージング サービスは、あるデータ型のメッセージを受信し、応答として別のデータ型のメッセージを返すことができるサービスです。サポートされるデータ型は、XML、MFL、テキスト、または型なしバイナリです。コンテキスト変数は以下のように初期化されます。

 


コンテキスト変数に対する操作の実行

メッセージ コンテキストに対する対話および操作は、プロキシ サービスを定義するパイプライン、ブランチ、またはルート ノードでのアクションを通じて行います。ほとんどのアクションについては、それを実行するための XQuery 言語がエクスポーズされています。各コンテキスト変数は、同じ名前の XQuery 変数として表されます。たとえば、header 変数は、XQuery では $header としてアクセスでき、body 変数は $body としてアクセスできます。この節の例では、XQuery を使用してコンテキスト変数に対するチェックおよび操作を行っています。

$body

$body 変数は <soap-env:Body>...</soap-env:Body> 要素を含みます。(プロキシ サービスが SOAP 1.2 の場合、body 変数には SOAP 1.2 Body 要素が格納されます)。

たとえば、割り当てアクションを使用して body コンテキスト変数にデータを割り当てた場合、<soap-env:Body> 要素でデータをラップする必要があります。つまり、コンテキスト変数内に <soap-env:Body> 要素を含めることによって SOAP パッケージを構築します。

Oracle Service Bus のこの動作には例外があります。サービス コールアウト アクションの要求ドキュメント変数を作成する場合です。この場合、サービス コールアウト アクションはコアのペイロード (RPC パラメータ、ドキュメントなど) を処理の対象とし、Oracle Service Bus はコアのペイロードに基づいて SOAP パッケージを構築します。つまり、サービス コールアウト アクションの要求ドキュメント変数をコンフィグレーションするときには、入力ドキュメントを <soap-env:Body>...</soap-env:Body> でラップしません。

サービス コールアウト アクションのコンフィグレーションの詳細については、『Oracle Service Bus Console の使い方』の「プロキシ サービス : アクション」を参照してください。

$header

$header 変数は <soap-env:Header>...</soap-env:Header> 要素を含みます。(プロキシ サービスが SOAP 1.2 の場合、header 変数には SOAP 1.2 Header 要素が格納されます)。

たとえば、 割り当てアクションを使用して header コンテキスト変数にデータを割り当てた場合、<soap-env:Header> 要素でデータをラップする必要があります。つまり、コンテキスト変数内に <soap-env:Header> 要素を含めることによって SOAP パッケージを構築します。これは、サービス コールアウト要求の 1 つまたは複数の SOAP ヘッダを設定できる場合を含め、$header のすべての操作に該当します。サービス コールアウト アクションの SOAP ヘッダのコンフィグレーションの詳細については、『Oracle Service Bus Console の使い方』の「プロキシ サービス : アクション」を参照してください。

WS-Addressing ヘッダ (From) を抽出する

$header/wsa:From

非 SOAP メッセージからペイロードを抽出する

$body/*

発信応答メッセージからユーザヘッダを抽出する

$outbound/ctx:transport/ctx:response/tp:user-header[@name='myheader']/@value

SOAP サービスへのサービス コールアウト内の要求パラメータに使用する body 入力変数を作成する場合、soap-env:Body ラッパを削除するために、body/* を使用してその変数のコンテンツを定義します ($body を使用すると、soap-env:Body ラッパが保持されます)。

サービス コールアウト内の要求パラメータの変数コンテンツを割り当てる

$body/*

関連トピック

XQuery エディタおよび XPath エディタを使用したコンテキスト変数の処理の詳細については、以下を参照してください。

 


送信するメッセージの作成

Oracle Service Bus によってメッセージがパブリッシュまたはルーティングされるときに、メッセージ コンテキストの変数の値を使用してメッセージのコンテンツが作成されます。たとえば、転送ヘッダと転送固有のメタデータは、$outbound/transport/request から取得されます。コンテキストの初期化と同様に、発信メッセージのメッセージ コンテンツはターゲット サービスのタイプに応じて異なって処理されます。以下のトピックで説明されているように、発信メッセージ コンテンツの作成方法はターゲット サービスのタイプによって異なります。

SOAP サービス

送信 SOAP メッセージは、header 変数と body 変数のコンテンツを <soap:Envelope> 要素でラップして作成します。呼び出されたサービスが SOAP 1.2 サービスの場合、作成されるエンベロープは SOAP 1.2 エンベロープです。呼び出されたサービスが SOAP 1.1 サービスの場合、作成されるエンベロープは SOAP 1.1 エンベロープです。body 変数に参照 XML コードが格納されている場合、メッセージは現状のまま送信されます。つまり、参照されているコンテンツはメッセージに追加されません。

attachments 変数で添付が定義されている場合は、メイン メッセージと添付データから MIME パッケージが作成されます。各添付部分のコンテンツの処理方法は、メッセージング サービスのコンテンツの処理方法に類似しています。

XML サービス (非 SOAP)

Oracle Service Bus の XML ベースのサービスへのメッセージは、body 変数のコンテンツから作成されます。

含まれているデータのタイプに関わらず、header 変数は発信メッセージにコンテンツを提供しません。

サービス コールアウト アクションのメッセージの作成方法を示す例については、『Oracle Service Bus Console の使い方』の「プロキシ サービス : アクション」を参照してください。

メッセージング サービス

Oracle Service Bus のメッセージング サービスへのメッセージは、body 変数のコンテンツから作成されます。

含まれているデータのタイプに関わらず、header 変数は発信メッセージにコンテンツを提供しません。

サービス コールアウト アクションのメッセージの作成方法を示す例については、『Oracle Service Bus Console の使い方』の「プロキシ サービス : アクション」を参照してください。

電子メール メッセージでのバイナリ コンテンツの送信について

バイナリ メッセージの場合、Oracle Service Bus では body 変数にメッセージ コンテンツは挿入されません。代わりに、<binary-content/> 参照要素が作成され <SOAP:Body> 要素に挿入されます (「メッセージ関連の変数」を参照)。ただし、電子メール規格では、バイナリ コンテンツ タイプをメッセージの主要な部分として送信することがサポートされていません。テキストまたは XML のドキュメントと任意の添付を受信するメッセージング サービスに、電子メールでバイナリ メッセージを送信する場合は、以下の手順に従います。

  1. バイナリ コンテンツ参照 XML を $body から $attachments に変更します。
  2. $body のコンテンツを <SOAP:Body> 要素でラップされたテキストまたは XML に置き換えます。

送信メッセージのタイプが MFL の場合は、$body のコンテンツが、MFL トランスフォーメーションに基づいて XML からテキストまたはバイナリに変換されます。

バイナリ コンテンツの処理方法の詳細については、「body 変数と attachments 変数内のバイナリ コンテンツ」を参照してください。

関連トピック

メッセージ コンテキスト スキーマ

Oracle Service Bus の使い方の

 


メッセージ コンテキスト スキーマ

メッセージ コンテキスト変数の型を指定するメッセージ コンテキスト スキーマ (MessageContext.xsd) は、「Message Context.xsd」で示されます。

メッセージ コンテキスト変数を操作する場合、JAR ファイル (ORACLE_HOME/osb_10.3/lib/sb-schemas.jar) に用意された MessageContext.xsd と、次の場所にある転送固有のスキーマを参照する必要があります。

ORACLE_HOME/osb_10.3/lib/transports/

ここで、ORACLE_HOME は Oracle Service Bus をインストールしたディレクトリを表す。

Message Context.xsd

<schema targetNamespace="http://www.bea.com/wli/sb/context"
xmlns:mc="http://www.bea.com/wli/sb/context"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<!--============================================================== -->

<!-- コンテキスト変数 'fault' はこの要素のインスタンスです -->
<element name="fault" type="mc:FaultType"/>

<!-- コンテキスト変数 'inbound' と 'outbound' は、この要素のインスタンスです -->
<element name="endpoint" type="mc:EndpointType"/>

<!-- 'inbound' 変数と 'outbound' 変数内の 3 つの下位要素 -->
<element name="service" type="mc:ServiceType"/>
<element name="transport" type="mc:TransportType"/>
<element name="security" type="mc:SecurityType"/>

<!-- コンテキスト変数 'attachments' はこの要素のインスタンスです -->
<element name="attachments" type="mc:AttachmentsType"/>

<!-- 'attachments' 変数の各添付は、この要素のインスタンスによって表されます -->
<element name="attachment" type="mc:AttachmentType"/>

<!-- バイナリ ペイロードと参照渡しコンテンツを表すために使用する要素 -->
<element name="binary-content" type="mc:BinaryContentType"/>

<!-- =================================================================== -->

<!-- スキーマ タイプ -->
<complexType name="AttachmentsType">
<sequence>
<!-- 'attachments' 変数は、単なる一連の添付要素です -->
<element ref="mc:attachment" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>

<complexType name="AttachmentType">
<all>
<!-- 添付に関連付けられた一連の MIME ヘッダ -->
<element name="Content-ID" type="string" minOccurs="0"/>
<element name="Content-Type" type="string" minOccurs="0"/>
<element name="Content-Transfer-Encoding" type="string" minOccurs="0"/>
<element name="Content-Description" type="string" minOccurs="0"/>
<element name="Content-Location" type="string" minOccurs="0"/>
<element name="Content-Disposition" type="string" minOccurs="0"/>

<!-- 添付コンテンツ自体をインラインで指定するか、または <binary-content/> として指定します -->
<element name="body" type="anyType"/>
</all>
</complexType>

<complexType name="BinaryContentType">
<!-- バイナリまたは参照渡しペイロードへの URI 参照 -->
<attribute name="ref" type="anyURI" use="required"/>
</complexType>

<!-- =================================================================== -->

<complexType name="EndpointType">
<all>
<!-- エンドポイントのサービス、転送、およびセキュリティの詳細を保持する下位要素 -->
<element ref="mc:service" minOccurs="0" />
<element ref="mc:transport" minOccurs="0" />
<element ref="mc:security" minOccurs="0" />
</all>

<!-- このエンドポイントによって表されるサービスの完全限定名 -->
<attribute name="name" type="string" use="required"/>
</complexType>

<!-- =================================================================== -->

<complexType name="ServiceType">
<all>
<!-- サービス プロバイダの名前 -->
<element name="providerName" type="string" minOccurs="0"/>

<!-- 呼び出されるサービス処理 -->
<element name="operation" type="string" minOccurs="0"/>
</all>
</complexType>

<!-- =================================================================== -->

<complexType name="TransportType">
<all>
<!-- エンドポイントの URI -->
<element name="uri" type="anyURI" minOccurs="0" />

<!-- 要求および応答に関する転送固有のメタデータ (転送ヘッダを含む) -->
<element name="request" type="anyType" minOccurs="0"/>
<element name="response" type="anyType" minOccurs="0" />

<!-- 一方向 (要求のみ) または双方向 (要求/応答) の通信を指定します -->
<element name="mode" type="mc:ModeType" minOccurs="0" />

<!-- サービスの品質を指定します -->
<element name="qualityOfService" type="mc:QoSType" minOccurs="0" />

<!-- 再試行の値 (発信のみ) -->
<element name="retryInterval" type="integer" minOccurs="0" />
<element name="retryCount" type="integer" minOccurs="0" />
</all>
</complexType>

<simpleType name="ModeType">
<restriction base="string">
<enumeration value="request"/>
<enumeration value="request-response"/>
</restriction>
</simpleType>

<simpleType name="QoSType">
<restriction base="string">
<enumeration value="best-effort"/>
<enumeration value="exactly-once"/>
</restriction>
</simpleType>

<!-- =================================================================== -->

<complexType name="SecurityType">
<all>
<!-- 転送レベルのクライアント情報 (着信のみ) -->
<element name="transportClient" type="mc:SubjectType" minOccurs="0"/>

<!-- メッセージ レベルのクライアント情報 (着信のみ) -->
<element name="messageLevelClient" type="mc:SubjectType" minOccurs="0"/>

<!-- 発信 WSS 処理を無効にするために使用するブール型フラグ (発信のみ) -->
<element name="doOutboundWss" type="boolean" minOccurs="0"/>
</all>
</complexType>

<complexType name="SubjectType">
  <sequence>
    <!-- この転送レベルまたはメッセージ レベルのサブジェクトに関連付けられたユーザ名 -->
    <element name="username" type="string"/>
    <element name="principals" minOccurs="0">
     <complexType>
      <sequence>
      <!-- 認証プロバイダによって決まる、このサブジェクトが属する
        各グループの要素 -->
      <element name="group" type="string"
                     minOccurs="0" maxOccurs="unbounded"/>
      </sequence>
     </complexType>


<complexType name="FaultType">
<all>
<!-- エラーを識別する短い文字列 (たとえば BEA38229) -->
<element name="errorCode" type="string"/>

<!-- エラーの理由を説明するテキスト -->
<element name="reason" type="string" minOccurs="0" />

<!-- エラーに関する追加情報 -->
<element name="details" type="anyType" minOccurs="0" />

<!-- プロキシでエラーが発生した場所に関する情報 -->
<element name="location" type="mc:LocationType" minOccurs="0" />
</all>
</complexType>

<complexType name="LocationType">
<all>
<!-- エラーが発生したパイプライン/ブランチ/ルート ノードの名前 -->
<element name="node" type="string" minOccurs="0" />

<!-- エラーが発生したパイプラインの名前 (該当する場合) -->
<element name="pipeline" type="string" minOccurs="0" />

<!-- エラーが発生したステージの名前 (該当する場合) -->
<element name="stage" type="string" minOccurs="0" />

<!-- エラー ハンドラ内でエラーが発生したかどうかを示す -->
<element name="error-handler" type="boolean" minOccurs="0" />
</all>
</complexType>
    <!-- エラーの <details> に追加されるスタック トレースをカプセル化する -->
<element name="stack-trace" type="string"/>
</schema>

関連トピック

inbound 変数と outbound 変数

コンテキスト変数に対する操作の実行

送信するメッセージの作成


  ページの先頭       前  次