Показаны сообщения с ярлыком JRE. Показать все сообщения
Показаны сообщения с ярлыком JRE. Показать все сообщения

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.»

14 марта 2011

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

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


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

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!

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 к каждому патчу и фиксу!

14 августа 2009

Особенности связки EPM 11 + Apache + Tomcat при доп.разработках

При разработке дополнительных инструментов работы с продуктами EPM 11 необходимо учитывать, что система крутится на переписанном JRE 1.5. Чем это чревато? Да просто тем, что при попытке использовать какие-нибудь красивые расширения (в нашем случае на базе Google Web Toolkit), даже при условии того, что вы скомпилировали именно на их JRE, это приложение может не работать. При попытке запустить созданное приложение на их Tomcat, мы получали ошибки валидации их https-servlet валидатором. В итоге, пришлось ставить отдельный Tomcat. Кстати, советую 5.5.27, который достаточно стабилен. Если вам всё таки необходимо работать с их сессионными параметрами, то забудьте про красивые расширения, только лишь получите много проблем. Если твёрдо необходимо работать внутри их страниц, то все свои классы необходимо компилировать именно на их JRE (обычно лежит здесь $Hyperion_Home\common\JRE\Sun\1.5.0\), после чего помещать в их Tomcat. После этого перезапускать его, чтобы потом в Apache подтянулись изменения, и вы могли их использовать в jsp-страницах.
Спасибо за тех.помощь Игорю Мирочнику ;)

Перезагрузка сервисов Oracle EPM 11.1.1.2

Иногда при перезапуске сервисов EPM 11 на Windows серверах вы можете получить "Ошибку 503" и т.д. Это связано с тем, что после установки (оказывается!) запускать Tomcat надо ручками. Нужно запустить файл $Hyperion_Home\common\appServers\Tomcat\5.5.17\bin\startup.bat. Кроме того, нужно самостоятельно создать специальную переменную в среде окружений (JRE_HOME с параметром %disk%:\Hyperion\common\JRE\Sun\1.5.0). И только после этого вы можете смело перезапустить Apache, и о чудо - всё будет работать!
Спасибо за тех.помощь Игорю Мирочнику ;)