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 저장소 속성” 에 표시된 속성을 지원합니다.

표 21.4. JDBC 저장소 속성

특성 이름유형기본 설정

driverClassName

문자열

org.apache.derby.jdbc.EmbeddedDriver

userName

문자열

null

passWord

문자열

null

url

문자열

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>