понедельник, 19 декабря 2011 г.

Выгрузка данных по измерениям Hyperion EPMA из Oracle RDBMS

  1. Подключиться к схеме данных приложения EPMA.
  2. Выполнить запрос:
     SELECT TYPE_NAME,lpad(' ',2*(level-1))|| member_code AS member_code,  
         alias_default,  
         operation,  
         generation,  
         data_storage,  
         uda_text AS uda,  
         formula,  
         smart_list_name,  
         smart_list_label  
     FROM  
      (SELECT ob_type.TYPE_NAME ,  
       obj.object_name member_code,  
       al.object_name alias_default,  
       obj.generation,  
       obj.parent_id,  
       obj_par.object_name parent_member,  
       (CASE  
        WHEN m.consol_op1=0 THEN '+'  
        WHEN m.consol_op1=1 THEN '-'  
        WHEN m.consol_op1=2 THEN '*'  
        WHEN m.consol_op1=3 THEN '/'  
        WHEN m.consol_op1=4 THEN '%'  
        WHEN m.consol_op1=5 THEN '~'  
        WHEN m.consol_op1=6 THEN '^'  
        ELSE 'Undefined'  
       END) AS operation,  
       (CASE  
        WHEN m.data_storage=0 THEN 'Store data'  
        WHEN m.data_storage=1 THEN 'Never share'  
        WHEN m.data_storage=2 THEN 'Label Only'  
        WHEN m.data_storage=3 THEN 'Shared member'  
        WHEN m.data_storage=4 THEN 'DynamicCalc and Store'  
        WHEN m.data_storage=5 THEN 'Dynamic'  
        ELSE 'Undefined'  
       END) data_storage,  
       uda.uda_text,  
       en.name AS smart_list_name,  
       en.label AS smart_list_label,  
       mf.formula  
      FROM hsp_object obj,    
        hsp_object obj_par,   
        hsp_object_type ob_type,  
        (SELECT obj_al.object_name,al.member_id  
         FROM hsp_alias al, hsp_object obj_def,
              hsp_object obj_al, hsp_object_type ob_al_type  
         WHERE al.aliastbl_id = obj_def.object_id(+) 
          AND al.alias_id = obj_al.object_id(+) 
          AND obj_def.object_name = 'Default' 
          AND obj_al.object_type = ob_al_type.object_type 
          AND ob_al_type.type_name = 'Alias'  
        ) al,  
        hsp_member m,  
        hsp_member_formula mf,  
        hsp_enumeration en,  
        (SELECT uda.member_id,sys_xmlagg(xmlelement(col, ud.uda_value||' ')).extract('/ROWSET/COL/text()').getclobval() AS uda_text  
        FROM hsp_member_to_uda uda, hsp_uda ud  
        WHERE uda.uda_id=ud.uda_id  
        GROUP BY uda.member_id  
        ) uda  
      WHERE obj.parent_id = obj_par.object_id(+)   
       AND obj.object_type = obj_par.object_type(+)   
       AND obj.object_type = ob_type.object_type   
       AND ob_type.TYPE_NAME IN ('Scenario','Year','Time Period','Version','Entity','Account','User Defined Dimension Member' )   
       AND al.member_id(+) = obj.object_id   
       AND m.member_id=obj.object_id   
       AND mf.member_id(+)=obj.object_id   
       AND uda.member_id(+)=obj.object_id   
       AND m.enumeration_id=en.enumeration_id(+)  
      ORDER BY ob_type.TYPE_NAME,obj.generation)  
      START WITH parent_member  IS NULL  
      CONNECT BY prior member_code = parent_member;  
    
  3. По результату данного запроса сделать подзапрос по колонке TYPE_NAME (соответствует типу измерения). Варианты:
    • Account
    • Entity
    • Version
    • Time Period
    • Year
    • Scenario
    • User Defined Dimension Member

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

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

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

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

воскресенье, 20 ноября 2011 г.

Методология Oracle Unified Method

   Данная статья описывает основные концепции методологии Oracle Unified Method 5.5 (далее OUM).

1. О методологии

   Компания Oracle развивает методологию Oracle Unified Method для поддержки всего жизненного цикла информационных технологий на предприятии, включая поддержку внедрения продуктов и технологий Oracle. Данная методология универсальна и явно не привязанна к конкрентым продуктам и технологиям, что даёт возможность её адаптации под другие типы ИТ-проектов (не обязательно Oracle-овые). Она включает набор готовых шаблонов, руководство и структуру работ, а так же содержит программные инструменты для управления рисками, связанными с проектами. OUM включает в себя полный пакет законченных решений, таких как:
  • Service Oriented Architecture Suite;
  • Requirements-Driven Application Implementation;
  • Solution-Driven Application Implementation;
  • Software Upgrade;
  • Technology Full Lifecycle;
  • Business Intelligence (BI) and Enterprise Performance Management (EPM) Implementation;
  • Business Intelligence and Analytics Custom Development;
  • WebCenter;
  • Implement Core Workflow;
  • Implement models.
   Данная методология состоит из трёх областей:
  • Управление (Manage) - управления программами (Program Management Method, PGM) и проектами (Project Management Method, PJM);
  • Представление (Envision) - поддержка ИТ-архитектуры на уровне предприятия, её стратегия развития и управления, а так же выявление и создание специфических проектов;
  • Реализация (Implement) - реализация проектов.
   Состоит из 5 фаз проектов:
  • Начальная фаза (Inception);
  • Проектирование системы (Elaboration);
  • Разработка системы (Construction);
  • Переход к эксплуатации системы (Transition);
  • Эксплуатация системы (Production).
   Каждая фаза может содержать до 15 процессов:
  • Управление проектом;
  • Бизнес-требования;
  • Анализ требований;
  • Анализ;
  • Проектирование;
  • Разработка;
  • Тестирование;
  • Контроль производительности;
  • Техническая архитектура;
  • Конвертация и перенос данных;
  • Документация;
  • Управление изменениями;
  • Обучение;
  • Переход к эксплуатации;
  • Эксплуатация и поддержка.

2. Начальная фаза (Inception)

Начальная фаза включает в себя:
  • Анализ стратегических направлений бизнеса заказчика;
  • Утверждение, документирование и определение бизнес-требований и рисков проекта, а также расположение их в соответствии с приоритетами.
   Во время этого фазы формируется проектная команда и разрабатывается первоначальный план проекта.

2.1. Цели

  • Добиться чёткого понимания того, какой результат должен быть достигнут в ходе проекта и выбрать наиболее подходящее решение или технологию;
  • Определить масштабы проекта, по возможности разбить его на составляющие и расположить их в соответствии с приоритетами;
  • Определить и измерить основные риски, расположить их в соответствии с их приоритетами, разработать стратегию управления рисками;
  • В компании заказчика определить лицо, ответственное за проект внедрения системы (руководитель проекта в организации заказчика);
  • Определить пользователей заказчика, которые будут вовлечены в проект во время его разработки и внедрения;
  • Разработать первоначальный план проекта;
  • Обучить всех участников проекта подходу OUM, объяснить организационное влияние выбора данного подхода, а также определить их роли и ответственность в проекте;
  • Сформировать проектную команду специалистов, знакомых с методологией OUM или провести семинар по данной методологии;
  • Начать формирование проектной группы разработчиков, которые непосредственно будут заниматься внедрением, а также определить пользователей организации заказчика, которые будут участвовать в тестировании разрабатываемой системы;
  • Определить, задокументировать и выделить бизнес-требования заказчика, расположить их в соответствии с их приоритетами;
  • Разработать концептуальный прототип, содержащий функциональные требования;
  • Разработать первоначальные требования к тестам производительности и системы в общем;
  • Разработать набор требований к документации и стратегию документирования;
  • Разработать план обучения проектной группы, если требуется.

2.2. Процессы

   В данном разделе описываются основные процессы, входящие в Начальную фазу. В него также включены советы и комментарии по каждому процессу.
2.2.1. Определение бизнес-требований
Результатом работы данного процесса на Начальной фазе должно быть:
  • Определение функциональных требований заказчика к разрабатываемой/внедняемой системе;
  • Определение нефункциональных требований заказчика к разрабатываемой/внедняемой системе.
   В ходе этого процесса также выделяются детальные алгоритмы, по которым происходит организация бизнес-деятельности заказчика в области, касающейся разрабатываемой/внедняемой системы. Для определения требований проводятся совещания с представителями заказчика (методология «наведения мостов»). В ходе сбора требований используется MoSCoW-метод, который применяется для достижения взаимопонимания между заказчиком и разработчиком. Согласно этому методу все функциональные требования разбиваются по четырем категориям:
  • Must have this – необходимые требования, т.е. такие требования, без которых будет невозможно функционирование системы;
  • Should have this if at all possible – рекомендуемые требования, т.е. такие требования, которые желательно включить в систему, если это возможно;
  • Could have this if it does not affect anything else – важные дополнительные требования, т.е. такие требования, наличие которых не является жизненно важными для функционирования системы;
  • Won’t have this time but WOULD like in the future – необязательные требования, т.е. такие требования, наличие которых необязательно в системе, однако при усовершенствовании системы в будущем эти требования могут понадобиться.
2.2.2. Анализ требований
   Во время этого процесса, полученные требования анализируются и разрабатывается детальная модель сценариев использования бизнес-процессов заказчика (use case model), которая затем детализируется до уровня конкретных функций, выполняемых системой для каждого шага бизнес-процесса. Представители организации заказчика должны быть вовлечены в процесс разработки этой модели, т.к. они могут помочь с пониманием требований заказчика.
   Во время Начальной фазы определяются совокупные бизнес-требования заказчика, однако впоследствии они могут уточняться и видоизменяться в ходе отображения на функциональность разрабатываемой/внедряемой системы.
2.2.3. Внедрение
   Основная работа по внедрению производится во время фазы Разработки, однако важно показать заказчику понимание бизнес-требований уже на раннем этапе работы, для этого осуществляется моделированием концептуального прототипа системы. Концептуальный прототип — это макет, который содержит функциональные бизнес-требования и может представлять собой презентации, иллюстрирующие пользовательский интерфейс, функциональные возможности приложения и т.п.
   В крупных проектах возможно потребуется создание нескольких прототипов (например, образцы, демонстрирующие работу каждой подсистемы).
   Так же на данной фазе потребуется проработка ключевых технических вопросов для проверки правильности выбора технических решений и выполнимости специальных требований.
2.2.4. Тестирование
   На Начальной фазе определяются требования к тестам (например, форма тестовых отчетов), затем они дополняются и совершенствуются на протяжении всех фаз.
2.2.5. Контроль производительности
   Целью данного процесса является определение, разработка и выполнение шагов по контролю производительности на протяжении всего этапа внедрения решения, чтобы гарантировать соответствие производительности системы и ее компонентов требованиям и ожиданиям заказчика.
   В ходе Начальной фазы необходимо определить требования к производительности критических бизнес-транзакций и систему показателей контроля производительности. Для этого проводится совещание с представителями организации заказчика.
2.2.6. Техническая архитектура
   В ходе этого процесса происходит построение технической архитектуры системы, а также
  • Определяются ключевые параметры конфигурации, касающиеся архитектуры;
  • Определяются требования к аппаратному, программному обеспечению и сетям, необходимые для стабильной работы с приемлемой производительностью.
   Техническая архитектура системы должна согласоваться со стратегическим направлением развития бизнеса заказчика и архитектурой в рамках предприятия. На Начальной фазе этот процесс включает в себя проведение совещания с представителями организации заказчика, чтобы познакомить его с принципами работы эталонной архитектуры и собрать информацию относительно требований к разрабатываемой архитектуре и ее компонентам (требований по интеграционной архитектуре, составлению отчетов, системам создания резервных копий и восстановления, системам безопасности и т.п.).
2.2.7. Конвертация и перенос данных
   Этот процесс охватывает задачи, связанные с переносом данных из существующих систем в разрабатываемую/внедряемую систему:
  • Определяются компоненты и объекты, содержащие необходимые данные для переноса;
  • Определяются требования по конвертации данных;
  • Определяются методы загрузки этих данных в систему;
  • Выбираются технологии/продукты или разрабатываются компоненты для переноса.
2.2.8. Документирование
   Процесс документирования проходит через все фазы внедрения решения. В Начальной фазе определяется набор требований к документации и разрабатывается стратегия документирования.
   Согласно методологии OUM cоздание качественной документации – один из важнейших факторов для успешного перехода к эксплуатации разрабатываемой/внедряемой системы, достижения одобрения пользователями организации заказчика проекта и поддержки бизнес-процессов заказчика.
2.2.9. Обучение
   Данный процесс состоит из двух частей:
  • Обучение проектной группы;
  • Обучение конечных пользователей.
В ходе Начальной фазы разрабатывается план обучения проектной группы.

2.3. Возможные проблемы и риски

  • Наличие недокументированных бизнес-целей;
  • Наличие недооцененных или не выявленных бизнес-требований;
  • Отсутствие в компании заказчика лица, ответственного за проект внедрения системы;
  • Описание масштабов проекта, проектных возможностей неверно или неточно. В этом случае возможно изменение сроков реализации проекта и его бюджета;

2.4. Факторы успеха

  • Четкое понимание и следование подходу Oracle Unified Method;;
  • Высокий уровень взаимодействия участников проекта;
  • Наличие соглашения относительно возможностей проекта;
  • Высокий уровень квалификации пользователей организации заказчика, участвующих в проекте;
  • Высокий уровень квалификации разработчиков.

3. Проектирование (Elaboration)

   Целью фазы Проектирование является переход от определения масштабов проекта и бизнес-требований, полученных в ходе Начальной фазы, к детальному моделированию бизнес-требований, созданию спецификаций для дополнительной разработки, разбиению внедряемого решения на составляющие, созданию прототипа пользовательского интерфейса и технической архитектуры. Фаза Проектирование применяется для подтверждения понимания командой разработчиков бизнес-требований заказчика и для решения возможных проблем, возникающими во время разработки.

3.1. Цели

  • Расположить в соответствии с приоритетами сценарии использования бизнес-процессов и дополнительные требования;
  • Детализировать и уточнить бизнес-требования, провести их подробный анализ;
  • Сформулировать бизнес-требования в виде сценариев использования бизнес-процессов;
  • Согласовать вид пользовательского интерфейса;
  • Согласовать участие представителей организации заказчика в проекте;
  • Разработать исходную техническую модель и выделить ее компоненты;
  • Разработать план устранения рисков;
  • Убедиться, что спроектированный набор функциональных возможностей может быть переведен в следующую фазу (Разработка) проекта;

3.2. Процессы

   В данном разделе описываются основные процессы, входящие в фазу Проектирование. В него также включены советы и комментарии по каждому процессу.
3.2.1. Бизнес-требования
   Информация, касающаяся бизнес-требований, полученных в ходе Начальной фазы, служит исходными данными для разработки спецификации программных требований. Данные требования так же должны быть выполнены в соответствии с MoSCoW-методом.
   Одной из целей фазы Проектирование является создание надежной архитектуры приложения. Исходными данными для этого процесса являются результаты полученные в ходе анализа архитектуры приложения, проведенного на Начальной фазе.
3.2.2. Анализ требований
   На основе информации о бизнес-требованиях, полученных в ходе Начальной фазы, разрабатывается модель сценариев использования бизнес-процессов. Также определяется какие бизнес-процессы не могут быть удовлетворены с помощью стандартной функциональности и какая дополнительная разработка необходима. Одной из целей этого анализа является проектировка надежной архитектурной основы к концу фазы Проектирование, поэтому особенное влияние должно уделяться бизнес-процессам, которые оказывают наибольшее влияние на внедряемую архитектуру системы.
   Другой целью данного анализа является выявления путей ослабления существенных рисков, поэтому начинать следует с бизнес-процессов, с которыми связано наибольшее число рисков. Необходимо уже на раннем этапе детально исследовать существенные риски и разработать полный набор предварительных мер, которые можно принять для обеспечения возможности последующих действий по эффективному противодействию рискам в случае их материализации.
   Модели бизнес-процессов являются исходными данным для создания прототипа пользовательского интерфейса, и когда он готов производится его утверждение, в котором участвуют представители организации заказчика.
3.2.3. Анализ
   В данном процессе используются детализованные данные, полученные в ходе процесса анализа требований. В ходе фазы Проектирование следует сосредоточить внимание на тех бизнес-процессах, которые представляют особую важность и наиболее сложны при проектировании архитектуры системы. Производится анализ бизнес-процессов, структуризация их с помощью схематичной объектной модели, называемой моделью анализа.
   Модель анализа позволяет разработчикам понять требования и детали разрабатываемой системы. В качестве описания модели анализа используется язык разработчиков, тогда как анализ требований, описывающий функциональность системы, использует язык заказчика. Это способствует разработке надежной архитектуры и облегчает процесс глубокого и всестороннего исследования требований. Модель анализа используется в качестве исходных данных для модели проекта.
3.2.4. Разработка
   В ходе этого процесса разрабатывается система по ранее выявленным функциональным и нефункциональным требованиям. На фазе Проектирование на основе процесса анализа необходимо разработать классы архитектуры, программные компоненты и их интерфейсы. Также в этой фазе происходит проектирование базы данных.
3.2.5. Внедрение
В ходе фазы Проектирование выполняется разработка трех прототипов:
  • Функциональный - прототип создающийся на основе наиболее важных бизнес-процессов;
  • Архитектурный - прототип создающийся на основе бизнес-процессов наиболее влияющих на архитектуру системы;
  • Прототип пользовательского интерфейса - прототип определяющийся стандартами пользовательских интерфейсов для приложений.
3.2.6. Тестирование
   Всегда есть искушение избежать подробного тестирования компонентов и модулей системы в целях ускорения внедрения решения. Однако это противоречит принципу, который гласит - «Процесс тестирования должен быть интегрирован на протяжении всех фазах внедрения». Игнорирование процесса тестирования может привести к дополнительным финансовым издержкам.
   Исследование исходного кода также входит в процесс тестирования и преследует следующие цели:
  • Устранить очевидные дефекты кода;
  • Гарантировать соответствие кода установленным стандартам.
На фазе Проектирование данный процесс включает:
  • Разработку стратегии тестирования;
  • Плана тестов;
  • Cценариев тестов бизнес-процессов и системы в целом.
3.2.7. Контроль производительности
   При внедрении данного процесса можно определить является ли производительность приемлемой для данной задачи. В случае если результаты тестов производительности не удовлетворяют требуемым критериям, можно внести необходимые настройки системы или внести корректировки в архитектуру системы (т.к. процесс контроль производительности тесно связан с процессом разработки технической архитектуры), чтобы достичь нужной производительности.
   На фазе Проектирование данный процесс включает в себя:
  • Определение требований контроля производительности и стратегии контроля производительности;
  • Определение стратегии проведения тестов производительности;
  • Определение моделей и сценариев проведения тестов производительности;
  • Разработка программ проведения тестов производительности;
  • Определение данных для проведения тестов производительности.
3.2.8. Техническая Архитектура
   На данной фазе процесс проектирования технической архитектуры включает в себя:
  • Определение требований к архитектуре;
  • Определение стратегий доступа к информации;
  • Определение стратегий аварийного восстановления и создания резервных копий;
  • Определение стратегий управления системой;
  • Определение стратегий интеграции с существующими системами;
  • Разработка стратегий безопасности и контроля.
3.2.9. Конвертация и перенос данных
   Для того чтобы избежать задержек и достигнуть лучшего качества данных, этот процесс должен быть запущен уже на ранних этапах проекта. Для определения объема работ по переносу данных на данном фазе необходимо исследовать состояние данных и сложность структуры хранения данных в существующих системах и приложениях. Поэтому на фазе Проектирование разрабатывается стратегия конвертации и переноса данных. В методологии OUM задачи сортировки и упорядочивания данных существующих систем ложится на специалистов заказчика.
3.2.10. Документация
   В данном процессе происходит переход от разработанных на Начальном фазе стратегии и требований к документированию к разработке стандартов и процедур документирования.
3.2.11. Обучение
   На фазе Проектирование происходит подготовка организации к внедрению системы. Чем более быстро заказчик сможет перенять новую технологию/продукт, тем более успешной и конкурентоспособной будет организация. На этой фазе проводится обучение проектной команды.
3.2.12. Переход
   Группа, отвечающая за переход к эксплуатации, должна вовлекать в этот процесс тех же самых пользователей заказчика, что привлекались на Начальной фазе.
   В ситуации, когда происходит замена старой системы, используется следующие способы:
  • Последовательный метод;
  • Параллельный метод;
  • Метод замещения.
   Последовательный метод предусматривает ввод элементов новой системы при отключении соответствующих им элементов старой системы. Это позволяет осуществить плавный переход от старой системы к новой. Также в случае нарушения работы элементов новой системы произойдет остановка работы не всей системы в целом, а только ее части, т.е. небольшой группы работников заказчика. Еще одним преимуществом данного подхода является разбиение процесса конвертации и переноса данных на фазы. Недостатком данного решения является разработка временных модулей, отвечающих за совместимость новой системы со старой.
   Параллельный метод предусматривает одновременную работу новой и старой систем:
  • Пользователь может работать в этих системах одновременно. Однако такая схема может привести к несогласованности данных в обоих системах. Эта проблема, как правило, решается путем установки старой системы в режим чтения.
  • Другая схема работы параллельного метода предусматривает перевод группы пользователей на новую систему, тогда как остальные пользователи будут использовать старую систему. Недостатком такого подхода, как и в последовательном способе, является разработка нового интерфейса для связи новой и старой систем.
   Метод замещения предусматривает полную остановку старой системы и запуск новой. Однако данный вариант самый небезопасный, т.к. в случае нарушения работы происходит остановка всей системы. Также проблемой может стать необходимость конвертации и переноса всех данных сразу, а не по фазам.

4. Разработка

   В ходе фазы Разработка на основе детализованной модели требований, разработанных компонентов и результатов их тестов строится система и осуществляется подготовка к первому релизу, который называют бета-релизом. На данной фазе завершается разработка приложения, проводится проверка совместимости работы всех компонентов, и приложение подготавливается к приемосдатачным испытаниям.

4.1. Цели

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

4.2. Процессы

В данном разделе описываются основные процессы, входящие в фазу Разработка. В него также включены советы и комментарии по каждому процессу.
4.2.1. Бизнес-Требования
   Бизнес-требования в соответствии с MoSCoW-методом и бизнес-процессы должны непрерывно контролироваться и поддерживаться менеджером проекта.
   В фазе Проектирование была определена большая часть бизнес-процессов, но при детализации этих процессов могут появиться либо новые требования, либо понадобится усовершенствование существующих требований. Однако необходимо помнить о масштабах проекта и не допустить его увеличения. Хотя наиболее важные для архитектуры системы бизнес-процессы были определены на фазе Проектирование и описана надежная архитектурная основы, возможно, появятся новые факторы или потребуется изменение уже существующих, которые могут повлиять на архитектуру. В этом случае необходимо включить эти факторы в анализ архитектуры приложения и разработать стратегию работы с этими факторами.
4.2.2. Анализ Требований
   Несмотря на то, что компоненты уже спроектированы и разработаны, можно определить новые бизнес-процессы. В этом случае модель бизнес-процессов должна быть изменена, чтобы отразить понимание новых требований и сделать модель более устойчивой.
4.2.3. Анализ
В процессе анализа работа, проделанная в результате фазы Проектирование, дополнительно совершенствуется в фазе Разработка.
4.2.4. Разработка
   Во время этого процесса происходит настройка системы на соответствие всем функциональным и нефункциональным требованиям и разработка оставшихся сценариев использования бизнес-процессов.
4.2.5. Внедрение
   Результат предыдущего процесса используется для внедрения системы на основе исходных кодов компонентов, скриптов, исполняемых файлов и т.д. Также внедряются и проводится тестирование программных компонентов. Конечные пользователи получают возможность оценить соответствие системы установленным требованиям. Во время такой проверки пользователи могут указать на недостатки разработанных компонентов и системы в целом.
4.2.6. Тестирование
   Планирование тестирования и разработка тестов основана на стратегии тестирования и требований тестирования, бизнес-процессах и архитектурной основе. Методология OUM подчеркивает необходимость проведения ранних тестов с использованием реальных данных заказчика, которые, как правило, конвертируются из старой системы. Такой подход облегчает работу пользователей во время проведения тестов, т.к. им приходится работать с уже известными данными, а также повышает эффективность данных тестов.
   На этой фазе проводится как тестирование отдельных компонентов системы, так и работы всей системы в целом. Также проверяется работа нефункциональных требований, таких как система аварийного восстановления, система создания резервных копий и восстановления.
4.2.7. Контроль производительности
   Целями процесса управления производительностью является определение, создание и внедрение эффективной системы управления производительностью для того, чтобы удостовериться в соответствии производительности системы и системных компонентов требованиям и ожиданиям заказчика.
   Во время фазы Проектирование были определены части системы, являющиеся критичными, и определены сценарии тестов производительности. На фазе Разработка необходимо разработать компоненты необходимые для проведения тестов производительности.
4.2.8. Техническая Архитектура
   На фазе Разработка создается “Руководство по управлению системой”, проводится тестирование систем резервного копирования и восстановления, а также определяется заключительная платформа и сетевая архитектура. Необязательным процессом данного фазы является проведение эксплуатационных тестов и тестов аварийного восстановления.
4.2.9. Конвертация и перенос данных
   На фазе Проектирование происходит согласование конвертации данных, которая имеет определенную значимость для бизнеса заказчика. Однако часто поля данных могут менять свое значение. Это может затруднить автоматическую конвертацию данных и потребовать ручного вмешательства (чистки данных). Трудно оценить необходимые размеры ручной чистки данных до завершения процесса Проектирование, поэтому иногда требуется провести один или несколько повторов на фазе Разработка.
4.2.10. Документирование
   Во время фазы Разработка публикуется документация системы и интерактивный справочник.
4.2.11. Обучение
   На фазе Разработка начинается подготовка к проведению тренингов по обучению пользователей организации заказчика работе с разрабатываемой/внедряемой системой. Этот процесс включает в себя уведомление пользователей, анализирование пользовательских потребностей, планирование учебного плана и проведение учебных тренингов.
4.2.12. Переход к эксплуатации системы
   На фазе Разработка необходимо усовершенствовать исходную стратегию перехода на новую систему и разработать план установки новой системы.
4.2.13. Оценка продолжительности
   Продолжительность внедрения проекта не является постоянной величиной. Для небольших проектов эта цифра может составлять 90 дней, но в зависимости от требований, потребностей заказчика, сложности стратегического направления его бизнеса, возможно увеличение срока внедрения проекта. Фаза Разработка является наиболее трудоемким по сравнению с другими фазами проекта.

5. Переход к эксплуатации

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

5.1. Цели

  • Получить одобрение проекта (разработанной/внедряемой системы) заказчиком (лицо со стороны заказчика, ответственного за внедрение новой системы);
  • Оказание поддержки пользователям заказчика при проведении приемосдаточных испытаниях и решение возникающих проблем и несоответствий;
  • Удостовериться, что разработанная система соответствует требованиям заказчика;
  • Подготовить промышленную среду;
  • Завершить конвертацию данных существующей системы;
  • Установить среду обслуживания требуемую для поддержки и управления узлом.

5.2. Процессы

   В данном разделе описываются основные процессы, входящие в фазу Переход к эксплуатации. В него также включены советы и комментарии по каждому процессу.
5.2.1. Тестирование
   Во время этой фазы проектная команда проводит приемосдаточные испытания. Во время проведения этих тестов привлекаются дополнительные пользователи организации заказчика. Предпочтительно проводить приемосдаточные испытания с данными, которые были подвержены конвертации из существующих систем.
5.2.2. Контроль производительности
   Во время этого процесса подготавливаются тесты производительности. Эти тесты являются итеративными, т.к. из-за строгих требований к производительности повышается их трудоемкость. Требуется настроить и переконфигурировать систему, возможно даже потребуется переписать часть исходного кода, чтобы получить соответствие требованиям. Поэтому важно еще на фазе Разработка следить за производительностью компонентов системы.
5.2.3. Конвертация и перенос данных
   Проверка правильности конвертации и переноса данных не менее важный процесс, чем проверка переноса программного обеспечения. Как правило, конвертация данных проводится с помощью специального программного обеспечения, которое не является постоянной частью новой системы, а используется как временный инструмент. Поэтому к этому программному обеспечению не применяются жесткие требования, как к другим элементам системы. Чем раньше будет решен вопрос конвертации данных, тем быстрее их можно будет использовать для проведения тестов работы бизнес-процессов.
   Во время этой фазы проводится конвертация данных и проведение тестов правильности перенесенных данных перед тем, как сделать их доступными для пользования. Если необходимо конвертировать данные из унаследованных систем и структура хранения этих данных отличается от структуры разработанной системы, то этот процесс является итеративным и к нему привлекаются пользователи заказчика с хорошим знанием унаследованной системы для проведения тестов правильности конвертации данных.
5.2.4. Документирование
   Во время фазы Переход к эксплуатации незначительные модификации или изменения программной системы могут привести к обновлению документации компонентов системы.
5.2.5. Обучение
   Во время фазы Переход к эксплуатации продолжается обучение конечных пользователей. Также проводится оценка эффективности для установления соответствия разработанной системы и ее производительности бизнес-целям, поставленным в начале проекта.
5.2.6. Переход
   В данном процессе происходит подготовка промышленной среды и система вводится в эксплуатацию.
5.2.7. Оценка продолжительности
   Фаза Переход к Эксплуатации является сравнительно коротким. Его продолжительность зависит от количества тестов контроля производительности и процесса конвертации и переноса данных.

6. Эксплуатация

   Фаза Эксплуатация включает:
  • Мониторинг системы, выявление и исправление недостатков системы;;
  • Разработка и внедрение требуемых обновлений;
  • Оценка использования производительности;
  • Разработка плана будущих расширений приложения.

6.1. Цели

  • Выполнение обязательств гарантийного периода;
  • Мониторинг производительности системы, устранение обнаруженных недостатков;
  • Создание журнала регистрации ошибок и их исправление;
  • Оценка эффективности внедренного решения;
  • Разработка плана будущих расширений приложения.

6.2. Процессы

В данном разделе описываются основные процессы, входящие в фазу Эксплуатация. В него также включены советы и комментарии по каждому процессу.
6.2.1. Контроль производительности
   Промышленный контроль производительности – расширение методик контроля производительности и подходов, идентифицированных и осуществленных до промышленной эксплуатации. Показатели производительности должны регулярно собираться. По ним осуществляется обзор работы всех компонентов. При введении новых компонентов и модулей показатели производительности будут меняться, поэтому необходимо проводить своевременный анализ, чтобы избежать проблем, связанных потерей производительности.
6.2.2. Эксплуатация и поддержка
   Контракты большинства проектов разработки содержат пункт о предоставлении требуемого гарантийного периода. Гарантийный период – это период в течении которого проектная команда обязана оказать любую поддержку, касающуюся работы разработанной системы, обнаружить и устранить все возникающие проблемы и ошибки.
   Строгая процедура контроля внесения изменений – ключ к успеху процесса Эксплуатации и поддержки. Процедуры регистрации ошибок и оценки производительности должны быть явно определены. Руководитель проекта разработчика и руководитель проекта заказчика должны согласовать понимание определений системного дефекта, оценки производительности и расширение возможностей приложения.
   Некоторые заказчики требуют проведение аудита конфигурации системы. Как правило, аудит направлен на проверку проблем безопасности системы, таких как предотвращение несанкционированного доступа к данным.
   Также задачами данного процесса является оценка производительности системы на ее соответствие требованиям по производительности. Если проектная команда не встроила в приложение модули обработчика прерываний, чтобы фиксировать точное время ответа и операционные частоты, то эти задачи решаются путем сбора информации от пользователей системы.
   Также во время этого процесса разрабатывается новый список расширений MoSCoW. Этот список определяет те расширения, которые будут внедрены во время и после фазы Эксплуатации. Приложения OUM предусматривает частые обновления.

среда, 14 сентября 2011 г.

Поиск текстового значения в таблицах схемы Oracle RDBMS

  1. Создать следующую функцию:
    sql> CREATE OR REPLACE FUNCTION FIND_STR_VALUE(  
        SCHEMA_NAME IN VARCHAR2 ,  
        FIND_STR    IN VARCHAR2 )  
       RETURN VARCHAR2  
      AS  
       match_count   INTEGER;  
       query_str     VARCHAR2(300);  
       result_string VARCHAR2(32767);  
      BEGIN  
       result_string:='TABLE_NAME COLUMN_NAME COUNT'||chr(13)||chr(10);  
       FOR t IN  
       (SELECT table_name, column_name, owner  
       FROM all_tab_columns a  
       WHERE a.owner=SCHEMA_NAME AND 
             a.data_type IN ( 'VARCHAR2', 'NVARCHAR2','VARCHAR','CHAR','NCHAR'))  
       LOOP  
        match_count := 0;  
        query_str  := 'SELECT COUNT(*) FROM '||t.owner||'.' || t.table_name || 
                      ' WHERE to_char(' || t.column_name || ') LIKE :1';  
        EXECUTE IMMEDIATE query_str INTO match_count USING '%'||FIND_STR||'%';  
        IF match_count > 0 THEN  
         result_string:=result_string|| t.table_name ||' '||t.column_name||
                        ' '||match_count||chr(13)||chr(10);  
        END IF;  
       END LOOP;  
       RETURN result_string;  
      END FIND_STR_VALUE;  
    
  2. Запустить выполнение функции (первый параметр имя схемы, второй - строка для поиска):
    sql> SELECT find_str_value('APEX_040100','welcome') FROM dual; 
    
  3. Пример выполненного запроса:
    TABLE_NAME | COLUMN_NAME | COUNT  
    WWV_FLOW_STEP_ITEMS | ITEM_DEFAULT | 1
    WWV_FLOW_STEP_ITEM_HELP | HELP_TEXT | 2 
    APEX_APPLICATION_PAGE_DB_ITEMS | HELP_TEXT | 1 
    APEX_APPLICATION_PAGE_ITEMS | ITEM_HELP_TEXT | 2  
    APEX_APPLICATION_PAGE_ITEMS | COMPONENT_SIGNATURE | 1  
    APEX_APPLICATION_PAGE_ITEMS | ITEM_DEFAULT | 1
    

четверг, 25 августа 2011 г.

Часто задаваемые вопросы по Oracle IRM 11g

  • Есть ли интеграция с терминальными серверами Citrix?
    Да, это стандартный функционал. Посмотреть в документации.
  • Каковы рекомендации по sizing-у?
    Oracle рекомендует один процессор на 4000 «тяжелых» пользователей или на 20000 «лёгких» пользователей (при 10% одновременно работающих пользователей), если предполагается интеграция с прикладными системами, то на 2000 «тяжелых» или на 10000 «лёгких» пользователей. Посмотреть на support.oracle.com (1335415.1)
  • Есть ли интеграция с инфраструктурой MS Active Directory?
    Да, данную возможность обеспечивает Oracle WebLogic Server на котором развёрнут IRM. Кроме Active Directory есть встроенные провайдеры для Oracle Internet Directory, Oracle Directory Server, Oracle Virtual Directory, OpenLDAP, произвольный LDAP-провайдер и другие. Так же есть поддержка авторизации с помощью Oracle Access Manager, SQL-запросов, SAML и т.д.
  • Есть ли интеграция с системами DLP?
    Да, в данной задаче в большей степени требуется настройка DLP-системы. Описание интеграции с InfoWatch здесь, с другими DLP-системами здесь.
  • Каковы основные работы при внедрении?
    1. Создание архитектуры решения и её детализация;
    2. Создание интеграционной архитектуры решения;
    3. Сбор требований и создание контекстной модели;
    4. Развертывание тестового окружения;
    5. Настройка в соответствии с контекстной моделью;
    6. Создание интеграционных компонентов;
    7. Тестирование решения и приёмочное испытания;
    8. Обучение пользователей и администраторов;
    9. Разворачивание промышленного окружения.
  • Какова методология внедрения?
    Основной методологией внедрения продуктов и технологий Oracle является Oracle Unified Method - она достаточно общая (кратко о методологии см.здесь). Специфические для IRM шаги описаны здесь.
  • Какие алгоритмы шифрования можно использовать?
    Поддерживаются только следующие алгоритмы:
    • AES128
    • AES256
    • AES128-FIPS
    • AES256-FIPS
    • DES3-FIPS

среда, 17 августа 2011 г.

Полезные команды Unix-ов (для консультантов/разработчиков)


RHEL/OEL Solaris AIX HP-UX
 Версия операционной системы cat /etc/*-release uname -r oslevel -r uname -r
 Архитектура процессора arch arch uname -p uname -m
 Количество процессоров cat /proc/cpuinfo psrinfo -pv lsdev -C -c processor ioscan -kf | grep processor | wc -l
 Свободное место на файловых системах df -h df -h df -k
(в килобайтах)
bdf
(в килобайтах)
 Размер swap free -m swap -s lsps -a swapinfo
 Размер оперативной памяти free -m prtconf | grep Memory bootinfo -r machinfo | grep Memory
 Список работающий в системе процессов top prstat -a topas top
 Получение списка сетевых интерфейсов ifconfig -a ifconfig -a ifconfig -a netstat -in
 Добавление пользователя useradd useradd mkuser useradd
 Удаление пользователя userdel userdel rmuser userdel
 Добавление группы groupadd groupadd mkgroup groupadd
 Удаление группы groupdel groupdel rmgroup groupdel

Полезные команды:
  • Архивирование
    • Распаковать tar.gz:
      $ gzip -dc archive_name.tar.gz | tar xf -  
      
    • Создать tar.gz из директории:
      $ tar cvf - directory | gzip > file.tar.gz
    • Создать tar:
      $ tar cvf archive_name.tar directory
    • Создать tar с сжатием bzip и разбить на тома (4000m в данном примере):
      $ tar -cvj directory/ | split -b 4000m -d - "directory.tar.bz."
    • Распаковать tar:
      $ tar xvf archive_name.tar
    • Создать zip:
      $ zip -r archive_name.zip directory
    • Распаковать zip:
      $ unzip archive_name.zip
    • Распаковать все zip в текущей директории:
      $ unzip \*.zip
  • Поиск файлов
    • С расширением log в текущей директории и поддиректориях:
       $ find . -name "*.log" | more
      
    • По содержимому текстовых файлов в текущей директории и поддиректориях:
       $ find . -type f |while read i;do cat "$i"|grep -H --label="$i" -n "строка поиска"; done
      
    • По содержимому текстовых файлов в текущей директории и поддиректориях с выводом содержимого в консоль:
       $ find . -name '*.biz' -exec cat {} \; 
    • Файлы принадлежащих пользователю oracle в текущей директории и поддиректориях:
       $ find . -user oracle | more  
      
    • Измененных один день назад в текущей директории и поддиректориях:
       $ find . -mtime 1 | more
      
    • Удалить файлы изменённые более, чем 150 дней назад:
       $ find -type f -mtime +150 -exec rm '{}' \;
      
    • Файлы размер которых больше 1ГБ в текущей директории и поддиректориях:
       $ find . -size +1048576k | more   
      
    • Файлы размер которых больше 100МБ, но меньше 200МБ в текущей директории и поддиректориях:
       $ find . -size +102400k -size -204800k | more   
      
  • Процессы операционной системы
    • Вывести список процессов запущенных/использующих в директорию /u01:
       $ ps -ef | grep /u01 | more  
      
  • Копирование с одного сервера на другой использованием scp
    • С локального сервера на удалённый:
       $ scp localFile.zip remoteUser@ip-address:/remoteDir  
      
    • С удаленного сервера на локальный:
       $ scp remoteUser@ip-address:/pathToFile localDirectory  
      
  • Изменение EOL во всех файлах в директории и поддиректориях
    • С Unix-формата на Windows-формат :
       $ find . -type f -exec unix2dos {} {} \;  
      
    • С Windows-формата на Unix-формат:
       $ find . -type f -exec dos2unix {} {} \;  
      

вторник, 2 августа 2011 г.

Краткая концепция Oracle Fusion Applications

  Oracle Fusion Applications - это новое поколение систем масштаба предприятия от компании Oracle, основанное на технологиях Oracle Fusion Middleware 11g и функциональности Oracle e-Business Suite и поглощенных ранее компаний J.D.Edwards, PeopleSoft и Siebel.

Основные приложения и модули входящие в состав Fusion Applications 11.1.1.5:

Архитектура Oracle Fusion Applications:
Fusion Applications представляет трёхуровневую архитектуру:
  1. Oracle Database;
  2. Oracle Fusion Middleware;
  3. Приложения Oracle Fusion Applications (Oracle Fusion Applications Product Families).


Oracle Fusion Applications построены на основе технологий Oracle Fusion Middleware и являются Java Enterprise Edition / ADF-приложениями развернутыми на сервере приложений WebLogic, а в базе данных хранится вся информация.
Каждое приложение (CRM,HCM, Projects и т.п.) представляет собой:
  • одну или несколько схем в базе данных;
  • одно или несколько Java Enterprise Edition / ADF-приложений и ADF Business Service-ов;
  • один или несколько композитных SOA-процессов.

Компоненты Fusion Middleware можно разделить на два типа:
  • Компоненты FMW используемые в Fusion Applications;
  • Инфраструктурные компоненты Fusion Applications.

К инфраструктурным компонентам относятся:
  • Enterprise Scheduling Service (ESS)
    Внутренний планировщик задач в Fusion Applications.
    Выполняет аналогичные операции, как диспетчер запросов (Concurrent Manager) в Oracle e-Business Suite 11i/R12.
  • Approval Management Service (AMS)
    Сервис согласований с пользователем (human workflow) на основе технологии FMW Human Tasks.
  • Oracle Enterprise Crawl and Search Framework
    Эта функциональность обеспечивается интегрированным в инфраструктуру Oracle Fusion Applications продуктом Oracle Secure Enterprise Search (SES).

К компонентам FWM относятся:
  • Oracle WebLogic
    Сервер приложений соответствующий стандартам Java EE 5.0, который является инфраструктурным компонентов для следующих компонентов.
  • Application Developer Framework (ADF)
    Представляет собой фреймворк построенный на основе Java Server Faces (JSF), предоставляющий возможности связывания сервисов с компонентами пользовательского интерфеса на основе декларативного подхода ('Drug and drop' в среде разработки Oracle JDeveloper). Для разработки бизнес-сервисов обеспечивающих декларативный доступ к реляционным базам данных используются бизнес-компоненты Oracle ADF (ADF Business Components) соответствующие спецификации JSR-227, с помощью которых можно реализовать собственную бизнес-функциональность, бизнес-правила, разграничение доступа к данным и т.п.
  • Компоненты Oracle SOA Suite:
    • BPEL
      Представляет собой сервер выполнения бизнес-процессов на языке BPEL 1.1/2.0 и взаимодействие с расширениями Oracle, такими как адаптеры.
    • Mediator
      Сервисная шина, которая в SOA Suite 10g называлась Oracle ESB. Предоставляет все основные возможности систем ESB - динамический роутинг, трансфирмации, валидации данных и т.п.
    • Human Tasks
      Представяет собой технологию управления жизненным циклом задач пользователей основанную на ADF.
    • Business Rules
      Простой и гибкий механизм бизнес-правил интегрированный в инфраструктуру SOA.
  • WebCenter
    Комплекс продуктов для создания порталов с функциональностью Enterprise 2.0 (имеется ввиду встроеные компоненты по взаимодействию со службами обмена сообщениями, блоги, wiki, тэги, форумы, социальные сети и т.д.) на основе SCA. Технологически это набор интегрированных приложений построенных на основе Oracle WebCenter Framework, который является расширением ADF.
  • Enterprise Content Management
    Система управления контентом обеспечивающая хранение и управление жизненным циклом документов и приложений(аттачментов). Технически представляет собой интегрированные Java EE/ADF-приложения развернутые на сервере приложений, а весь контент физически хранится в базе данных.
  • Business Intelligence
    Платформа Oracle Business Intelligence предоставляет широкий спектр современных инструментов бизнес-анализа: интерактивные информационные панели, подсистему отчетности, средства исполнения нерегламентированных запросов, механизм уведомлений, элементы "мобильной аналитики" и др.
  • Data Integrator
    Основная роль данного продукта в Fusion Applications - это синхронизация данных. Oracle Data Integrator представляет собой развитое средство ETL, базирующееся на SOA-архитектуре.

Скачать Oracle Fusion Applications можно с E-Delivery:

четверг, 28 июля 2011 г.

Конвертирование образа виртуальной машины Oracle VM в VMware

Описание: конвертирования виртуальной машины с операционной системой Linux из Oracle VM (или Xen)-образа в VMware.
Сокращение: ОВМ - образ виртуальной машины, ВМ - виртуальная машина.
  1. Сделать резервную копию ОВМ (в формате Xen или Oracle VM).
  2. Запустить ОВМ.
  3. Проверить используется ли ядро ОС с поддержкой Xen.
    Для этого выполните команду:
     $ uname -r  
     2.6.18-238.9.1.0.1.el5PAE  
    
    Если в результате выполнения команды нет слова xen, то ядро без поддержки Xen. Пример варианта с ядром Xen:
     $ uname -r  
     2.6.18-238.9.1.0.1.el5xen  
    
  4. Если используется ядро с Xen, то надо переключить в загрузчике ОС на загрузку с другого ядра без Xen-а. Если используется загрузчик Grub, то надо отредактировать следующий файл:
     $ vi /boot/grub/grub.conf  
    
    В данном файле надо изменить загружаемое ядро по-умолчанию изменив значение поля default (нумерация начинается с 0). Например:
     # grub.conf generated by anaconda  
     #  
     # Note that you do not have to rerun grub after making changes to this file  
     # NOTICE: You have a /boot partition. This means that  
     #     all kernel and initrd paths are relative to /boot/, eg.  
     #     root (hd0,0)  
     #     kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00  
     #     initrd /initrd-version.img  
     #boot=/dev/sda  
     default=1  
     timeout=5  
     splashimage=(hd0,0)/grub/splash.xpm.gz  
     hiddenmenu  
     title Oracle Linux Server (2.6.18-238.9.1.0.1.el5debug)  
         root (hd0,0)  
         kernel /vmlinuz-2.6.18-238.9.1.0.1.el5debug ro root=/dev/VolGroup00/LogVol00 rhgb quiet  
         initrd /initrd-2.6.18-238.9.1.0.1.el5debug.img  
     title Oracle Linux Server (2.6.18-238.9.1.0.1.el5PAE)  
         root (hd0,0)  
         kernel /vmlinuz-2.6.18-238.9.1.0.1.el5PAE ro root=/dev/VolGroup00/LogVol00 rhgb quiet  
         initrd /initrd-2.6.18-238.9.1.0.1.el5PAE.img  
     title Oracle Linux Server (2.6.18-238.9.1.0.1.el5xen)  
         root (hd0,0)  
         kernel /xen.gz-2.6.18-238.9.1.0.1.el5  
         module /vmlinuz-2.6.18-238.9.1.0.1.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet  
         module /initrd-2.6.18-238.9.1.0.1.el5xen.img  
     title Oracle Linux Server (2.6.18-238.9.1.0.1.el5)  
         root (hd0,0)  
         kernel /vmlinuz-2.6.18-238.9.1.0.1.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet  
         initrd /initrd-2.6.18-238.9.1.0.1.el5.img  
    
  5. Выключить ВМ.
  6. Выполнить конвертирование образа(-ов) виртуального жесткого диска с помощью qemu-img (скачать можно отсюда ):
     $ qemu-img convert system.img -O vmdk system.vmdk
    
    Вместо выделенного красным подставить имя файла из которого конвертировать и имя файла в который конвертировать.
  7. Создать новую ВМ в Vmware Player (или Server, Workstation, Fusion), но при создании не создавать новый виртуальный жесткий диск (или диски, если их несколько), а выбрать - использовать существующий, где указать тип устройства - IDE (значение по-умолчанию - SCSI).
  8. Готово.

Если требуется дальнейшее конвертирование в Vmware ESX, то можно использовать Vmware Converter.

среда, 20 июля 2011 г.

Массовая отмена параллельных запросов (concurrent request) в Oracle e-Business Suite R12

Предыстория: в очереди к стандартному диспетчеру запросов было более 485тыс. одинаковых ресурсоёмких запросов. Возникла необходимость отменить их выполнение...

  1. Остановить appsTier (или как-минимум Concurrent Manager);
  2. Подключиться в базе данных пользователем apps
    1. Выполнить следующий SELECT:
       SELECT a.request_id,  
        a.oracle_process_id "SPID" ,  
        q.concurrent_queue_name ,  
        fu.user_name ,  
        fu.user_id ,  
        c.concurrent_program_id,  
        c.concurrent_program_name  
        || ': '  
        || ctl.user_concurrent_program_name concurrent_request,  
        a.description ,  
        a.ARGUMENT_TEXT ,  
        b.node_name ,  
        b.db_instance ,  
        a.logfile_name ,  
        a.logfile_node_name ,  
        a.outfile_name ,  
        a.phase_code,  
        a.status_code,  
        actual_start_date ,  
        actual_completion_date ,  
        ROUND((NVL(actual_completion_date,sysdate)  
             -actual_start_date)*1440,2) mins ,   
        ROUND((actual_completion_date   
           - requested_start_date),2) * 24 duration_in_hours  
       FROM APPLSYS.fnd_Concurrent_requests a,  
        APPLSYS.fnd_concurrent_processes b ,  
        applsys.fnd_concurrent_queues q ,  
        APPLSYS.fnd_concurrent_programs c ,  
        APPLSYS.fnd_concurrent_programs_tl ctl ,  
        apps.fnd_user fu  
       WHERE a.controlling_manager  = b.concurrent_process_id  
       AND a.concurrent_program_id  = c.concurrent_program_id  
       AND a.program_application_id = c.application_id  
       AND a.phase_code <> 'C'  
       AND b.queue_application_id = q.application_id  
       AND b.concurrent_queue_id = q.concurrent_queue_id  
       AND ctl.concurrent_program_id = c.concurrent_program_id  
       AND a.requested_by = fu.user_id  
       AND ctl.language = 'US'  
       ORDER BY a.actual_start_date DESC  
      
      По результатам выписываем user_id (по имени пользователя) и concurrent_program_id (по названию запроса) для отмены.
    2. Выполнить следующий UPDATE:
       UPDATE FND_CONCURRENT_REQUESTS c  
       SET c.phase_code = 'C', c.status_code = 'D'  
       WHERE c.phase_code in ('R','P')   
       AND c.requested_by = 1428
       AND c.concurrent_program_id = 57368
       AND TO_DATE(c.request_date) >=
           TO_DATE('19-07-2011','DD-MM-YYYY')  
      
      Пояснение: подставляем значения user_id и concurrent_program_id из предыдущего SELECT-а и дату в соответсвии с той когда были созданы параллельные запросы (вместо помеченных красным).
    3. Зафиксировать изменения (COMMIT)
  3. Запустить appsTier.

Полезная ссылка: расшифровка значений status_code и phase_code таблицы FND_CONCURRENT_REQUESTS

пятница, 1 июля 2011 г.

Старт Admin и Managed-серверов с использованием Node Manager и WLST

Допущение: Node Manager сконфигурирован. Конфигурирование Node Manager описана здесь
  1. Запускаем Node Manager:
     $  nohup $MIDDLEWARE_HOME/wlserver_10.3/server/bin/startNodeManager.sh &  
    
  2. Открыть консоль и выполнить:
     $  $MIDDLEWARE_HOME/wlserver_10.3/common/bin/wlst.sh  
    
  3. Приконнектиться к Node Manager с помощью nmConnect(). Например:
     wls:/offline> nmConnect('weblogic','welcome1','localhost','5556','soa_domain')
    
    где weblogic - имя администратора WebLogic Server;
        welcome1 - пароль администратора WebLogic Server;
        localhost - имя хоста на котором запущен NodeManager;
        5556 - порт хоста на котором запущен NodeManager;
        soa_domain - имя домена.
  4. Стартовать AdminServer с помощью nmStart(). Например:
     wls:/nm/soa_domain> nmStart('AdminServer')  
    
  5. Стартовать ManagedServer с помощью nmStart(). Например SOA Server:
     wls:/nm/soa_domain> nmStart('soa_server1')  
    
  6. Выйти из консоли.
     wls:/nm/soa_domain> exit()  
    

четверг, 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.