새 자원 유형 패키지의 설치와 관련된 두 가지 요구 사항이 있습니다.
새 자원 유형을 등록할 경우 RTR 파일을 디스크에서 액세스할 수 있어야 합니다.
새로운 유형의 자원을 만들 경우 선언된 모든 메소드 경로 이름과 새로운 유형의 모니터 프로그램은 디스크와 실행 가능 파일에 있어야 합니다. 자원을 사용하는 한 이전 메소드와 모니터 프로그램은 제자리에 있어야 합니다.
가장 적절한 패키지를 결정하려면 자원 유형 구현자는 다음을 고려해야 합니다.
RTR 파일이 변경됩니까?
등록 정보의 기본값이나 조정 기능이 변경됩니까?
등록 정보의 min 또는 max 값이 변경됩니까?
업그레이드에서 등록 정보를 추가 또는 삭제합니까?
메소드 코드가 변경됩니까?
모니터 코드가 변경됩니까?
새 메소드나 메소드 코드가 이전 버전과 호환됩니까?
일부 자원 유형 업그레이드에 새 메소드나 모니터 코드가 포함되지 않습니다. 예를 들어, 자원 유형 업그레이드에서는 자원 등록 정보의 기본값이나 조정 기능만 변경할 수 있습니다. 메소드 코드는 변경되지 않기 때문에 업그레이드를 설치하기 위한 유일한 요구 사항은 읽을 수 있는 RTR 파일에 대한 유효한 경로 이름을 갖는 것입니다.
이전 자원 유형을 다시 등록할 필요가 없을 경우 새 RTR 파일에서 이전 버전을 덮어쓸 수 있습니다. 그렇지 않으면 새 RTR 파일이 새 경로 이름에 배치될 수 있습니다.
업그레이드에서 등록 정보의 기본값이나 조정 기능을 변경할 경우 새 버전의 Validate 메소드에서 이전 시 기존 등록 정보 속성이 새 자원 유형에 유효한지 확인할 수 있습니다. 업그레이드에서 등록 정보의 min, max 또는 type 속성을 변경할 경우 scrgadm 명령에서 이전 시 이 제약 조건을 자동으로 확인합니다.
업그레이드 설명서에서 새 기본 등록 정보 속성을 설명해야 합니다. 설명서에서는 시스템 관리자에게 업그레이드할 Type_version 등록 정보를 새 자원 유형 버전으로 편집하는 동일한 명령을 사용하여 기존 자원 등록 정보를 적절한 값으로 편집할 수 있음을 알려야 합니다.
업그레이드에서 등록 정보를 추가 또는 삭제할 경우 일부 콜백 메소드나 모니터 코드도 변경해야 할 수 있습니다.
업데이트된 자원 유형에서 유일하게 모니터 코드만 변경된 경우 패키지 설치에서 모니터 이진을 덮어쓸 수 있습니다. 설명서에서 시스템 관리자에게 새 패키지를 설치하기 전에 모니터링을 일시 중지하도록 지시해야 합니다.
업데이트된 자원 유형에서 유일하게 메소드 코드만 변경된 경우 새 메소드 코드가 이전 버전과 호환되는지 확인해야 합니다. 그러면 새 메소드 코드를 새로운 경로 이름에 저장해야 할지 또는 이전 메소드를 겹쳐쓸 수 있는지 확인할 수 있습니다.
새로운 Stop, Postnet_stop 및 Fini 메소드(선언된 경우)를 Start , Prenet_stop 또는 Init 메소드의 이전 버전에서 초기화되거나 시작된 자원에 적용할 수 있는 경우 이전 메소드를 새로운 메소드로 덮어쓸 수 있습니다.
새로운 메소드 코드가 이전 버전과 호환되지 않을 경우 업그레이드된 자원 유형으로 이전하려면 이전 버전의 메소드를 사용하여 자원을 중지하거나 구성 해제해야 합니다. 새 메소드에서 이전 메소드를 덮어쓸 경우 자원 유형 업그레이드를 수행하기 전에 유형의 모든 자원을 종료하고 관리 해제해야 할 수 있습니다. 새 메소드를 이전 메소드와는 별도로 저장하고 한 번에 두 개 모두를 액세스할 수 있는 경우 역호환성이 없더라도 새 자원 유형 버전을 설치하고 한 번에 하나씩 자원을 업그레이드할 수 있습니다.
새 메소드가 역호환되더라도 다른 자원에서 계속 이전 메소드를 사용하는 경우 새 메소드를 사용하려면 한 번에 하나씩 자원을 업그레이드해야 할 수 있습니다. 또한 이전 메소드를 덮어쓰는 대신 새 메소드를 별도의 디렉토리에 저장해야 합니다.
자원 유형 버전의 메소드를 별도의 디렉토리에 저장하는 것의 이점은 새 버전에 문제가 생길 경우 자원을 이전 자원 유형 버전으로 쉽게 다시 전환할 수 있다는 것입니다.
패키지화 방법 중 하나는 패키지에서 지원되는 이전 버전을 모두 포함시키는 것입니다. 그러면 이전 메소드 경로를 덮어쓰거나 삭제하지 않고도 새 패키지 버전이 이전 버전을 대체할 수 있습니다. 지원 가능 이전 버전 수를 결정하는 것은 자원 유형 개발자에게 달려있습니다.
현재 클러스터에 있는 노드에서 메소드나 pkgrm/ pkgadd 메소드를 덮어쓰지 않는 것이 좋습니다. 메소드를 디스크에서 액세스할 수 없는 경우 RGM에서 메소드를 호출하면 예기치 않은 결과가 발생할 수 있습니다. 실행 중인 메소드의 이진을 제거하거나 대체해도 예기치 않은 결과가 발생할 수 있습니다.