21.5. WS-RM 구성
21.5.1. Apache CXF-Specific WS-RM 속성 구성
21.5.1.1. 개요
Apache CXF별 속성을 구성하려면 rmManager
Spring 8080을 사용합니다. 구성 파일에 다음을 추가합니다.
-
네임스페이스 목록에 대한
http://cxf.apache.org/ws/rm/manager
네임스페이스입니다. -
구성하려는 특정 속성에 대한
rmManager
Spring 8080입니다.
예 21.4. “Apache CXF-Specific WS-RM 속성 구성” 간단한 예를 보여줍니다.
예 21.4. Apache CXF-Specific WS-RM 속성 구성
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsrm-mgr="http://cxf.apache.org/ws/rm/manager" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/ws/rm/manager http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd"> ... <wsrm-mgr:rmManager> <!-- ...Your configuration goes here --> </wsrm-mgr:rmManager>
21.5.1.2. rmManager Spring 8080의 하위 항목
표 21.2. “rmManager Spring Cryostat의 하위” http://cxf.apache.org/ws/rm/manager
네임스페이스에 정의된 rmManager
Spring 8080의 하위 요소를 표시합니다.
element | 설명 |
---|---|
|
|
|
적용되어야 하는 전달 보장을 설명하는 |
|
RM 소스의 세부 정보를 구성할 수 있는 |
|
RM 대상에 대한 세부 정보를 구성할 수 있는 |
21.5.1.3. 예
예를 들면 “승인되지 않은 최대 메시지 임계값” 을 참조하십시오.
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
네임스페이스에 정의된 요소를 표시합니다.
이름 | 설명 |
---|---|
| 끝점이 비활성으로 인해 RM 시퀀스를 종료하기 전에 메시지를 수신하지 않고 전달해야 하는 시간을 지정합니다. |
|
지정된 메시지에 대해 RM 소스에서 승인을 받아야 하는 간격을 설정합니다. |
| 일반적으로 알려진 지수 백오프 알고리즘(Tanenbaum)을 사용하여 재전송 간격이 조정됨을 나타냅니다. 자세한 내용은 Computer Networks, Andrew S. Tanenbaum, Prentice Hall PTR, 2003을 참조하십시오. |
| 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 8080의 RMAssertion
Apache CXF rmManager
Spring Ignition 내에 RMAssertion
을 추가하여 표준 WS-RM 정책 속성을 구성할 수 있습니다. 모든 WS-RM 구성을 동일한 구성 파일에 유지하려면, 즉, Apache CXF별 속성 및 표준 WS-RM 정책 속성을 동일한 파일에 구성하려면 이 방법이 가장 좋습니다.
예를 들어 예 21.5. “rmManager Spring Cryostat에서 RMAssertion을 사용하여 WS-RM 속성 구성” 의 구성은 다음과 같습니다.
-
rmManager
Springans 내의RMAssertion
을 사용하여 구성된 표준 WS-RM 정책 속성BaseRetransmissionInterval
. -
동일한 구성 파일에 구성된 Apache CXF별 RM 속성
intraMessageThreshold
.
예 21.5. rmManager Spring Cryostat에서 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을 상호 운용하고 사용하려면 이 방법이 좋은 방법입니다.
예를 들어 기본 재전송 간격이 WSDL 파일에서 구성된 “WS-Policy 프레임워크: 암시적으로 인터셉터 추가” 를 참조하십시오.
21.5.2.7. 외부 첨부 파일
외부 첨부 파일에서 표준 WS-RM 정책 속성을 구성할 수 있습니다. 이 방법은 WSDL 파일을 변경할 수 없거나 변경할 수 없는 경우 좋은 방법입니다.
예 21.7. “외부 연결에서 WS-RM 구성” 특정 EPR에 대해 WS-A 및 WS-RM(base retransmission interval of 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>/
21.5.3. WS-RM 구성 사용 사례
21.5.3.1. 개요
이 하위 섹션에서는 사용 사례 관점에서 WS-RM 속성을 구성하는 데 중점을 둡니다. 속성이 http://schemas.xmlsoap.org/ws/2005/02/rm/policy/ 네임스페이스에 정의된 표준 WS-RM 정책 속성인 경우 rmManager
Spring 8080 내의 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
는 플래그입니다. 요소가 있으면 지수 백오프가 활성화됩니다. 요소가 없으면 지수 백오프가 비활성화됩니다. 값이 필요하지 않습니다.
예 21.9. “WS-RM 노출 백오프 속성 설정” 재전송을 위해 WS-RM 지수 백오프를 설정하는 방법을 보여줍니다.
예 21.9. 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: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 최대 풀링되지 않은 메시지 임계값 설정” WS-RM 최대 알 수 없는 메시지 임계값을 설정하는 방법을 보여줍니다.
예 21.11. WS-RM 최대 풀링되지 않은 메시지 임계값 설정
<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 대상을 구성할 수 있습니다.
-
RM 대상은 한 번만 애플리케이션 대상에 메시지를 전달합니다.
메시지가 두 번 이상 전달되는 경우 오류가 발생합니다. 시퀀스의 일부 메시지는 전달되지 않을 수 있습니다.
-
AtLeastOnce
- RM 대상은 하나 이상의 애플리케이션 대상에 메시지를 전달합니다. 전송된 모든 메시지가 전달되거나 오류가 발생합니다. 일부 메시지는 두 번 이상 전달될 수 있습니다. -
InOrder
- RM 대상은 전송된 순서대로 애플리케이션 대상에 메시지를 전달합니다. 이 전달 보증은 At CryostatOnce 또는
보증과 결합할 수 있습니다.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>