Red Hat Training

A Red Hat training course is available for Red Hat Fuse

21.5.2. 표준 WS-RM 정책 속성 구성

21.5.2.1. 개요

다음 방법 중 하나로 표준 WS-RM 정책 속성을 구성할 수 있습니다.

21.5.2.2. WS-Policy RMAsertion Children

표 21.3. “WS-Policy RMAsertion Element의 하위 항목” http://schemas.xmlsoap.org/ws/2005/02/rm/policy 네임스페이스에 정의된 요소를 표시합니다.

표 21.3. WS-Policy RMAsertion Element의 하위 항목

이름설명

InactivityTimeout

비활성으로 인해 RM 시퀀스를 종료하기 전에 메시지를 수신하지 않고 전달해야 하는 시간을 지정합니다.

BaseRetransmissionInterval

지정된 메시지에 대해 RM Source가 승인을 받아야 하는 간격을 설정합니다. BaseRetransmissionInterval 에 의해 설정된 시간 내에 승인이 수신되지 않으면 RM Source가 메시지를 다시 전송합니다.

ExponentialBackoff

일반적으로 알려진 지수 백오프 알고리즘(Tanenbaum)을 사용하여 재전송 간격이 조정됨을 나타냅니다.

자세한 내용은 Computer Networks, Andrew S. Tanenbaum, Prentice Hall PTR, 2003을 참조하십시오.

AcknowledgementInterval

WS-RM에서 승인은 반환 메시지로 전송되거나 독립형으로 전송됩니다. 반환 메시지를 사용하여 승인을 보낼 수 없는 경우 RM Destination은 독립형 승인을 보내기 전에 승인 간격까지 기다릴 수 있습니다. 확인되지 않은 메시지가 없으면 RM Destination은 승인 메시지를 보내지 않도록 선택할 수 있습니다.

21.5.2.3. 자세한 참조 정보

각 요소의 하위 요소 및 특성에 대한 설명을 포함한 자세한 참조 정보는 http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd 에서 참조하십시오.

21.5.2.4. rmManager Spring bean의 RMAsertion

Apache CXF rmManager Spring bean에 RMAssertion 을 추가하여 표준 WS-RM 정책 속성을 구성할 수 있습니다. 동일한 구성 파일에 모든 WS-RM 구성을 유지하려면 이 방법이 가장 좋습니다. 즉, 동일한 파일에서 Apache CXF 특정 속성과 표준 WS-RM 정책 속성을 구성하려면 가장 좋은 방법입니다.

예를 들어 예 21.5. “rmManager Spring Bean에서 RMAssertion을 사용하여 WS-RM 속성 구성” 의 구성은 다음과 같습니다.

  • rmManager Spring 빈 내에서 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.5.2.5. 기능 내에서 정책

예 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>

21.5.2.6. WSDL 파일

WS-Policy 프레임워크를 사용하여 WS-RM을 활성화하는 경우 WSDL 파일에서 표준 WS-RM 정책 속성을 구성할 수 있습니다. 이 방법은 서비스에서 기타 정책 인식 웹 서비스 스택에 배포된 소비자와 함께 WS-RM을 원활하게 사용하고자 하는 경우에 적합합니다.

예를 들어, “WS-Policy 프레임워크: 암시적으로 인터셉터 추가” 기본 재전송 간격이 WSDL 파일에 구성된 위치를 참조하십시오.

21.5.2.7. 외부 첨부 파일

외부 연결 파일에서 표준 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>/