1. What is BAM?
Business Activity Monitoring is a tool that is useful in monitoring business services and processes.It actively
collects data, applies rules and reports information to users.When something goes wrong in business processes,
BAM can be configured to take corrective measures such as emailing administrators/support team.
How does BAM interface with other SOA applications?
BAM uses Data Objects to capture and store information from other sources.It uses Real Time Data Streaming to
stream data through Oracle BAM Adapter, JMS connector, ODI or web service API.
We are going to explore the features of BAM through a simple use-case as shown below:
Description: Employee information is sent to BAM Example Process (BPEL). BPEL sensors sends this information
through BAM Adapterto populate Employee Data Object in BAM. Employee Dashboard report will capture this
information and showin the form of a 3D Bar chart.
Steps to implement use-case:
1. Create Employee Data Object
2. Create BAM Report
3. Configure BAM Adapter
4. Create BPEL Sensor Activity and Sensor Action
1. Create Employee Data Object
Open BAM console using http://<yourhost>:9001/OracleBAM
Open BAM Architect
Click on "Create Data Object" and enter "Employee" in the name field.
Click on "Add Field" and add following fields: id (Auto-incrementing Integer), name (String), department
(String).
Click on "Create Data Object" to finish creation. You can optionally create a sub-folder to hold Employee
object.
Make sure Employee object is visible underData Objects section.
2. Create BAM Report
Open Active Studio
2. Click on "Create a New Report".
Click on first option: Single tiled Report.
Enter "Employee Dashboard" for Report title and select "3D Bar Chart" as report type.
Select "Employee" object from Data Objects section at the bottomand click on Next button.
Select “Department” in Group By section, “id” in Chart Values and “Count” in Summary Function(s). Click on
Next and then Finish button.
Save this report and it will be visible through "Recent Reports" in Home tab. This report now shows Employee
count grouped by Department.
3. Configure BAM Adapter
Open Weblogic Server Administration Console.
From left side Domain Structure section,select Deployments.
Search and select "OracleBamAdapter".
Click on "Configuration" and "Outbound Connection Pools" from OracleBamAdapter settings page.
3. We can see predefined connection pools for RMI and SOAP connections. Expand both connection factory
links. We need to configure these connection pools to use BAM server.
Important: Repeat following steps for both "eis/bam/rmi" and "eis/bam/soap".
Open “eis/bam/rmi” link and enter Outbound connection properties as follows. Replace connection parameters
as per your installation. Hit “Enter” key after entering each property value. Click on Save once you’ve
finished.
Open “eis/bam/soap” and enter connection parameters as follows. Hit “Enter” key after entering each property
value. Click on Save once you’ve finished.
Note: The UserName field should contain an Oracle BAM user who is a member of application-level role
Administrator or Report Architect. “weblogic” userby default is an Administrator.
Clik on OracleBamAdapter from Deployments page. Go to Control tab. Select OracleBamAdapter, click on
Stop and then Start buttons.Now, Oracle BAM Adapter is ready for use.
4. Create BPEL Sensor Activity and Sensor Action
Create an empty Generic Project and name is BAMExample.
Import following employee.xsd file into BAMExample project.
Create one-way BPEL process and name it BAMExampleProcess. Select Employee element from Project
Schema Files for Input message for the service.
4. Double click on BAMExampleProcess in composite.xml to open the BPEL process.
Click on Monitor button at the top right corner of the process window to change to Monitor view.
Right click on receiveInput activity and create sensor.
Change Evaluation Time to Completion. This will activate sensorafter the completion of receiveInput activity.
Select Employee element for inputVariable as shown below.
5. From BAMExampleProcess Structure window, right click on Sensor Actions and Creatte –> BAM Sensor
Action …
Select ActivitySensor_1 for Sensorproperty. Choose Employee Data Object from BAM Data Object Chooser.
Select “Insert” as Operation type.One other interesting operation is Upsert that stands for Update/Insert.This
operation creates an object if one does not exist or updates an existing one.
Ensure BAM Connection Factory JNDI value is “eis/bam/rmi”. We can specify “eis/bam/soap” in case BAM
and BPEL servers are separated by a Firewall.
6. Create a new mapping between BAM data object and BPEL input variable as shown below.
Establish XPATH mapping.
Click on OK to close Sensor Action creation Dialog.
Right click on BAMExample bpel process and deploy to SOA Server.
Test BAMExample process
Go to BAMExample in Enterprise Manager and Test the process.
7. Enter Oracle1 and ORACLE for name and department respectively. Click on Test Web Service.
Open BAM Active Viewer. Click on “Select Report” and choose “Employee Dashboard” report we saved
earlier. We can see the updated graph. Experiment with different values.
Complete JDeveloper project for above use-case can be downloaded from here.