понедельник, 1 ноября 2010 г.

Автоматизация запуска сервисов Oracle EPM

Для запуска сервисов Oracle EPM 11 существует определенная последовательность, описанная в Oracle Hyperion Enterprise Performance Management System Installation and Configuration Guide. Запуск можно производить вручную, но этот процесс вполне может быть автоматизирован через Batch.

Если все необходимые сервисы расположены на одном сервере, то можно поспользоваться командами net start|stop . Но обычно для продуктивного окружения используется несколько серверов, и сервисы некоторым образом распределены между ними. Для этого случая есть команда sc, которая используется так:

sc \\ServerName start|stop ServiceName

Таким образом и описывается разбавленная паузами последовательность запуска сервисов.

В моем случае скрипт для перезапуска сервисов Oracle EPM выглядит следующим образом:

:: Перезапуск сервисов Oracle EPM

@echo off
chcp 1251 

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] -- Начало остановки сервисов EPM 11 --

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Workspace - Web Application... && echo.
sc \\ServerName stop HyS9Workspace | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9Workspace | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Web Analysis - Web Application... && echo.
sc \\ServerName stop HyS9WebAnalysis | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9WebAnalysis | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Financial Reporting - Web application... && echo.
sc \\ServerName stop HyS9FRWeb | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9FRWeb | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Financial Reporting Scheduler ServerName... && echo.
sc \\ServerName stop HyS9FRSched | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9FRSched | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Financial Reporting Report ServerName... && echo.
sc \\ServerName stop HyS9FRReport | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9FRReport | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Financial Reporting Print ServerName... && echo.
sc \\ServerName stop HyS9FRPrint | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9FRPrint | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Financial Reporting Java RMI Registry... && echo.
sc \\ServerName stop HyS9FRRMI | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9FRRMI | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion CALC Manager - Web Application... && echo.
sc \\ServerName stop HyS9CALC | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9CALC | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Planning - Web Application... && echo.
sc \\ServerName stop HyS9Planning | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9Planning | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Annotation ServerName... && echo.
sc \\ServerName stop HyS9Annotation | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9Annotation | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Workspace - Agent Service... && echo.
sc \\ServerName stop HyS9Core1 | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9Core1 | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Provider Services - Web Application... && echo.
sc \\ServerName stop HyS9aps | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9aps | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Administration Services - Web Application... && echo.
sc \\ServerName stop HyS9eas | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9eas | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Foundation Shared Services - Web Application... && echo.
sc \\ServerName stop HyS9SharedServices | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query HyS9SharedServices | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion Foundation OpenLDAP... && echo.
sc \\ServerName stop OpenLDAP-slapd | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query OpenLDAP-slapd | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Остановка Hyperion RMI Registry... && echo.
sc \\ServerName stop "Hyperion RMI Registry" | find "SERVICE_NAME"
timeout 3 | find "x"
sc \\ServerName query "Hyperion RMI Registry" | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] -- Сервисы EPM 11 остановлены --

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] -- Начало запуска сервисов EPM 11 --

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion RMI Registry... && echo.
sc \\ServerName start "Hyperion RMI Registry" | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query "Hyperion RMI Registry" | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Foundation OpenLDAP... && echo.
sc \\ServerName start OpenLDAP-slapd | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query OpenLDAP-slapd | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Foundation Shared Services - Web Application... && echo.
sc \\ServerName start HyS9SharedServices | find "SERVICE_NAME"
timeout 30 | find "x"
sc \\ServerName query HyS9SharedServices | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Administration Services - Web Application... && echo.
sc \\ServerName start HyS9eas | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query HyS9eas | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Provider Services - Web Application... && echo.
sc \\ServerName start HyS9aps | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query HyS9aps | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Workspace - Agent Service... && echo.
sc \\ServerName start HyS9Core1 | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query HyS9Core1 | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Annotation ServerName... && echo.
sc \\ServerName start HyS9Annotation | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query HyS9Annotation | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Planning - Web Application... && echo.
sc \\ServerName start HyS9Planning | find "SERVICE_NAME"
timeout 30 | find "x"
sc \\ServerName query HyS9Planning | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion CALC Manager - Web Application... && echo.
sc \\ServerName start HyS9CALC | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query HyS9CALC | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Financial Reporting Java RMI Registry... && echo.
sc \\ServerName start HyS9FRRMI | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query HyS9FRRMI | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Financial Reporting Print ServerName... && echo.
sc \\ServerName start HyS9FRPrint | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query HyS9FRPrint | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Financial Reporting Report ServerName... && echo.
sc \\ServerName start HyS9FRReport | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query HyS9FRReport | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Financial Reporting Scheduler ServerName... && echo.
sc \\ServerName start HyS9FRSched | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query HyS9FRSched | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Financial Reporting - Web application... && echo.
sc \\ServerName start HyS9FRWeb | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query HyS9FRWeb | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Web Analysis - Web Application... && echo.
sc \\ServerName start HyS9WebAnalysis | find "SERVICE_NAME"
timeout 5 | find "x"
sc \\ServerName query HyS9WebAnalysis | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] Запуск Hyperion Workspace - Web Application... && echo.
sc \\ServerName start HyS9Workspace | find "SERVICE_NAME"
timeout 10 | find "x"
sc \\ServerName query HyS9Workspace | find "STATE"

echo. && echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%] -- Сервисы EPM 11 запущены --

При другой конфигурации Oracle EPM скрипты легко дорабатываются по аналогии.

По мотивам Hyperion Expert

3 комментария:

  1. Не факт, что все запустится или остановится с первого раза. Неплохо отслеживать статус запуска/остановки и выводить его на экран.

    ОтветитьУдалить
  2. Пока это сделано просто для ускорения процесса с последующим визуальным контролем списка сервисов. Позже, при необходимости, можно хоть оповещение на email в случае ошибки добавить)

    ОтветитьУдалить
  3. Несколько доработал скрипт – добавил проверку статуса по завершении таймаута и облегчил лог, оставив вывод только информативных строк.

    ОтветитьУдалить