21.6. WS-RM 지속성 구성
21.6.1. 개요
이 장에 이미 설명된 Apache CXF WS-RM 기능은 네트워크 실패와 같은 경우에 대한 신뢰성을 제공합니다. WS-RM 지속성은 RM 소스 또는 RM 대상 충돌과 같은 다른 유형의 실패에 걸쳐 안정성을 제공합니다.
WS-RM 지속성에는 다양한 RM 엔드포인트의 상태를 영구 스토리지에 저장하는 작업이 포함됩니다. 이를 통해 엔드포인트가 다시 시작될 때 계속 메시지를 보내고 받을 수 있습니다.
Apache CXF는 구성 파일에서 WS-RM 지속성을 활성화합니다. 기본 WS-RM 지속성 저장소는 JDBC 기반입니다. 편의를 위해 Apache CXF에는 기본 제공 배포를 위한 Derby가 포함되어 있습니다. 또한 Java API를 사용하여 영구 저장소도 노출됩니다. 자체 지속성 메커니즘을 구현하기 위해 기본 DB와 함께 이 API를 사용하여 하나를 구현할 수 있습니다.
WS-RM 지속성은 oneway 호출에만 지원되며 기본적으로 비활성화되어 있습니다.
21.6.2. 작동 방식
Apache CXF WS-RM 지속성은 다음과 같이 작동합니다.
- RM 소스 끝점에서 전송 전에 발신 메시지가 유지됩니다. 승인이 수신된 후 영구 저장소에서 제거됩니다.
- 충돌에서 복구한 후 모든 메시지가 승인될 때까지 지속된 메시지를 복구하고 다시 전송합니다. 이 시점에서 RM 시퀀스가 닫힙니다.
- RM 대상 끝점에서 들어오는 메시지가 유지되고 성공적으로 저장되면 승인이 전송됩니다. 메시지를 성공적으로 디스패치하면 영구 저장소에서 제거됩니다.
- 충돌에서 복구한 후 지속적인 메시지를 복구하고 디스패치합니다. 또한 새 메시지가 수락, 승인 및 전달되는 상태로 RM 시퀀스를 제공합니다.
21.6.3. WS-persistence 활성화
WS-RM 지속성을 활성화하려면 WS-RM용 영구 저장소를 구현하는 오브젝트를 지정해야 합니다. 직접 개발하거나 Apache CXF와 함께 제공되는 JDBC 기반 저장소를 사용할 수 있습니다.
예 21.14. “기본 WS-RM Persistence 저장소에 대한 구성” 에 표시된 구성은 Apache CXF와 함께 제공되는 JDBC 기반 저장소를 활성화합니다.
예 21.14. 기본 WS-RM Persistence 저장소에 대한 구성
<bean id="RMTxStore" class="org.apache.cxf.ws.rm.persistence.jdbc.RMTxStore"/> <wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager"> <property name="store" ref="RMTxStore"/> </wsrm-mgr:rmManager>
21.6.4. WS-persistence 구성
Apache CXF와 함께 제공되는 JDBC 기반 저장소는 표 21.4. “JDBC 저장소 속성” 에 표시된 속성을 지원합니다.
특성 이름 | 유형 | 기본 설정 |
---|---|---|
|
| |
| null | |
| null | |
| jdbc:derby:rmdb;create=true |
예 21.15. “WS-RM Persistence용 JDBC 저장소 구성” 에 표시된 설정을 사용하면 Apache CXF와 함께 제공되는 JDBC 기반 저장소를 드라이버
ClassName 및 url
을 기본값이 아닌 값으로 설정할 수 있습니다.
예 21.15. WS-RM Persistence용 JDBC 저장소 구성
<bean id="RMTxStore" class="org.apache.cxf.ws.rm.persistence.jdbc.RMTxStore"> <property name="driverClassName" value="com.acme.jdbc.Driver"/> <property name="url" value="jdbc:acme:rmdb;create=true"/> </bean>