понедельник, 16 апреля 2012 г.

Deploying JVMD Agents

В состав продукта Enterprise manager 12c входит средство мониторинга JVM и web-приложений.
Называются они соответственно JVM Diagnostics и Application Dependency and Performance. Как и в 11 Enterprise Manager  эти средства реализованы в виде отдельный weblogic-серверов на которых выполняются ADP Manager и JVM Manager. Если верить документации от Oracle  - настройка проста и не должна вызывать проблем.

Когда проблемы всё-таки возникнут, придётся почитать расширенную версию документации.
В ней можно разжиться рекомендуемыми начальными размерами heap и permanent областей памяти
USER_MEM_ARGS="-Xms256m -Xmx1024m -XX:MaxPermSize=768m"


Основная проблема возникнет на шаге
Deploying JVMD Agents.
Чтобы начать процедуру деплоя агентов необходимо пройти по ссылке:

Ввести Credetials для целевого сервера и для EM 12с.

Job завершится с ошибкой, так как инсталлятор не найдёт нужных jar-архивов. Архивы можно собрать самому с помощью утилиты
wljarbuilder.jar
cd $WEBLOGIC_HOME/server/lib
$JAVA-HOME/bin/java -jar $WEBLOGIC_HOME/server/lib/wljarbuilder.jar
После того, как она отработает, документация предлагает скопировать 4 архива в папку $AGENT_HOME/sysman/jlib.
Copy the following files from <WEBLOGIC_HOME>/server/lib/ to <AGENT_HOME>/sysman/jlib directory:
Это ошибка. Инсталятор там эти пакеты не находит. Нужная папка -
$AGENT_HOME/jlib
cp $WEBLOGIC_HOME/server/lib/wlfullclient.jar $AGENT_HOME/jlib/
cp $WEBLOGIC_HOME/server/lib/cryptoj.jar $AGENT_HOME/jlib/
cp $WEBLOGIC_HOME/server/lib/wlcipher.jar $AGENT_HOME/jlib/
cp $WEBLOGIC_HOME/server/lib/webserviceclient+ssl.jar $AGENT_HOME/jlib/

В недрах металинка можно откопать ноту, в которой рекомендуется добавить ключ
-Djava.security.egd=file:/dev/./urandom 
к остальным переменным плагина агента, чтобы исправить известный баг JVM.
Баг лучше исправлять по старинке, изменив строку в файле java.security
$JAVA_NOME/jre/lib/security/java.security. Это исправит проблему для всех JVM, запускаемых из данного $JAVA_HOME
securerandom.source=file:/dev/urandom
заменить на
securerandom.source=file:/dev/./urandom