The Oracle BI Application Blogs provides the latest and tips and tricks on Oracle BI Applications Product (OBIA)

3 Modes for Moving Data to the BI Applications DW from a Source Application Database

In BI Applications the adaptors for the following product lines use the LKM BIAPPS SQL to Oracle (Multi Transport) to move the data from the source Application database to the target BI Applications DW database:

  •  E-Business Suite
  •  Siebel
  •  PeopleSoft
  •  JDE

A key feature of this LKM developed specifically for BI Applications is that the data from the source system may be transported in 3 different ways and using a parameters set in Configuration Manager the mode can be selected to suit how the system has been setup, thereby optimizing ETL performance.  This blog post details those 3 modes, and how to configure BI Applications to use the mode that best suits the deployment.

The transport modes are:

  • JDBC mode - the data is moved via JDBC from the source up to the ODI Agent and from the ODI Agent down to the Target.  The ODI Agent transfers the data into a dynamically created temporary target table.  This is the default mode.
  • Database Link mode - the data is moved over a predefined database link.  A view is created on the source Oracle database, and a synonym is used instead of a temporary target table to reference the data across the database link
  • SDS mode - the data is referenced directly from an SDS replicated table.  The SDS table is continuously and asynchrounously replicated using Oracle GoldenGate. A view is used instead of a temporary target table and the view references the source data in the local SDS schema.

The default mode is selected as it works in all deployments, however the other modes if they've been setup and enabled allow significant improvements in ETL performance.  The following details each mode.


This is the default mode based on the default settings for the underlying variables. In this mode data is transferred from the source via JDBC. This is the slowest mode amongst the three. Use this mode when you do not have SDS and when your source is non-Oracle. The Array Fetch Size against the Physical Data Server being used to run the interface can impact the performance of this mode. Refer to ODI documentation on more about that parameter.

JDBC Mode is used when KM option OBI_SRC_VIA_DBLINK (default variable ETL_SRC_VIA_DBLINK) is not enabled (N) and variable IS_SDS_DEPLOYED is not enabled (N)

Database Link Mode

In this mode data is transferred from the source via a DB Link. This mode is usually faster than the JDBC mode assuming the network between the source and the warehouse remains constant. This KM is controlled via the option OBI_SRC_VIA_DBLINK is defaulted to variable ETL_SRC_VIA_DBLINK. When the ETL Parameter ETL_SRC_VIA_DBLINK is set to Yes, and SDS is not enabled (see next section), then transport is done via db link.  Database Link Mode can be used only when the source database is Oracle and a compatible DB Link can be created from the Oracle Warehouse to the source. The LKM does not create a DB Link. It instead relies on a db link already existing with the naming convention followed below:


So if the Data Server name for EBS is EBS11510 and the DSN for EBS11510 is 310, then the db link name should be:


This DB Link should exist in the warehouse and be accessible using the warehouse credentials (user specified against the warehouse connection in ODI). For details of what a Data Server is and how it's defined please take a look at this prior blog post: Registering BI Applications Data Sources

Database Link Mode is used when option OBI_SRC_VIA_DBLINK (default variable ETL_SRC_VIA_DBLINK) is enabled (Y) and variable IS_SDS_DEPLOYED is not enabled (N)

The ETL Parameter ETL_SRC_VIA_DBLINK is set in Configuration Manager in the Manage Data Load Parameter screen and can be set for the source Instance.



SDS Mode

When the IS_SDS_DEPLOYED variable is set to Y, the LKM uses the SDS as the source. A view is created pointing to the SDS schema and that view is used to insert data into the target. SDS resides on the same database as the warehouse. This is the fastest mode as no data is moved over the network.  Use this mode only when you have a SDS deployed and populated.  Refer to the Bi Applications Administrator's Guide and the Section on Administering Oracle GoldenGate and SDS for more details on how to setup the SDS and populate the SDS using Oracle GoldenGate.

SDS Mode is used when the variable IS_SDS_DEPLOYED is enabled (Y) 

The Parameter IS_SDS_DEPLOYED is set in Configuration Manager in the Manage Data Load Parameter screen. and can be set either for the Instance or for each individual Dimension or Fact Group for more granular control.  Note if IS_SDS_DEPLOYED is not enabled for a Fact Group or Dimension whilst others for that same Instance are enabled, then the LKM will fall back to the other mode, i.e if ETL_SRV_VIA_DBLINK is enabled it will used the Database Link Mode, otherwise it will used the JDBC Mode.


Join the discussion

Comments ( 4 )
  • Erik George Friday, April 18, 2014

    Nice post. Any performance benchmarks for JDBC vs db link for an Oracle database source?

  • Justin Hyde Friday, April 18, 2014

    I'll heavily caveat this response with the usual... difficult to give absolute comparison because it's dependent on a number of factors etc..., but here's some general findings from our PSR team's testing:

    1) In all tests we've seen dblink is consistently faster than JDBC

    2) Throughput difference varies quite a lot, but on average we see a ~x3 faster rate with db link compared to jdbc

    3) Our PSR team has done some great investigation with using /* +APPEND_VALUES */ hint and that's closed the gap between jdbc and dblink to ~x2 - but for those results Data Server Batch Update Size needs to be large enough ~ 5000.

  • Michael Rainey Monday, April 21, 2014

    Great info, Justin! Thanks for sharing.

    Erik, I always go back to Uli Bethke's blog post on ODI array fetch size for benchmarking-like data. http://sonra.io/odi-jdbc-variable-binding-500-performance-gains-array-fetch-size-batch-update-size-row-prefetching-and-the-array-interface-and-an-issue-when-running-the-agent-in-weblogic/

    Hope this helps.


    Michael Rainey

  • Umesh Agnihotri Wednesday, October 15, 2014

    Great information. Is there any best practice on ODI deployment - DW tier or separate server like ETL server?


Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.