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

воскресенье, 1 апреля 2012 г.

Кластеризация Oracle BAM 11g

Описание: Описана кластеризация BAM 11g в конфигуции с двумя физическими машинами.
ПО: RHEL 5.5, Weblogic 10.3.5, Oracle BAM 11.1.1.5 + некоторые патчи.

Есть простой BAM-домен следующей конфигурации:
Weblogic сервера:
  • AdminServer - порт 7001;
  • bam_server1 - порт 9001.
Есть две физические машины (с точки зрения ОС) с IP-адресами, например:
  • 192.168.2.130
  • 192.168.2.96
Создадим отказоустойчивую конфигурацию для Oracle BAM 11g.
Особенность: BAM Server является singleton-компонентом в Oracle BAM и может быть только один в Weblogic-домене. Его кластеризовать нельзя, обычно настраивается на него миграция сервера, а компоненты BAM Web кластеризуются как обычные Web-приложения.
Первоначальная конфигурация:
В случае выхода из строя первого физического сервера:

Последовательность шагов:
  1. Необходимо разрешить пользователю операционной системы под которым развернут 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.  
     ...... 
  2. Для обеспечения работоспособности необходим дополнительный "плавающий"/виртуальный 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  
    
  3. Добавить в переменную 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
    
  4. Зайти в bam_server1 и ввести Server Listen Address - 192.168.2.139.
  5. Клонируем bam_server1 (переходим в "Environment"->"Servers", выбираем bam_server1 и нажимаем на кнопку "Clone"). Новый сервер:
    • Server Name - bam_server2;
    • Server Listen Address - 192.168.2.96;
    • Server Listen Port - 9002.
  6. Создаем кластер:
    • Name - BAM_Cluster;
    • Messaging Mode - Unicast.
  7. Добавляем в данный кластер оба сервера - bam_server1 и bam_server2.
  8. На каждой физической машине (с т.з. операционной системы) сконфигурируем по Node Manager-у (подробнее здесь) и создадим две Weblogic-машины (Machines):
    • Machine1 - 192.168.2.130;
    • Machine2 - 192.168.2.96.
  9. Соотнесём Weblogic-сервера и Weblogic-машины следующий образом:
    • bam_server1 - Machine1;
    • bam_server2 - Machine2.
  10. Теперь соотнесём приложения и библиотеки с созданным нами кластером (BAM_Cluster), а не только с bam_server1:
    • DMS Application (11.1.1.1.0)
    • oracle-bam (11.1.1)
    • usermessagingdriver-email
    • usermessagingserver
    • wsil-wls
    • wsm-pm
  11. Соотнести приложение "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
  12. Так же соотнести следующие Data Source-ы с кластером BAM_Cluster:
    • BAMDataSource;
    • mds-owsm;
    • OraSDPMDataSource.
  13. Соотнести следующие Startup and Shutdown Classes с BAM_Cluster:
    • JOC-Shutdown;
    • JOC-Startup
  14. Создать новый Data Source для механизма контроля миграции (если потребуется, то создать отдельного пользователя в СУБД. Не использовать административных пользователей, таких как SYS и SYSTEM) и соотнесём его с кластером BAM_Cluster.
  15. Создадим необходимую служебную таблицу для механизма контроля миграции, для этого надо выполнить скрипт лежащий в $MW_HOME/wlserver_10.3/server/db/<СУБД>/leasing.ddl.
  16. Перейти в "Services"->"Persistence Stores" и проверить какие типы Persistence Store-ов используются:
    • Если FileStore, то обеспечить доступ к директориям со второго сервера, как правило для этого используется раздел дискового массива или кластерной файловой системы.
    • Если JDBCStore, то соотнести используемый Data Source с кластером BAM_Cluster.
  17. Запустить bam_server1 и bam_server2.
  18. Зайти в Enterprise Manager (http://AdminServerHost:AdminServerPort/em) раскрыть меню BAM в нём должны быть три элемента:
    • OracleBamServer(bam_server1);
    • OracleBamWeb(bam_server1);
    • OracleBamWeb(bam_server2).
    Для каждого BAMWeb (OracleBamWeb(bam_server1) и OracleBamWeb(bam_server2)) нажать на них правой кнопкой мыши и выбрать "Mbean Browser" перейти в "oracle.bam.web"->"Server..."->"Application..."->"Config..." выбрать BAMWebConfig и изменить следующие параметры:
    • ServerName - IP-адрес или доменное имя BAM-сервера, в нашем случае это 192.168.2.139;
    • ServerPort - порт на котором запущен BAM-сервер, в нашем случае это 9001;
  19. Перезапустить AdminServer.
  20. Необходимо донастроить Node Manager-ы на каждой физической машине, добавить опции для сетевых интерфейсов в файл nodemanager.properties:
     Interface=eth0  
     NetMask=255.255.255.0  
     UseMACBroadcast=true  
    
    где eth0 - имя сетевого интерфейса на котором будет поднят "плавающий"/виртульный IP-адрес.
  21. Затем в Weblogic Console выбрать кластер BAM_Cluster и перейти в "Configuration"->"Migration" и заполнить поле "Data Source For Automatic Migration:", где выбрать созданный Data Source для механизма контроля миграции (см. пункт 13).
  22. Далее перейти в "Environment"->"Servers" выбрать bam_server1. Перейти в "Configuration"->"Migration" и поставить галку "Automatic Server Migration Enabled".
  23. Перезапустить сервера и протестировать миграцию.

четверг, 15 марта 2012 г.

Клонирование Oracle Fusion Middleware 11g

Клонирование Oracle Fusion Middleware 11g (SOA Suite, ODI, IDM, Webcenter и т.д.) условно можно разделить на две логические части:
  • Клонирование Middleware Home;
  • Клонирование доменов.
Существует несколько ограничений по клонированию:
  • окружения должны быть идентичными, т.к. сервер назначения и сервер источник должны иметь одну и ту же операционную систему и разрядность (32 или 64);
  • система назначения и система источник должны иметь одного и того же административного пользователя (например, weblogic), но пароли могут быть различны. После завершения клонирования можно изменить пользователя.
Клонирование СУБД и других внешних систем, которые используются в приложениях/композитах выходят за рамки данной статьи.

Клонирование Middleware Home

Типовая структура Middleware Home (MW_HOME):
  1. Останавливаем все сервера (AdminServer и ManagedServer-а) всех доменов (на источнике), которые используют клонируемый Middleware Home;
  2. На источнике перейти в директорию:
     $ cd $MW_HOME/oracle_common/bin/  
  3. Затем выполнить команду:
     $ ./copyBinary.sh -javaHome /opt/jrockit-jdk1.6.0_26-R28.1.4-4.0.1/ 
    -archiveLoc /tmp/mw_copy.jar -sourceMWHomeLoc /opt/Middleware/
    где javaHome – директория c JDK;
          archiveLoc – имя файла для экспорта;
          sourceMWHomeLoc – директория в которой развернут MW_HOME.

  4. Скопировать файл экспорта с сервера источника на сервер назначения. А так же следующие файлы:
     $ ls $MW_HOME/oracle_common/bin/pasteBinary.sh  
     $ ls $MW_HOME/oracle_common/jlib/cloningclient.jar  
    

  5. Запускаем импорт Middleware Home на сервере назначения:
     $ ./pasteBinary.sh -javaHome /u01/jdk1.6.0_30/ 
    -archiveLoc mw_copy.jar -targetMWHomeLoc /u01/ofm  
    
    где javaHome – директория c JDK;
          archiveLoc – имя файла для импорта;
          targetMWHomeLoc – директория в которой будет развернут MW_HOME.

Клонирование доменов

  1. Проверяем, что все сервера домена (на источнике) для клонирования стартованы.
  2. Если в домене есть machine типа Unix Machine, то необходимо изменить её на тип Machine. Для этого необходимо:
     $ cp $DOMAIN_HOME/config/config.xml $DOMAIN_HOME/config/config.xml.bkp  
     $ vi $DOMAIN_HOME/config/config.xml  
    
    Далее найти следующую строку (или строки если несколько машин):
     <machine xsi:type="unix-machineType">  
    
    И заменить её (или их) на:
     <machine>  
    
    После этого перезапустить AdminServer.
  3. На сервере источнике перейти в директорию:
     $ cd $MW_HOME/oracle_common/bin/  
    
  4. Затем выполнить на источнике команду:
     $ ./copyConfig.sh -javaHome /opt/jrockit-jdk1.6.0_26-R28.1.4-4.0.1/  
                    -archiveLoc /tmp/soa_domain.jar 
                    -sourceDomainLoc /opt/user_projects/domains/soa_domain/     
                    -sourceMWHomeLoc /opt/Middleware/                         
                    -domainHostName oracle-sb.tsretail.ru    
                    -domainPortNum 9000 
                    -domainAdminUserName weblogic 
                    -domainAdminPassword /tmp/wlspwd.txt  
    
    где javaHome – директория c JDK;
          archiveLoc – имя файла для экспорта;
          sourceDomainLoc – директория домена;
          sourceMWHomeLoc – директория в которой развернут MW_HOME;
          domainHostName – хост домена;
          domainPortNum – порт AdminServer-а;
          domainAdminUserName – логин администратора;
          domainAdminPassword – путь к текстовому файлу с паролем администратора.
  5. Скопировать файл экспорта с сервера источника на сервер назначения.
  6. На сервере назначения перейти в директорию:
     $ cd $MW_HOME/oracle_common/bin/  
    
  7. Запускаем генерацию плана переноса домена на сервере назначения:
     $ ./extractMovePlan.sh -javaHome /u01/jdk1.6.0_30  
                   -archiveLoc /home/weblogic/clone_domain/soa_domain.jar
                   -planDirLoc /home/weblogic/clone_domain/plan  
    
    где javaHome – директория c JDK;
          archiveLoc – имя файла для экспорта;
          planDirLoc – директория в которую будет сгенерирован план.
  8. Редактируем сгенерированный план переноса:
     $ vi /home/weblogic/clone_domain/plan/moveplan.xml  
    
    Следует обратить внимание на создание текстовых файлов содержащих пароли к Data Source-ам и указание пути к файлу с паролем для каждого конкретного Data Source-а.
  9. Если требуется, то можно и изменить параметры адаптеров, композитов и деплоймент планов в соответствующих директориях:
     $ /home/weblogic/clone_domain/plan/  
     $ ls -l  
     total 312  
     drwxr-xr-x 2 weblogic app  4096 Mar 14 10:47 adapters  
     drwxr-xr-x 2 weblogic app 12288 Mar 14 10:47 composites  
     drwxr-xr-x 2 weblogic app  4096 Mar 14 10:48 deployment_plans  
     -rw-r--r-- 1 weblogic app 274543 Mar 14 10:44 moveplan.xml  
    
  10. Запускаем импорт домена на сервере назначения:
     $ ./pasteConfig.sh -javaHome /u01/jdk1.6.0_30   
          -archiveLoc /home/weblogic/clone_domain/soa_domain.jar   
          -movePlanLoc /home/weblogic/clone_domain/plan/moveplan.xml  
          -targetDomainLoc /u01/user_projects/domains/clonned_soa_domain  
          -targetMWHomeLoc /u01/ofm/   
          -domainAdminPassword /home/weblogic/clone_domain/plan/domainpwd.txt  
    
    где javaHome – директория c JDK;
          archiveLoc – имя файла для экспорта;
          sourceDomainLoc – директория домена;
          movePlanLoc – имя файла плана переноса;
          targetDomainLoc – директория в которую импортируется домен;
          targetMWHomeLoc – директория в которой развернут MW_HOME;
          domainAdminPassword – путь к текстовому файлу с паролем администратора.

четверг, 8 декабря 2011 г.

WSDL: абстрактный и конкретный

Секции в WSDL:
  • Types - определяет типы данных для сообщений, которыми обменивается Web-сервис (XSD-схема)
  • Messages - определяет сообщения, используемые Web-сервисом
  • PortTypes - определяет методы, предоставляемые Web-сервисом
  • Bindings - определяет протоколы взаимодейcтвия, используемые Web-сервисом
  • Services - определяет адрес по которому возможен доступ к Web-сервису

Полезная информация для начинающих по WSDL - школа WSDL