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

17 апреля 2014 г.

Установка «Oracle Enterprise Manager 12c» с базой Oracle DB 12c


  За последний год несколько раз устанавливал Oracle Enterprise Manager, всегда натыкался на какие-нибудь проблемы. По количеству ошибок эта программа у меня на 1-м месте, установить с 1-го раза практически невозможно.

  В очередной раз устанавливал Oracle Enterprise Manager для заказчиков. Скачал последнюю версию, с обнадёживающим названием: «Oracle Enterprise Manager Cloud Control 12c Release 3 Plug-in Update 1 (12.1.0.3) New!». В компании Oracle знают свою репутацию надежности своих программ, поэтому  заманивают клиентов магическими словами: «Release 3» (уже 3-я версия), «Update 1» (это не бета-версия), «12.1.0.3» (здесь 0.3 в конце, версии с 0.0 никто для реальной работы не будет скачивать).

  Для хранения репозитория я решил использовать базу Oracle 12c. В конце года заканчивается официальная поддержка базы версии 11.2, нужно будет переходить на версию 12. Я подумал, что хватит версии Oracle 12с простаивать на тестовых стендах, пора и в бою себя показать. 

  Создал новую PDB (подключаемую базу). Запустил установку OEM. С 5-й попытки установка завершилась успешно. Как обычно потребовались танцы с бубном. Самую большую проблему для меня вызвало аварийное завершение на шаге «OMS сonfiguration». Ключевые слова в логах:


INFO: oracle.sysman.top.oms:The plug-in OMS Configuration has failed its perform method

SEVERE: Failed executing oracle.sysman.omsca.util.RegisterPostRepSchemaMetadata unable to look up name "jdbc/mds/owsm" in JNDI context

oracle.sysman.top.oms:OMSCA-ERR:Post deploy operations failed. Check the trace file

install weblogic "PolicyManagerValidator" failed to preload on startup in Web application: "/wsm-pm".


  Поиск в интернете решения не нашел. Затрудняло анализ, то что программа установки после этой ошибки удаляла сконфигурированный инстанс weblogic-сервера вместе с логами. Пришлось несколько раз запускать установку, сохранять логи. После изучения проблемы была найдена причина: сессия в базе данных от weblogic-сервера аварийно завершалась с ошибкой ORA-7445:

Exception [type: SIGSEGV, SI_KERNEL(general_protection)] [ADDR:0x0] [PC:0x22BAA34, kzrtevw()+9988] [flags: 0x0, count: 1]
Errors in file /u01/app/oracle/diag/rdbms/emcdb/emcdb/trace/emcdb_ora_36611.trc  (incident=7581):
ORA-07445: core dump [kzrtevw()+9988] [SIGSEGV] [ADDR:0x0] [PC:0x22BAA34] [SI_KERNEL(general_protection)] []

Падение базы вызывал такой SQL запрос:

SELECT COUNT(*) FROM all_objects WHERE object_name = 'EM_UPG_DESUPPORTED_PLUGINS' AND object_type = 'TABLE'AND 0 = (SELECT COUNT(*) FROM gc_current_deployed_plugin WHERE plugin_id = 'oracle.sysman.db' AND destination_type = 'Repository');

На сайте техподдержки support.oracle.com нашел статью с описанием этой ошибки: Bug 4618715 - Dump inserting into a view with OLS policy on tables (Doc ID 4618715.8). Первый раз эта ошибка была обнаружена в 2005 году в версии базы oracle db 9, затем всплывала в версии 10, затем в 11. Каждый раз помечено, что баг исправлен. В моем случае этот баг всплыл в версии 12. Официального метода исправления ошибки от oracle нет. Я установил последний пакет с исправлениями: Patch 17552800 DATABASE PATCH SET UPDATE 12.1.0.1.2, в нем этот баг не исправился. Oracle Label security (OLS) у меня уже был отключен. 

  Я сделал несколько экспериментов и нашел такой workaround: нужно вручную отключить политики OLS у всех таблиц, участвующих в запросе. Т.е. смотрим проблемный SQL запрос, находим таблицы входящие в запрос, и отключаем у всех таблиц все политики. В нашем случае представление gc_current_deployed_plugin ссылается на 4 таблицы, у одной из них есть политики, отключаем так:

BEGIN
SYS.DBMS_RLS.DROP_POLICY('SYSMAN', 'EM_MANAGEABLE_ENTITIES', 'TARGET');
END;

Сделать это нужно в середине инсталляции EM12, когда таблицы репозитория уже созданы, но установщик еще не дошел до шага конфигурации OMS сервера. В итоге успешно заканчиваем инстилляцию.


  К сожалению этот эксперимент показал, что версия oracle db 12c еще "сырая" и в продакшн ей выходить еще рано. Ждем 1-го сервис-пака.

28 марта 2014 г.

Настройка Kerberos авторизации для weblogic сервера

Настройка Kerberos авторизации для weblogic сервера

Это краткая инструкция, как можно настроить автоматическую Kerberos авторизацию для приложения, загруженного в сервер приложений weblogic.

В качестве клиента будет выступать терминальный сервер с операционной системой windows.

Возможен вариант настройки авторизации на стороне weblogic-сервера, но это усложняет процесс разработки и тестирования. Поэтому мы настроим промежуточный сервер, который будет выполнять авторизацию, и при успешной проверке проксировать запрос на weblogic сервер. Разработчики будут ходит на weblogic-сервер напрямую, минуя промежуточный сервер.

Настройка промежуточного сервера. 

В качестве службы для авторизации будем использовать Apache

- Устанавливаем веб-сервер и модуль для кербероса:
yum install httpd mod_auth_kerb

- Переходим в каталог настроек:
cd /etc/httpd/conf/

- Добавляем в конец файла httpd.conf следующие строки:
LoadModule auth_kerb_module modules/mod_auth_kerb.so

- Так же в этом файле выставляем FQDN имя сервера:
ServerName fr01.gibdd.mos.ru

- Настройка балансировки и проксирования:
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/"
env=BALANCER_ROUTE_CHANGED
<Proxy balancer://wt>
  BalancerMember http://x.y.z.b:1521 route=gibdd01 retry=120
  BalancerMember http://x.y.z.b:1521 route=gibdd02 retry=120
  ProxySet stickysession=ROUTEID lbmethod=byrequests
</Proxy>

ProxyPass /web-app balancer://wt/web-app
ProxyPassReverse /web-app balancer://wt/web-app

-Добавляем URL, закрытый авторизацией по керберосу:
<Location /web-app>
  AuthType Kerberos
  AuthName "Kerberos Login"
  KrbMethodNegotiate On
  KrbMethodK5Passwd off
  KrbAuthRealms mos.ru
  Krb5KeyTab /etc/httpd/conf/fr01.keytab
  KrbServiceName HTTP/fr01.gibdd.mos.ru@GIBDD.MOS.RU
  KrbSaveCredentials on
  require valid-user
</Location>

- Имя сервера (fr01.gibdd.mos.ru) должно разрешаться в ДНС в прямой и в обратной зоне:
# host fr01.gibdd.mos.ru
fr01.gibdd.mos.ru has address 10.0.10.10
#host 10.0.10.10
10.0.10.10.in-addr.arpa domain name pointer fr01.gibdd.mos.ru.

- Кейтаб указанный в конфигурации (/etc/httpd/conf/fr01.keytab), должен быть создан
администраторами домена, в котором происходит авторизация.

- Обращение в закрытую керберосом зону, должно быть по имени, на которое
  выдан кейтаб, и которое настроено на сервере и в днс. В данном примере это fr01.gibdd.mos.ru

Настройка клиентов под Windows 

- Устанавливаем программу "MIT Kerberos"

- Получаем тикет с авторизацией по паролю: логин@GIBDD.MOS.RU

- Настраиваем Firefox, указываем в адресной строке "about:config", затем меняем параметры:
network.auth.use-sspi = false

network.automatic-ntlm-auth.trusted-uris;mosgorzdrav.local = GIBDD.MOS.RU

network.negotiate-auth.delegation-uris = GIBDD.MOS.RU

network.negotiate-auth.gsslib = c:\Program Files\MIT\Kerberos\bin\gssapi32.dll

network.negotiate-auth.trusted-uris = GIBDD.MOS.RU

network.negotiate-auth.using-native-gsslib = false

- Перезагружаем firefox

- Заходим по ссылке: http://fr01.gibdd.mos.ru/web-app

1 февраля 2013 г.

Opening of wallet based credential store failed. Reason java.io.IOException

Скопировал сервер с Oracle Aplication Server 10 на другой хост. 

1) При старте получил ошибку: 
Opening of wallet based credential store failed. Reason java.io.IOException

Для исправления нужно сделать:
chmod -R 777 /tmp

2) Нужно исправить файл hosts


10 декабря 2012 г.

Ошибка при работе Oracle Web Service Manager


В логе 2-го гейтвея постоянно сыпятся сообщения об ошибке:

 Log of com.fors.wsmstep.audit.common.CommonLogEntry failed: java.lang.IllegalStateException: Datasource not found: Not in an application scope –
  
Эту ошибку формирует программа , которая выполняет подпись сообщений (custom sign message)

Для исправления нужно прописать свойство 
<data id="oc4j-options" value="-userThreads"/>  
(выделенное вы выдержке ниже в process-type=”wsm”) по пути  <нужный gateway>/opmn/conf/opmn.xml

 Затем перезапустить gateway (например командами opmnctl stopall, opmnctl startall – чтобы перезапустить нужный gateway, надо эти команды запускать там где находится файл opmnct.exe в поддиректории нужного gateway’я <gateway> /opmn/bin/)

      <process-type id="wsm" module-id="OC4J" status="enabled"
               <module-data>
                  <category id="start-parameters">
                     <data id="java-options" value="-server -mx1024M -ms512M -Xrs -XX:MaxPermSize=128M …"/>
                     <data id="oc4j-options" value="-userThreads"/>
                  </category>
                  <category id="stop-parameters">
                     <data id="java-options" value="-Djava.security.policy=$ORACLE_HOME/j2ee/wsm/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false"/>
                  </category>
               </module-data>

28 февраля 2012 г.

Вызов WEB-сервисов Siebel из Oracle Weblogic сервера. Часть 2.


Что бы вызвать WEB-сервис созданный в Siebel из сторонней программы, заголовок SOAP запроса должен содержать текст:
Что бы сформировать такой заголовок на Weblogic сервере существует официальный вариант, описанный в документации:
1) импортируем WSDL
2) редактируем WSDL, добавляем так называемое policy:
- в раздел definitions:
<< div="">
< div="">
< div="">

- и в раздел binding:


3) затем на этот wsdl создается объект proxy и на закладке policy заполняются необходимые данные.

К сожалению weblogic формирует немного другой заголовок, чем требуется для Siebel. Поэтому Siebel возвращает ошибку. Эта проблема описана в блоге:
http://jvzoggel.wordpress.com/2010/04/01/oracle-service-bus-and-siebel-usernametoken/
(частичный русский перевод: http://andrei-lobanov.blogspot.com/2010/06/oracle-service-bus-and-siebel-ws.html)

Для решения этой проблемы предлагается метод ручного заполнения заголовка, как и описано в блоге jvzoggel. Недостаток этого решения в хранении пароля в открытом виде в исходных текстах конфигурации. Далее описание данного способа решения:

1) WSDL файл не изменяем;

2) В Eclipse открываем конфигурацию и создаем новый каталог, например sequrity:

3) В этот каталог добавляем объект Service Account. Тип ресурса указываем=static. Указываем требуемый пароль:

учтите, что пароль для показа скрывается, но в исходном XML файле присутствует в открытом виде;

4) Создаем на импортированный WSDL объекты типа business и proxy. Открываем proxy, переходим на закладку Message Flow и добавляем два объекта: Assign и Replace


Продолжение следует.


26 февраля 2012 г.

Настройка security в oracle weblogic server



При установке weblogic сервера версии 10.3.5 по умолчанию не ставится надстройка Oracle WSM Policy manager. Конечно, если у Вас есть желание несколько раз переустановить рабочий домен weblogic сервера в поисках причин неработоспособности security в модулях OSB и SOA, то Вы можете не включать эту надстройку. В остальных случаях категорически советую включить этот модуль.

Даже если вы установите это дополнение, то после запуска процессов домена при попытке использовать авторизацию в Oracle Service Bus вы получите чудное сообщение:
default-keystore.jks OSB Security Failed to initialize the OWSM Credentials Manager.
Не пытайтесь понять почему это не работает, причина в том, что один файл не появляется после установки сервера.
Чтобы исправить, нужно создать файл с помощью утилиты keytool (нужна версия из каталога bin java):

cd /siebel/java/jdk1.6.0_30/bin
./keytool -genkeypair -keyalg RSA -alias orakey -keypass xxx -keystore default-keystore.jks -storepass xxx -validity 3600
What is your first and last name?
[Unknown]: weblogic
What is the name of your organizational unit?
[Unknown]: MTS
What is the name of your organization?
[Unknown]: MTS
What is the name of your City or Locality?
[Unknown]: Moscow
What is the name of your State or Province?
[Unknown]: RU

What is the two-letter country code for this unit?
[Unknown]: RU
Is CN=weblogic, OU=MTS, O=MTS, L=Moscow, ST=RU, C=RU correct?
[no]: yes

ls *.jks
default-keystore.jks
$ cp default-keystore.jks /siebel/Middleware/user_projects/domains/as2_domain/config/fmwconfig


После этого в EM weblogic сервера установите корректные параметры в меню Sequrity -> Sequrity provider configuration -> Keystore -> Configure

Полезные ссылки:
Oracle Support DocID 1266231.1
http://niallcblogs.blogspot.com/2010/07/osb-11g-and-wsm.html