четверг, 30 июня 2011 г.

Расшифровка пароля пользователя Apps в Oracle e-Business Suite R12.1.1

Допущения:
1. Пароль пользователя apps не известен.
2. Есть доступ к dbTier пользователем с привилегиями SYSDBA или DBA.


Последовательность шагов:
1. Сменить пароль пользователя apps на любой другой.
2. Залогиниться пользователем apps и выполнить следующее:
 CREATE OR REPLACE PACKAGE get_pwd AS   
 FUNCTION decrypt ( KEY IN VARCHAR2,VALUE IN VARCHAR2  
 )  
 RETURN VARCHAR2;  
 END get_pwd;  
 /  
 CREATE OR REPLACE PACKAGE BODY get_pwd AS  
 FUNCTION decrypt (KEY IN VARCHAR2,VALUE IN VARCHAR2  
 )  
 RETURN VARCHAR2  
 AS LANGUAGE JAVA  
 NAME 'oracle.apps.fnd.security.WebSessionManagerProc.decrypt  
 (java.lang.String,java.lang.String) return java.lang.String';  
 END get_pwd;  
 /  
3. Далее выполнить(пользователем apps):
 SELECT (SELECT get_pwd.decrypt(FND_WEB_SEC.GET_GUEST_USERNAME_PWD,   
 usertable.encrypted_foundation_password)FROM DUAL) AS apps_password  
 FROM fnd_user usertable  
 WHERE usertable.user_name = 
   (SELECT substr(FND_WEB_SEC.GET_GUEST_USERNAME_PWD,  
     1,instr(FND_WEB_SEC.GET_GUEST_USERNAME_PWD,'/')-1) from dual)  
4. Сменить пароль пользователя apps на результат выполнения запроса ш.3.

Ошибка "javax.net.ssl.SSLKeyException: BAD_CERTIFICATE alert was receive" и вариант её решения

  1. Проинициализировать переменные:
     $ $MIDDLEWARE_HOME/server/bin/setWLSEnv.sh 
    
  2. Выполнить следующую команду (изменить значение имени сервера - выделено красным):
     $ java utils.CertGen -cn server.domain.ru -keyfilepass DemoIdentityPassPhrase 
                          -certfile mycert -keyfile mykey
  3. Выполнить следующую команду:
     $ java utils.ImportPrivateKey -keystore DemoIdentity.jks 
                         -storepass DemoIdentityKeyStorePassPhrase 
                         -keyfile mykey.pem -keyfilepass DemoIdentityPassPhrase 
                         -certfile mycert.pem -alias demoidentity
    
  4. Сделать резервную копию следующего файла:
     $ cp $MIDDLEWARE_HOME/server/lib/DemoIdentity.jks 
          $MIDDLEWARE_HOME/server/lib/DemoIdentity.jks.bkp
    
  5. Заменить существующий файл на сгенерированный:
     $ cp DemoIdentity.jks $MIDDLEWARE_HOME/server/lib/DemoIdentity.jks
    
  6. Перезапустить все сервера и Node Manager

четверг, 23 июня 2011 г.

Конфигурирование Node Manager

  1. Перейти в директорию:
     $ cd $MIDDLEWARE_HOME/common/nodemanager  
    
  2. Если файл nodemanager не создан, то создать его или запустить Node Manager и файл будет сгенерирован автоматически, а затем изменить/проверить выделенные красным параметры:
    DomainsFile=/u01/ofm/wlserver_10.3/common/nodemanager/nodemanager.domains
    LogLimit=0
    PropertiesVersion=10.3
    DomainsDirRemoteSharingEnabled=false
    javaHome=/u01/jdk1.6.0_30
    AuthenticationEnabled=true
    NodeManagerHome=/u01/ofm/wlserver_10.3/common/nodemanager
    JavaHome=/u01/jdk1.6.0_30/jre
    LogLevel=INFO
    DomainsFileEnabled=true
    StartScriptName=startWebLogic.sh
    ListenAddress=
    NativeVersionEnabled=true
    ListenPort=5777
    LogToStderr=true
    SecureListener=true
    LogCount=1
    DomainRegistrationEnabled=false
    StopScriptEnabled=false
    QuitEnabled=false
    LogAppend=true
    StateCheckInterval=500
    CrashRecoveryEnabled=false
    StartScriptEnabled=true
    LogFile=/u01/ofm/wlserver_10.3/common/nodemanager/nodemanager.log
    LogFormatter=weblogic.nodemanager.server.LogFormatter
    ListenBacklog=50 
    
  3. Проверить, что в файле доменов Node Manager (имя файла - nodemanager.domains) прописаны все домены, например:
    soa_domain=/u01/user_projects/domains/soa_domain
    ucm_domain=/u01/user_projects/domains/ucm_domain
    
  4. Запустить Node Manager, например так:
     $ cd $MIDDLEWARE_HOME/server/bin
     $ nohup ./startNodeManager.sh &
    
    Или с помощью утилиты screen:
     $ cd $MIDDLEWARE_HOME/server/bin
     $ screen -S nodeManager -t nodeManager ./startNodeManager.sh
    

Если возникла ошибка вида "javax.net.ssl.SSLKeyException: BAD_CERTIFICATE alert was received", то вариант её решения описан здесь.

пятница, 22 апреля 2011 г.

Изменение настроек JVM для домена Weblogic

Описание: Linux и Weblogic 10.3.4.
  • Старт серверов без использования NodeManager.:
    1. Залогиниться на сервер.
    2. Для смены JVM (JRockit млм HotSpot) выставить значание переменной JAVA_VENDOR:
      $ JAVA_VENDOR=Oracle #Для JRockit  
      $ JAVA_VENDOR=Sun    #Для HotSpot  
      $ export JAVA_VENDOR  
      
    3. Выставить желаемое значение через переменную USER_MEM_ARGS, например:
      $ USER_MEM_ARGS='-Xms1024m -Xmx1024m -XX:CompileThreshold=8000 -XX:PermSize=128m -XX:MaxPermSize=512m'  
      $ export USER_MEM_ARGS  
      
    4. Стартовать AdminServer или ManagedServer. Если JVM-параметры доменов отличаются, то рекомендую создать отдельные стартовые скрипты для каждого из ManagedServer-ов и AdminServer-а, например startAdminServer.sh:
       #!/bin/sh  
       USER_MEM_ARGS='-Xms1024m -Xmx1024m -XX:CompileThreshold=8000 -XX:PermSize=128m -XX:MaxPermSize=512m'  
       export USER_MEM_ARGS  
       JAVA_VENDOR=Sun  
       export JAVA_VENDOR
       #Start AdminServer    
       ./startWebLogic.sh  
      
  • Старт серверов с использованием NodeManager и через Weblogic Administration Console:
    1. Залогиниться в Weblogic Administration Console.
    2. Перейти в конфигурацию сервера (Имя_домена->Environment->Servers->Имя_сервера).
    3. Перейти во вкладку Configuration->Server Start.
    4. Заполнить поля Arguments и Java Vendor.

вторник, 19 апреля 2011 г.

Проблема в Oracle JDeveloper 11.1.1.4 при автогенерации HumanTask...

Описание: создадим простой BPM-проект с двумя HumanTask-ами и одной ролью (с несколькими ролями ситуация подобна этой).

1. Запустим JDeveloper.
2. Создадим новый BPM Application.

     Введите наименование проекта. Далее "Next":

     Далее "Finish":


     Далее предлагается создать BPM-процесс:


     Далее "Next":

3. Сгенерировался BPM-процесс.


4. Добавим ещё один UserTask.


5. Создадим определение UserTask-ов.

     UserTask1:

     UserTask2:

6. Сгенерируем формы пользовательского интерфейса с помощью автогенератора.

     UserTask1:


     UserTask2: аналогично UserTask1.

7. Получилось три проекта в нашем TestApplication: собственно BPM-проект и два Taskflow-проекта(HumanTask-проекта).

8. Задеплоим TestApplication на сервер BPM Suite.


     Далее "Next":

     Выбираем все TaskFlow-проекты. Далее "Next":

     Далее "Finish"

9. Заходим в BPM Workspace
9.1. Инициируем процесс.

Отправляем дальше:

Получаем первую ошибку:

9.2. Переходим на вторую задачу и получаем ошибку:

В чём причина этих ошибок???
Первая ошибка: автоматически не создалась страница Empty1.jspx
Вторая ошибка: при автогенерации форм для HumanTask-ов они создаются в одном и том же пакете и при деплое приложения возникает конфликт, который проявляется как "Error 500--Internal Server Error"

10. Исправление ошибок.
10.1. Первая ошибка:
10.1.1. Перейти в первый TaskFlow-проект в "Web Content"->"Page Flows"->"adfc-config".


10.1.2. Создайте Empty1.jspx дважды кликнув на эту страницу.


10.1.3. Аналогично с вторым TaskFlow-проектом.

10.2. Вторая ошибка:

10.2.1. Перейти в первый TaskFlow-проект в "Application Sources".


10.2.2. Провести рефакторинг пакета.


     Далее:

10.2.3. Открыть DataBindings.cpx и перейти на закладку "Source"


10.2.4. Изменить данный файл (см. выделение красным)


10.2.5. Удалить сгенерированные классы с прошлой сборки (удалить все внутри папки classes).

10.2.6. Аналогично с вторым TaskFlow-проектом.

11. Передеплоить TestApplication на сервер BPM Suite.