Menu Close
21.5.2. 標準の WS-RM ポリシー属性の設定
概要
標準の WS-RM ポリシー属性は、以下のいずれかの方法で設定できます。
WS-Policy RMAssertion の子
表21.3「WS-Policy RMAssertion 要素の子」に、http://schemas.xmlsoap.org/ws/2005/02/rm/policy
namespace で定義された要素を示します。
表21.3 WS-Policy RMAssertion 要素の子
名前 | 説明 |
---|---|
| RM シーケンスが非アクティブであるため、シーケンスが終了しているとエンドポイントが判断する前に、メッセージを受信せずに経過する必要がある時間を指定します。 |
|
RMソースが特定のメッセージに対する確認応答を受け取る必要がある間隔を設定します。 |
| 再送信間隔が一般的に知られている指数バックオフアルゴリズム (Tanenbaum) を使用して調整されることを示します。 詳細は、Computer Networks, Andrew S. Tanenbaum, Prentice Hall PTR, 2003 を参照してください。 |
| WS-RM では、確認応答は返信メッセージと共に、またはスタンドアロンで送信されます。返信メッセージで確認応答を送信できない場合、RM 宛先は、スタンドアロンの確認応答を送信する前に、最長で確認応答の間隔を待機できます。未確認メッセージがない場合、RM 宛先は確認応答を送信しないことを選択できます。 |
より詳細な参考情報
各要素のサブ要素と属性の説明など、より詳細な参考情報は、http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd を参照してください。
rmManager Spring Bean の RMAssertion
Apache CXF rmManager
Spring Bean に RMAssertion
を追加して、標準の WS-RM ポリシー属性を設定できます。すべての WS-RM 設定を同じ設定ファイルに維持したい場合 (つまり、Apache CXF 固有の属性と標準の WS-RM ポリシー属性を同じファイルに設定する必要がある場合)、これが最適な方法です。
たとえば、例21.5「rmManager Spring Bean の RMAssertion を使用した WS-RM 属性の設定」の設定は以下を示しています。
-
rmManager
Spring Bean 内のRMAssertion
を使用して設定された標準の WS-RM ポリシー属性BaseRetransmissionInterval
。 -
同じ設定ファイルに設定された Apache CXF 固有の RM 属性
intraMessageThreshold
。
例21.5 rmManager Spring Bean の RMAssertion を使用した WS-RM 属性の設定
<beans xmlns:wsrm-policy="http://schemas.xmlsoap.org/ws/2005/02/rm/policy" xmlns:wsrm-mgr="http://cxf.apache.org/ws/rm/manager" ...> <wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager"> <wsrm-policy:RMAssertion> <wsrm-policy:BaseRetransmissionInterval Milliseconds="4000"/> </wsrm-policy:RMAssertion> <wsrm-mgr:destinationPolicy> <wsrm-mgr:acksPolicy intraMessageThreshold="0" /> </wsrm-mgr:destinationPolicy> </wsrm-mgr:rmManager> </beans>
機能内のポリシー
例21.6「機能内でのポリシーとしての WS-RM 属性の設定」に示すように、機能内の標準 WS-RM ポリシー属性を設定できます。
例21.6 機能内でのポリシーとしての WS-RM 属性の設定
<xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsa="http://cxf.apache.org/ws/addressing" xmlns:wsp="http://www.w3.org/2006/07/ws-policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation=" http://www.w3.org/2006/07/ws-policy http://www.w3.org/2006/07/ws-policy.xsd http://cxf.apache.org/ws/addressing http://cxf.apache.org/schema/ws/addressing.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <jaxws:endpoint name="{http://cxf.apache.org/greeter_control}GreeterPort" createdFromAPI="true"> <jaxws:features> <wsp:Policy> <wsrm:RMAssertion xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"> <wsrm:AcknowledgementInterval Milliseconds="200" /> </wsrm:RMAssertion> <wsam:Addressing xmlns:wsam="http://www.w3.org/2007/02/addressing/metadata"> <wsp:Policy> <wsam:NonAnonymousResponses/> </wsp:Policy> </wsam:Addressing> </wsp:Policy> </jaxws:features> </jaxws:endpoint> </beans>
WSDL ファイル
WS-Policy フレームワークを使用して WS-RM を有効にする場合、WSDL ファイルで標準 WS-RM ポリシー属性を設定できます。サービスを相互運用して、他のポリシー対応の Web サービススタックにデプロイされたコンシューマーと WS-RM をシームレスに使用する場合、この手法が適しています。
「WS-Policy フレームワーク: インターセプターの暗黙的な追加」の例を参照してください。ここでは、ベースの再送信間隔が WSDL ファイルで設定されます。
外部添付
外部の添付ファイルで、標準の WS-RM ポリシー属性を設定できます。WSDL ファイルを変更できない場合や変更したくない場合、この手法が適しています。
例21.7「外部添付での WS-RM の設定」は、特定の EPR で WS-A および WS-RM (30 秒のベース再送信間隔) の両方を有効にする外部添付を示しています。
例21.7 外部添付での WS-RM の設定
<attachments xmlns:wsp="http://www.w3.org/2006/07/ws-policy" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsp:PolicyAttachment> <wsp:AppliesTo> <wsa:EndpointReference> <wsa:Address>http://localhost:9020/SoapContext/GreeterPort</wsa:Address> </wsa:EndpointReference> </wsp:AppliesTo> <wsp:Policy> <wsam:Addressing xmlns:wsam="http://www.w3.org/2007/02/addressing/metadata"> <wsp:Policy/> </wsam:Addressing> <wsrmp:RMAssertion xmlns:wsrmp="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"> <wsrmp:BaseRetransmissionInterval Milliseconds="30000"/> </wsrmp:RMAssertion> </wsp:Policy> </wsp:PolicyAttachment> </attachments>/