Wednesday, February 20, 2013

Migrating the BAM objects across environments with the ANT script – Oracle BAM 11g

Migrating the BAM objects across environments with the ANT script – Oracle BAM 11g

This post explains how to use the ANT script to migrate the Oracle BAM objects across the environments.The script can be run remotely from the client machine or from the server machine.
  • Create a folder BAMConfig and create two sub folders BAMObjects and config inside the BAMConfig folder
  • Copy the BAMICommandConfig.xml from $ORACLE_HOME/bam/config folder of the server to the config folder created in the above step.
  • Add the default user name and the password to the BAMICommandConfig.xml file
           <ICommand_Default_User_Name>weblogic</ICommand_Default_User_Name>
           <ICommand_Default_Password>hiyEbs0vwXPQrKh8yE7z3f7JVNhmLLEe+cR3bansiPc=</ICommand_Default_Password>

         Also verify the ADCServerPort - the BAM Server http listening port and   ADCServerName -  BAM Server host name properties.

Content of the configuration file:

<?xml version="1.0" encoding="UTF-8"?><BAMICommand>
<ADCServerPort>9001</ADCServerPort>
<ADCServerName>BAM Server hostname</ADCServerName>
<ICommand_Default_User_Name>weblogic</ICommand_Default_User_Name>
<ICommand_Default_Password>hiyEbs0vwXPQrKh8yE7z3f7JVNhmLLEe+cR3bansiPc=</ICommand_Default_Password>
<Communication_Protocol>t3</Communication_Protocol>
<SensorFactory>oracle.bam.common.statistics.noop.SensorFactoryImpl</SensorFactory>
<GenericSatelliteChannelName>invm:topic/oracle.bam.messaging.systemobjectnotification</GenericSatelliteChannelName>
</BAMICommand>

Default password should be encrypted else you will be receiving “ICommandEngine.MissingCredentials” error.

To encrypt the password configure the BAMICommandConfig.xml file in the $ORACLE_HOME/bam/config folder with the plain text password and run any standard icommand from the server (e.g $ORACLE_HOME/bam/bin/icommand -cmd export -type dataobject -name SampleDO -file C:\temp\SampleDO.xml) that will encrypt the password.
  • Create Export_BAM_Objects.xml file with the BAM export commands and place the same in BAMConfig folder created in the above step, the contents of the file look like below
<OracleBAMCommands>
   <!--import dataobjects-->
    <Export name="/Albin/BAMWebservice" type="dataobject" file="$BAM_PROJ_HOME$/BAMWebservice.xml"/>
    <Export name="/SampleDO" type="dataobject" file="$BAM_PROJ_HOME$/SampleDO.xml"/>
</OracleBAMCommands>
Configure the required export commands (exporting different type of objects) into this file.
  • Create Import_BAM_Objects.xml file with the BAM import commands and place the same in BAMConfig folder created in the above step, the contents of the file look like below
<OracleBAMCommands>
   <!--import dataobjects-->
   <Import file="$BAM_PROJ_HOME$/BAMWebservice.xml"/>
</OracleBAMCommands>
Configure the required import commands into this file.
  • Create the BAMBuild.xml file with the following contents and place the same in the BAMConfig folder created in the above step.
<project name="BAMMigrationProject" basedir="." default="config">
   <!--import the property file-->
   <property environment="env"/>
   <property name="src.dir" value="."/>
   <property name="proj.home" value="${env.BAM_PROJ_HOME}"/>
   <property name="oracle.home" value="${env.ORACLE_HOME}"/>
   <property name="oracle.common.home" value="${env.ORACLE_COMMON_HOME}"/>
   <property name="bam.core.lib.dir" value="${env.ORACLE_HOME}/bam/modules/oracle.bam_11.1.1"/>
   <property name="bam.tp.lib.dir" value="${env.ORACLE_HOME}/bam/modules/oracle.bam.thirdparty_11.1.1"/>
   <property name="dms.lib.dir" value="${env.ORACLE_COMMON_HOME}/modules/oracle.dms_11.1.1"/>
   <!--BAM Classpath required by icommand application-->
   <path id="bamClasspath">
      <fileset file="${bam.core.lib.dir}/oracle-bam-icommand.jar"/>
      <fileset file="${bam.core.lib.dir}/oracle-bam-common.jar"/>
      <fileset file="${bam.core.lib.dir}/oracle-bam-adc-ejb.jar"/>
      <fileset file="${dms.lib.dir}/dms.jar"/>
      <fileset file="${bam.tp.lib.dir}/jgroups-core.jar"/>
      <fileset file="${bam.tp.lib.dir}/xstream-1.3.1.jar"/>
      <fileset file="${bam.tp.lib.dir}/commons-codec-1.3.jar"/>
      <fileset file="${oracle.home}/../wlserver_10.3/server/lib/weblogic.jar"/>
      <fileset file="${oracle.common.home}/modules/org.jaxen_1.1.1.jar"/>
   </path>
   <!--export BAM DOs through icommand-->
   <target name="export" description="Export BAM dataobjects and reports" depends="config">
    <delete dir="${basedir}/BAMObjects" includeemptydirs="true" includes="*/**"></delete>
      <java classname="oracle.bam.icommand.Application" fork="true" dir="${src.dir}" classpathref="bamClasspath">
         <sysproperty key="oracle.bam.debug" value="true"/>
         <arg value="-CmdFile"/>
         <arg value="${basedir}/Export_BAM_Objects.xml"/>
      </java>
   </target>
   <!--import BAM DOs through icommand-->
   <target name="import" description="Import BAM dataobjects and reports" depends="config">
      <java classname="oracle.bam.icommand.Application" fork="true" dir="${src.dir}" classpathref="bamClasspath">
         <sysproperty key="oracle.bam.debug" value="true"/>
         <arg value="-CmdFile"/>
         <arg value="${basedir}/Import_BAM_Objects.xml"/>
      </java>
   </target>
   <!--Modify bam icommand files-->
   <target name="config">
       <!--replace $project.home$ with the actual project directory inside the command file-->
      <replace file="Export_BAM_Objects.xml" token="$BAM_PROJ_HOME$" value="${basedir}/BAMObjects"/>
      <replace file="Import_BAM_Objects.xml" token="$BAM_PROJ_HOME$" value="${basedir}/BAMObjects"/>
   </target>
</project>
  • To run the scripts from the server copy the BAMConfig folder with all the contents to the server.Set the environment variables ORACLE_HOME and ORACLE_COMMON_HOME(e.gORACLE_HOME=/oracle/Middleware/Oracle_SOA1;export ORACLE_HOME;ORACLE_COMMON_HOME=oracle/Middleware/oracle_common;export ORACLE_COMMON_HOME) and also set the PATH to ANT(e.g export PATH=$PATH:$ORACLE_HOME/../modules/org.apache.ant_1.7.1/bin)
         Execute the ant scripts
          ant –f BAMBuild.xml export

        The objects will be exported based on the commands in the Export_BAM_Objects.xml as an xml file   to the BAMObjects folder

         ant –f BAMBuild.xml import

           The xml file contents will be imported to BAM based on the commands in the Import_BAM_Objects.xml
  • To run the script from the client machine the JDeveloper with the same version as the BAM server should be installed.Set the ORACLE_HOME (e.g C:\EnvSetup\MiddlewareBlog\jdeveloper) and ORACLE_COMMON_HOME(e.g C:\EnvSetup\MiddlewareBlog\oracle_common) environment variables and also set the PATH to ANT
        Copy the commons-codec-1.3.jar file from the server location   ${env.ORACLE_HOME}/bam/modules/oracle.bam.thirdparty_11.1.1 to the <JDEV_HOME>\ jdeveloper\bam\modules\oracle.bam.thirdparty_11.1.1

Run the ant script


Wednesday, February 13, 2013

Different integration approaches to send the event data to Oracle BAM 11g

Different integration approaches to send the event data to Oracle BAM 11g

Oracle BAM provides a framework for Creating dashboards that display real-time data based on the events.
There are multiple approaches to send the event data to Oracle BAM.This document explains some of the approaches to send the data toOracle BAM.

Different approaches to send event data to BAM


Friday, December 21, 2012

Building a Simple Oracle ADF page using Oracle BAM Data Control

Building a Simple Oracle ADF page using Oracle BAM Data Control

This blog will explain how to Build a Simple Oracle ADF page using Oracle BAM Data Control

The Oracle BAM reports can be built through BAM Active Studio or through BAM data control in Oracle ADF page.
In this blog I will be explaining about the steps required to build a simple ADF page using BAM data control.

Creating the BAM Connection:

  • Open the JDeveloper
  • Create new BAM Connection

  • Enter the BAM Server details as shown below. 

  • Click on Finish and Test the connection
  • Create the data object in BAM through Architect view (I am using the existing data object Employee)



Tuesday, December 18, 2012

Send the reports to external email ids through Alerts - Oracle BAM server.

Send the reports to external email ids through Alerts - Oracle BAM server.

By default we can’t send the reports to an external email id’s from a Oracle BAM server, the reports only can be send to a users configured with Oracle BAM servers(through weblogic console).This post will explain how to enable the Oracle BAM server to send the reports to the external email ids.

Before following this post the email drivers details should be configured in UMS (through em console).

By default AlertActionAllowExternalEmail property in the BAMCommonConfig.xml file is set as false.
Change the value of AlertActionAllowExternalEmail property to true in the BAMCommonConfig.xml file to enable the external email feature. The BAMCommonConfig.xml file can be located in the following location BAM_DOMAIN_HOME/BAMDomain/config/fmwconfig/servers/BAMManagedServer/applications/oracle-bam_11.1.1/config.

 Create an Alert to send the report to the External Email:

  • Login to the Architect window; select the Alert from the drop down list and click on Create New Alert.



Wednesday, December 12, 2012

Creating the reports based on the data from weblogic JMS queue – Oracle BAM

Creating the reports based on the data from weblogic JMS queue – Oracle BAM


Oracle BAM supports the reporting based on the data from External Messaging Sources.
This post explains the steps to create a report based on the data from the weblogic Queue.

Create the data object:

Create a data object with required fields to populate the data from the JMS Queue (Refer the previous post for the steps to create the Data Object).Here I am creating the Employee data object with three fields.

Configure the External Messaging Source:

These steps configure the JMS queue and map the JMS data to the data object (Employee) created in the previous step.
  • Click on Architect button from the Start up page.
  • Select External Message Source from the drop down list.
  • Enter the name for the message source and also the JNDI Service provider URL, Queue connection factory name and Queue name.
  • Select the JMS Message Type as TextMessage.
  • Select the Data object name as Employee created in the previous step and also select the operation as Insert.


Creating report based on External Data Source (Database table) – Oracle BAM

Creating report based on External Data Source  (Database table) – Oracle BAM


In Oracle BAM the reports can be created based on the external database table.This post will explain the steps required to build a simple report based on the external database table.

Create the External Database:

  • Login to Oracle BAM Start page and click on Architect button.


  • Select External Data Sources from the drop down list and click on the create button in the next page.

  • Provide the External Datasource Name and the database details and click on the Test button to test the External Data Source.


Monday, September 3, 2012

Importing the Oracle BAM objects from 10g to 11g

Importing the Oracle BAM objects from 10g to 11g


The icommand utility will be used to export and import the Oracle BAM objects between environments.

This blog will explain how to import the Oracle BAM objects exported from the 10g environment.

Before executing the icommand to import the BAM objects make sure the BAM port name (the default port name is 9001) configured properly in $MIDDLE_HOME/ORACLE_SOA1/bam/config/BAMICommandConfig.xml file.


Import the data object:

icommand -cmd import -file D:\Albin\Docs\SavingsAccountOpeningBAM\SavingsAccountOpening.do -mode preserveid






Configuring Oracle BAM Adapter connection factory through EM console– Oracle SOA Suite


Configuring Oracle BAM Adapter connection factory through EM console– Oracle SOA Suite:

The Oracle BAM Adapter is used as a partner link in a BPEL process to send data to Oracle BAM data object.

The below are the steps to configure the default connection factory, new connection factories also can be created instead of using the default one in Oracle SOA Suite 11g or Oracle SOA Suite 12c

Steps to configure the BAM Adapter:

  • Login WebLogic Admin Console
  • Click Deployments in Domain Structure pane
  • Click on the application OralceBamAdapter
  • Click on Configuration tab
  • Click on Outbound Connection Pools
  • Expand oracle.bam.adapter.adc.RMIConnectionFactory.


Configuring BAM web application properties – Oracle SOA Suite


Configuring BAM web application properties – Oracle SOA Suite

The BAM web application properties should be configured before designing the reports in Oracle BAM, these properties will be configured in reports.

Steps to configure the BAM web application properties

  • Login to EM console and maximize the BAM node
  • Click on OracleBamWeb and click on BAM Web Properties

  • Change the application URL and the Server name as shown below (port should be the BAM server port) and Click on Apply


Wednesday, November 30, 2011

Oracle BAM (Oracle Business Activity Monitoring) Features


Oracle BAM (Oracle Business Activity Monitoring) Features:

Oracle Business Activity Monitoring (Oracle BAM) is a complete solution for building interactive, real-time dashboards and proactive alerts for monitoring business processes and services.
Oracle BAM gives business executives and operation managers the information they need to make better business decisions and take corrective action if the business environment changes.
  • Able to monitor the BPEL process and other processes by integrating the processes with BAM.
  • Able to create live report for the process integrated
  • Able to alert the users based on the rules defined
  • We can able to call BPEL and other Webservices from BAM.

Oracle BAM is comprised of six components:

  • Data Integration
  • Data Caching
  • Analytics
  • Monitoring
  • Alerting
  • Reporting

Oracle BAM Event Engine:

  • Oracle BAM Event Engine monitors complex changing conditions in the data and the system in real-time and based upon user-defined rules.
  • Takes a variety of actions in response to those changes.
  • Notifying the appropriate user with an alert and/or report.

Oracle BAM Active Report Engine:

  • Oracle BAM Active Report Engine assembles and formats the data for a live report to be displayed in Oracle BAM’s thin and rich clients
  • Reports are available in a variety and combination of view types including charts

Oracle BAM –User Interfaces:

Oracle BAM Active Viewer
thin user interface for the business user
Oracle BAM Active Studio
thin user interface for the power user
the power user can create and edit reports
Oracle BAM Architect
thin user interface for the data designer focused on creating data objects in the Oracle BAM Active Data Cache
Oracle BAM Administrator
thin user interface for the system administrator who is responsible for user management and overall server management

Security Filter:

Security filters to data objects so that only specific users can view specific rows in the data object

Permissions:

Permissions for users and groups on data objects.