SIP 세션 복제

일반적인 SIP(Session Initiation Protocol)가 처리되는 동안 발생할 SIP 세션(세션 복제를 수행하려는 경우) 및 대화 상태 정보에 대한 복제 도메인을 설정할 수 있습니다. 일반적으로 SIP 컨테이너는 DRS(Data Multiple Service)를 사용하여 모든 상태 정보를 복제합니다. DRS는 데이터 복제가 완료되는 시기를 확인할 수 있는 방법을 제공하지 않으므로, 수량화할 수 있는 유일한 사항은 상태 정보가 복제 큐에 들어간 시기뿐입니다. 이 주제에서 데이터 복제에 대한 참조는 데이터가 복제 큐에 들어갔음을 의미합니다.

이 태스크 정보

SIP 컨테이너는 몇 가지 다른 유형의 정보를 복제합니다. 이러한 데이터는 두 가지 일반적인 카테고리로 나뉩니다.
  • 대화 상자와 연관된 내부 SIP 컨테이너 상태 정보
  • 다양한 세션 오브젝트와 연관된 애플리케이션 상태 정보

각 카테고리에는 이 주제에서 나중에 설명하는 여러 가지 많은 데이터 유형이 포함됩니다. 각 데이터가 독립적으로 처리됩니다. 따라서 복제를 발생시킨 애플리케이션 세션 오브젝트를 변경하면 어떠한 내부 상태 정보도 복제되지 않습니다.

내부 상태 정보의 복제

내부 상태 정보는 컨테이너가 처리하는 대화 상자의 상태에 관한 어떠한 것으로도 정의할 수 있습니다. cseq, 대화 상자 상태(초기, 조기, 확인됨, 종료됨), 세션 만기, 로컬, 원격 대상 등을 포함합니다. 내부 상태 정보는 대화 상자의 존재에 의해서만 복제됩니다. 따라서 연관된 대화 상자가 설정되기 전에는 내부 SIP 관련 데이터가 복제되지 않습니다. 대화 상자 작성의 원인이 될 수 있는 SIP 요청의 유형은 다음과 같습니다.
  • INVITE
  • SUBSCRIBE
  • REFER
내부 상태 복제는 호출 플로우 내의 잘 정의된 예상 가능한 지점에서 발생합니다. 예를 들어, 앞에서 나열한 메소드 유형 중 하나로 인해 “To”태그가 있는 2xx 응답 또는 1xx 응답이 수신 또는 전송되는 경우 컨테이너에서만 대화 상자가 설정됩니다. 내부 상태 복제를 트리거할 수 있는 이벤트는 다음과 같습니다.
  • 새 SIP 대화 상자의 작성
  • 세션 제한시간으로 인한 세션 만기
  • UAC에 최종 응답 전송
  • 인코딩된 URI 작성
  • 내부 대화 상자 상태 변경을 유발하는 메시지 처리

트랜잭션 상태는 SIP 컨테이너의 WebSphere® Application Server 6.1 버전에서 복제되지 않으며 대화 상자 상태만 복제됩니다. 트랜잭션 상태를 복제하지 않으면 복제 도메인 내의 모든 서버에 대한 로드가 감소하지만 일부 대화 상자 관련 SIP 메시지와 같이 트랜잭션 중간에 발생한 실패에서 문제점이 발생할 수 있습니다.

B2BUA 및 프록시 애플리케이션 간의 중요한 차이는 많은 수의 세션 오브젝트가 작성되고 복제된다는 점입니다. 두 경우 모두 하나의 애플리케이션 세션만이 작성되나 B2BUA의 경우에는 인바운드 레그 및 아웃바운드 레그에 대해 각각 하나씩 두 개의 세션 오브젝트가 작성됩니다. 프록시 애플리케이션의 경우 하나의 세션 오브젝트만 작성됩니다.

애플리케이션 상태 정보의 복제

애플리케이션 상태 정보는 복제할 대화 상자의 존재에 의존하지 않으므로 내부 대화 상자 상태 정보와 다르게 처리됩니다. 애플리케이션 상태는 JSR 116 데이터 구성의 사용을 통해 애플리케이션에 의해 유지보수되는 모든 데이터를 나타냅니다. 다음이 포함됩니다.
  • javax.servlet.sip.SipApplicationSession
  • javax.servlet.sip.SipSession
  • javax.servlet.sip.ServletTimer
  • SipSession 또는 SipApplicationSession에 대해 설정된 모든 속성
내부 상태 복제는 호출 플로우 내의 잘 정의된 예상 가능한 지점에서 발생하는 반면 애플리케이션 상태 복제는 애플리케이션이 작성되는 시기에 따라 결정되며 JSR 116 API를 통해 세션 데이터 및 타이머를 무효화하거나 수정하므로 일반적으로 예상하기 어려운 지점에서 발생합니다. 인바운드 메시지의 처리 또는 SIP 타이머의 만기때문에 발생할 수도 있습니다. 다음은 모두 애플리케이션 관련 세션 데이터 복제를 발생시킬 수 있는 이유입니다.
  • 애플리케이션 세션 오브젝트의 작성
  • SIP 세션 오브젝트의 작성
  • SIP 세션 타이머의 작성
  • setAttribute 또는 removeAttribute를 통해 세션 오브젝트 수정
  • SIP 세션 오브젝트의 무효화
  • 세션 타이머의 만기
  • 1에 대한 미래의 호출 무결성을 위한 것입니다.

애플리케이션이 request.getApplicationSession(true)을 호출하고 addTimer() 및/또는 addAttribute()가 결과 애플리케이션 세션 오브젝트에서 호출되는 경우에 대화 상자를 설정하지 않은 요청에 대해 복제가 발생할 수 있습니다. 타이머가 만기될 때 리스너가 호출될 수 있도록 하기 위해 필요합니다.

SIP 장애 조치(failover) 및 복제 설정 고려사항

복제 및 장애 조치(failover)가 필요한 SIP 클러스터는 각각의 복제 도메인이 SIP 컨테이너 세트를 포함하는 수많은 복제 도메인으로 구성될 수 있습니다. 클러스터 내의 컨테이너 수에 대해서는 제한이 없습니다. 성능상의 이유로, 각 복제 도메인은 두 개의 컨테이너만 포함해야 합니다.

복제 도메인은 전체 도메인으로 설정되어야 합니다. 즉, 복제 도메인 내의 모든 컨테이너에 대해 상태가 복제됩니다. 복제 모드는 클라이언트 및 서버 모두여야 합니다.

컨테이너용 분산 세션은 메모리 대 메모리 복제로 설정되어야 합니다. 세션 복제가 필요한 모든 애플리케이션은 web.xml 및 sip.xml 파일에 <distributable/> 태그를 포함해야 합니다. SIP 및 HTTP 둘 다 동일한 복제 토폴로지를 사용합니다.

[z/OS]시스템이 다음과 같이 구성되었는지 확인하십시오.
  • 시스템이 2개 이상의 제어기를 포함하며, 각 제어기는 장애 조치(failover) 및 복구 용도로 2개 이상의 하위(servant)를 보유합니다.
  • 표준 조작 호출, 장애 조치(failover) 호출 및 복구 호출을 포함하는 총 워크로드는 최대 호출 비율을 초과하지 말아야 합니다.
    초당 최대 호출 수를 얻으려면 다음 구성 설정이 필요합니다.
    • 빠른 I/O에 사용할 수 있는 zHPF(High Performance FICON for System z)를 포함한 z/OS 버전 1 릴리스 10 시스템에서 실행합니다. DS8000 DASD도 이 시스템에서 실행 중이어야 합니다.
    • 로그 스트림을 작성할 때 사용되는 로그 스트림 및 스테이징 데이터 세트 크기 정의는 256MB(LS_SIZE(64000) STG_SIZE(64000))보다 크거나 같아야 합니다.

    장시간 동안 호출 비율을 증가시키고 상당한 시간제한 비율에 도달할 때까지 성능을 모니터링하여 최대 호출 비율을 판별할 수 있습니다.

  • 모든 활성 호출에 대해 전파된 총 데이터 용량은 2GB를 초과하지 않습니다.
  • z/OS에서 SIP 또는 CEA(Communications Enabled Application) 작업을 사용하려면 모든 노드가 버전 7.0.0.7 이상 레벨에 있어야 합니다.
  • 트랜잭션과 같이 데이터 지속을 필요로 하는 다른 서비스 및 보상은 SIP 또는 CEA 관련 작업에 시스템을 사용하려는 경우 HFS 파일 로깅을 사용하도록 구성됩니다. SIP 또는 CEA 관련 작업에 대해 시스템을 구성하면 데이터 지속이 필요한 다른 서비스에서 로그 스트림을 사용할 수 없습니다.
[z/OS]다음 상황이 발생하는 경우에도 서버에 대한 로그 스트림을 삭제하고 다시 작성해야 합니다.
  • 클러스터 내의 모든 제어기가 동시에 실패합니다. 이러한 상황에서는 동시에 여러 개의 실패가 발생하므로 복구에 필요한 일부 데이터가 손실됩니다.
  • 복구 프로세스 중에 장애가 발생했습니다. 이러한 상황에서는 실패한 세션과 연관된 로그 스트림에 불완전한 데이터가 포함됩니다.
SIP 세션 복제 토폴로지
  • 각 멤버가 모든 상태 데이터를 해당 복제 도메인 내의 모든 피어에 복제합니다.
  • 각 복제 도메인은 2개의 서버를 포함하는 것이 이상적입니다.
  • 장애가 발생하는 경우, 코어 그룹 조정자는 다른 코어 그룹 멤버에게 활성화할 복제 세션을 알려줍니다. 이러한 복제 세션은 활성 세션의 일부가 됩니다.

다음 단계를 완료하여 SIP 세션에 대한 복제 도메인을 설정하십시오.

프로시저

  1. 관리 콘솔에서 환경 > 복제 도메인 > 새로 작성을 클릭하십시오.
  2. 복제본 수를 클릭한 후 전체 도메인을 선택하십시오.
  3. 컨테이너 설정 섹션에서 세션 관리를 클릭하십시오.
  4. 추가 특성 섹션에서 분산 환경 설정을 클릭한 후 메모리 대 메모리 복제를 클릭하십시오.
  5. 복제 모드클라이언트와 서버 모두로 설정하십시오.
  6. 변경사항을 저장하십시오.

결과

SIP 세션에서 메모리 대 메모리 복제를 사용할 수 있게 됩니다.

1 "마지막 액세스 시간소인"을 클러스터 내의 피어 컨테이너와 동기화하기 위해 SipSessionSipApplicationSession을 복제시키는 요청을 전송하는 애플리케이션 코드. 이 작업은 SipSession.getLastAccessedTime()SipApplicationSession.getLastAccessedTime()

주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsip_sessionrep
파일 이름:tsip_sessionrep.html