저는 MySQL 서비스에 의존하는 MySQL 및 WebLogic 서비스에 대한 서비스 매니페스트를 만들고 있습니다. 나는 그들 모두가 "대기"(포그라운드에서 프로세스 실행) 관리 모델을 사용하기를 원합니다. 이 설정에 대해 몇 가지 질문이 있습니다.
첫째, 서비스 상태를 어떻게 확인합니까? 예를 들어, 서비스를 사용하기 전에 MySQL 스크립트를 생성할 때 mysqld_safe
백그라운드에서 스크립트를 시작한 후 응답을 받을 때까지 해당 스크립트를 핑하여 계속하기 전에 준비가 되었는지 확인하고 싶습니다. 이제 서비스를 사용하면 즉시 "온라인"으로 전환되지만 실제로 준비가 되었는지는 확실하지 않습니다.
이 문제에 대한 좋은 해결책이 없으면 WebLogic 스크립트 자체에 MySQL DB ping을 넣고 특정 횟수만큼 시도한 후 상태 1로 종료합니다. 그러나 서비스는 계속 다시 시작됩니다. 0이 아닌 종료 후 서비스를 유지 관리 모드로 강제 전환하는 방법은 무엇입니까?
마지막으로 종속성을 얻었으며 MySQL 서비스가 온라인인 한 WebLogic 서비스는 시작되지 않습니다. 그러나 이에 대해 두 가지 질문이 있습니다.
- WebLogic 서비스가 작동 중지되었을 때 MySQL 서비스를 시작하도록 하려면 어떻게 해야 합니까?
- WebLogic 서비스가 이미 온라인 상태인 경우 MySQL 서비스가 실패하면 어떻게 종료되도록 할 수 있습니까?
답변1
1 - weblogic 서비스에 대한 xml 매니페스트를 구성할 때 mysql 서비스를 종속 서비스로 정의합니다. 이러한 방식으로 mysql 서비스가 완전히 온라인 상태로 보고되지 않는 한 weblogic은 시작되지 않습니다. 이는 귀하의 weblogic 애플리케이션이 mysql 서비스 가용성에 의존하므로 mysql db 서비스가 다운되면 불필요한 db connect/sql 문 실행 시도를 수행하지 않기 때문에 논리적으로 보입니다.
2 - 종속성 서비스가 오프라인/저하되기 때문에 weblogic 서비스도 오프라인이 되어 실행되지 않습니다. 따라서 weblogic 서비스는 자체적으로 유지 관리 모드로 전환되기 때문에 mysql 서비스를 다시 온라인으로 전환하려고 시도할 기회가 없습니다. 게다가 mysql 서비스가 유지 관리/오프라인/다운그레이드 모드로 전환되고 smf가 weblogic 서비스를 다운그레이드/오프라인으로 표시하므로 mysql 서비스를 시작하는 데 사용할 수 없기 때문에 weblogic은 이후 시작이 보장되지 않습니다. 이는 아마도 순환 종속성의 명백한 사례일 수 있으며 두 서비스를 처리하기 위해 세 번째 모듈 /cronjob/transient-services를 사용하여 해결해야 합니다.
이제 주요 종속 서비스는 mysql이라는 것이 분명합니다. 거의 항상 실행되는 weblogic의 가용성과 깔끔한 기능을 보장하기 위해 세 번째 모듈/스크립트(cronjob과 같은)를 사용하여 상태를 모니터링하는 것이 좋습니다. mysql 서비스를 최우선으로 하고 그 다음 weblogic 서비스를 선택합니다. 서비스가 실패할 경우 SMF 복구 명령을 처리/실행해야 합니다.
답변2
다양한 쿼리를 사용하고 xml 파일을 생성하도록 서비스를 구성하는 것이 더 좋습니다.http://code.google.com/p/manifold/