ПО: RHEL 5.5, Weblogic 10.3.5, Oracle BAM 11.1.1.5 + некоторые патчи.
Есть простой BAM-домен следующей конфигурации:
Weblogic сервера:
- AdminServer - порт 7001;
- bam_server1 - порт 9001.
- 192.168.2.130
- 192.168.2.96
Особенность: BAM Server является singleton-компонентом в Oracle BAM и может быть только один в Weblogic-домене. Его кластеризовать нельзя, обычно настраивается на него миграция сервера, а компоненты BAM Web кластеризуются как обычные Web-приложения.
Первоначальная конфигурация: В случае выхода из строя первого физического сервера:
Последовательность шагов:
- Необходимо разрешить пользователю операционной системы под которым развернут Oracle BAM (в нашем случае - это weblogic) полномочия для запуска команд /sbin/ifconfig и /sbin/arping. Для этого пользователем root добавим в файл /etc/sudoers следующую строку (выделена красным):
...... ## Next comes the main part: which users can run what software on ## which machines (the sudoers file can be shared between multiple ## systems). ## Syntax: ## ## user MACHINE=COMMANDS ## ## The COMMANDS section may have other options added to it. ## ## Allow root to run any commands anywhere root ALL=(ALL) ALL weblogic ALL=NOPASSWD: /sbin/ifconfig,/sbin/arping ## Allows members of the 'sys' group to run networking, software, ## service management apps and more. ......
- Для обеспечения работоспособности необходим дополнительный "плавающий"/виртуальный IP-адрес из той же подсети, например: 192.168.2.139. После этого выполнить следующие команды на первой машине:
$ sudo /sbin/ifconfig eth0:1 192.168.2.139 netmask 255.255.252.0 $ sudo /sbin/arping -q -U -c 3 -I eth0 192.168.2.139
- Добавить в переменную PATH следующее (лучше на уровне профиля пользователя, если используется bash, то это файл ~/.bash_profile):
PATH=$PATH:$MW_HOME/wlserver_10.3/common/nodemanager:$MW_HOME/user_projects/domains/bam_domain/bin/server_migration:$MW_HOME/wlserver_10.3/common/bin export PATH
- Зайти в bam_server1 и ввести Server Listen Address - 192.168.2.139.
- Клонируем bam_server1 (переходим в "Environment"->"Servers", выбираем bam_server1 и нажимаем на кнопку "Clone"). Новый сервер:
- Server Name - bam_server2;
- Server Listen Address - 192.168.2.96;
- Server Listen Port - 9002.
- Создаем кластер:
- Name - BAM_Cluster;
- Messaging Mode - Unicast.
- Добавляем в данный кластер оба сервера - bam_server1 и bam_server2.
- На каждой физической машине (с т.з. операционной системы) сконфигурируем по Node Manager-у (подробнее здесь) и создадим две Weblogic-машины (Machines):
- Machine1 - 192.168.2.130;
- Machine2 - 192.168.2.96.
- Соотнесём Weblogic-сервера и Weblogic-машины следующий образом:
- bam_server1 - Machine1;
- bam_server2 - Machine2.
- Теперь соотнесём приложения и библиотеки с созданным нами кластером (BAM_Cluster), а не только с bam_server1:
- DMS Application (11.1.1.1.0)
- oracle-bam (11.1.1)
- usermessagingdriver-email
- usermessagingserver
- wsil-wls
- wsm-pm
- Соотнести приложение "oracle-bam (11.1.1)" следующим образом:
oracle-bam(11.1.1) BAM_Cluster /oracle/bam bam_server1 oracle-bam-adc-ejb.jar bam_server1 oracle-bam-ems-ejb.jar bam_server1 oracle-bam-eventengine-ejb.jar bam_server1 oracle-bam-reportcache-ejb.jar bam_server1 oracle-bam-statuslistener-ejb.jar bam_server1 OracleBAM BAM_Cluster OracleBAMWS BAM_Cluster sdpmessagingclient-ejb.jar bam_server1 - Так же соотнести следующие Data Source-ы с кластером BAM_Cluster:
- BAMDataSource;
- mds-owsm;
- OraSDPMDataSource.
- Соотнести следующие Startup and Shutdown Classes с BAM_Cluster:
- JOC-Shutdown;
- JOC-Startup
- Создать новый Data Source для механизма контроля миграции (если потребуется, то создать отдельного пользователя в СУБД. Не использовать административных пользователей, таких как SYS и SYSTEM) и соотнесём его с кластером BAM_Cluster.
- Создадим необходимую служебную таблицу для механизма контроля миграции, для этого надо выполнить скрипт лежащий в $MW_HOME/wlserver_10.3/server/db/<СУБД>/leasing.ddl.
- Перейти в "Services"->"Persistence Stores" и проверить какие типы Persistence Store-ов используются:
- Если FileStore, то обеспечить доступ к директориям со второго сервера, как правило для этого используется раздел дискового массива или кластерной файловой системы.
- Если JDBCStore, то соотнести используемый Data Source с кластером BAM_Cluster.
- Запустить bam_server1 и bam_server2.
- Зайти в Enterprise Manager (http://AdminServerHost:AdminServerPort/em) раскрыть меню BAM в нём должны быть три элемента:
- OracleBamServer(bam_server1);
- OracleBamWeb(bam_server1);
- OracleBamWeb(bam_server2).
- ServerName - IP-адрес или доменное имя BAM-сервера, в нашем случае это 192.168.2.139;
- ServerPort - порт на котором запущен BAM-сервер, в нашем случае это 9001;
- Перезапустить AdminServer.
- Необходимо донастроить Node Manager-ы на каждой физической машине, добавить опции для сетевых интерфейсов в файл nodemanager.properties:
где eth0 - имя сетевого интерфейса на котором будет поднят "плавающий"/виртульный IP-адрес.Interface=eth0 NetMask=255.255.255.0 UseMACBroadcast=true
- Затем в Weblogic Console выбрать кластер BAM_Cluster и перейти в "Configuration"->"Migration" и заполнить поле "Data Source For Automatic Migration:", где выбрать созданный Data Source для механизма контроля миграции (см. пункт 13).
- Далее перейти в "Environment"->"Servers" выбрать bam_server1. Перейти в "Configuration"->"Migration" и поставить галку "Automatic Server Migration Enabled".
- Перезапустить сервера и протестировать миграцию.