CM 서버 관리 연결 팩토리 라이프사이클 관리

이 주제에서는 CM 서버의 라이프사이클 관리 타스크에 대해 설명합니다.

CM 서버는 두 개의 J2C 관리 연결 팩토리(하나는 ClearCase용, 하나는 ClearQuest용)를 사용하여 ClearCase 및 ClearQuest 코어 제품과 통신하는 백엔드 서버 프로세스를 실행 및 제어합니다. 백엔드 ONCRPC 프로세스(ClearCase는 ccrpc 프로세스, ClearQuest는 cqrpc 프로세스)는 J2EE 및 CM 서버의 Websphere 컴포넌트 및 ClearCase와 ClearQuest 코어 컴포넌트 간의 간격을 브릿지합니다.

CM 서버는 실행된 각 백엔드 ONCRPC 서버 프로세스의 전체 라이프사이클을 관리하고 제어하기 위해 수많은 배경 타스크를 실행합니다. 이러한 타스크를 실행하기 위해서 관리자 개입은 필요하지 않습니다.

비제품 특정 라이프사이클 관리를 수행하는 하나의 일반적인 라이프사이클 타스크와 ClearCase 및 ClearQuest 백엔드 서버 오브젝트 동작을 제어하는 제품 특정 타스크가 있습니다. 각 타스크는 구성 가능한 MBean 속성을 사용하여 워크로드를 따라잡기 위한 시스템의 기능을 유지보수하고 지나친 자원 소비로 인한 성능 저하를 막기 위해 활성 서버 오브젝트의 수와 수명을 관리합니다. MBean 속성 및 이를 구성하는 방법에 대한 정보는 사용 가능한 MBean 속성 설정의 내용을 참조하십시오.

일반 관리 연결 팩토리 라이프사이클 관리

일반 라이프사이클 관리 타스크는 연결 팩토리가 작성한 모든 백엔드 ONCRPC 프로세스에 영향을 미칩니다. 이 타스크는 CM 서버가 처음에 시작될 때 CM 서버 내에서 실행됩니다. 이 타스크는 2분마다 실행되며 각 서버의 배경 프로세스가 여전히 정상적으로 작동하는지 확인하고 종료된 서버 프로세스의 잔재를 정리하기 위해 각 백엔드 ONCRPC 서버를 테스트할 책임이 있습니다.

타스크가 이를 실행할 때마다 RUNNING으로 표시된 CM 서버가 실행한 백엔드 서버 오브젝트에 대한 목록을 얻습니다. 각 백엔드 서버 오브젝트는 작동하는 배경 프로세스가 실행 중인지를 확인하기 위해 테스트됩니다. 백엔드 프로세스가 오작동하는 것으로 감지되면 다음과 같이 서버 오브젝트의 정리가 시작됩니다(이벤트와 같은 로그 메시지 레코드).
  • 서버 오브젝트는 해당 서버에 새 작업이 제공되지 않도록 비작동으로 표시되어 있습니다.
  • MBean 정리 알림은 큐에 추가되고 5초 내에 알림이 비동기적으로 수신되고 비작동 서버 오브젝트에 대한 모든 정리 작업이 수행됩니다.
  • 서버 오브젝트가 상위 관리 연결 팩토리의 서버 오브젝트 목록에서 제거됩니다.
  • 해당 서버와 연관된 MBean이 등록 해제됩니다.

그런 다음 타스크는 업데이트된 STOPPING 서버 목록을 얻습니다(유휴 상태로 표시된 서버). 30초 이상 STOPPING 상태에 있었던 각 서버 오브젝트에 대해 서버 오브젝트의 배경 프로세스를 확인하여 프로세스가 실제로 중지되었는지를 확인합니다. 서버 오브젝트의 프로세스가 중지되지 않은 경우에는 프로세스가 강제로 중지되고 팩토리의 서버 목록에서 제거됩니다. 30초 이상 동안 STOPPING이 아닌 서버는 팩토리의 서버 목록에 남겨지고 다음 번에 이 타스크가 실행될 때 확인됩니다.

제품 특정 관리 연결 팩토리 라이프사이클 관리 타스크

일반 라이프사이클 관리 타스크에 추가로 독립 ClearCase 타스크 및 독립 ClearQuest 타스크는 각 백엔드 서버 프로세스의 제품 특정 라이프사이클 관리를 제어합니다.

ClearQuest 백엔드 oncrpc 서버(cqrpc 프로세스라고 불림)는 다중 스레드 프로세스입니다. 일반적으로 지정된 시간에 실행 중인 cqrpc 프로세스의 수가 적습니다. ClearCase 백엔드 oncrpc 서버(ccrpc 프로세스라고 불림)는 단일 스레드 프로세스입니다. 지정된 시간에 실행 중인 프로세스의 수가 많습니다. 제품 특정 관리 연결 팩토리는 구성 가능한 MBean 속성을 사용하여 워크로드를 따라잡기 위한 시스템의 기능을 유지보수하고 지나친 자원 소비로 인한 성능 저하를 막기 위해 활성 프로세스의 수와 수명을 관리합니다.

ClearCase 관리 연결 팩토리 라이프사이클 관리

사용할 ccrpc 프로세스 수를 관리하는데 사용되는 몇몇 키 MBean 속성이 있습니다. 이러한 매개변수의 기본 설정은 로드 및 용량에 기반한 예상 서버 사용량 뿐만 아니라 CM 서버가 설치된 시스템의 유형에 따라 수정될 수도 있습니다.
  • CcServerFactoryMBean.serverThresholdCount MBean 속성은 한 번 도달하면 ClearCase 관리 연결 팩토리 내에서 인라인 라이프사이클 관리를 트리거하는 CCRPC 서버의 임계값 수치입니다.
  • CcServerFactoryMBean.maxServerCount MBean 속성은 ClearCase 관리 연결 팩토리에서 한 번에 작성할 수 있는 최대 CCRPC 서버 수입니다.
  • CcServerFactoryMBean.maxServersPerCredential MBean 속성은 클라이언트 애플리케이션이 단일 사용자 세션당 너무 많은 스레드를 작성하지 못하도록 제한합니다.

이러한 값은 wsadmin 명령행 유틸리티를 사용하여 조정할 수 있습니다. MBean 속성 및 이를 구성하는 방법에 대한 정보는 사용 가능한 MBean 속성 설정의 내용을 참조하십시오. 메모리 크기, 프로세서 속도 및 기타 시스템 속성과 같은 매개변수는 이러한 값 및 다른 CcServerFactoryMBean 값을 어떻게 설정해야 하는지를 결정합니다.

ClearCase 요청이 클라이언트로부터 CM 서버로 오면 요청을 처리하기 위해 백엔드 서버 오브젝트를 구하려고 시도합니다. 각 요청이 도착할 때 다음 인라인 확인이 수행됩니다.
  • 요청을 처리하기 위해 사용 중이 아닌 서버에서 ClearCase 서버 오브젝트 목록을 확인합니다. 서버 오브젝트는 이미 다른 요청을 처리하는 중이면 사용 중인 것으로 간주됩니다. 기존 서버 오브젝트가 사용 중이 아니고 요청의 신임과 일치하는 경우에는 요청은 해당 서버 오브젝트가 처리합니다.
  • 기존 서버 오브젝트가 신임 또는 기존 서버 오브젝트와 일치하지 않거나 사용 중인 경우에는 새 서버 오브젝트를 작성하고 요청과 연관시켜야 합니다. 이는 다음과 같이 관리 연결 팩토리에 용량이 있는 경우에만 수행할 수 있습니다.
    • ccrpc 서버 CcServerFactoryMBean.maxServersPerCredential 수에 도달했거나 ccrpc 서버 CcServerFactoryMBean.maxServerCount 수에 도달한 경우에는 클라이언트 요청을 처리하기 위해 지정된 작업자 스레드가 wait-and-retry 루프로 들어갑니다. 서버를 확보하기 위해 총 TeamServerMBean.procureServerInterval 초까지 TeamServerMBean.maxProcureServerAttempts 시도가 이뤄집니다.
    • 서버를 확보할 수 없는 경우에는 클라이언트 요청이 거부됩니다. (그렇지 않은 경우에는 새 서버 오브젝트가 작성되고 요청에 지정됩니다.)

각 요청이 도착할 때 수행되는 위의 인라인 확인에 추가로 배경 ClearCase 특정 라이프사이클 관리 타스크는 다음 하위 타스크를 수행합니다.

2분마다 CcServerFactoryMBean.idleServerInterval 초 이상 동안 유휴 상태였던 모든 ccrpc 서버 목록이 작성되고 이 목록의 각 서버는 다음과 같이 종료됩니다.
  • 서버 인스턴스는 해당 서버에 새 작업이 제공되지 않도록 STOPPING 상태가 됩니다.
  • MBean TERMINATE 알림은 큐에 추가되고, 5초 내에 알림이 비동기적으로 수신되고 서버 오브젝트의 모든 정리 작업이 수행됩니다.
  • 시스템 종료 RPC 메시지가 ccrpc 서버 프로세스로 전송되고 서버 인스턴스가 STOPPED 상태로 설정됩니다.
  • 서버가 STOPPED 상태에 있는 기간을 일반 CheckServer 타스크가 알 수 있도록 현재 시간이 서버 인스턴스에 기록되고 저장됩니다.
  • 서버 오브젝트 인스턴스가 연결 팩토리의 서버 목록에서 제거됩니다.
  • 해당 서버와 연관된 MBean이 등록 해제됩니다.

ClearQuest 관리 연결 팩토리 라이프사이클 관리

ClearQuest 라이프사이클 관리는 2분마다 실행되는 하나의 배경 타스크와 요청이 처리될 때 수행되는 몇몇 클라이언트 요청별 전경 확인으로 구성되어 있습니다. 중요 자원 한계에 도달했는지를 판별하기 위해 확인이 수행됩니다.
  • 시간 기반 리사이클이 사용 가능한 경우(즉, CqServerFactoryMBean.recycleServerLifetimeLimit가 0보다 크고 cqrpc 서버 오브젝트가 해당 기간 이상 실행 중인 경우) cqrpc 서버 오브젝트는 리사이클 준비가 완료된 것으로 표시됩니다.
  • 클라이언트 요청이 완료되면 cqrpc 서버 오브젝트가 CqServerFactoryMBean.recycleServerOncrpcCallLimit RPC 호출에서 처리되었는지 여부를 판별하기 위해 확인이 수행됩니다. 이 경우 cqrpc 서버 오브젝트가 리사이클 준비가 완료된 것으로 표시됩니다.
  • 클라이언트 요청이 도착하고 세션 계수가 증가되면 CqServerFactoryMBean.recycleServerHttpSessionLimit HTTP 세션에서 cqrpc 서버 오브젝트가 작성되었는지 여부를 판별하는 확인이 수행됩니다. 이 경우 cqrpc 서버 오브젝트는 리사이클 준비가 완료된 것으로 표시되고, 이 경우 새 cqrpc 서버 오브젝트가 시작되어 들어오는 요청을 처리합니다.

ClearQuest 관리 연결 팩토리는 cqrpc 서버를 종료하는 대신에 리사이클합니다(더 이상 필요하지 않은 ccrpc 서버 오브젝트에 대해 ClearCase 관리 연결 팩토리가 수행한 것처럼). 그 이유는 cqrpc 서버 오브젝트가 아직 확약되지 않은 조회나 레코드 등과 같은 항목을 포함할 수도 있기 때문입니다. 따라서 보류 중인 작업이 확약될 수 있도록 유예 기간이 허용됩니다.

cqrpc 서버 오브젝트의 리사이클은 다음으로 구성되어 있습니다.
  • 서버 오브젝트는 해당 서버에 새 작업이 제공되지 않도록 STOPPING 상태(RECYCLING 상태라고도 불림)가 됩니다.
  • MBean RECYCLE 알림이 큐에 추가됩니다. 알림은 5초 내에 비동기적으로 수신되고, 서버 오브젝트와 연관된 READ-ONLY 세션은 해당 세션의 다음 요청이 도달할 때 새 서버 오브젝트와 다시 연관되도록 표시됩니다.

    READ-WRITE 트랜잭션 중인 세션(즉, 조회 또는 레코드의 확약과 관련된 트랜잭션)에서는 보류 중인 작업이 확약될 수 있도록 최대 CqServerFactoryMBean.recyclingPeriod초가 허용됩니다. 작업이 확약되거나 CqServerFactoryMBean.recyclingPeriod에 도달한 경우에는 서버 오브젝트가 STOPPED 상태가 되고, 배경 프로세스가 종료되고, 서버 오브젝트는 ClearQuest 관리 연결 팩토리의 서버 목록에서 제거됩니다.


피드백