13 декабря 2011

Модерн. Флешка

Чуток оффтоп, но не удержался ;)

Предыстория. Начал у меня погибать внешний USB-диск с кучей документации, дистрибутивами и прочей полезной в работе мелочью. Он молодец, прослужил мне почти 4 года.

Требования. Итак, нужен новый надежный внешний жесткий или флешка достаточно объема, который бы не боялся тряски. Для меня это стало важным требованием.

Выбор. Оценив рынок и полюбив SSD, я решил рискнуть. Готовые решения внешних жестких на SSD еще мало распространены и поэтому достаточно дороги по сравнению с тем, что получилось у меня. Оформить его мне хотелось в металлический корпус.
Отдельно я размышлял про интерфейс. И, оценив всю имеющуюся дома и на работе технику, пришел к классическому USB 2.0.
Я приобрел (менее, чем за 10k RUR):
Риски. Я понимал, что запись мелких файлов на диск будет не столь высока. Однако скорость записи и чтения больших архивов (большинство информации у меня хранится именно в таком виде) выше всяких похвал. Кроме того, SSD подвержены большему риску выхода из строя по причине электронно-магнитных излучений. Но я вспомнил, что в аэропортах пассажиры регулярно проносят современные ноутбуки, оснащенные SSD-накопителями, через рентген-аппараты и тут же расслабился :) Ведь у них все в порядке с техникой.

Итог. В итоге я получил среднюю скорость работы 60-80MB/sec вместо 20-25MB/sec с предыдущим внешним накопителем на HDD через аналогичный USB 2.0 интерфейс.

UPD: Результаты теста с проверенным Intel IOMeter при конфигурации Workstation Access Pattern (as defined by StorageReview.com):
  • % of Access Specification = 100%
  • Transfer Size Request = 8 KB
  • % Reads = 80%
  • % Random = 80%
  • # of Outstanding I/Os = 16 

08 декабря 2011

Проблемы при запуске EAS Console 11.1.2.0

День начинался удачно.... Пока не перестала работать EAS Console 11.1.2.0 ни с моего рабочего места, ни с сервера (локально).
Советы по устранению:
0. Смотрю логи здесь:
- \Middleware\user_projects\epmsystem1\diagnostics\logs\eas\
- \Middleware\user_projects\domains\EPMSystem\servers\EssbaseAdminServices0\logs\EssbaseAdminServices0.log
1. Отслеживаю логи, пытаясь запустить консоль. Судя по последнему логу, запуск приложения на WebLogic application server прошел успешно...
2. Останавливаю службу EAS. Удаляю папку из \Middleware\user_projects\epmsystem1\tmp\2\servers\ директорию EssbaseAdminServices0. В ней отсутствовал какой-то .war файл. Эта папка генерируется автоматически сервером Weblogic.
3. Вижу предупреждение о том, что в DNS имени сервера соответствуют 2 адреса – IPv4 и IPv6. ИТ-шникам сообщил :)
4. Запускаю сервис и пытаюсь войти в консоль по IPv4 адресу сервера. Все работает!

21 ноября 2011

Отличная вводная презентация про новый EPM 11.1.2.1 и как на него перейти (англ.): http://vimeo.com/21658460

16 сентября 2011

Critical Patch Update - September 2011

Только что получил сообщение от Oracle Support: Oracle Security Alert for CVE-2011-3192
Description This security alert addresses the security issue CVE-2011-3192, a denial of service vulnerability in Apache HTTPD, which is applicable to Oracle HTTP Server products based on Apache 2.0 or 2.2. This vulnerability may be remotely exploitable without authentication, i.e. it may be exploited over a network without the need for a username and password. A remote user can exploit this vulnerability to impact the availability of un-patched systems. Affected Products and Versions - Oracle Fusion Middleware 11g Release 1, versions 11.1.1.3.0, 11.1.1.4.0, 11.1.1.5.0 - Oracle Application Server 10g Release 3, version 10.1.3.5.0 (Only affected when Oracle HTTP Server 10g based on Apache 2.0 has been installed from Application Server Companion CD) - Oracle Application Server 10g Release 2, version 10.1.2.3.0 (Only affected when Oracle HTTP Server 10g based on Apache 2.0 has been installed from Application Server Companion CD)
Имейте ввиду и не забывайте о защите! ;)

10 июля 2011

Запуск/остановка сервисов EPM 11.1.2.1

Ввиду того, что в этом релизе изменились имена некоторых сервисов, некоторых не стало вовсе, а также в связи с переводом на sc start|stop, предлагаю Вашему вниманию обновленные скрипты для запуска платформы Oracle EPM System 11.1.2.1 (DB, Foundation, Essbase, Planning, Reporting&Analysis):

epmStart.bat
@ECHO OFF
ECHO -----EPM 11.1.2.1 STARTING / Batch EPM full start script by Antun Kulkov, 2011
ECHO -----See more at http://silw.blogspot.com
ECHO -------SQL Server Starting
sc start "MSSQLSERVER"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Oracle Process Manager (ohsInstance)
sc start "OracleProcessManager_ohsInstance1649849633"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Oracle Process Manager (EPM_epmsystem1)
sc start "opmn_EPM_epmsystem1"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Oracle Process Manager (ConfigurationManager)
sc start "OracleEpmSystem_Administratord_oracle_middleware_user_projects_epmsystem1ConfigurationManager"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Hyperion RMI Registry
sc start "Hyperion RMI Registry"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Hyperion Foundation Services - Managed Server
sc start HyS9FoundationServices
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Administration Services - Web Application
sc start HyS9eas
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Integration Services
sc start "Essbase Integration Server"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Provider Services - Web Application
sc start HyS9aps
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Studio Service BPMS
sc start "Hyperion Studio Service BPMS bpms1"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion EPM Architect - Process Manager
sc start EPMA_Server
waitfor NONEXISTINGSIGNAL /T 30
ECHO -------Hyperion EPMA Data Synchronizer - Web Application
sc start HyS9EPMADataSynchronizer
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion EPMA Web Tier - Web Application
sc start HyS9EPMAWebTier
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion CALC Manager - Web Application
sc start HyS9CALC
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Planning - WebHyS9Planning Application
sc start HyS9Planning
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Web Analysis - Web Application
sc start HyS9WebAnalysis
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Reporting and Analysis Framework
sc start HyS9RaFrameworkAgent
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Financial Reporting - Web Application
sc start HyS9FRReports
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Reporting and Analysis Framework - Web Application
sc start HyS9RaFramework
waitfor NONEXISTINGSIGNAL /T 5
ECHO ALL DONE!
waitfor NONEXISTINGSIGNAL /T 10
ECHO -----Oracle EPM System has been started.

epmStop.bat
@ECHO OFF
ECHO -----EPM 11.1.2.1 STOPPING / Batch EPM full stop script by Antun Kulkov, 2011
ECHO -----See more at http://silw.blogspot.com
ECHO -------Hyperion Web Analysis - Web Application
sc stop HyS9WebAnalysis
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Reporting and Analysis Framework
sc stop HyS9RaFrameworkAgent
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Financial Reporting - Web Application
sc stop HyS9FRReports
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Reporting and Analysis Framework - Web Application
sc stop HyS9RaFramework
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Planning - WebHyS9Planning Application
sc stop HyS9Planning
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion CALC Manager - Web Application
sc stop HyS9CALC
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion EPMA Web Tier - Web Application
sc stop HyS9EPMAWebTier
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion EPMA Data Synchronizer - Web Application
sc stop HyS9EPMADataSynchronizer
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion EPM Architect - Process Manager
sc stop EPMA_Server
waitfor NONEXISTINGSIGNAL /T 30
ECHO -------Hyperion Studio Service BPMS
sc stop "Hyperion Studio Service BPMS bpms1"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Provider Services - Web Application
sc stop HyS9aps
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Integration Services
sc stop "Essbase Integration Server"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Administration Services - Web Application
sc stop HyS9eas
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Foundation Services - Managed Server
sc stop HyS9FoundationServices
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion RMI Registry
sc stop "Hyperion RMI Registry"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Oracle Process Manager (ConfigurationManager)
sc stop "OracleEpmSystem_Administratord_oracle_middleware_user_projects_epmsystem1ConfigurationManager"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Oracle Process Manager (ohsInstance)
sc stop "OracleProcessManager_ohsInstance1649849633"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Oracle Process Manager (EPM_epmsystem1)
sc stop "opmn_EPM_epmsystem1"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------SQL Server Stopping
sc stop "MSSQLSERVER"
waitfor NONEXISTINGSIGNAL /T 5
ECHO ALL DONE!
waitfor NONEXISTINGSIGNAL /T 10
ECHO -----Oracle EPM System has been stopped.

Понятно, что данные скрипты приведены только для примера и требуют уточнений в части сервисов RDBMS и номера сервиса OHS. Кроме того, можно более гибко управлять запуском даже с удаленных машин, используя все возможности команды sc. Верные имена служб можно найти в реестре в ветке:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_{ServiceName}\0000\Service

09 июля 2011

Oracle BI Day (Beer) 2011

Имел честь быть приглашенным и участвовать в пятом юбилейном чудесном мероприятии Oracle BI Beer Day 2011. В этом году действо, по мнению многих, случилось самым душевным и теплым. Я к этому добавлю, что минимум второй-третий год мероприятие не теряет уровня представляемых докладов и их авторов.

Я очень люблю практический опыт, поэтому самым ярким для меня стал доклад Алексея Тюренкова, представившего обширный доклад о DW/BI системе своего предприятия, а также об особенностях управления этим проектом. Но не менее интересным рассказом про Oracle Exadata отметился и хозяин мероприятия - Андрей Пивоваров.

В кулуарах стало известно, что в этом году Oracle BI Beer Day прошел благодаря чуду. Я предлагаю всем, кто хоть раз был на этом мероприятии, проникся темами разговоров и лучшим способом обмена опытом, поддержать Андрея и его команду! Для этого нужно написать несколько строк поддержки и/или благодарностей в его блог или электропочту (and@oraclebi.ru).

Ждем, когда доклады появятся в электронном виде, чтобы ознакомиться тщательнее;)

UPD: Доклады с краткими аннотациями доступны здесь

08 июля 2011

Вебинары по Oracle EPM System 11

Благодаря LinkedIn'у, спешу поделиться очень интересными бесплатными вебинарами и их архивами от HCG. Ничего общего с этой конторой не имею, но материалы и их форма достойны внимания. Они рассчитаны на тех, кто знаком с платформой Oracle EPM System поверхностно. Однако. иногда встречаются слабо изученные фишечки или обзор некоторых решений проектов для реальных клиентов. К тому же, они начинаются обычно с 21 до 23 часов (мск) и имеют продолжительность не более часа. Это очень удобно;)
Язык - вдумчивый и доступный английский.

Пользуйтесь на здоровье!

- Бесплатные вебинары на Q3 2011 (требуется регистрация)
- Архив вебинаров (есть свежие)
- Архив на youtube (от года и ранее)

21 мая 2011

17,7 секунд - быстро, но долго

Перемещено из блога Oracle Hyperion Planning: заметки администратора с разрешения автора - Романа Удальцова

Запуск бизнес-правил из командной строки с использованием Hyperion CmdLineLauncher – это удобно в ситуации, когда необходимо многократно запускать вручную кучу последовательностей, содержащих в себе большое число бизнес-правил. Один раз автоматизировал, и сиди себе запускай батничек.

Но обнаружилась интересная особенность. При запуске из командной строки любое бизнес-правило выполняется на некоторую константу дольше, чем при запуске его же из нативной последовательности Essbase. Покажу на примере...

У меня запускается ряд последовательностей, содержащих в себе в общей сложности 547 бизнес-правил. Очень многие из них, судя по hbrlaunch.log, выполняются за доли секунды.

Статистика автоматизированного запуска из командной строки выглядит следующим образом (число бизнес-правил / время выполнения):


Самое интересное происходит в левой части графика:


Видно, что ни одно бизнес-правило не выполнилось быстрей, чем за 17,7 секунд.

Простая арифметика показывает, что на моем примере это целых... 17,7 х 547 = 9681,9 сек. = 2 часа 41 минута 21,9 секунды, потраченные непонятно на что! Распараллеливание запусков бизнес-правил несколько уменьшает это время (примерно до полутора часов), но от этого не легче.

Всё это пока просто наблюдение, если докопаюсь до причины – расскажу.
Есть предположение, что это причиной задержки может служить запуск Java для каждого из процессов, но почему так долго?

UPD
Завёл по этому поводу SR, за 3 дня переписки ничего толкового не посоветовали.
Их резюме – «I'm afraid that we have no other reports of this timing difference nor any documentation that would explain why it might occur. If you believe that this is a significant issue I could test it and then raise it with Development as a bug, although I'm not sure they would accept it as such.»

UPD2
Финальный ответ от Oracle.
Мое предположение подтвердилось. Ну и надо учесть время подключения к EAS:
«I have been able to get an explanation as to why the rules will take longer to run when launched via the cmdlnlauncher: CmdLnLauncher has to connect to remote EAS server in order to launch the rule. For Planning, the rule engine runs within the same JVM and that's why it can launch the rule faster compared to CmdLnlauncher.»

CmdLineLauncher - Параллельное выполнение бизнес-правил

Перемещено из блога Oracle Hyperion Planning: заметки администратора с разрешения автора - Романа Удальцова

Возникла задача ускорить выполнение немаленькой (под 500 шагов) последовательности бизнес-правил. При внимательном рассмотрении выяснилось, что часть из них может выполняться параллельно, чем я и воспользовался с помощью стандартной утилиты Hyperion CmdLineLauncher (лежит в \Hyperion\products\Essbase\eas\console\bin\).

Результатом творческого поиска стала следующая конструкция:

/logs/*.log – логи последнего запуска, старые складываются в logs.rar
/prompts/*.prompts – временные файлы значений переменных
/sys/ – служебные файлы и скрипты, см. подробности далее
Описание последовательности.txt – специально подготовленный текстовый файл
Запуск бизнес-правил.bat – запуск выполнения последовательности

Процесс начинается с подготовки файла Описание последовательности.txt. По сути, это csv-файл следующего вида:

Application;Rule;DBName;Year;Scenario;Version;Entity;Parallel[0/1]
Прил1;Бизнес-правило 1;Plan1;FY11;Budget;Version 1;ЦФО 1;1
Прил1;Бизнес-правило 1;Plan1;FY11;Budget;Version 1;ЦФО 2;0
Прил1;Бизнес-правило 2;Plan1;FY11;Budget;Version 1;-;0

Некоторые пояснения:
– Полное название бизнес-правила включает в себя префикс в виде наименования приложения, оно было выделено в отдельный столбец просто для удобства подготовки файла, позже 1 и 2 столбцы склеиваются
– В столбцах перечисляются все возможные измерения, элементы которых могут встречаться во входных параметрах бизнес-правил
– В случае отсутствия значения (например, Прил1.Бизнес-правило 2 не требует Entity) ставится символ -
– Первая строка форматируется произвольно, т.к. она исключается из обработки
– Parallel можно читать следующим образом: Следующий шаг выполняется [1 – параллельно / 0 – последовательно] с текущим

Таким образом, в приведенном выше примере Прил1.Бизнес-правило 1 будет запущено на параллельное выполнение для ЦФО 1 и ЦФО 2, после чего выполнится Прил1.Бизнес-правило 2 (последовательно).

Далее "Описание последовательности.txt" скармливается скрипту "Запуск бизнес-правил.bat" (запуск из cmd вида "Запуск бизнес-правил.bat" "Описание последовательности.txt" или просто drag-n-drop):

@echo off
chcp 1251 >nul

:: Определение пути к папке HBRLauncher
set HBRPath=%~dp0
set HBRPath=%HBRPath:~0,-1%

:: Определение общих параметров
call "%HBRPath%\sys\Глобальные переменные.cmd" %HBRPath%

:: Архивация старых логов
%HBRPath%\sys\rar.exe m -ep1 -idp %HBRPath%\logs\logs.rar %HBRPath%\logs\*.log >nul

:: Удаление старых временных файлов значений переменных
if exist %HBRPath%\*.prompts del %HBRPath%\*.prompts

:: i:App – j:Rule – k:DBName – l:Year – m:Scenario – n:Version – o:Entity – p:Parallel[0/1] – q:Timeout

for /f "usebackq skip=1 eol=# tokens=1-9 delims=;" %%i in (%1) do (
echo [%%i][%%k][%%l][%%m][%%n][%%j][%%o]
if '%%p'=='1' start "" /d"%HBRPath%\sys\" /min %HBRPath%\sys\RunHBR.bat "%%i" "%%j" "%%k" "%%l" "%%m" "%%n" "%%o"
if '%%p'=='0' start "" /d"%HBRPath%\sys\" /min /w %HBRPath%\sys\RunHBR.bat "%%i" "%%j" "%%k" "%%l" "%%m" "%%n" "%%o"
timeout %%q >nul
)
Основные шаги понятны из комментариев, вот несколько уточнений:
– Строки входного файла можно комментировать символом, указанным в eol, в данном случае #
– Разделители меняются в delims, например, можно заменить ; на или любой другой на ваш вкус
– Между запусками установлен таймаут 4 секунды, если timeout у вас не работает (он входит в Windows Resource Kit), можно использовать конструкцию вида ping -n 5 127.0.0.1>nul (необходимое число секунд + 1)
– skip указывает на число игнорируемых верхних строк

Здесь используется довольно простой скрипт для назначения общих переменных \sys\Глобальные переменные.cmd:

:: Входные переменные: %HBRPath%
@echo off

:: Essbase Administration Server
set EAS=EASServerName

:: Логин
set User=admin

:: Активное приложение
set App=Essbase/EssbaseServerName/AppName/

:: Зашифрованный пароль – файл формируется отдельно (см. \Essbase\eas\console\bin\PasswordEncryption.bat)
set PwdFile=%HBRPath%\sys\%User%.password

Как видно из Запуск бизнес-правил.bat, он построчно обрабатывает входной текстовый файл и в зависимости от параметра Parallel запускает \sys\RunHBR.bat в указанными в строке входного файла параметрами в параллель (1) с промежутками в 4 секунды, либо перед запуском следующего бизнес-правила ожидает завершения текущего (0).

А вот сам \sys\RunHBR.bat, запускающий CmdLineLauncher:

:: 1:App - 2:Rule - 3:DBName - 4:Year - 5:Scenario - 6:Version - 7:Entity

:: Запись входных параметров бизнес-правила (с удалением кавычек)
set Rule=%~1.%~2
set DBName=%~3
set Year=%~4
set Scenario="%~5"
set Version="%~6"
set Entity="%~7"

:: Лог-файл
set Log="%HBRPath%\logs\%date:~6,4%%date:~3,2%%date:~0,2%.%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%.%~2.%~7.log"

:: Начало выполнения
echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%.%time:~9,2%] – Начало выполнения бизнес-правила "%Rule%" (%~7) 1>>%Log%
echo. 1>>%Log%

:: Путь к временному файлу значений входных переменных
set Prompts="%HBRPath%\prompts\%date:~6,4%%date:~3,2%%date:~0,2%.%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%.%~2.%~7.prompts"

:: Формирование файла значений переменных
echo %Rule% >>%Prompts%
echo ExecDB::%App%%DBName% >>%Prompts%

if not [%Year%]==[-] echo YearPrompt::"%Year%" >>%Prompts%
if not [%Entity%]==["-"] echo EntityPrompt::"%Entity%" >>%Prompts%
if not [%Version%]==["-"] echo VersionPrompt::"%Version%" >>%Prompts%
if not [%Scenario%]==["-"] echo ScenarioPrompt::"%Scenario%" >>%Prompts%

:: Запуск бизнес-правила
call %HBRPath%\sys\CmdLineLauncher -p:"%PwdFile%" -S%EAS% -U%User% -r"%Rule%" -f%Prompts% 1>>%Log% 2>&1

:: Удаление файла значений переменных
del %Prompts%

echo. 1>>%Log%
echo [%date:~0,2%.%date:~3,2%.%date:~6,4% %time:~0,2%:%time:~3,2%:%time:~6,2%.%time:~9,2%] – Окончание выполнения бизнес-правила "%Rule%" (%~7) 1>>%Log%

exit

15 мая 2011

Пост с Большим респектом

Небольшой пост с Большим респектом (благодраностью) Андрею Пивоварову за серию статей про то, как нужно готовить, готовиться и проводить презентации, в которых нужно не продать, а действительно что-то рассказать на доступном для аудитории уровне!

- Начало
- Продолжение
- Еще
- И конец

Не в первый раз уже перечитываю, применяю и убеждаюсь, что написанное в этих статьях верно и полезно. Категорически рекомендую!

07 мая 2011

Batch Sequence via MaxL

Занимаюсь старинной версией Hyperion Planning 3.5/Essbase 7.1
Приложение HBRules (для создания и управления бизнес-правилами; современный аналог - CalcManager) имеет ряд неприятных ограничений. В этот раз меня разозлил момент, связанный с тем, что невозможно создавать длинные последовательности (sequences). А именно такая задача и стояла, озаглавленная как «Полный пересчет модели».
Итак, один большой сиквенс сделать невозможно. Разбить на несколько – неудобно, потому что пересчеты возможно запускать только по ночам. Да, еще хочется иметь лог для оценки времени (для поиска узких мест и дальнейшей их оптимизации) и статуса завершения расчетов.

Итак, пришел к такому варианту:

1. Переводим (Export) нужные правила в Essbase, чтобы иметь возможность запускать их через MaxL. Минус очевиден: мы теряем связь правила, которое будет портировано в Essbase, и оригинального правила в HBRules, которое может измениться. Лучшее, что я придумал – создать таблицу соответствий имен правил HBRules – Essbase. При изменении правила в HBRules необходимо экспортировать его в Essbase-правило с тем же именем.

2. Готовим список правил Essbase, которые нужно запускать. Располагаем их в необходимом порядке запуска:
FC-1-01
FC-1-02
FC-2-01
Список сохраним в ascii-файлик RulesList.txt.

3. Пишем batch-скрипт, который будет генерить(!) MaxL-скрипт для полного расчета:
@echo off
echo =======================================================
echo Batch AutoCalc Essbase App Script by Antun Kulkov, 2011
echo See more at http://silw.blogspot.com
setlocal
rem ------ Settings -------
set year=%date:~6%
set month=%date:~3,2%
set day=%date:~0,2%
set hour=%time:~0,2%
if '%hour:~0,1%'==' ' set hour=0%time:~1,1%
set minute=%time:~3,2%
set tdate=%year%-%month%-%day%-%hour%%minute%
set STARTPATH=D:\Hyperion\AutoCalc
set ESSMSH=%ARBORPATH%\bin\essmsh.exe
set SERVER=essbase_server_name_or_ip
set USER=ess_admin
set PASSWORD=ess_admin_password
set APPNAME=app_name
set FILE_MAXL=%STARTPATH%\%APPNAME%_script.maxl
set FILE_LOG=%STARTPATH%\logs\AutoCalc_%APPNAME%_%tdate%.log
rem ------ End settings -------
echo Start: %tdate%

echo spool on to '%FILE_LOG%'; > %FILE_MAXL%
echo login '%USER%' '%PASSWORD%' on '%SERVER%'; >> %FILE_MAXL%
echo alter application '%APPNAME%' enable startup; >> %FILE_MAXL%
for /f %%i in (%STARTPATH%\RulesList.txt) do (
echo execute calculation '%APPNAME%'.'Plan1'.'%%i'; >> %FILE_MAXL%
)
echo logout; >> %FILE_MAXL%

echo MaxL script has been generated and run:
echo %FILE_MAXL%
echo See details of calc execution in:
echo %FILE_LOG%
%ESSMSH% %STARTPATH%\%APPNAME%_script.maxl
echo =======================================================
где STARTPATH – директория запуска данного скрипта,
SERVER, USER, PASSWORD – задают сервер Essbase и его пользователя с администраторскими правами,
APPNAME – имя приложения (скажу, что работал с одним кубом Plan1, поэтому прописал его жестко в скрипте). Не забываем брать в кавычки значения переменных, которые содержат пробелы!

Принцип работы:
В папке с этим batch-скриптом генрим MaxL-скрипт (APPNAME_script.maxl), получая имена правил из файла RulesList.txt. И выполняем этот MaxL-скрипт, на всякий случай запуская приложение в Essbase. Лог выполнения MaxL-скрипта пишется в APPNAME_AutoCalc_{дата-время}.log. Все прозрачно!

Замечание: Для правил, использующих переменные с вводом данных (например, предела ставки начисления ЕСН), необходимо установить необходимые значения как дефолтные!

4. Добавляем наш batch-скрипт в расписание, если нужно.

Enjoy!

UPD: Альтернативный (несколько более сложный, но более функциональный) вариант описан у Романа Удальцова здесь

08 апреля 2011

Вышел EPM 11.1.2.1


См. Oracle.com

UPD: К сожалению, вендор не обновил EPM System Defects Fixed Finder, в котором пока описаны изменения только до версии 11.1.2.0.

Есть еще такой документ EPM System Cumulative Feature Overview Tool, где явно написано, что фичи 11.1.2.1 совпадают с 11.1.2.

Как апгрейдиться на новую версию с 11.1.2
1) Скачать дистрибутивы согласно installation guide.
2) Изучить все readme guides.
3) Сделайте полный бэкап вашего окружения (серверов и БД).
4) На каждом сервере запустите инсталлер и укажите такой пункт:

UPD 9/04: Установил все на один виртуальный тестовый сервер (4CPU x 2.33MHz; 6GB RAM; Win2003R2; MS SQL Server 2005 SP4 Express) EPM 11.1.2.1! Получилось не с первого раза, а инсталл-гайд написан не так подробно, как того стоило.
Итак, запущенные сервисы:
В связи с ограничениями физики почти всем сервисам дал от 128 до 384MB виртуальной памяти, особо прожорливым - до 512. Потребляемая виртуальная память:
Установленные версии:

14 марта 2011

EPM 11.1.2 – Мониторинг веб-приложений

Еще одна очень полезная фича в новой версии EPM 11.1.2, окончательно перешедшей на WebLogic - возможность мониторить веб-приложения EPM с помощью extension template для WebLogic, котоый добавляется в функциональность Enterprise Manager Fusion Middleware Control. Как раз с этим была у меня проблема на серверах с ограниченной производительностью - отслеживать состояния веб-приложений и вообще компонент EPM.


Сама статья, в которой описаны процесс установки, настройка и варианты использования находится здесь.

11 марта 2011

Изменение режима обслуживания приложения Planning через batch-файл

Очень интересное и простое решение, которое можно использовать, например на время бэкапа или обновления метаданных (через ODI/batch).
В первом случае [бэкап] обычно используют MaxL скрипт, который принудительно прерывает операции в Essbase и производит выгрузку данных. При этом пользователь обычно может войти в приложение, но получит ошибку при открытии формы, поскольку Essbase находится в этот момент в режиме обслуживания. Не очень красиво, конечно. Да, и пользователь начнет писать гневные письма.
Во втором случае [обновления справочников/измерений в приложении Planning] желательно пользователей до завершения деплоя вообще не пускать в приложение.
Таким образом, очень удобно поставить в расписание перед бэкапом, обновлением и т.п. задачу перевода приложения в режим обслуживания с доступом только администраторам, а по окончании этих работ - обратно дать доступ пользователям.

Метод изменения режима обслуживания приложения Planning через batch-файл описан по этой ссылке.

04 марта 2011

EPMA 11.1.2 Import Profile File Upload Error

В этом релизе существует такой баг - при создании профайла импорта метаданных при создании/загрузке измерений из файла в момент попытки загрузки самого файла получаем ошибку типа
Failure of server APACHE bridge:
Cannot open TEMP post file 'd:\TEMP\\1\_wl_proxy\_post_3924_1' for POST of 17045 bytes
Build date/time: Oct 29 2009 02:08:24
Change Number: 1013
Failure of server APACHE bridge:
Internal Server failure, APACHE plugin. Cannot continue.
Build date/time: Oct 29 2009 02:08:24
Change Number: 1013
Уточню, что в примере системная переменная TEMP = d:\TEMP
Для решения проблемы необходимо:
1. Задать этой папке разрешение на полный доступ для групп Все (Everyone) и System
Проверить пользователя можно для сервиса OPMN
2. Создать субдиректорию _wl_proxy в папке %TEMP%\1.
3. Перезапустить сервисы EPM и в частности - OPMN.
Enjoy!

24 февраля 2011

EPM 11.1.2.1 в марте 2011

В последнее время имел необходимость решать несколько задач с миграцией разный артефактов/объектов EPM System на версию 11.1.2. И оказалось, что многие вещи мигрировать нельзя даже с предыдущего релиза 11.1.1.3.
Естественно были заданы вопросы службе поддержки Оракл, и большинство из них свелось к ответу типа: "Ждите нового релиза EPM 11.1.2.1 в марте 2011".

Ждем-с..

19 февраля 2011

EPM 11.1.2 на Windows 7

Сошлись желание провести такой заманчивый тест и поднять дома окружение для проведения некоторых работ халтурку на дом взять: написать правила, построить отчеты.
Для работы нам пригодятся:
1. ПК с установленной Windows 7. В моем случае это русская 64-битная Профессиональная редакция (CPU: Intel Core 2 Quad Q8200 RAM: 4Gb DDR2 1066MHz).
2. Установленный AdminPack для Windows 7 для использования IIS (для EPMA) и отслеживания служб и прочих "серверных" рюшечек. Взять здесь.
3. Установленная СУБД. Достаточно редакции Express. Я выбрал MS SQL Server 2008 R2 Express 64bit.
4. Статья Тима Тоу Windows 7 / Essbase 11.1.1.3 Installation Tutorial
5. Дистрибутивы EPM System 11.1.2. Я взял те же, что и в этой статье.

Итак, по статье Тима:
- устанавливаем loopback сетевой адаптер.
- копируем из установленной на машине JRE папки (у меня c:\Java\jre6) все содержимое в папку [instaltoolpath]\jre\win32\1.6.0 . Если таковых нету - создаем их смело!
- и правим installTool.cmd по причине различий CMD_Shell серверных и десктопных ОСей, принудительно прописывая команду старта jar-инсталлера
[instaltoolpath]\jre\win32\1.6.0\bin\java.exe -Xmx1024M -Djava.library.path=%TMP% -DRELEASE_VERSION=11.1.2.0 -Djava.util.logging.config.class=oracle.core.ojdl.logging.LoggingConfiguration -Doracle.core.ojdl.logging.config.file=\installTool-logging.xml -DDATE_TIME=%DATE_TIME% -jar \installTool.jar %*
Запускаем файл installTool от имени Администратора и устанавливаем все по накатанной.

UPD: Если инсталлер запустился, то любые ошибки установки связаны либо с неверной (не в ту директорию, не от той версии архив) или неполной распаковкой дистрибутивов, либо с работой файервола/антивируса. У меня Comodo CIS после некоторого времени, не получая моего разрешения на действие компоненты установки, блокировал выполнение установки какого-то компонента. Это вызывало ошибки.

Конфигурируем аналогично описанному здесь через EPM Configurator, который запускаем от имени Администратора.

После завершения конфигурирования идем в реестр HKLM\SOFTWARE\Hyperion Solutions и устанавливаем значения -Xms128m / -Xmx512m везде, где найдем, и перезапускаем сервисы для лучшей их производительности на ограниченном объеме RAM.
Для грубой оценки верхнего предела (Xmx) можно считать так: объем оперативной памяти / (кол-во сервисов EPM + SQL + Oracle HTTP Server + 5). Здесь нужно пробовать каждый компонент, например Shared Services и EPMA любят побольше. Я же не запускаю BI сервисы (FinReporting, WebAnalysis и их фреймворк). Также можно не загружать CalcManager (для тех, кто как и я по старинке работают с business rules), Essbase Studio. А если у вас только classic Planning приложения, то и весь комплекс EPMA.
Для удобства использования:
- В сервисах (службах) для всех компонент EPM (начинаются со слова Hyperion) и Oracle Proccess manager выставляем свойства запуска "Вручную". Запускать можно через ярлыки в Пуске.
- Аналогичную операцию проводим для сервера БД. Но для его запуска настраиваем пару bat-файлов для запуска/остановки.
Пример запуска SQL Server:
@ECHO OFF
ECHO -------SQL Server Starting
net start "MSSQLSERVER"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------SQL Server Browser Starting
net start "SQLBrowser"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------SQL Server Agent Starting
net start "SQLSERVERAGENT"
waitfor NONEXISTINGSIGNAL /T 5
Пример остановки SQL Server:
@ECHO OFF
ECHO -------SQL Server Agent Stopping
net stop "SQLSERVERAGENT"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------SQL Server Browser Stopping
net stop "SQLBrowser"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------SQL Server Stopping
net stop "MSSQLSERVER"
waitfor NONEXISTINGSIGNAL /T 5
Кладем файлы, например в %hyperion_home%, а ярлычки кидаем на рабочий стол или в Пуск к EPM.
В моем случае не появились ярлыки на запуск EPM System. Кроме того, запуск сервисов через них занимает больше 10 минут. Напишем свой bat. Отрабатывает быстрее.
startEPM.bat
ECHO -------EPM 11.1.2 STARTING / Batch EPM full start script by Antun Kulkov, 2011
@ECHO OFF
ECHO -------Oracle Process Manager (ohsInstance)
net start "Oracle Process Manager (ohsInstance3193331783)"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Oracle Process Manager (EPM_epmsystem1)
net start "opmn_EPM_epmsystem1"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Oracle Process Manager (ConfigurationManager)
net start "Oraclec_oracle_middle~1_epmsys~1c_oracle_middleware_user_projects_epmsystem1ConfigurationManager"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Hyperion RMI Registry
net start "Hyperion RMI Registry"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Hyperion Foundation Services - Managed Server
net start HyS9FoundationServices
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Administration Services - Web Application
net start HyS9eas
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Integration Services
net start "Hyperion Integration Services"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Provider Services - Web Application
net start HyS9aps
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Studio Service BPMS
net start "Hyperion Studio Service BPMS bpms1"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion EPM Architect - Process Manager
net start HyS9BPMA_ProcessManager
waitfor NONEXISTINGSIGNAL /T 30
ECHO -------Hyperion EPMA Data Synchronizer - Web Application
net start HyS9EPMADataSynchronizer
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion EPMA Web Tier - Web Application
net start HyS9EPMAWebTier
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion CALC Manager - Web Application
net start HyS9CALC
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Planning - WebHyS9Planning Application
net start HyS9Planning
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Web Analysis - Web Application
net start HyS9WebAnalysis
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Reporting and Analysis Framework
net start HyS9RaFrameworkAgent
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Financial Reporting - Print Service
net start FRPrintService
waitfor NONEXISTINGSIGNAL /T 30
ECHO -------Hyperion Financial Reporting - Web Application
net start HyS9FRReports
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Reporting and Analysis Framework - Web Application
net start HyS9RaFramework
waitfor NONEXISTINGSIGNAL /T 5
ECHO ALL DONE!
waitfor NONEXISTINGSIGNAL /T 10
stopEPM.bat
ECHO -------EPM 11.1.2 STOPPING / Batch EPM full stop script by Antun Kulkov, 2011
@ECHO OFF
ECHO -------Hyperion Reporting and Analysis Framework - Web Application
net stop HyS9RaFramework
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Financial Reporting - Web Application
net stop HyS9FRReports
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Financial Reporting - Print Service
net stop FRPrintService
waitfor NONEXISTINGSIGNAL /T 30
ECHO -------Hyperion Reporting and Analysis Framework
net stop HyS9RaFrameworkAgent
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Web Analysis - Web Application
net stop HyS9WebAnalysis
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Planning - WebHyS9Planning Application
net stop HyS9Planning
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion CALC Manager - Web Application
net stop HyS9CALC
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion EPMA Web Tier - Web Application
net stop HyS9EPMAWebTier
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion EPMA Data Synchronizer - Web Application
net stop HyS9EPMADataSynchronizer
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion EPM Architect - Process Manager
net stop HyS9BPMA_ProcessManager
waitfor NONEXISTINGSIGNAL /T 30
ECHO -------Hyperion Studio Service BPMS
net stop "Hyperion Studio Service BPMS bpms1"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Integration Services
net stop "Hyperion Integration Services"
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Provider Services - Web Application
net stop HyS9aps
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Administration Services - Web Application
net stop HyS9eas
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion Foundation Services - Managed Server
net stop HyS9FoundationServices
waitfor NONEXISTINGSIGNAL /T 5
ECHO -------Hyperion RMI Registry
net stop "Hyperion RMI Registry"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Oracle Process Manager (ConfigurationManager)
net stop "Oraclec_oracle_middle~1_epmsys~1c_oracle_middleware_user_projects_epmsystem1ConfigurationManager"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Oracle Process Manager (EPM_epmsystem1)
net stop "opmn_EPM_epmsystem1"
waitfor NONEXISTINGSIGNAL /T 10
ECHO -------Oracle Process Manager (ohsInstance)
net stop "Oracle Process Manager (ohsInstance3193331783)"
waitfor NONEXISTINGSIGNAL /T 10
ECHO ALL DONE!
waitfor NONEXISTINGSIGNAL /T 10

UPD: Вариант использования SC вместо NET (start|stop) хорошо описан здесь у Романа Удальцова

Порядок запуска после установки становится таким:
- Запускаем SQL Server - из нашего первого батничка;
- Запускаем Foundation Services (Oracle WebLogic 10) - есть ярлычок в Пуске, но в нашем случае нет необходимости;
- Запускаем EPM System - из второго нашего батничка.
Порядок остановки обратен.


Enjoy!

18 февраля 2011

Как верно провести первичную настройку EPM System 11.1.2

Наконец-то появились задачи по работе со свежайшей (на сегодня) версии Oracle EPM System 11.1.2. Сразу скажу, что у этой версии от предшественницы (11.1.1.3) появилось сразу несколько негативных отличий:
- Субъективное: дизайн. Понятно, что подогнали под 11-ую линейку Fusion MiddleWare. Но цветовая гамма предшественницы радовала гораздо больше! Может быть, Oracle выложит файлики с предыдущими темами оформления?!
- Миграционное: LCM без проблем не может импортировать выгрузки даже из предыдущей версии. Хотя в 11.1.2.1 (он же SP1) обещают исправить.
- Стартовое: изменился порядок первичной настройки (конфигурирования) системы сразу после установки.

О последнем и напишу подробнее в этой статье.
Сразу скажу, что задачи крутятся вокруг Planning. Я устанавливаю всё на MS Win2003 Server R2 (64bit; Standard Edition) с MS SQL Server 2005 SP4.
Компоненты, которые я распаковал для установки:
- Foundation: Foundation Services, Performance Management Architect, CalcManager;
- Essbase;
- Planning;
- Reports & Analysis: Financial Reporting, Web Analysis.
При первой установке решил пройтись по накатанной (как в 11.1.1.3). Ан-нет! Не случилось. В первый раз подвел Oracle HTTP Server. Во второй – не смог настроиться Essbase. Как оказалось из-за неверного/неполного удаления предыдущее инсталляции. Как все почистить целиком, и установить заново, читайте здесь.

Сразу отмечу, что стоит создавать для каждого компонента СВОЮ отдельную базу. И устанавливайте каждой базе свойство AutoShrink = True.

Поковырявшись в гугле и оракл-форумах, пошел дед закидывать невод решился на третью попытку. В этот раз все прошло так и даже работает:
Итак, вот порядок удачных действий:
1. После установки идем через Пуск в EPM System Configurator. Делаем uncheck всех компонентов и выбираем в Hyperion Foundation только: Common Settings, Configure Database, Configure Oracle Configuration Manager. Соглашаемся на все. Я выбрал в качестве веб-сервера Oracle HTTP-Server. Насчет поддержки Oracle Support: если у вас промышленный сервер и он смотрит в интернет (пусть через проксю), то можете соглашаться и настраивать. Там все просто. В ином случае – плюньте на этот момент. В ходе установки задайте дефолтовый админский пароль.
2. Если все хорошо, то идем опять в EPM System Configurator (или Task Panel, если вы не закрыли сам конфигуратор) и деплоим (применяем) Shared Services, выбрав только Configure Web Server и Deploy to App Server. Тут все просто. Нужно только придумать и записать пароль для домена Oracle WebLogic.
3. После этого этапа можно сразу зайти через web в консоль Shared Services и подключить MSAD. При использовании IIS: если не стартует веб-приложение, через консоль IIS запустите веб-узлы и приложения, не забыв назначить для узлов использовать ASP.NET 2.x.
4. Теперь через EPM System Configurator настраиваем сам компонент Essbase, остальные пока можно оставить в сторонке.
5. Затем также настраиваем все остальные компоненты вкладки Essbase, но по порядку и по одному! Для проверки этих компонент нужно иметь запущенными сервисы: Foundation Servoces, Oracle Proccess Manager (EPM_epmsystem1), Administration Services.
6. Конфигурируем EPMA. Здесь все просто, НО: при создании БД под EPMA нужно проверить свойства READ_COMMITTED_SNAPSHOT и ALLOW_SNAPSHOT_ISOLATION. Они должны иметь значения ON. Если лень искать, то просто запустите следующий скрипт:
ALTER DATABASE HP11_EPMA SET READ_COMMITTED_SNAPSHOT ON;
ALTER DATABASE HP11_EPMA SET ALLOW_SNAPSHOT_ISOLATION ON;
где HP11_EPMA – база под EPMA.
7. Конфигурируем CalcManager. Все просто.
8. Конфигурируем Planning. Сначала все доступные компоненты, а затем кластер.
9. Конфигурируем Reporting & Analysis.
10. А теперь, чтобы все было доступно в Workspace, выполняем задачи:
- Configure Web Server
- и Configure Logical Address for Application Server под Hyperion Foundation.

Вот и все! Если все разворачиваете на Oracle HTTP-Server, то стучитесь к компонентам через 19000 порт после запуска всех нужных сервисов! Например, http://localhost:19000/workspace/

Enjoy!

UPD: В реестре HKLM\SOFTWARE\Hyperion Solutions установите значения -Xms512m / -Xmx1024m везде, где найдете, и перезапустите сервисы для лучшей их производительности.

Бэкап компонент EPM 11.1.2

Следуя рекомендациям Oracle, настроим бэкап следующего:
- Директории с конфигурациями продуктов EPM
%Hyperion_Home%\user_projects\epmsystem1\config
- Директорию WebLogic Domain
%Hyperion_Home%\user_projects\domains\EPMSystem
- Директорию контента LCM
%Hyperion_Home%\user_projects\epmsystem1\import_export
- Веток реестра с параметрами EPM
- Директории с настройками и данными приложений

Последний пункт обычно автоматизируют отдельно, о чем написано:
- Здесь про данные из баз приложений Essbase.
- Здесь про формы Planning.
- Некоторые дополнения напишу позже.
Поэтому в скрипте ниже эти моменты пропустим.

Итак, с целью максимальной автоматизации делаем следующее:
- Создаем папочку под бэкапы EPM. У меня это d:\BACKUP\EPM. Структура такова:
- Ложим туда такой bat-файл:

rem Batch 7zipped backup script by Antun Kulkov, 2011
@echo off
set year=%date:~6%
set month=%date:~3,2%
set day=%date:~0,2%
set hour=%time:~0,2%
if "%hour:~0,1%"==" " set hour=0%time:~1,1%
set minute=%time:~3,2%
set tdate=%year%-%month%-%day%-%hour%%minute%
set DOMAIN_HOME=C:\Hyperion\user_projects
set BACKUP_HOME=d:\BACKUP\EPM
set ZIP_HOME="c:\Program Files\7-Zip"
@echo on
rem Config Backup
%ZIP_HOME%\7za.exe a -t7z %BACKUP_HOME%\config\config-%tdate%.7z %DOMAIN_HOME%\epmsystem1\config -m0=BCJ -m1=LZMA:d=21 -mx=9 -ms -mmt > %BACKUP_HOME%\config\config-%tdate%.log

rem WebLogic Domain Dir Backup
rem call "%DOMAIN_HOME%\domains\EPMSystem\bin\stopWebLogic.cmd" %*
%ZIP_HOME%\7za.exe a -t7z %BACKUP_HOME%\weblogic_domain\wldomain-%tdate%.7z %DOMAIN_HOME%\domains\EPMSystem -m0=BCJ -m1=LZMA:d=21 -mx=9 -ms -mmt > %BACKUP_HOME%\weblogic_domain\wldomain-%tdate%.log
rem call "%DOMAIN_HOME%\domains\EPMSystem\bin\startWebLogic.cmd" %*

rem Lifecycle Management content Backup
%ZIP_HOME%\7za.exe a -t7z %BACKUP_HOME%\LCM_impexp\lcm-%tdate%.7z %DOMAIN_HOME%\epmsystem1\import_export -m0=BCJ -m1=LZMA:d=21 -mx=9 -ms -mmt > %BACKUP_HOME%\LCM_impexp\lcm-%tdate%.log

rem Registry Backup
set rkey_hklm="HKEY_LOCAL_MACHINE"
set rkey_osenv="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
DEL %BACKUP_HOME%\registry\*.reg
REG EXPORT %rkey_hklm% %BACKUP_HOME%\registry\HKLMreg-%tdate%.reg
REG EXPORT %rkey_osenv% %BACKUP_HOME%\registry\OSEnv-%tdate%.reg
%ZIP_HOME%\7za.exe a -t7z %BACKUP_HOME%\registry\reg-%tdate%.7z %BACKUP_HOME%\registry\*.reg -m0=BCJ -m1=LZMA:d=21 -mx=9 -ms -mmt > %BACKUP_HOME%\registry\reg-%tdate%.log
DEL %BACKUP_HOME%\registry\*.reg

rem Finished!

Все достаточно прозрачно:
- Сначала задаем нужные переменные для дат/времени и директорий DOMAIN_HOME (она = %Hyperion_Home%\user_projects\), BACKUP_HOME (собственно куда класть бэкапы) и ZIP_HOME (папка с архиватором; у меня 7-zip).
- Затем бэкапим то, что я описал в самом начале статьи.
- Отдельно про WebLogic Domain. Рекомендуют останавливать, но можно и так)) Поэтому я закомментил его остановку и старт. Вообще рекомендуют полную остановку EPM, но у меня разброс филиалов в 7 часовых поясов, что не позволяет выводить систему из рабочего состояния.
- Отдельно про реестр. Переменная rkey_hklm – это ветка реестра HKLM, где, в том числе, лежат параметры EPM. Здесь можно выбрать и конкретную ветку Hyperion Solutions, но я решил бэкапить все. А rkey_osenv – ветка с переменными окружения Windows. Порядок работы такой: выгружаем из реестра в два файла, бэкапим в архив и прибираемся, удаляя файлы выгрузок.

Ну, и добавляем наш волшебный файлик в Task Scheduler по расписанию. Enjoy!

16 февраля 2011

Как упростить установку обновлений для EPM 11.1.2

Обычная процедура установки обновлений выглядит так:
- Остановка всех или некоторых сервисов;
- Применение патча (через OPatch);
- Иногда нужны дополнительные действия;
- Повторное развертывание компонент на веб-сервере (через EPM Configurator);
- Запуск сервисов.

Я написал небольшой bat-файл для себя, который упрощает второй шаг из перечисленных выше:

set patch_number="hp_11.1.2.0.02"
rem Batch script to automate opatch by Antun Kulkov, 2011
@echo off
set year=%date:~6%
set month=%date:~3,2%
set day=%date:~0,2%
set hour=%time:~0,2%
if "%hour:~0,1%"==" " set hour=0%time:~1,1%
set minute=%time:~3,2%
set tdate=%year%%month%%day%-%hour%%minute%
@echo on
opatch.bat apply %EPM_ORACLE_HOME%\OPatch\%patch_number% -oh %EPM_ORACLE_HOME% -jre %JAVA_HOME% > opatchLog-%tdate%-p%patch_number%.log


Вот такой файл, который нужно положить в %EPM_ORACLE_HOME%\OPatch.
Самое главное – задать в первой строке значение переменной patch_number, которое равно названию папки, в которой лежат обновления. В данном случае применял фикс к Planning (hp_11.1.2.0.02). Если есть пробелы, обязательно берите все значение в кавычки. В ином случае – можно обойтись без них.

Можно, конечно, передавать параметром значение patch_number, но мне так показалось удобнее. А вот делать в цикле, считывая директории, не стоит. Каждое обновление требует дополнительных действий и тщательной проверки после выполнения всех действий по обновлению!

Еще перевязал оригинальный лайн на свой JRE, используя переменную windows-окружения %JAVA_HOME%. У меня это "c:\Java\jdk6\jre". Ну, и пишем все в лог, чтобы иметь возможность отслеживать результаты. Файл лога будет лежать в %EPM_ORACLE_HOME%\OPatch.

Не забываем внимательно читать Readme к каждому патчу и фиксу!

12 февраля 2011

Как удалить EPM System 11.1.2

Иногда случается так, что компоненты Oracle EPM System 11.1.2 запороты кривыми руками =) и необдуманными действиями, или понятно, что переустановить будет быстрее, чем разобраться в проблемах.
Переустановка некоторых компонентов также может не дать результатов, а при полном удалении этих компонентов и новой их инсталляции EPM System Configurator сходит с ума, неверно отражая иерархию и не позволяя управлять большинством Foundation компонентов. У меня такое наблюдалось при проблемах конфигурации Essbase, которые были вызваны ошибками при установке Essbase.
Мое окружение: MS Win2003 Server R2 (64bit; Standard Edition) и MS SQL Server 2005 SP4.

Итак! Всё, что смогли – забэкапили через LCM или дедовскими методами и в путь:
1. Останавливаем все сервисы EPM и Oracle Proccess Manager (можно через Пуск).
2. Идем через Пуск в Uninstall EPM System и следуем инструкциям, удаляя ВСЁ!
3. Перезагружаемся!
4. Удаляем все то, что не подчистил Uninstaller:
a. Установочную директорию (EPMSystem_Home). У меня это C:\Hyperion;
b. В реестре ветку HKEY_LOCAL_MACHINE\SOFTWARE\Hyperion Solutions;
c. В реестре ветку HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\opmn_EPM_epmsystem1;
d. В реестре ветку HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Oraclec_hyperion_epmsys~1c_hyperion_user_projects_epmsystem1ConfigurationManager (в моем случае Oraclec_hyperion_epmsys~1c_hyperion – это производное от пути к основным компонентам c:\hyperion\epmsys~1 и установочной директории c:\hyperion)
5. Перезагружаемся!
6. Удаляем с помощью ccleaner все баги в реестре, в том числе HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\Root\LEGACY_ORACLEC_HYPERION_EPMSYS~1C_HYPERION_USER_PROJECTS_EPMSYSTEM1CONFIGURATIONMANAGER
7. Перезагружаемся!
8. Проверяем в сервисах отсутствие любых Hyperion и Oracle сервисов из тех, что были к EPM System.
9. Можно подчистить в папке c:\Documents and Settings\[Твой_User] все файлы и папки от EPM.
10. Можно дропнуть БД под SharedServices, если хочется)) Все равно мы чистим все на корню, и при новой установке лучше создать эту БД заново.
Всё! Система чиста и готова к новой установке EPM. О том, как правильно провести первичную настройку EPM System 11.1.2 я расскажу в следующий раз.