пятница, 17 декабря 2010 г.

17,7 секунд

Запуск бизнес-правил из командной строки с использованием 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.»

Комментариев нет:

Отправить комментарий