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.


Friday, November 16, 2012

Oracle Fusion Middleware 11g Certification Matrix

Oracle Fusion Middleware 11g Certification Matrix

The below URL is having the certification matrix for all the Oracle Fusion Middleware components.








Wednesday, November 14, 2012

Uploading the files to a database table with commons fileupload

Uploading the files to a database table with commons fileupload:

Create the web project
Create a html file form to upload the file

<html>
    <head>
    <title>Add MP3</title>
    </head>
    <body>
    <h2>Add MP3</h2>
    <form id="addmp3" enctype="multipart/form-data" action="/OnlineMusicPlayer/MP3UploadServlet" method="post">
        <table>
        <tr><td>Enter Title :</td><td><input  type="text"  name="title"/></td>
        </tr>
        <tr><td>Select MP3</td><td><input type="file"  name="photo" />
        </tr>
        </table>
        <p/>
        <input type="submit" value="Add MP3"/>
    </form>

    <p/>
    </body>

</html>

Change the action accordingly with the servlet path.

Create a servlet to store the file to a database table.

import java.io.*;
import java.sql.*;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import db.DatabaseConnection;

public class MP3UploadServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public MP3UploadServlet() {
        super();
        // TODO Auto-generated constructor stub
    }   
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }
   
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        boolean isMultiPart = false;
        PrintWriter out = response.getWriter();

        Connection con = DatabaseConnection.getConnection();
        PreparedStatement ps=null;

        try {
            // Check that we have a file upload request
            isMultiPart = ServletFileUpload.isMultipartContent(request);
            System.out.println("isMultiPart=" + isMultiPart);

            if (isMultiPart) {
                // Create a factory for disk-based file items
                FileItemFactory fileItemFactory = new DiskFileItemFactory();

                // Create a new file upload handler
                ServletFileUpload servletFileUpload = new ServletFileUpload(
                        fileItemFactory);

                List fileItemsList = servletFileUpload.parseRequest(request);

                out.println("<html>");
                out.println("<head>");
                out.println("<title>MP3 upload</title>");
                out.println("</head>");
                out.println("<body>");

                FileItem id =  (FileItem)fileItemsList.get(0);
                String songtitle = id.getString();

                // get uploaded file
                FileItem file = (FileItem) fileItemsList.get(1);
                ps = con.prepareStatement("insert into music_store(song_id,song_title,song_data) values(song_id_sequence.nextval,?,?)");

                ps.setString(1, songtitle);
                ps.setBinaryStream(2, file.getInputStream(),(int) file.getSize());
                ps.executeUpdate();
                con.commit();
            }
            out.println("File Upload Success...");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            out.println("File Upload Error....");
        } finally {
            out.println("</body>");
            out.println("</html>");
            if (con != null)
                try {
                    ps.close();
                    con.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }               
            out.close();
        }       
    }
}

The song_data column in the music_store table should be BLOB.

The jar files required - commons-io-2.2.jar , commons-fileupload-1.2.2.jar


Tuesday, November 13, 2012

Oracle Fusion Middleware Adapters

Details on Oracle Fusion Middleware Adapters:



Application Adapters
Legacy Adapters
Changed Data Capture (CDC) Adapters
B2B Adapters
Technology Adapters
SAP
CICS
VSAM Batch
RosettaNet
File
PeopleSoft
IMS DB
Adabas
EDI
FTP
Siebel
IMS TM
DB2/390
Healthcare
JMS
Oracle Applications
VSAM
Microsoft SQL Server 2005
ebXML
Database
J. D. Edwards
Tuxedo
Microsoft SQL Server 2000

Advanced Queueing


IMS/DB

MQ Series


VSAM CICS

Socket



Technology adapters are included in the Oracle Internet Application Server and WebLogic Suite license upon which the Oracle SOA Suite has a licensing dependency. Other adapter types are licensed separately.

Financial Service adapters, along with Financial Message Designer, are separately licensed standalone products which inter operate with Oracle Service Bus. They are not JCA adapters like the other integration adapters. They include:

    SWIFT Adapter for Oracle Service Bus
    FIX Adapter for Oracle Service Bus
    Payments Adapter for Oracle Service Bus
    Derivatives Adapter for Oracle Service Bus

An additional separately licensed adapter, Enterprise Link for Business Activity Monitoring, is offered as an extension of the Oracle BAM product for customers who are looking to leverage Oracle BAM's embedded extract, transform and load (ETL) tooling. Enterprise Link is only one of five major ways to source data into Oracle BAM and is not required in all customer implementations. Customers who do not need Enterprise Link are any customers connecting to Oracle BAM only through BPEL PM Sensors or the Web Services API for Oracle BAM's Active Data Cache. Enterprise Link is required for all customers connecting to Oracle BAM through JMS queues or though query-based ETL updates. This includes customers who want to listen to JMS messages in existing integration environments, transfer large data sets into BAM, or archive data out of the BAM Active Data Cache on a scheduled basis.