21.5.3. WS-RM 구성 사용 사례
21.5.3.1. 개요
이 하위 섹션에서는 사용 사례 관점에서 WS-RM 속성을 구성하는 데 중점을 둡니다. 속성이 http://schemas.xmlsoap.org/ws/2005/02/rm/policy/ 네임스페이스에 정의된 표준 WS-RM 정책 특성인 경우 rmManager
Spring 빈 내의 RMAssertion
에서 설정하는 예제만 표시됩니다. 기능 내에서 정책과 같은 속성을 설정하는 방법에 대한 자세한 내용은 WSDL 파일 또는 외부 연결에서 참조하십시오. 21.5.2절. “표준 WS-RM 정책 속성 구성”
다음 사용 사례에 대해 설명합니다.
21.5.3.2. 기본 재전송 간격
BaseRetransmissionInterval
요소는 RM 소스가 아직 확인되지 않은 메시지를 다시 전송하는 간격을 지정합니다. http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd 스키마 파일에 정의되어 있습니다. 기본값은 3000밀리초입니다.
예 21.8. “WS-RM 기본 재전송 간격 설정” WS-RM 기본 재전송 간격을 설정하는 방법을 보여줍니다.
예 21.8. WS-RM 기본 재전송 간격 설정
<beans xmlns:wsrm-policy="http://schemas.xmlsoap.org/ws/2005/02/rm/policy ...> <wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager"> <wsrm-policy:RMAssertion> <wsrm-policy:BaseRetransmissionInterval Milliseconds="4000"/> </wsrm-policy:RMAssertion> </wsrm-mgr:rmManager> </beans>
21.5.3.3. 다시 전송 시 지수 백오프
ExponentialBackoff
요소는 검증되지 않은 메시지에 대한 연속 재전송 시도가 지수 간격으로 수행되는지 여부를 결정합니다.
ExponentialBackoff
요소의 존재로 인해 이 기능을 사용할 수 있습니다. 기본적으로 2
의 지수 백오프 비율이 사용됩니다. ExponentialBackoff
는 플래그입니다. 요소가 있으면 exponential 백오프가 활성화됩니다. 요소가 없으면 exponential 백오프가 비활성화됩니다. 값이 필요하지 않습니다.
예 21.9. “WS-RM Exponential Backoff 속성 설정” 는 재전송을 위해 WS-RM exponential 백오프를 설정하는 방법을 보여줍니다.
예 21.9. WS-RM Exponential Backoff 속성 설정
<beans xmlns:wsrm-policy="http://schemas.xmlsoap.org/ws/2005/02/rm/policy ...> <wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager"> <wsrm-policy:RMAssertion> <wsrm-policy:ExponentialBackoff/> </wsrm-policy:RMAssertion> </wsrm-mgr:rmManager> </beans>
21.5.3.4. 승인 간격
AcknowledgementInterval
요소는 WS-RM 대상이 비동기 승인을 보내는 간격을 지정합니다. 이는 수신 메시지의 수신 시 보내는 동기 확인에도 추가됩니다. 기본 비동기 승인 간격은 0
밀리초입니다. 즉, AcknowledgementInterval
이 특정 값으로 구성되지 않은 경우 승인은 즉시 전송됩니다(즉, 첫 번째 사용 가능한 기회에서).
비동기 승인은 다음 두 조건이 모두 충족되는 경우에만 RM 대상에 의해 전송됩니다.
-
RM 대상은 비익명
wsrm:acksTo
끝점을 사용합니다. - 승인 간격이 만료되기 전에 응답 메시지에 대한 승인이 발생하지 않습니다.
예 21.10. “WS-RM 인식 간격 설정” 는 WS-RM 승인 간격을 설정하는 방법을 보여줍니다.
예 21.10. WS-RM 인식 간격 설정
<beans xmlns:wsrm-policy="http://schemas.xmlsoap.org/ws/2005/02/rm/policy ...> <wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager"> <wsrm-policy:RMAssertion> <wsrm-policy:AcknowledgementInterval Milliseconds="2000"/> </wsrm-policy:RMAssertion> </wsrm-mgr:rmManager> </beans>
21.5.3.5. 확인되지 않은 최대 메시지 임계값
maxUnacknowledged
특성은 시퀀스가 종료되기 전에 시퀀스당 누적할 수 있는 최대 메시지 수를 설정합니다.
예 21.11. “WS-RM Maximum Unackledged Message Threshold 설정” WS-RM 최대 확인되지 않은 메시지 임계값을 설정하는 방법을 보여줍니다.
예 21.11. WS-RM Maximum Unackledged Message Threshold 설정
<beans xmlns:wsrm-mgr="http://cxf.apache.org/ws/rm/manager ...> <wsrm-mgr:reliableMessaging> <wsrm-mgr:sourcePolicy> <wsrm-mgr:sequenceTerminationPolicy maxUnacknowledged="20" /> </wsrm-mgr:sourcePolicy> </wsrm-mgr:reliableMessaging> </beans>
21.5.3.6. RM 시퀀스의 최대 길이
maxLength
속성은 WS-RM 시퀀스의 최대 길이를 설정합니다. 기본값은 0
이며, 이는 WS-RM 시퀀스의 길이가 바인딩되지 않음을 의미합니다.
이 속성이 설정되면 RM 끝점이 제한에 도달하면 새 RM 시퀀스를 생성하고 이전에 보낸 메시지에 대한 모든 승인을 받습니다. 새 메시지는 newsequence를 사용하여 전송됩니다.
예 21.12. “WS-RM 메시지 시퀀스의 최대 길이 설정” RM 시퀀스의 최대 길이를 설정하는 방법을 보여줍니다.
예 21.12. WS-RM 메시지 시퀀스의 최대 길이 설정
<beans xmlns:wsrm-mgr="http://cxf.apache.org/ws/rm/manager ...> <wsrm-mgr:reliableMessaging> <wsrm-mgr:sourcePolicy> <wsrm-mgr:sequenceTerminationPolicy maxLength="100" /> </wsrm-mgr:sourcePolicy> </wsrm-mgr:reliableMessaging> </beans>
21.5.3.7. 메시지 전달 보장 정책
다음과 같은 전달 보장 정책을 사용하도록 RM 대상을 구성할 수 있습니다.
-
At mostOnce
- RM 대상은 한 번만 애플리케이션 목적지로 메시지를 전달합니다. 메시지가 두 번 이상 발생하는 경우 오류가 발생합니다. 시퀀스의 일부 메시지가 전달되지 않을 수 있습니다. -
AtLeastOnce
- RM 대상은 적어도 한 번 이상 애플리케이션 대상으로 메시지를 전달합니다. 전송된 모든 메시지가 전송되거나 오류가 발생합니다. 일부 메시지는 한 번 이상 배달될 수 있습니다. -
InOrder
- RM 대상은 전송된 순서대로 애플리케이션 대상에 메시지를 전달합니다. 이 전달 보장은 At mostOnce 또는
보증과 결합할 수 있습니다.AtLeastOnce
예 21.13. “WS-RM 메시지 전달 보장 정책 설정” 는 WS-RM 메시지 전달 보증을 설정하는 방법을 보여줍니다.
예 21.13. WS-RM 메시지 전달 보장 정책 설정
<beans xmlns:wsrm-mgr="http://cxf.apache.org/ws/rm/manager ...> <wsrm-mgr:reliableMessaging> <wsrm-mgr:deliveryAssurance> <wsrm-mgr:AtLeastOnce /> </wsrm-mgr:deliveryAssurance> </wsrm-mgr:reliableMessaging> </beans>