Administering Oracle Data Integrator
Administering Oracle Data Integrator
Administering Oracle Data Integrator
12c (12.2.1.4.0)
E95625-01
September 2019
Oracle Fusion Middleware Administering Oracle Data Integrator, 12c (12.2.1.4.0)
E95625-01
Copyright © 2010, 2019, Oracle and/or its affiliates. All rights reserved.
This software and related documentation are provided under a license agreement containing restrictions on
use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your
license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify,
license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means.
Reverse engineering, disassembly, or decompilation of this software, unless required by law for
interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If
you find any errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on
behalf of the U.S. Government, then the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software,
any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are
"commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-
specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the
programs, including any operating system, integrated software, any programs installed on the hardware,
and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
No other rights are granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management applications.
It is not developed or intended for use in any inherently dangerous applications, including applications that
may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you
shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its
safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this
software or hardware in dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of
their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are
used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron,
the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro
Devices. UNIX is a registered trademark of The Open Group.
This software or hardware and documentation may provide access to or information about content, products,
and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly
disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise
set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be
responsible for any loss, costs, or damages incurred due to your access to or use of third-party content,
products, or services, except as set forth in an applicable agreement between you and Oracle.
Contents
Preface
Audience xii
Documentation Accessibility xii
Related Documents xii
Conventions xiii
2 Administering Repositories
Introduction to Oracle Data Integrator Repositories 2-1
Creating Repository Storage Spaces 2-2
Creating the Master Repository 2-5
Connecting to the Master Repository 2-7
iii
Creating a Work Repository 2-7
Connecting to a Work Repository 2-8
Changing a Work Repository Password 2-9
Advanced Actions for Administering Repositories 2-9
Attaching and Detaching (Deleting) a Work Repository 2-10
Erasing a Work Repository 2-11
Configuring Repository Connections 2-11
Changing the Host Name for Oracle Data Integrator 2-12
3 Setting Up a Topology
Setting Up the Topology 3-1
Creating a Context 3-2
Creating a Data Server 3-2
Pre-requisites and Guidelines 3-2
Creating a Data Server 3-3
Creating a Data Server (Advanced Settings) 3-6
Testing a Data Server Connection 3-10
Creating a Physical Schema 3-10
Creating a Logical Schema 3-11
Creating a Physical Agent 3-11
Creating a Logical Agent 3-12
Working with Big Data 3-13
Managing Agents 3-13
Standalone Agent 3-13
Configuring a Standalone Agent 3-14
Launching a Standalone Agent 3-14
Stopping an Agent 3-14
Standalone Colocated Agent 3-14
Configuring a Standalone Colocated Agent 3-15
Launching a Standalone Colocated Agent 3-15
Stopping an Agent 3-15
Java EE Agent 3-15
Deploying an Agent in a Java EE Application Server 3-15
Creating a Server Template for a Java EE Agent 3-16
Deploying Datasources from Oracle Data Integrator in an application server
for an Agent 3-20
Load Balancing Agents 3-21
Delegating Sessions 3-22
Agent Unavailable 3-22
iv
Setting Up Load Balancing 3-22
v
Part III Running and Monitoring Integration Processes
vi
Using the Run-Time Web Services with External Authentication 7-34
Using WS-Addressing 7-35
Using Asynchronous Web Services with Callback 7-36
vii
Enabling and Disabling Breakpoints 8-10
Pass Count 8-11
Debugging Data 8-11
Get Data 8-11
Run SQL Code 8-12
Debugging Variables 8-12
Modifying Variables 8-12
Debugging Threads 8-12
Go To Source 8-12
Managing Debugging Sessions 8-13
Stop Normal and Stop Immediate 8-13
Restart Execution 8-13
viii
Exporting and Importing Log Data 9-14
Runtime Logging for ODI components 9-16
Managing Scenarios and Load Plans 9-18
Load Plan and Scenario Folders 9-19
Importing Load Plans, Scenarios, and Solutions in Production 9-19
Managing Schedules 9-19
ix
Security Policy Approaches 11-5
Managing Profiles 11-6
Creating a New Profile 11-6
Duplicating a Profile 11-6
Deleting a Profile 11-6
Managing Users 11-7
Creating a New User in the Internal Repository 11-7
Assigning a Profile to a User 11-8
Removing a Profile from a User 11-8
Deleting a User from the Internal Repository 11-9
Viewing User Connection Information 11-9
Managing Privileges 11-9
Granting a Profile Method or User Method 11-9
Revoking a Profile Method or User Method 11-10
Granting an Authorization by Object Instance 11-10
Revoking an Authorization by Object Instance 11-11
Cleaning up Unused Authorizations 11-11
Advanced Encryption Standard 11-12
Using a Password-Protected Wallet for Storing Login Credentials 11-12
Creating the Password-Protected Wallet 11-13
Permitting Repository Access to Other Users 11-14
Changing the Wallet Password 11-15
Customizing How Login Credentials Are Saved 11-15
Setting Up External Password Storage 11-17
Setting the Password Storage 11-17
Switching the Password Storage 11-17
Recovering the Password Storage 11-18
Managing the Authentication Mode 11-19
Setting the Authentication Mode in the Master Repository 11-19
Configuring External Authentication 11-20
Configuring Oracle Data Integrator Studio for External Authentication 11-21
Set Up the OPSS Configuration File 11-21
Create a Wallet File for an LDAP Bootstrap User 11-22
Set External Authentication when Creating the Master Repository 11-23
Switching an Existing Master Repository to External Authentication Mode 11-24
Reactivating Users After Switching to External Authentication 11-28
Configuring Standalone or Standalone Colocated Agents for External
Authentication 11-29
Mapping Principals Defined in an Identity Store to Oracle Data Integrator Roles 11-31
How Enterprise Role Integration Works 11-31
Defining and Managing Oracle Data Integrator Roles 11-32
x
Using the Roles Editor 11-34
Configuring OWSM Policies for JRF-ODI Asynchronous Web Services with Callback
11-37
Enforcing Password Policies 11-38
Configuring Standalone or Standalone Colocated Agents to Use a Secure Transport 11-39
Creating an SSL Certificate 11-39
Configuring SSL for Standalone Agents or Standalone Colocated Agents 11-40
Configuring ODI Studio to Connect with an SSL-enabled Agent 11-41
Configuring Oracle Data Integrator Client Tools to Communicate with an SSL-
enabled Agent 11-41
Encoding a Password 11-42
Disabling Weak Cipher Suites for an SSL-enabled Standalone Agent or
Standalone Colocated Agent 11-43
Configuring Single Sign-On (SSO) for Oracle Data Integrator Console and
Enterprise Manager using Oracle Access Manager 11-43
Configuring Oracle Data Integrator with a Web Proxy Server 11-44
Best Security Practices for Oracle Data Integrator 11-45
Index
xi
Preface
Preface
This guide describes how to perform configuration and user management tasks in
Oracle Data Integrator (ODI). This includes configuring ODI components, performing
basic administrative tasks, running and monitoring integration processes, and
managing security in ODI.
This preface contains the following topics:
• Audience
• Documentation Accessibility
• Related Documents
• Conventions
Audience
This document is intended for administrators who perform ongoing configuration tasks
in Oracle Data Integrator.
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle
Accessibility Program website at http://www.oracle.com/pls/topic/lookup?
ctx=acc&id=docacc.
Related Documents
For more information, see the following documents in Oracle Data Integrator Library:
• Release Notes for Oracle Data Integrator
• Understanding Oracle Data Integrator
• Developing Integration Projects with Oracle Data Integrator
• Installing and Configuring Oracle Data Integrator
• Upgrading Oracle Data Integrator
• Integrating Big Data with Oracle Data Integrator Guide
xii
Preface
Conventions
The following text conventions are used in this document:
Convention Meaning
boldface Boldface type indicates graphical user interface elements associated
with an action, or terms defined in text or the glossary.
italic Italic type indicates book titles, emphasis, or placeholder variables for
which you supply particular values.
monospace Monospace type indicates commands within a paragraph, URLs, code
in examples, text that appears on the screen, or text that you enter.
xiii
What's New In Oracle Data Integrator?
xiv
What's New In Oracle Data Integrator?
• SAP Delta Extraction - SAP delta extraction provides advanced table join
support. This can be used to join with SAP CHDR table for delta extraction.
For more information, see Using Advanced Join Handling for Change Detection
with SAP CDHDR table chapter in the Getting Started with SAP ABAP ERP
Adapter for Oracle Data Integrator guide.
xv
What's New In Oracle Data Integrator?
Big Data
Big Data continues to evolve within Oracle Data Integrator with advances including:
• Spark Knowledge Modules Improvements — In this release, the focus has
been on generating high performing and easily readable Spark code that will stand
up to any handwritten scripts. In addition, the Spark Knowledge Modules (KMs)
are now leveraging the latest Apache Spark 2.x features such as Dataframes.
SparkSQL is also leveraged where applicable to speed up the ODI processes
running on Spark.
• Spark KMs Support in Knowledge Module Editor — The Spark KMs are now
fully supported in the Knowledge Module editor and can be tailored to your own
specific requirements.
• Hadoop Complex Types Enhancements — ODI 12.2.1.2.6 introduced Complex
Types support for Hive and HDFS (batch mode) technologies. ODI 12.2.1.3.0
further improves this functionality for Spark Streaming with Complex Types
support in Apache Kafka as well as in HDFS.
• Big Data Configuration Wizard — The Big Data Configuration Wizard has been
improved with newer templates for the latest Cloudera’s Distribution including
Apache Hadoop (CDH) releases.
Cloud
Cloud improvements include:
xvi
What's New In Oracle Data Integrator?
Big Data
It includes:
1. Spark Streaming Support — Oracle Data Integrator (ODI) now supports Spark
Streaming to fully enable the creation of Big Data streaming jobs easily without
requiring end users to write a single line of code. In addition to Spark Streaming
ODI already supports Hive, Pig and batch Spark when it comes to data
processing. Through its unique decoupling of the Logical and Physical design of
Mappings, Oracle Data Integrator is the only Data Integration tool on the market
giving developers the flexibility to design Mappings with a generic business logic
and then generate code for as many data processing technologies (Hive, Spark,
Spark Streaming, etc.) as they want. This unique capability also helps future-proof
Data Integration processes.
2. Support for Apache Kafka and Apache Cassandra — Apache Kafka and
Cassandra are certified with the latest version of Oracle Data Integrator as both
sources and targets.
3. Hadoop Complex Types and Storage Format— This release further extends the
market leading Hadoop support in ODI with the ability to natively access data
stored in various formats such as Avro, Parquet or JSON. In addition, new
features were added to leverage complex types or nested types in Mappings such
as Array, Struct or Map.
4. Enhancements to Big Data Configuration Wizard— The Big Data Configuration
Wizard introduced with ODI 12.2.1.1.0 has been improved to support new Hadoop
technologies such as Kafka and Cassandra. It also now helps users configure
Oracle Data Integrator with Hadoop clusters secured with Kerberos.
Cloud
It includes:
1. RESTful Service Support— Oracle Data Integrator can now invoke RESTful
Service. A RESTful Service connectivity, resource URL, methods and parameters
can be configured in Topology configurations like any other data source
connectivity. There are a number of parameters supported providing maximum
flexibility to support widespread RESTful services. Data chunking and pagination
are also supported for uploading or downloading larger payloads.
2. Business Intelligence Cloud Service (BICS) Knowledge Modules — Business
Intelligence Cloud Service is now supported out of the box in Oracle Data
Integrator. You can define Business Intelligence Cloud Service connectivity in
xvii
What's New In Oracle Data Integrator?
Topology, reverse engineer metadata and load data into it just like any other target
data server.
Lifecycle Management
It includes:
1. Git Support and Improvements to Lifecycle Management functionality — In
addition to Apache Subversion, Oracle Data Integrator now also supports Git as
an external version control system. A unified user experience is provided when
using either of the supported version control systems. There are many advanced
operations added for improved lifecycle management needs. You can now view all
the pending changes and create version for set of objects from a single place. You
can regenerate scenarios while creating versions or creating deployment archives
ensuring scenarios always corresponds to the current object version. You can
selectively populate objects from the branch or a tag. The SDK APIs are also
enhanced to support various operations needed for continuous integration.
2. Enhanced Merge Capability — The merge capabilities have been enhanced to
auto-merge changes based upon three-way merge and object change detection.
Conflict resolution is simplified with brand new support to pick and choose
properties or objects from the source or target in the Merge user interface.
Developer Productivity
Enhanced Knowledge Module Framework — Exciting new features have been
added to the Knowledge Modules development framework to maximize flexibility and
minimize maintenance. You can now inherit steps from a Knowledge Module into
another Knowledge Module and override steps like in object-oriented programming
languages. Brand new template languages and syntaxes have been introduced
providing greater control over the generated code. Furthermore, several other
productivity enhancements were added such as syntax highlighting, auto-complete,
folding code blocks and more.
xviii
What's New In Oracle Data Integrator?
xix
What's New In Oracle Data Integrator?
Complex File, File, LDAP, JMS Queue XML, JMS Topic XML, and XML
Technology Enhancements
All JDBC properties for Complex File, File, LDAP, JMS Queue XML, JMS Topic XML,
and XML technologies are now displayed at the Data Server level along with default
values where applicable and a description of the properties, thereby enhancing
usability.
xx
What's New In Oracle Data Integrator?
xxi
What's New In Oracle Data Integrator?
xxii
What's New In Oracle Data Integrator?
moving, appending, and deleting files, detecting file changes, managing folders, and
transferring files using FTP directly into HDFS.
xxiii
What's New In Oracle Data Integrator?
For more information, see the "Oracle Data Integrator Driver for XML Reference"
section in Connectivity and Knowledge Modules Guide for Oracle Data Integrator
Developer's Guide.
JSON Support
The ODI Complex File Driver can now read and write files in JSON format. The JSON
structure is defined through an nXSD schema.
For more information, see the "JSON Support" section in Connectivity and Knowledge
Modules Guide for Oracle Data Integrator Developer's Guide.
xxiv
What's New In Oracle Data Integrator?
topology objects, if connected to a work repository. This dialog enables you to create
topology objects without having to use Topology editors unless more advanced
options are required.
For more information, see the "Creating a Model and Topology Objects" section in
Developing Integration Projects with Oracle Data Integrator.
Documentation Changes
The information that was previously available in the Oracle Data Integrator Developer's
Guide is now reorganized. The following new guides have been added to the ODI
documentation library:
• Understanding Oracle Data Integrator
• Administering Oracle Data Integrator
• Oracle Data Integrator Tools Reference
For more information, see the "What's New In Oracle Data Integrator?" section in
Developing Integration Projects with Oracle Data Integrator.
Reusable Mappings
Reusable Mappings can be used to encapsulate flow sections that can then be reused
in multiple mappings. A reusable mapping can have input and output signatures to
connect to an enclosing flow; it can also contain sources and targets that are
encapsulated inside the reusable mapping.
xxv
What's New In Oracle Data Integrator?
Step-by-Step Debugger
Mappings, Packages, Procedures, and Scenarios can now be debugged in a step-by-
step debugger. You can manually traverse task execution within these objects and set
breakpoints to interrupt execution at pre-defined locations. Values of variables can be
introspected and changed during a debugging session, and data of underlying sources
and targets can be queried, including the content of uncommitted transactions.
xxvi
What's New In Oracle Data Integrator?
XML Improvements
The following XML Schema constructs are now supported:
• list and union - List or union-based elements are mapped into VARCHAR columns.
• substitutionGroup - Elements based on substitution groups create a table each for
all types of the substitution group.
• Mixed content - Elements with mixed content map into a VARCHAR column that
contains text and markup content of the element.
• Annotation - Content of XML Schema annotations are stored in the table
metadata.
xxvii
1
Introduction to Oracle Data Integrator
Oracle Data Integrator provides a fully unified solution for building, deploying, and
managing complex data warehouses or as part of data-centric architectures in an SOA
or business intelligence environment. This chapter provides an introduction to Oracle
Data Integrator and its various components.
This chapter includes the following sections:
• What is Oracle Data Integrator?
• Oracle Data Integrator Components
• Basic Tasks for Configuring and Managing Oracle Data Integrator
1-1
Chapter 1
Basic Tasks for Configuring and Managing Oracle Data Integrator
Table 1-1 Roadmap for Configuring and Managing Oracle Data Integrator
Task Documentation
1. Create a master and work See the Creating the Oracle Data Integrator Master and Work
repository schema Repository Schema section in Installing and Configuring Oracle
Data Integrator.
2. Create additional work See Creating a Work Repository.
repositories
3. Configure a domain for • Java EE agent: See the Configuring the WebLogic Domain
Oracle Data Integrator for the Java EE Agent section in Installing and Configuring
agents Oracle Data Integrator.
• Standalone agent: See the Configuring the Standalone
Domain for the Standalone Agent section in Installing and
Configuring Oracle Data Integrator.
• Standalone Colocated agent: See the Configuring the
WebLogic Domain for the Standalone Colocated Agent
section in Installing and Configuring Oracle Data Integrator.
4. Create an agent • Java EE agent: See the Creating a Java EE Agent in the
Master Repository Using ODI Studio section in Installing
and Configuring Oracle Data Integrator.
• Standalone agent: See the Creating a Standalone Agent in
the Master Repository Using ODI Studio section in Installing
and Configuring Oracle Data Integrator.
• Standalone Colocated agent: See the Creating a
Standalone Colocated Agent in the Master Repository Using
ODI Studio section in Installing and Configuring Oracle Data
Integrator.
5. Start an agent • Java EE agent: See the Starting a Java EE Agent section in
Installing and Configuring Oracle Data Integrator.
• Standalone agent: See the Starting a Standalone Agent
Using Node Manager section in Installing and Configuring
Oracle Data Integrator.
• Standalone Colocated agent: See the Starting a Standalone
Colocated Agent section in Installing and Configuring Oracle
Data Integrator.
6. Configure load balancing See Load Balancing Agents
on a Standalone agent
7. Configure high availability See Roadmap for Setting Up a High Availability Topology .
for Oracle Data Integrator
8. Configure security See Managing Security in Oracle Data Integrator.
9. Set up a topology See Setting Up a Topology.
10. Set up data services See Creating and Using Data Services .
1-2
Chapter 1
Basic Tasks for Configuring and Managing Oracle Data Integrator
Table 1-1 (Cont.) Roadmap for Configuring and Managing Oracle Data
Integrator
Task Documentation
11. Run, debug, and monitor See Running and Monitoring Integration Processes .
integration processes
12. Use Enterprise Manager See ODI Domain, Oracle Enterprise Manager Fusion
to manage ODI environment Middleware Control, and Management Pack for Oracle Data
Integrator.
13. Stop an agent See the Stopping Your Oracle Data Integrator Agents section in
Installing and Configuring Oracle Data Integrator.
1-3
Part I
Administering Oracle Data Integrator
Architecture
This part describes the Oracle Data Integrator architecture and a description of Oracle
Data Integrator components from a High Availability perspective.
Part I contains the following chapters:
• Administering Repositories
• Setting Up a Topology
• High Availability for Oracle Data Integrator
2
Administering Repositories
This chapter describes how to create and administer Oracle Data Integrator
repositories. An overview of the repositories used in Oracle Data Integrator is
provided.
This chapter includes the following sections:
• Introduction to Oracle Data Integrator Repositories
• Creating Repository Storage Spaces
• Creating the Master Repository
• Connecting to the Master Repository
• Creating a Work Repository
• Connecting to a Work Repository
• Changing a Work Repository Password
• Advanced Actions for Administering Repositories
• Changing the Host Name for Oracle Data Integrator
See Also:
2-1
Chapter 2
Creating Repository Storage Spaces
Note:
Oracle recommends that you regularly perform the following maintenance
operations: purge the execution logs in order to reduce the work repository
size, and back up the Oracle Data Integrator repositories on the database.
Advanced actions for administering repositories are detailed in Advanced Actions for
Administering Repositories .
For each database that will contain a repository, a storage space must be created.
Caution:
For reasons of maintenance and back-up, Oracle strongly recommends that
repositories be stored separately from your application data (for example, in
a different schema for an Oracle database, or in a different database for
Microsoft SQL Server).
2-2
Chapter 2
Creating Repository Storage Spaces
Your master repository can be stored in the same schema as one of your work
repositories. However, you cannot create two different work repositories in the same
schema.
The examples in the following table are supplied as a guide:
Where:
MY_SCHEMA corresponds to the name of the schema you want to
create, such as odim and odiw
MY_PASS corresponds to the password you have given it <MY_TBS>
the Oracle tablespace where the data will be stored
MY_TEMP temporary default tablespace
Microsoft SQL Server Create a database db_odim to host the master repository and a
database db_odiw to host the work repository. Create two logins odim
and odiw, which have these databases by default.
Use Oracle Enterprise Manager to create the two databases db_odim
and db_odiw.
Use Query Analyzer or I-SQL to launch the following commands:
CREATE LOGIN mylogin
WITH PASSWORD = 'mypass',
DEFAULT_DATABASE = defaultbase,
DEFAULT_LANGUAGE = us_english;
USE defaultbase;
CREATE USER dbo FOR LOGIN mylogin;
GO
Where:
mylogin corresponds to odim or odiw.
mypass corresponds to a password for these logins.
defaultbase corresponds to db_odim and db_odiw respectively.
Note: Oracle recommends configuring the Microsoft SQL Server
databases that store the repository information with a case-sensitive
collation. This enables reverse-engineering and creating multiple
objects with the same name but a different case (for example:
tablename and TableNAme).
2-3
Chapter 2
Creating Repository Storage Spaces
Note: Use a different device for log and data. Also, <DB USERNAME
should be in uppercase.
MySQL 1. Login to MySQL terminal.
2. Create databases for Master, Work, and Schema version
registries, as shown below:
create database <MASTER_DB>;
create database <WORK_DB>;
create database <SCHEME_VERSION_REGISTRY_DB>;
3. Create users, as shown below:
create user '<MASTER_DB>'@'localhost' identified by
'<password>';
create user '<WORK_DB>'@'localhost' identified by
'<password>';
create user '<MASTER_DB>'@'%' identified by '<password>';
create user '<WORK_DB>'@'%' identified by '<password>';
commit;
2-4
Chapter 2
Creating the Master Repository
2-5
Chapter 2
Creating the Master Repository
Properties Description
Supervisor User User name of the ODI supervisor. The value must be
SUPERVISOR.
Supervisor Password This user's password
Confirm Password This user's password
Properties Description
Supervisor User User name of the ODI supervisor
Supervisor Password This user's password
Note:
In order to use the external authentication option, ODI Studio has to
be configured for external authentication. See Configuring External
Authentication for more information.
Oracle Data Integrator begins creating your master repository. You can follow the
procedure on your Messages – Log. To test your master repository, refer to
Connecting to the Master Repository.
2-6
Chapter 2
Connecting to the Master Repository
Note:
By default, the master repository uses AES-128 for encryption. However, if
you want to create a master repository with the encryption algorithm
AES-256, you need to update the odi.conf file to include the following:
2-7
Chapter 2
Connecting to a Work Repository
Oracle Data Integrator verifies whether a work repository already exists on the
connection specified in step 3:
• If an existing work repository is detected on this connection, the next steps will
consist in attaching the work repository to the master repository. Refer to step
6 of Attaching and Detaching (Deleting) a Work Repository for further
instructions.
• If no work repository is detected on this connection, a new work repository is
created. Continue with the creation of a new work repository and provide the
work repository details in step 6.
6. Specify the Oracle Data Integrator work repository properties:
• Name: Give a unique name to your work repository (for example:
DEVWORKREP1).
• Password: Optional. Enter a password required for attaching this work
repository to a different master. If you leave this option blank, no password is
required for this operation.
• Type: Select the type for the work repository:
– Development: This type of repository allows management of design-time
objects such as data models and projects (including mappings,
procedures, and so on). A development repository also includes the run-
time objects (scenarios and sessions). This type of repository is suitable
for development environments.
– Execution: This type of repository only includes run-time objects
(scenarios, schedules and sessions). It allows launching and monitoring of
data integration jobs in Operator Navigator. Such a repository cannot
contain any design-time artifacts. Designer Navigator cannot be used with
it. An execution repository is suitable for production environments.
7. Click Finish.
8. The Create Work Repository login dialog opens. If you want to create a login for
the work repository, click Yes and you will be asked to enter the Login Name in a
new dialog. If you do not want to create a work repository login, click No.
9. Click Save in the toolbar.
For more information, refer to Connecting to a Work Repository.
2-8
Chapter 2
Changing a Work Repository Password
2-9
Chapter 2
Advanced Actions for Administering Repositories
export and import of master and work repositories, see the Exporting and Importing
chapter in Developing Integration Projects with Oracle Data Integrator.
This section contains the following topics:
• Attaching and Detaching (Deleting) a Work Repository
• Erasing a Work Repository
• Configuring Repository Connections
2-10
Chapter 2
Advanced Actions for Administering Repositories
WARNING:
Erasing your work repository is an irreversible operation. All information
stored in the work repository will be definitively deleted, including the
metadata of your models, projects and run-time information such as
scenarios, schedules, and logs.
2-11
Chapter 2
Changing the Host Name for Oracle Data Integrator
database connection is required for a security check for a very short period when
the session begins.
• For non-Oracle databases, each Load Plan step consumes an additional
connection as a lock while the Load Plan is being executed.
2-12
3
Setting Up a Topology
This chapter describes how to set up the topology in Oracle Data Integrator.
This chapter includes the following sections:
• Setting Up the Topology
• Working with Big Data
• Managing Agents
See Also:
the Overview of Oracle Data Integrator Topology section in Developing
Integration Projects with Oracle Data Integrator.
Note:
You can use the New Model and Topology Objects wizard to create a model
and associate it with topology objects, if connected to a work repository. For
more information, see the Creating a Model and Topology Objects section in
Developing Integration Projects with Oracle Data Integrator.
3-1
Chapter 3
Setting Up the Topology
Creating a Context
To create a context:
1. In Topology Navigator expand the Contexts navigation tree.
2. Click New context in the navigation tree header.
3. Fill in the following fields:
• Name: Name of the context, as it appears in the Oracle Data Integrator
graphical interface.
• Code: Code of the context, allowing a context to be referenced and identified
among the different repositories.
• Password: Password requested when the user requests switches to this
context in a graphical interface. It is recommended to use a password for
critical contexts (for example, contexts pointing to Production data).
• Check Default if you want this context to be displayed by default in the
different lists in Designer Navigator or Operator Navigator.
4. From the File menu, click Save.
Note:
Frequently used technologies have their data server creation methods
detailed in Connectivity and Knowledge Modules Guide for Oracle Data
Integrator.
3-2
Chapter 3
Setting Up the Topology
depending on the technology. Refer to the server documentation provided, and contact
the server administrator to define the connection methods.
Tip:
The list of technologies that are displayed in the Physical Architecture
navigation tree may be very long. To narrow the list of displayed
technologies, you can hide unused technologies by selecting Hide
Unused Technologies from the Topology Navigator toolbar menu.
3-3
Chapter 3
Setting Up the Topology
Note:
The JNDI Providers that are supported are:
• None
• Simple
• CRAM-MD5
The Authentication methods supported for each of the supported
provider are:
• JNDI User
• JNDI Password
The JNDI Protocol for each of the supported provider are:
• LDAP - ODI MQ
• SMQP
• SUNOPSIS MQ
Field Description
JNDI authentication • None: Anonymous access to the naming or directory
service
• Simple: Authenticated access, non-encrypted
• CRAM-MD5: Authenticated access, encrypted MD5
• <other value>: authenticated access, encrypted according
to <other value>
JNDI User/Password User/password connecting to the JNDI directory
JNDI Protocol Protocol used for the connection
Note that only the most common protocols are listed here. This
is not an exhaustive list.
• LDAP: Access to an LDAP directory
• SMQP: Access to a SwiftMQ MOM directory
• <other value>: access following the sub-protocol <other
value>
3-4
Chapter 3
Setting Up the Topology
Field Description
JNDI Driver The driver allowing the JNDI connection
Example Sun LDAP directory:
com.sun.jndi.ldap.LdapCtxFactory
JNDI URL The URL allowing the JNDI connection
For example: ldap://suse70:389/o=linuxfocus.org
JNDI Resource The directory element containing the connection parameters
For example: cn=sampledb
Field Description
JDBC Driver Name of the JDBC driver used for connecting to the data server
JDBC URL URL allowing you to connect to the data server.
You can get a list of pre-defined JDBC drivers and URLs by clicking Display
available drivers or Display URL sample.
6. Fill in the remaining fields in the Definition tab.
• Array Fetch Size: When reading large volumes of data from a data server,
Oracle Data Integrator fetches successive batches of records. This value is
the number of rows (records read) requested by Oracle Data Integrator on
each communication with the data server.
• Batch Update Size: When writing large volumes of data into a data server,
Oracle Data Integrator pushes successive batches of records. This value is
the number of rows (records written) in a single Oracle Data Integrator
INSERT command.
Caution:
The Fetch Array and Batch Update parameters are accessible only
with JDBC. However, not all JDBC drivers accept the same values.
At times, you are advised to leave them empty.
Note:
The greater the number specified in the Fetch Array and Batch
Update values, the fewer are the number of exchanges between the
data server and Oracle Data Integrator. However, the load on the
Oracle Data Integrator machine is greater, as a greater volume of
data is recovered on each exchange. Batch Update management,
like that of Fetch Array, falls within optimization. It is recommended
that you start from a default value (30), then increase the value by 10
each time, until there is no further improvement in performance.
3-5
Chapter 3
Setting Up the Topology
Note:
The effect of increasing Degree of Parallelism is dependent on your
target environment and whether the resources are sufficient to
support a large number of target threads/connections. As per the
Fetch Array and Batch Update sizes, you should perform some
benchmarking to decide what is the best value for your environment.
Details of the performance of the individual source and target
threads can be viewed in the Execution Details section for the
loading task in Operator. The Execute value is the time spent on
performing the JDBC operation and the Wait value is the time the
Source is waiting on the Targets to load the rows, or the time the
Target is waiting on the Source to provide rows. Also, the Degree of
Parallelism > 1 should not be used if you are relying on the order of
loading rows, for example, if you are using sequences, timestamps,
and so on. This is because the source rows are processed and
loaded by one out of a number of target threads in an indeterminate
manner.
7. From the File menu, click Save to validate the creation of the data server.
3-6
Chapter 3
Setting Up the Topology
3-7
Chapter 3
Setting Up the Topology
3-8
Chapter 3
Setting Up the Topology
Note:
You can specify whether or not to show On Connect and Disconnect steps in
Operator Navigator. If the user parameter Hide On Connect and Disconnect
Steps is set to Yes, On Connect and Disconnect steps are not shown.
Note:
The Expression Editor displays only the substitution methods and
keywords that are available for the technology of the data server. Note
that global variables are only displayed if the connection to the work
repository is available.
Note:
Transactions from 0 to 9 and the Autocommit transaction correspond to
connection created by sessions (by procedures or knowledge modules).
The Client Transaction corresponds to the client components (ODI
Console and Studio).
You can select Select All or Unselect All to select or unselect all transactions.
8. From the File menu, click Save.
You can now test the connection, see Testing a Data Server Connectionfor more
information.
3-9
Chapter 3
Setting Up the Topology
3-10
Chapter 3
Setting Up the Topology
3-11
Chapter 3
Setting Up the Topology
Note:
Avoid using Internal as agent name. Oracle Data Integrator uses the
Internal agent when running sessions using the internal agent and
reserves the Internal agent name.
• Host: Network name or IP address of the machine the agent will be launched
on.
• Port: Listening port used by the agent. By default, this port is the 20910.
• Web Application Context: Name of the web application corresponding to the
Java EE agent deployed on an application server. For Standalone and
Standalone Colocated agents, this field should be set to oraclediagent.
Note:
The Web Application Context should be unique for each Java EE
agent to be deployed on the WebLogic domain.
• Protocol: Protocol to use for the agent connection. Possible values are http
or https. Default is http.
• Maximum number of sessions supported by this agent.
• Maximum number of threads: Controls the number of maximum threads an
ODI agent can use at any given time. Tune this as per your system resources
and CPU capacity.
• Maximum threads per session: ODI supports executing sessions with
multiple threads. This limits maximum parallelism for a single session
execution.
• Session Blueprint cache Management:
– Maximum cache entries: For performance, session blueprints are
cached. Tune this parameter to control the JVM memory consumption due
to the Blueprint cache.
– Unused Blueprint Lifetime (sec): Idle time interval for flushing a
blueprint from the cache.
4. If you want to setup load balancing, go to the Load balancing tab and select a set
of linked physical agent to which the current agent can delegate executions. See
Setting Up Load Balancingfor more information.
5. If the agent is launched, click Test. The successful connection dialog is displayed.
6. Click Yes.
3-12
Chapter 3
Working with Big Data
Task Documentation
Set up the environment to See the Setting Up the Environment for Integrating Hadoop Data
integrate Hadoop data chapter in Integrating Big Data with Oracle Data Integrator
Guide.
Set up the data servers for See the following sections in Integrating Big Data with Oracle
Big Data technologies, such Data Integrator Guide:
as Hive, HDFS, and HBase Setting Up File Data Sources
Setting Up Hive Data Sources
Setting Up HBase Data Sources
Set up an Oozie Engine if See the Setting Up and Initializing the Oozie Runtime Engine
you want to execute Oozie section in Integrating Big Data with Oracle Data Integrator
workflows from within Oracle Guide.
Data Integrator
Set up Hive, Pig, and Spark See the following sections in Integrating Big Data with Oracle
topology objects if you want Data Integrator Guide:
to generate Pig Latin and Setting Up Hive Data Server
Spark code
Creating a Hive Physical Schema
Setting Up Pig Data Server
Creating a Pig Physical Schema
Setting Up Spark Data Server
Creating a Spark Physical Schema
Managing Agents
This section describes how to work with a Standalone agent, a Standalone Colocated
agent, a Java EE agent and how to handle load balancing. For information on Oracle
Data Integrator agents, see the Run-Time Agent section in Understanding Oracle Data
Integrator.
Standalone Agent
Managing the Standalone agent involves the actions discussed in these sections:
• Configuring a Standalone Agent
3-13
Chapter 3
Managing Agents
Note:
The agent command line scripts, which are required for performing the tasks
described in this section, are only available if you have installed the Oracle
Data Integrator Standalone agent. See Installing and Configuring Oracle
Data Integrator for information about how to install the Standalone agent.
Stopping an Agent
The procedure for stopping a Standalone agent is described in the Stopping Your
Oracle Data Integrator Agents section in Installing and Configuring Oracle Data
Integrator.
3-14
Chapter 3
Managing Agents
Note:
A Standalone Colocated agent is a Standalone agent that is configured in a
WebLogic domain and is managed by an Administration Server. The
WebLogic domain makes Oracle Fusion Middleware Infrastructure services
available for managing the agent. See the Understanding the Standard
Installation Topology for the Standalone Colocated Agent section in Installing
and Configuring Oracle Data Integrator for more information.
Stopping an Agent
The procedure for stopping a Standalone Colocated agent is described in the Stopping
Your Oracle Data Integrator Agents, section in Installing and Configuring Oracle Data
Integrator.
Java EE Agent
Managing a Java EE agent involves the actions discussed in the sections:
• Deploying an Agent in a Java EE Application Server
• Creating a Server Template for a Java EE Agent
• Deploying Datasources from Oracle Data Integrator in an application server for an
Agent
3-15
Chapter 3
Managing Agents
Note:
To use the generate server template feature, ODI Studio must be installed
using the Enterprise Installation option. For more information on ODI Studio
and installation types, see the Installing the PRODUCT Software in Installing
and Configuring Oracle Data Integrator guide.
Note:
As mentioned in Creating a Physical Agent, the Web Application Context
should be unique for each Java EE agent to be deployed on the
WebLogic domain.
3-16
Chapter 3
Managing Agents
2. In the Agent Information tab, review the agent information and modify the default
configuration if needed.
The Agent Information includes the following parameters:
• General
Agent Name: Displays the name of the agent that you want to deploy.
• Master Repository Connection
Datasource JNDI Name: The name of the datasource used by the Java EE
agent to connect to the master repository. The template can contain a
definition of this datasource. Default is jdbc/odiMasterRepository.
• Connection Retry Settings
Connection Retry Count: Number of retry attempts done if the agent loses
the connection to the repository. Note that setting this parameter to a non-zero
value, enables a high availability connection retry feature if the ODI repository
resides on an Oracle RAC database. If this feature is enabled, the agent can
continue to execute sessions without interruptions even if one or more Oracle
RAC nodes become unavailable.
Retry Delay (milliseconds): Interval (in milliseconds) between each
connection retry attempt.
• Supervisor Authentication
Supervisor Key: Name of the key in the application server credential store
that contains the login and the password of an ODI user with Supervisor
privileges. This agent will use this user credentials to connect to the repository.
3. Click Next. The Libraries and Drivers tab is displayed, shown in Figure 3-2.
Figure 3-2 Server Template Generation Wizard - Libraries and Drivers Tab
3-17
Chapter 3
Managing Agents
4. In the Libraries and Drivers tab, select from the list the external libraries and
drivers to deploy with this agent. Only libraries added by the user appear here.
Note that the libraries can be any JAR or ZIP file that is required for this agent.
Additional JDBC drivers or libraries for accessing the source and target data
servers must be selected here.
You can also select a Domain library or a Shared library in the Type column. On
selecting Domain, the respective JAR is added as part of the system class path
and is visible to all the applications in that domain. On selecting Shared, you can
select a JAR and make it a shared library, when it is deployed. If the JAR is
selected as a shared library, the Name column is enabled and the JAR file's
reference name, which is the name provided in the MANIFEST file against
Extension-Name attribute, is displayed. If the JAR file does not have a reference
name, you must add a unique name in the Name column as selected shared
libraries are deployed into the WebLogic server with the name provided in ODI
Studio.
Note:
OpenTool JAR should always be selected as Shared type. Also, JARs
which are selected as shared, should be deployed as a shared library
manually into the Weblogic server. Now these JARs will be added as
part of the application class path.
You can use the corresponding buttons in the toolbar to select or deselect all
libraries and/or drivers in the list.
5. Click Next. The Datasources tab is displayed, shown in Figure 3-3.
3-18
Chapter 3
Managing Agents
6. In the Datasources tab, select the datasources definitions that you want to include
in this agent template. You can only select datasources from the wizard. Naming
and adding these datasources is done in the Data Sources tab of the Physical
Agent editor.
7. Click Next. The Template Target and Summary tab is displayed, shown in
Figure 3-4.
3-19
Chapter 3
Managing Agents
8. In Template Target and Summary tab, enter the Target Template Path where
the server template will be generated.
9. Click Finish to close the wizard and generate the server template.
The Template generation information dialog appears.
10. Click OK to close the dialog.
The generated template can be used to deploy the agent in WLS or WAS using the
respective configuration wizard. Refer to Installing and Configuring Oracle Data
Integrator for more information.
Example 3-1 Declare the Supervisor in the Credential Store
After deploying the template, it is necessary to declare the Supervisor into the WLS or
WAS Credential Store. Refer to Installing and Configuring Oracle Data Integrator for
more information.
3-20
Chapter 3
Managing Agents
Note:
This operation only creates the Datasources definition in the Oracle
WebLogic Server. It does not install drivers or library files needed for these
datasources to work. Additional drivers added to the Studio classpath can be
included into the Agent Template. See Creating a Server Template for a
Java EE Agentfor more information.
3-21
Chapter 3
Managing Agents
Delegating Sessions
When a session is started on an agent with linked agents, Oracle Data Integrator
determines which one of the linked agents is less loaded, and the session is delegated
to this linked agent.
An agent can be linked to itself, in order to execute some of the incoming sessions,
instead of delegating them all to other agents. Note that an agent not linked to itself is
only able to delegate sessions to its linked agents, and will never execute a session.
Delegation cascades in the hierarchy of linked agents. If agent A has agent B1 and B2
linked to it, and agent B1 has agent C1 linked to it, then sessions started on agent A
will be executed by agent B2 or agent C1. Note that it is not recommended to make
loops in agents links.
If the user parameter "Use new Load Balancing" is set to Yes, sessions are also re-
balanced each time a session finishes. This means that if an agent runs out of
sessions, it will possibly be reallocated sessions already allocated to another agent.
Agent Unavailable
When for a given agent the number of running sessions reaches its maximum number
of sessions, the agent will put incoming sessions in a "queued" status until the number
of running sessions falls below the maximum of sessions.
If an agent is unavailable (because it crashed for example), all its sessions in queue
will be re-assigned to another load balanced agent that is neither running any session
nor having sessions in queue if the user parameter Use the new load balancing is set
to Yes.
3-22
4
High Availability for Oracle Data Integrator
This chapter provides a description of Oracle Data Integrator components from a high
availability perspective and a roadmap for setting up a high availability topology. The
sections in this chapter outline the single instance concepts that are important for
designing high availability deployment.
This chapter includes the following topics:
• Oracle Data Integrator Single Instance Characteristics
• Oracle Data Integrator High Availability and Failover Considerations
• Roadmap for Setting Up a High Availability Topology
Note:
For more information regarding High Availability concepts and procedures,
see Introduction to High Availability in High Availability Guide.
4-1
Chapter 4
Oracle Data Integrator Single Instance Characteristics
• From another Oracle Data Integrator component (such as the agent or Oracle
Data Integrator Studio) over HTTP.
• Via the agent's web service interface.
• From an external scheduler or from a command line.
• From a Java program using the Agent Invocation SDK
The agent is always attached to a master repository. It connects to this master
repository at startup and is able to start sessions on any of the work repositories
attached to this master. It also acts as a scheduler. On startup, the agent reads from
the different work repositories the schedules defined for the agent, and stores this
scheduling information. The agent is able to initiate sessions from this in-memory
schedule on the appropriate work repositories.
Agents can interact with one another through remote scenario startup (over HTTP) or
via the load balancing feature. Load balancing allows defining hierarchies of parent/
child agents. In this hierarchy, parent agents can delegate the processing of their
sessions to their child agents.
The agent is a Java program that is provided as a Java EE agent and as a standalone
agent. The Java EE agent is a web application that can be deployed in a Java EE
application server, along with other web applications within the same JVM. This agent
can use this server's data sources to connect the source, target and repository
databases.
The standalone agent is provided as a standalone Java process started from a
command line interface. This standalone agent is similar to the Java EE agent, but is
embedded in a lightweight container. The main difference is that unlike the Java EE
agent, the standalone agent can connect the source and target data servers using only
direct JDBC connection.
Sessions Interruption
Sessions can be interrupted when:
• A user requests the agent to stop the session.
4-2
Chapter 4
Oracle Data Integrator Single Instance Characteristics
• An agent is stopped by the administrator. All sessions for this agent are stopped,
depending on the agent stop mode selected.
• A critical event occurs on the agent or the repository.
Any session that is stopped due to user or administrator action is moved to an error
state and marked as "Stopped."
In the case of an agent or repository crash, a session that cannot be stopped properly
still appears in a running state in the repository. These sessions are called stale
sessions, because they are marked as running, but are no longer handled by any
agent. Stale sessions are automatically moved to an error state when an agent
restarts and detects that these sessions are incorrectly marked in the repository as
being executed by this agent.
Recovering Sessions
Oracle Data Integrator uses JDBC transactions when interacting with source and
target data servers, and any open transaction state is not persisted when a session
finishes in error state. The appropriate restart point is the task that started the
unfinished transaction(s). If such a restart point is not identifiable, it is recommended
that you start a fresh session by executing the scenario instead of restarting existing
sessions that are in error state.
By default, a session restarts from the last task that failed to execute (typically a task
in error or in waiting state). A session may need to be restarted in order to proceed
with existing staging tables and avoid re-running long loading phases. In that case the
user should take into consideration transaction management, which is KM specific. A
general guideline is: If a crash occurs during a loading task, you can restart from the
loading task that failed. If a crash occurs during an integration phase, restart from the
first integration task, because integration into the target is within a transaction. This
guideline applies only to one interface at a time. If several interfaces are chained and
only the last one performs the commit, then they should all be restarted because the
transaction runs over several interfaces.
To restart from a specific task or step:
1. In Operator Navigator, navigate to this task or step, edit it and switch it to Waiting
state.
2. Set all tasks and steps after this one in the Operator tree view to Waiting state.
3. Right-click the session and click Restart.
The session restarts from the first task in waiting state.
4-3
Chapter 4
Oracle Data Integrator Single Instance Characteristics
When the Oracle Data Integrator agent starts, it first reads its configuration, which
includes master repository connection information. Then the agent connects to each of
the work repositories attached to this master repository and removes stale sessions.
Stale sessions are sessions that are incorrectly indicated in the work repository as
running on this given agent. Stale sessions may result from an agent being stopped
without being able to stop these sessions gracefully. As the agent restarts, it identifies
the stale sessions and moves them to an error state.
From that point, the agent can retrieve and compute the schedules available for it in
each work repository. Once this phase is complete, the agent waits for incoming
sessions requests to start their processing, and is also able to start sessions based on
its schedules.
4-4
Chapter 4
Oracle Data Integrator Single Instance Characteristics
Agent Configuration
For information on configuring the Java EE Agent, Standalone Agent, Standalone
Colocated Agent, see Installing and Configuring Oracle Data Integrator.
Connections can be added, edited, or deleted from the Oracle Data Integrator Console
management pages.
Note:
Oracle Data Integrator Console is used as the entry point for Enterprise
Manager to discover Oracle Data Integrator targets in a domain. The
discovery process works in the following way: Enterprise Manager identifies
Oracle Data Integrator Console. Using the Oracle Data Integrator Console
configuration, Enterprise Manager identifies the master and work repositories
as well as the run-time agents in the domain. For more information, see
Using Oracle Data Integrator Console .
4-5
Chapter 4
Oracle Data Integrator High Availability and Failover Considerations
session details, such as the executed code and the number of processed rows. This
log can be displayed from the Oracle Data Integrator Studio's Operator Navigator, in
the Session List accordion, or from Oracle Data Integrator Console's Browse tab,
under Run-Time > Sessions.
The log files for the different Oracle WebLogic Server Managed Servers are also
available from Oracle WebLogic Server Administration Console. To verify the logs,
access Oracle WebLogic Server Administration Console using the following URL:
admin_server_host:port/console. Click Diagnostics-Log Files.
It is also important to verify the output of the Oracle WebLogic Managed Server where
Oracle Data Integrator is running. This information is stored at the following location:
DOMAIN_HOME/servers/WLS_ServerName/logs/WLS_ServerName.out
Additionally, a diagnostic log is produced in the log directory for the managed server.
This log's granularity and logging properties can be changed through the following file:
DOMAIN_HOME/config/fmwconfig/logging/oraclediagent-logging.xml
The logging method and the logging level can be configured by editing the
<DOMAIN_HOME>/config/fmwconfig/components/ODI/<AgentName>/ODI-logging-
config.xml file.
4-6
Chapter 4
Oracle Data Integrator High Availability and Failover Considerations
4-7
Chapter 4
Oracle Data Integrator High Availability and Failover Considerations
• To avoid duplicate schedule processing, only one of these agents behaves like a
scheduler. A Coherence cache is used to handle scheduler service uniqueness
and migration.
The agent provides failover scheduling capabilities. For example, if a schedule is
supposed to start at 9 AM, and the cycle is to run job X every hour for four hours,
and the agent fails at 9:55 AM, it should compute where it was in the cycle and
continue. However, if a single job is scheduled to start at 9 AM, and the agent fails
at 8:59 AM, and then recovers at 9:01 AM, then it will not run the job that was
scheduled at 9 AM.
• Requests to the Oracle Data Integrator agent in a cluster must be routed via a load
balancer or via an HTTP proxy server. The address of this fronting server is used
by clients to connect transparently to any of the Oracle Data Integrator servers in
the cluster. This address must be specified in the agent definition in the master
repository. The scheduler singleton also routes all scheduled sessions startup
requests to this address so that they are load balanced over the cluster.
• Oracle Data Integrator's master and work repositories database is configured with
Oracle Real Application Clusters (Oracle RAC) to protect from database failures.
Oracle Data Integrator components perform the appropriate reconnection and
operations retries if database instance failure occurs.
4-8
Chapter 4
Oracle Data Integrator High Availability and Failover Considerations
Attribute Description
PROTOCOL Listening protocol for the agent.
Specify http or https.
Default is http.
ODI_SECU_WORK_REP Work repository name.
Default is WORKREP
JMXPORT JMX agent port number.
The agent listens on this port for JMX request
to provide its metrics.
Default value is the listening port + 1000.
For example, if -PORT=20910
then
JMXPORT=21910
Note: If port conflicts occur, you must change
the default JMX port.
JMXPROTOCOL JMX agent protocol.
The default is rmi
ODI_MASTER_TIMESTAMP Master database time stamp.
Note: If there is a need to reconfigure master
repository connection, update this timestamp
from the master repository configuration.
4-9
Chapter 4
Oracle Data Integrator High Availability and Failover Considerations
Attribute Description
ODI_KEYSTORE_ENCODED_PASS The encrypted keystore password.
It is used, only if the protocol is https.
ODI_KEY_ENCODED_PASS The encrypted key password.
This value is optional.
ODI_TRUST_STORE_ENCODED_PASS The encrypted truststore password.
This value is optional.
ODI_CONNECTION_RETRY_COUNT The number of retries to establish the
connection in the event that a repository
connection fails.
If set to 0, no retry will be performed.
Default is 0.
Note: The RETRY parameters allow the agent
to continue sessions, if the repository fails and
is temporarily unavailable.
This scenario applies primarily to Oracle RAC
configurations.
ODI_CONNECTION_RETRY_DELAY Time in milliseconds between repository
connection retries.
Default is 7000.
ProductHome Product home path
DomainHome Domain home path
ODI_EXCLUDED_CIPHERS Attribute to disable less secure SSL ciphers.
The names of the ciphers to be excluded are
to be provided as a comma-separated list.
If Oracle Data Integrator Studio loses its connection to an Oracle RAC database, you
will lose any Oracle Data Integrator Studio work performed since the last save
operation. As a general practice, save your work on a regular basis when you use
Oracle Data Integrator Studio.
Close ODI Studio.
Navigate to C:\Users\<username>\AppData\Roaming\odi directory
Delete the “system <ODI version>” folder, with <ODI version> corresponding to your
version of ODI.
Start ODI Studio.
4-10
Chapter 4
Roadmap for Setting Up a High Availability Topology
For example, if the scheduled scenario is configured to repeat the execution ten times
after an interval of two minutes, and the first scheduler node crashes in the middle of
the third execution, the new scheduler node will continue the execution of the scenario
for the next eight executions.
Task Documentation
1. Install Real See Oracle Real Application Clusters Administration and Deployment
Application Clusters Guide.
2. Install middleware See Installing and Configuring the Oracle Fusion Middleware
components Infrastructure.
3. Configure Repository See the Configuring ODI Repository Connections for Oracle RAC
Connections to Oracle section in Administering Oracle Data Integrator.
RAC
4. Install Oracle HTTP See Installing and Configuring Oracle HTTP Server.
Server
5. Configure a load See the Configuring the Load Balancer and Server Load Balancing in
balancer a High Availability Environment sections in High Availability Guide.
6. Scale out the See the Scaling Out a Topology (Machine Scale Out) chapter in High
topology (machine Availability Guide.
scale out)
7. Create the high See the Configuring the Domain for a Java EE Agent section in
availability domain Installing and Configuring Oracle Data Integrator.
8. Configure high See the Administration Server High Availability chapter in High
availability for the Availability Guide.
Administration Server
9. Reconfigure agents See Reconfigure Agents.
Reconfigure Agents
Agent definitions should point to the load balancer address instead of the individual
server addresses. Connect to Oracle Data Integrator Studio and edit the Load
Balancer Host and Port properties, as shown below:
1. Start Oracle Data Integrator Studio at ODI_HOME/oracledi/client/odi.sh.
2. After Oracle Data Integrator Studio comes up, click on Connect to Repository on
the left-hand pane.
3. When the Login window appears, click OK to log on.
4. When you are connected, open the Physical Architecture section on the left-hand
pane.
5. Select Agents and then select OracleDIAgent.
6. Edit the following properties:
4-11
Chapter 4
Roadmap for Setting Up a High Availability Topology
4-12
Part II
Creating and Using Data Services
This part describes how to configure and generate data services with Oracle Data
Integrator.
Part II contains the following chapters:
• Setting Up Data Services
• Generating and Deploying Data Services
5
Setting Up Data Services
This chapter describes how to configure data services with Oracle Data Integrator.
Data services enable access to your data via a web service interface. Data services
also allow access to the changes captured using Oracle Data Integrator's Changed
Data Capture feature. See the Using Journalizing chapter in Developing Integration
Projects with Oracle Data Integrator for more information on Changed Data Capture.
This chapter includes the following section:
• Setting Up Data Services
See Also:
the Using Web Services chapter in Developing Integration Projects with
Oracle Data Integrator.
Note:
Be careful not to mistake the web service containers and the servers
containing the data. While both are declared as data servers in Oracle Data
Integrator, the former do not contain any data. They are only used to publish
Data Services.
5-1
Chapter 5
Setting Up Data Services
Web service containers declared in Oracle Data Integrator have one of three modes of
deploying Web Services:
• Copying files directly onto the server, if you have file access to the server.
• Uploading onto the server by FTP.
The next steps in the configuration of the Web Services container depend on the type
of web service container and the deployment mode you choose to use.
To configure a web service container:
1. In Topology Navigator expand the Technologies node in the Physical Architecture
panel.
2. Right-click the JAX-WS technology and select New Data Server.
3. Fill in the following fields in the Definition tab:
• Name: Name of the Data Server that will appear in Oracle Data Integrator.
For naming data servers, it is recommended to use the following naming
standard: <TECHNOLOGY_NAME>_<SERVER_NAME>.
• Base URL for published services: Enter the base URL from which the web
services will be available. For Oracle WebLogic Server, it is http://
<host>:<HTTP Port>/.
4. Select one of the following Deployment options:
• Save web services into directory: directory into which the web service will
be created. It can be a network directory on the application server or a local
directory if you plan to deploy the web services separately into the container.
• Upload web services by FTP: select this option to upload the generated web
service to the container. You must provide a FTP URL as well as a User
name and Password for performing the upload operation.
5. From the File menu, click Save. The data server appears in the physical
architecture.
6. Select this data server, right-click and select New Physical Schema. A new
Physical Schema Editor appears. In the Context tab, use a context to associate
the new physical schema to an existing logical schema. It may be necessary to
first create a new logical schema of the JAX-WS technology. The process for
creating logical schemas is detailed in Setting Up a Topology
7. From the File menu, click Save.
You only need to configure one physical schema for the web container. Note that the
logical schema/context/physical schema association is important here as the context
will condition the container into which deployment will take place.
5-2
Chapter 5
Setting Up Data Services
• Configure the data sources from the application server console. For more
information, refer to your application server documentation.
• Deploy the data source from Oracle Data Integrator if the container is an Oracle
WebLogic Server. See Setting Up a Topology for more information on data source
deployment.
5-3
Chapter 5
Setting Up Data Services
5-4
6
Generating and Deploying Data Services
This chapter describes how to generate and deploy data services with Oracle Data
Integrator.
This chapter includes the following section:
• Generating and Deploying Data Services
• Overview of Generated Services
• Testing Data Services
Phase Description
Generate code This phase performs the following operation.
• Deletes the content of the generation directory.
• Generates the Java source code for the data services using the code
template from the SKM.
6-1
Chapter 6
Overview of Generated Services
Phase Description
Compilation This phase performs the following operations:
• Extracts web service framework.
• Compiles the Java source code.
Deployment This phase performs the following operations:
• Packages the compiled code.
• Deploys the package to the deployment target, using the deployment
method selected for the container.
Model-level services
Data services are generated at model-level when the model is enabled for consistent
set CDC.
The following services are available at model-level:
• extend Window (no parameters): Carries out an extend window operation.
• lock (Subscriber Name): Locks the consistent set for the named subscriber. To
lock the consistent set for several subscribers, call the service several times, using
several OdiInvokeWebService steps for example.
• unlock (Subscriber Name): Unlocks the consistent set for the named subscriber.
• purge (no parameters): Purges consumed changes.
See the Using Journalizing chapter in Developing Integration Projects with Oracle
Data Integrator for more information on these operations.
Datastore-level services
The range of operations offered by each generated data service depends on the SKM
used to generate it. There are several common properties shared by the SKMs
available with Oracle Data Integrator. In almost every case the name of the published
entity forms part of the name of each operation. In the following examples, the
published entity "Customer" is used.
The following operations are available at datastore-level:
• Operations on a single entity. These operations allow a single record to be
manipulated, by specifying a value for its primary key. Other fields may have to be
supplied to describe the new row, if any. Examples: addcustomer, getcustomer,
deletecustomer, updatecustomer.
• Operations on a group of entities specified by filter. These operations involve
specifying values for one or several fields to define a filter, then optionally
supplying other values for the changes to made to those rows. In general, a
maximum number of rows to return can also be specified. Examples:
getcustomerfilter, deletecustomerfilter, updatecustomerfilter.
6-2
Chapter 6
Testing Data Services
6-3
Part III
Running and Monitoring Integration
Processes
This part describes how to run and monitor integration processes.
Part III contains the following chapters:
• Running Integration Processes
• Debugging Integration Processes
• Monitoring Integration Processes
• Using Oracle Data Integrator Console
7
Running Integration Processes
This chapter describes how to run and schedule integration processes.
This chapter includes the following sections:
• Understanding ODI Executions
• Executing Mappings, Procedures, Packages and Model Operations
• Executing a Scenario
• Restarting a Session
• Stopping a Session
• Executing a Load Plan
• Restarting a Load Plan Run
• Stopping a Load Plan Run
• Scheduling Scenarios and Load Plans
• Simulating an Execution
• Managing Executions Using Web Services
Note:
For information on how to run and schedule integration processes within a
Hadoop cluster, see Integrating Big Data with Oracle Data Integrator.
7-1
Chapter 7
Understanding ODI Executions
When an execution is started from Oracle Data Integrator Studio, the Execution Dialog
is displayed. This dialog contains the execution parameters listed in Table 7-1.
Properties Description
Context The context into which the session is started.
Agent The agent which will execute the mapping. The object can also
be executed using the agent that is built into Oracle Data
Integrator Studio, by selecting Local (No Agent).
Log Level Level of logging information to retain. All session tasks with a
defined log level lower than or equal to this value will be kept in
the Session log when the session completes. However, if the
object execution ends abnormally, all tasks will be kept,
regardless of this setting.
Note that log level 6 has the same behavior as log level 5, but
with in addition of variable tracking. See the Tracking Variables
and Sequences section in Developing Integration Projects with
Oracle Data Integrator.
Simulation Check Simulation if you want to simulate the execution and
create an execution report. Refer to Simulating an Execution for
more information.
Session Lifecycle
This section describes the session lifecycle. See the Introduction to Load Plans
section in Developing Integration Projects with Oracle Data Integrator for more
information on Load Plan runs and the Load Plan life cycle.
The lifecycle of a session is as follows:
1. An execution request is sent to the agent, or the agent triggers an execution from
a schedule.
Note that if the execution is triggered from Oracle Data Integrator Studio on a
design-time object (mapping, package, etc.), Studio pre-generates in the work
repository the code for the session before sending the request. If the execution is
started from a scenario, this phase is not necessary as the scenario already
contains pre-generated code.
2. The agent completes code generation for the session: It uses the context provided
to resolve the physical information such as data server connections and fully
qualified tables names. This resulting code is written into the work repository as a
session in Waiting status.
3. The agent initializes the connections to the source and target data servers that are
required for the execution of the session.
4. The agent acknowledges the execution request. If the execution was started from
the Studio, the Session Started Dialog is displayed.
5. The agent executes each of the tasks contained in this session, using the
capabilities of the database servers, operating systems, or scripting engines to run
the code contained in the session's tasks.
6. While processing the session, the agent updates the execution log in the
repository, reports execution statistics and error messages.
7-2
Chapter 7
Executing Mappings, Procedures, Packages and Model Operations
Once the session is started, you can monitor it in the log, using for example
Operator Navigator. Refer to Monitoring Integration Processes for more
information on session monitoring.
7. When the session completes, tasks are preserved or removed from the log
according to the log level value provided when starting for this session.
Note:
A Session is always identified by a unique Session Number (or Session ID).
This number can be viewed when monitoring the session, and is also
returned by the command line or web service interfaces when starting a
session.
When starting an execution from other locations such as a command line or a web
service, you provide similar execution parameters, and receive a similar Session
Started feedback. If the session is started synchronously from a command line or web
service interface, the command line or web service will wait until the session
completes, and provide the session return code and an error message, if any.
Executing a Scenario
Scenarios can be executed in several ways:
• Executing a Scenario from ODI Studio
• Executing a Scenario from a Command Line.
• From a Web Service. See Executing a Scenario Using a Web Servicefor more
information.
• From ODI Console. See Managing Scenarios and Sessions.
7-3
Chapter 7
Executing a Scenario
Note:
Before running a scenario, you need to have the scenario generated from
Designer Navigator or imported from a file. Refer to the Using Scenarios
chapter in Developing Integration Projects with Oracle Data Integrator for
more information.
Note:
You can edit a scenario to specify if concurrent executions of the scenario
should be limited. You can also specify if concurrent scenarios should end in
error immediately, or specify a polling frequency (in seconds) for the wait
behavior to check for its turn to run. See the Controlling Concurrent
Execution of Scenarios and Load Plans section in Developing Integration
Projects with Oracle Data Integrator for more information.
7-4
Chapter 7
Executing a Scenario
• To use this command the connection to your repository must be configured in the
domain. See Installing and Configuring Oracle Data Integrator for more
information.
• When starting a scenario from a command line, the session is not started by
default against a remote run-time agent, but is executed by a local Java process
started from the command line. This process can be aborted locally, but cannot
receive a session stop signal as it is not a real run-time agent. As a consequence,
sessions started this way cannot be stopped remotely.
This process will be identified under Local (No Agent) in the Oracle Data Integrator
Operator logs. You can change this name using the NAME parameter.
If you want to start the session against a run-time agent, you must use the
AGENT_URL parameter.
To start a scenario from a command line:
1. Create the Oracle Data Integrator domain and configure the agent template:
• If using the ODI Standalone install type, create an ODI domain and configure
the Oracle Data Integrator - Standalone Agent template to create an ODI
Instance configuration.
• If using the ODI Enterprise install type, create an ODI domain and configure
the Oracle Data Integrator - Standalone Colocated Agent template to
create an ODI Instance configuration.
2. Change directory to the <DOMAIN_HOME>/bin/ directory of the Oracle Data
Integrator installation.
3. Enter the following command to start a scenario.
On UNIX systems:
./startscen.sh -INSTANCE=<ODIInstanceName> <scenario_name>
<scenario_version> <context_code> [<log_level>] [-
AGENT_URL=<remote_agent_url>] [-ASYNC=yes|no] [-
NAME=<local_agent_name>] [-SESSION_NAME=<session_name>] [-
KEYWORDS=<keywords>] [<variable>=<value>]*
The ODIInstanceName is the instance that was configured in step 1 of this
procedure.
On Windows systems:
startscen.cmd "-INSTANCE=<ODIInstanceName>" <scenario_name>
<scenario_version> <context_code> [<log_level>] ["-
AGENT_URL=<remote_agent_url>"]["-ASYNC=yes|no"] ["-
NAME=<local_agent_name>"] ["-SESSION_NAME=<session_name>"] ["-
KEYWORDS=<keywords>"] ["<variable>=<value>"]*
7-5
Chapter 7
Executing a Scenario
Note:
On Windows platforms, it is necessary to "delimit" the command arguments
containing "=" signs or spaces, by using double quotes. The command call
may differ from the Unix command call. For example:
On Unix
./startscen.sh -INSTANCE=OracleDIAgent1 PKG001 001 GLOBAL -
SESSION_NAME=RUN1 -AGENT_URL=http://localhost:20910/oraclediagent
On Windows
startscen.cmd "-INSTANCE=OracleDIAgent1" PKG001 001 GLOBAL "-
SESSION_NAME=RUN1" "-AGENT_URL=http://localhost:20910/
oraclediagent"
Table 7-2 lists the different parameters, both mandatory and optional. The parameters
are preceded by the "-" character and the possible values are preceded by the "="
character. You must follow the character protection syntax specific to the operating
system on which you enter the command.
Parameters Description
- Name of the ODI Instance configured in the domain. The ODI
INSTANCE=<ODIInstanceN Instance defines the repository configuration to be used for
ame> starting the scenario (mandatory).
7-6
Chapter 7
Restarting a Session
Parameters Description
[- Agent name that will appear in the execution log for this session,
NAME=<local_agent_name instead of Local (No Agent). This parameter is ignored if
>] AGENT_URL is used.
Note that using an existing physical agent name in the NAME
parameter is not recommended. The run-time agent whose
name is used does not have all the information about this
session and will not be able to manage it correctly. The following
features will not work correctly for this session:
• Clean stale session: This session will be considered as stale
by this agent if this agent is started. The session will be
pushed to error when the agent will detect this session
• Kill Sessions: This agent cannot kill the session when
requested.
• Agent Session Count: This session is counted in this agent's
sessions, even if it is not executed by it.
It is recommended to use a NAME that does not match any
existing physical agent name.
If you want to start a session on a given physical agent, you
must use the AGENT_URL parameter instead.
[- Name of the session that will appear in the execution log. If not
SESSION_NAME=<session_ specified, the scenario name is used as the session name.
name>]
[-KEYWORDS=<keywords>] List of keywords attached to this session. These keywords make
session identification easier. The list is a comma-separated list
of keywords.
[<variable>=<value>] Allows to assign a <value> to a <variable> for the execution
of the scenario. <variable> is either a project or global
variable. Project variables should be named <Project
Code>.<Variable Name>. Global variables should be called
GLOBAL.<variable Name>.
This parameter can be repeated to assign several variables.
Do not use a hash sign (#) to prefix the variable name on the
startscen command line.
Restarting a Session
Any session that has encountered an error, or has been stopped by the user can be
restarted.
Oracle Data Integrator uses JDBC transactions when interacting with source and
target data servers, and any open transaction state is not persisted when a session
finishes in error state. The appropriate restart point is the task that started the
unfinished transaction(s). If such a restart point is not identifiable, it is recommended
that you start a fresh session by executing the scenario instead of restarting existing
sessions that are in error state.
Only sessions in status Error or Waiting can be restarted. By default, a session
restarts from the last task that failed to execute (typically a task in error or in waiting
7-7
Chapter 7
Restarting a Session
state). A session may need to be restarted in order to proceed with existing staging
tables and avoid re-running long loading phases. In that case the user should take into
consideration transaction management, which is KM specific. A general guideline is: If
a crash occurs during a loading task, you can restart from the loading task that failed.
If a crash occurs during an integration phase, restart from the first integration task,
because integration into the target is within a transaction. This guideline applies only to
one mapping at a time. If several mappings are chained and only the last one performs
the commit, then they should all be restarted because the transaction runs over
several mappings.
To restart from a specific task or step:
1. In Operator Navigator, navigate to this task or step, edit it and switch it to Waiting
state.
2. Set all tasks and steps after this one in the Operator tree view to Waiting state.
3. Restart the session using one of the following methods:
• Restarting a Session from ODI Studio
• Restarting a Session from a Command Line.
• From a Web Service. See Restarting a Session Using a Web Servicefor more
information.
• From ODI Console. See Managing Scenarios and Sessions.
WARNING:
When restarting a session, all connections and transactions to the source
and target systems are re-created, and not recovered from the previous
session run. As a consequence, uncommitted operations on transactions
from the previous run are not applied, and data required for successfully
continuing the session may not be present.
7-8
Chapter 7
Restarting a Session
Note:
Select Internal to use the ODI Studio built-in agent.
4. Select the Log Level. Note that log level 6 has the same behavior as log level 5,
but with in addition of variable tracking. See the Tracking Variables and
Sequences section in Developing Integration Projects with Oracle Data Integrator
for more information.
5. Click OK to restart the indicated session and to close the dialog. Click Cancel if
you do not want to restart session.
When Oracle Data Integrator has restarted the session, the Session Started dialog
appears.
7-9
Chapter 7
Stopping a Session
Parameters Description
- Name of the ODI Instance configured in the domain. The ODI
INSTANCE=<ODIInstanceN Instance defines the repository configuration to be used for
ame> restarting the session (mandatory).
Stopping a Session
Any running or waiting session can be stopped. You may want to stop a session when
you realize that for example your mapping contains errors or when the execution takes
a long time. Certain privileges are required for you to stop sessions. See Sessionsfor
more information.
Note that there are two ways to stop a session:
• Normal: The session is stopped once the current task is finished.
• Immediate: The current task is immediately interrupted and the session is
stopped. This mode allows to stop long-running tasks, as for example long SQL
statements before they complete.
7-10
Chapter 7
Stopping a Session
Note:
The immediate stop works only with technologies and drivers that support
task interruption. It is supported if the statement.cancel method is
implemented in the JDBC driver.
Note:
Only sessions that are running within a Java EE, Standalone, or Standalone
Colocated agent can be stopped. Sessions running in the Studio built-in
agent or started with the startscen.sh or startscen.cmd script without the
AGENT_URL parameter, cannot be stopped. See Executing a Scenariofor more
information.
7-11
Chapter 7
Executing a Load Plan
• If using the ODI Standalone install type, create an ODI domain and configure
the Oracle Data Integrator - Standalone Agent template to create an ODI
Instance configuration.
• If using the ODI Enterprise install type, create an ODI domain and configure
the Oracle Data Integrator - Standalone Colocated Agent template to
create an ODI Instance configuration.
2. Change directory to the <DOMAIN_HOME>/bin/ directory of the Oracle Data
Integrator installation.
3. Enter the following command to stop a scenario.
On UNIX systems:
./stopsession.sh -INSTANCE=<ODIInstanceName> <session_id> [-
AGENT_URL=<remote_agent_url>] [-STOP_LEVEL=<normal (default) |
immediate>]
The ODIInstanceName is the instance that was configured in step 1 of this
procedure.
On Windows systems:
stopsession.cmd "-INSTANCE=<ODIInstanceName>" <session_id> ["-
AGENT_URL=<remote_agent_url>"] ["-STOP_LEVEL=<normal (default) |
immediate>"]
Table 7-4 lists the different parameters of this command, both mandatory and optional.
The parameters are preceded by the "-" character and the possible values are
preceded by the "=" character. You must follow the character protection syntax specific
to the operating system on which you enter the command.
Parameters Description
- Name of the ODI Instance configured in the domain. The ODI
INSTANCE=<ODIInstanceN Instance defines the repository configuration to be used for
ame> stopping the session (mandatory).
7-12
Chapter 7
Executing a Load Plan
Note:
A Load Plan cannot be executed using the ODI Studio built-in agent called
Local (No Agent).
7-13
Chapter 7
Executing a Load Plan
Note:
You can create or edit a load plan to specify if concurrent executions of the
load plan should be limited. You can also specify if concurrent load plans
should end in error immediately or specify a polling frequency (in seconds)
for the wait behavior to check for its turn to run. See the Creating a Load
Plan section in Developing Integration Projects with Oracle Data Integrator
for more information.
7-14
Chapter 7
Executing a Load Plan
Note:
On Windows platforms, it is necessary to "delimit" the command arguments
containing "=" signs or spaces, by using double quotes. The command call
may differ from the Unix command call. For example:
On UNIX systems:
./startloadplan.sh -INSTANCE=OracleDIAgent1 DWLoadPlan DEV -
AGENT_URL=http://localhost:20910/oraclediagent
On WINDOWS systems:
startloadplan.cmd "-INSTANCE=OracleDIAgent1" DWLoadPlan DEV "-
AGENT_URL=http://localhost:20910/oraclediagent"
Table 7-5 lists the different parameters, both mandatory and optional. The parameters
are preceded by the "-" character and the possible values are preceded by the "="
character. You must follow the character protection syntax specific to the operating
system on which you enter the command.
Parameters Description
- Name of the ODI Instance configured in the domain. The ODI
INSTANCE=<ODIInstanceN Instance defines the repository configuration to be used for
ame> starting the Load Plan (mandatory).
7-15
Chapter 7
Restarting a Load Plan Run
Parameters Description
["- Keywords to improve the organization of ODI logs by session
KEYWORDS=<Keywords>"] folders and automatic classification. Enter a comma separated
list of keywords that will be attached to this Load Plan.
["variable>=<value> "] Startup values for the Load Plan variables (optional). Note that
project variables should be named
<project_code>.<variable_name> and global variables
should be named GLOBAL.<variable_name>. This list is of the
form <variable>=<value>.
The format for Date and Number variables is as follows:
• Date: yyyy-MM-dd'T'HH:mm:ssZ
For example: 2009-12-06T15:59:34+0100
• Number: Integer value
For example: 29833
For example:
"A_PROJ.A_REFRESH_VAR=bb"
"A_PROJ.A_CROSS_PROJ_VAR=aa" "A_PROJ.A_VAR=cc"
[-SYNC=(no|yes)] Synchronous invocation of loadplan:
Yes - Synchronous.
Start the loadplan and wait, until the loadplan run has completed
in either Done or Error status.
No - Asynchronous (default).
Start the loadplan and return, without waiting for the loadplan run
to complete.
[-POLLINT=<msec>] This parameter is applicable, only if -SYNC is Yes.
The period of time in milliseconds to wait between polling
loadplan run status for completion state.
Valid value must be > 0.
Default value is 1000 (1 second).
Note:
Restarting a Load Plan instance depends on the status of its most-recent
(highest-numbered) run. Restart is only enabled for the most-recent run, if its
status is Error.
7-16
Chapter 7
Restarting a Load Plan Run
7-17
Chapter 7
Restarting a Load Plan Run
./restartloadplan.sh -INSTANCE=<ODIInstanceName>
<load_plan_instance_id> [log_level] -AGENT_URL=<agent_url>["-SYNC=(no|
yes)"]["-POLLINT=<msec>"]
The ODIInstanceName is the instance that was configured in step 1 of this
procedure.
On WINDOWS systems:
restartloadplan.cmd "-INSTANCE=<ODIInstanceName>"
<load_plan_instance_id> [log_level] "-AGENT_URL=<agent_url>"["-
SYNC=(no|yes)"]["-POLLINT=<msec>"]
Note:
On Windows platforms, it is necessary to "delimit" the command arguments
containing "=" signs or spaces, by using double quotes. The command call
may differ from the Unix command call.
Table 7-6 lists the different parameters, both mandatory and optional. The parameters
are preceded by the "-" character and the possible values are preceded by the "="
character. You must follow the character protection syntax specific to the operating
system on which you enter the command.
Parameters Description
- Name of the ODI Instance configured in the domain. The ODI
INSTANCE=<ODIInstanceN Instance defines the repository configuration to be used for
ame> restarting the Load Plan (mandatory).
7-18
Chapter 7
Stopping a Load Plan Run
Parameters Description
[-SYNC=(no|yes)] Synchronous invocation of loadplan:
Yes - Synchronous.
Start the loadplan and wait, until the loadplan run has completed
in either Done or Error status.
No - Asynchronous (default).
Start the loadplan and return, without waiting for the loadplan run
to complete.
[-POLLINT=<msec>] This parameter is applicable, only if -SYNC is Yes.
The period of time in milliseconds to wait between polling
loadplan run status for completion state.
Valid value must be > 0.
Default value is 1000 (1 second).
7-19
Chapter 7
Stopping a Load Plan Run
7-20
Chapter 7
Scheduling Scenarios and Load Plans
Parameters Description
- Name of the ODI Instance configured in the domain. The ODI
INSTANCE=<ODIInstanceN Instance defines the repository configuration to be used for
ame> stopping the Load Plan (mandatory).
Note:
On Windows platforms, it is necessary to "delimit" the command arguments
containing "=" signs or spaces, by using double quotes. The command call
may differ from the Unix command call.
7-21
Chapter 7
Scheduling Scenarios and Load Plans
Properties Description
Context Context into which the scenario or Load Plan is started.
Agent Agent executing the scenario or Load Plan.
Log Level Level of logging information to retain.
Properties Description
Active The scheduling will be active when the agent is restarted or when
the scheduling of the physical agent is updated.
Inactive The schedule is not active and will not run.
Active for the period Activity range of the schedule. A schedule active for a period of time
will only run within this given period.
The Execution parameters define the frequency of execution for each execution
cycle.
Properties Description
Execution Frequency of execution option (annual, monthly,... simple). This
option is completed by a set of options that depend on this main
option.
4. On the Execution Cycle tab, specify the parameters for the repeat mode of the
scenario as follows:
Properties Description
None (Execute The scenario or Load Plan is executed only one time.
once)
Many times The scenario or Load Plan is repeated several times.
• Maximum number of repetitions: The maximum number of
times the scenario is repeated during the cycle.
• Maximum Cycle Duration: As soon as the maximum time is
reached, the scenario is no longer restarted, and the cycle
stops.
• Interval between repetitions: The downtime between each
scenario execution.
7-22
Chapter 7
Scheduling Scenarios and Load Plans
Properties Description
Constraints Allows limitations to be placed on one cycle iteration, in the event of
a problem during execution.
• Number of Attempts on Failure: Maximum number of
consecutive execution attempts for one iteration.
• Stop Execution After: Maximum execution time for one
iteration. If this time is reached, the scenario or Load Plan is
automatically stopped.
5. On the Variables tab, unselect Latest Value for variables for which you want to
provide a Value. Only variables used in the scenario or Load Plan and flagged as
parameters for this scenario or Load Plan appear in this tab.
6. From the File menu, click Save.
The new schedule appears under the Scheduling node of the scenario or Load Plan.
The schedule changes are taken into account by the run-time agent when it starts or
when it receives a schedule update request.
7-23
Chapter 7
Scheduling Scenarios and Load Plans
Note:
The Scheduling Information is retrieved from the agent's in-memory
schedule. The agent must be started and its schedule refreshed in order to
display accurate schedule information.
Note:
The Scheduling Information is retrieved from the agent's schedule. The
agent must be started and its schedule refreshed in order to display accurate
schedule information.
Parameters Description
Selected Agent Agent for which the Schedule is displayed. You can display also
the schedule of all agents by selecting All Agents.
Selected Work Repository Only the scenarios executed in the selected work repository are
displayed in the schedule. Default is All Work Repositories.
Scheduling from... to... Time range for which the scheduling is displayed. Click Refresh
to refresh this schedule.
Update Click Update to update the schedule for the selected agent(s).
7-24
Chapter 7
Simulating an Execution
Parameters Description
Time Range The time range specified (1 hour, 2 hours, and so forth) allows
you to center the diagram on the current time plus this duration.
This feature provides a vision of the sessions in progress plus
the incoming sessions. You can use the arrows to move the
range forward or backward.
Scenarios details This panel displays the details and execution statistics for each
scheduled scenario.
If you select a zone in the diagram (keep the mouse button pressed), you
automatically zoom on the select zone.
By right-clicking in the diagram, you open a context menu for zooming, saving the
diagram as an image file, printing or editing the display properties.
Simulating an Execution
In Oracle Data Integrator you have the possibility at design-time to simulate an
execution. Simulating an execution generates and displays the code corresponding to
the execution without running this code. Execution simulation provides reports suitable
for code review.
7-25
Chapter 7
Managing Executions Using Web Services
Note:
No session is created in the log when the execution is started in simulation
mode.
To simulate an execution:
1. In the Project view of the Designer Navigator, select the object you want to
execute.
2. Right-click and select Run.
3. In the Run dialog, set the execution parameters and select Simulation. See
Table 7-1 for more information.
4. Click OK.
The Simulation report is displayed.
You can click Save to save the report as.xml or.html file.
7-26
Chapter 7
Managing Executions Using Web Services
The following applies to the SOAP request used against the agent and public web
services
• The web services operations accept password in a plaintext in the SOAP request.
Consequently, it is strongly recommended to use secured protocols (HTTPS) to
invoke web services over a non-secured network. You can alternately use external
authentication. See Using the Run-Time Web Services with External
Authenticationfor more information.
• Repository connection information is not necessary in the SOAP request as the
agent or public web service component is configured to connect to a master
repository. Only an ODI user and the name of a work repository are required to run
most of the operations.
The scenario execution returns the session ID in a response that depends on the
value of the synchronous element in the request.
7-27
Chapter 7
Managing Executions Using Web Services
The Return Code value is zero for successful sessions and possible status codes are:
• D: Done
• E: Error
• M: Warning
• Q: Queued
• R: Running
• W: Waiting
7-28
Chapter 7
Managing Executions Using Web Services
<Variables>
<Name>variable_name</name>
<Value>variable_value</Value>
</Variables>
</Request>
</invokeRestartSessRequest>
7-29
Chapter 7
Managing Executions Using Web Services
<RunCount>1</RunCount>
<MasterRepositoryId>0</MasterRepositoryId>
<MasterRepositoryTimestamp>1290196542926</MasterRepositoryTimestamp>
</StartedRunInformation>
</executionInfo>
</ns2:OdiStartLoadPlanResponse>
• NORMAL: Waits until the current task finishes and then stops the session.
• IMMEDIATE: Stops the session immediately, cancels all open statements and then
rolls back the transactions.
See Stopping a Load Plan Runfor more information on how to stop a Load Plan run
and Executing a Load Plan Using a Web Servicefor more information on the other
parameters used by the invokeStopLoadPlan operation.
<OdiStopLoadPlanRequest>
<Credentials>
<OdiUser>odi_user</OdiUser>
<OdiPassword>odi_password</OdiPassword>
<WorkRepository>work_repository</WorkRepository>
</Credentials>
<OdiStopLoadPlanRequest>
<LoadPlanInstanceId>load_plan_instance_id</LoadPlanInstanceId>
<LoadPlanInstanceRunCount>load_plan_run_count</LoadPlanInstanceRunCount>
<StopLevel>stop_level</StopLevel>
</OdiStopLoadPlanRequest>
</OdiStopLoadPlanRequest>
7-30
Chapter 7
Managing Executions Using Web Services
7-31
Chapter 7
Managing Executions Using Web Services
</S:Body>
</S:Envelope>
Starting a Scenario
To start a scenario from a command line via the web service:
1. Change directory to the /agent/bin directory of the Oracle Data Integrator
installation.
2. Enter the following command to start a scenario.
On UNIX systems:
./startscenremote.sh <scenario_name> <scenario_version> <context_code>
<work_repository> <remote_agent_url> <odi_user> <odi_password> -l
<log_level> -s <sync_mode> -n <session_name> -k <session_keyword> -a
<assign_variable> -t <timeout> -i <interval> -h <http_timeout> -v
Table 7-9 lists the different parameters of this command, both mandatory and optional.
Parameters Description
<scenario_name> Name of the scenario (mandatory).
<scenario_version> Version of the scenario (mandatory). If the version specified is
-1, the latest version of the scenario is executed.
<context_code> Code of the execution context (mandatory).
7-32
Chapter 7
Managing Executions Using Web Services
Parameters Description
<work_repository> Name of the work repository containing the scenario.
<remote_agent_url> URL of the run-time agent that will run this session.
<odi_user> Name of the user used to run this sessions.
<odi_password> This user's password.
-l <log_level> Level of logging information to retain.
This parameter is in the format <n> where <n> is the expected
logging level, between 0 and 6. The default log level is 5.
Note that log level 6 has the same behavior as log level 5, but
with in addition of variable tracking. See the Tracking Variables
and Sequences section in Developing Integration Projects with
Oracle Data Integrator for more information.
Example: startscen.cmd SCENAR 1 GLOBAL 5
-s <sync_mode> Execution mode:
• 0: Synchronous
• 1:Asynchronous (Do not wait for session completion)
• 2: Asynchronous (Wait for session completion).
-n <session_name> Name of the session
-k <session_keyword> List of keywords attached to this session. These keywords make
session identification easier. The list is a comma-separated list
of keywords.
-a <assign_variable> Assign variable. Allows to assign a <value> to a <variable>
for the execution of the scenario. <variable> is either a project
or global variable. Project variables should be named <Project
Code>.<Variable Name>. Global variables should be called
GLOBAL.<variable Name>.
This parameter can be repeated to assign several variables.
Do not use a hash sign (#) to prefix the variable name on the
startscen command line.
For Example: -a PROJ1.VAR1=100
-t <timeout> Timeout in seconds for waiting for session to complete if
sync_mode = 2.
-i <interval> Polling interval for session status if sync_mode = 2.
-h <http_timeout> HTTP timeout for the web services calls.
-v Verbose mode.
7-33
Chapter 7
Managing Executions Using Web Services
Parameters Description
<session_number> Number of the session to monitor.
<work_repository> Name of the work repository containing the scenario.
<remote_agent_url> URL of the run-time agent that will run this session.
<odi_user> Name of the user used to run this sessions.
<odi_password> This user's password.
-w <wait_mode> Wait mode:
• 0: Do not wait for session completion, report current status.
• 1: Wait for session completion then report status.
-t <timeout> Timeout in seconds for waiting for session to complete if
sync_mode = 2.
-i <interval> Polling interval for session status if sync_mode = 2.
-h <http_timeout> HTTP timeout for the web services calls.
-v Verbose mode.
Note:
OPSS authentication is only possible for a Public Web Service or JEE agent
deployed in a Oracle WebLogic Server.
7-34
Chapter 7
Managing Executions Using Web Services
Using WS-Addressing
The web services described in this chapter optionally support WS-Addressing. WS-
Addressing allows replying on an endpoint when a run-time web service call
completes. For this purpose, two endpoints, ReplyTo and FaultTo, can be optionally
specified in the SOAP request header.
These endpoints are used in the following way:
• When the run-time web service call completes successfully, the result of an Action
is sent to the ReplyTo endpoint.
• If an error is encountered with the SOAP request or if Oracle Data Integrator is
unable to execute the request, a message is sent to the FaultTo address. If the
FaultTo address has not been specified, the error is sent to the ReplyTo address
instead.
• If the Oracle Data Integrator agent encounters errors while processing the request
and needs to raise an ODI error message, this error message is sent back to the
ReplyTo address.
Note that callback operations do not operate in callback mode unless a valid ReplyTo
address is specified.
The following is an example of a request that is sent to retrieve the session status for
session 20001:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:odi="xmlns.oracle.com/odi/OdiInvoke/">
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Action soapenv:mustUnderstand="1">xmlns.oracle.com/odi/OdiInvoke/
getSessionStatus</wsa:Action>
<wsa:ReplyTo soapenv:mustUnderstand="1">
<wsa:Address>http://host001:8080/examples/servlets/servlet/RequestPrinter</
wsa:Address>
</wsa:ReplyTo>
<wsa:MessageID soapenv:mustUnderstand="1">uuid:71bd2037-fbef-4e1c-a991-4afcd8cb2b8e</
wsa:MessageID>
</soapenv:Header>
<soapenv:Body>
<odi:OdiGetSessionsStatusRequest>
<Credentials>
<!--You may enter the following 3 items in any order-->
<OdiUser></OdiUser>
<OdiPassword></OdiPassword>
<WorkRepository>WORKREP1</WorkRepository>
</Credentials>
<!--Zero or more repetitions:-->
<SessionIds>20001</SessionIds>
</odi:OdiGetSessionsStatusRequest>
</soapenv:Body>
</soapenv:Envelope>
Note that this call contains the response to the Action specified in the request, and
includes the original MessageID to correlate request and response.
7-35
Chapter 7
Managing Executions Using Web Services
For more information on WS-Adressing, visit these World Wide Web Consortium
(W3C) web sites at the following URLs:
• Web Services Addressing: http://www.w3.org/Submission/ws-addressing/
• WS-Addressing SOAP Binding: http://www.w3.org/TR/2006/REC-ws-addr-
soap-20060509/
• WS-Addressing WSDL Binding: http://www.w3.org/TR/2006/WD-ws-addr-
wsdl-20060216/
7-36
Chapter 7
Managing Executions Using Web Services
Note:
Oracle BPEL takes care of automatically implementing these operations and
sends out WS-Addressing headers that point to these endpoints.
7-37
8
Debugging Integration Processes
This chapter describes how to use the Oracle Data Integrator debugger to solve
problems with your integration processes.
This chapter includes the following sections:
• About Sessions and Blueprints
• Introduction to Debugging in the Session Editor
• Starting a Debugging Session
• Stepping through a Blueprint in the Session Editor
• Using the Debugging Cursor
• Managing Debugging Sessions
8-1
Chapter 8
Introduction to Debugging in the Session Editor
changed. Tuning-up these parameters should only be considered after you have
evaluated all other performance factors such as network latency, database access
lags, etc.
You have to consider the following key factors before deciding to tune-up these
parameters:
• Number of active Scenarios you have in a steady state running environment
• Average, cumulative size of the scenarios
• Frequency of repeating a scenario for execution
• Available memory in the system and allocated memory to the JVM running ODI
Agent
If you have less active scenarios than the default value (i.e. 200), then do not alter the
Maximum Cache Entries parameter. Only when you face memory crunch in the VM,
then you may want to reduce this number to smaller value to free up memory for other
activities. But this normally degrades the performance of a scenario execution, so it is
not recommended.
If you run a scenario every hour and all active scenarios fit in the Maximum Cache
Entries and if you are not changing generated scenarios in the runtime environment
then you can increase the Unused Blueprint Lifetime parameter to more than 3600
seconds. But if the VM memory is in short supply, then increasing the Unused
Blueprint Lifetime parameter may eat up memory that can be put to a better use.
So for tuning-up these parameters consider the above guidelines to sort-out
performance issues.
Icons
The debug execution can be controlled by the debug commands in the debug toolbar:
8-2
Chapter 8
Introduction to Debugging in the Session Editor
Start Debug Session Starts a debugging session for the editor in focus. In a
Session Editor, this command can be used to restart a
session.
Get Data Inserts the SQL code of the currently selected task
into the SQL command field of the Debug Data
window. Both Source Task Data and Target Task
Data windows are populated.
Step into Steps to the beginning of the first child node of the
currently selected node. If the currently selected node
does not have a child, this is disabled.
Run to Task End Runs to the end of the currently selected task. If the
task has children, execute all children until the end of
the task is reached.
This is disabled if it is not at the beginning of a task.
Run to Next Task Runs to the beginning of the next task. If at the last
task in a list of tasks, go to the end of the parent task.
8-3
Chapter 8
Starting a Debugging Session
8-4
Chapter 8
Starting a Debugging Session
8-5
Chapter 8
Starting a Debugging Session
• Agent: Select the agent that the debuggable session runs on. The Any Agent
choice shows all debuggable sessions from all configured agents in the
session list.
• Session: Shows all debuggable sessions available for connection from the
agent chosen in the agent list.
3. Click OK.
8-6
Chapter 8
Stepping through a Blueprint in the Session Editor
Break On Error
Check Break on Error to cause the debugger to suspend execution at a task where an
error happened. This enables you to review data within the transaction.
If unchecked, session execution engine reacts to any errors as usual. The debugger
client does not provide you any notification.
The setting is unchecked by default.
8-7
Chapter 8
Using the Debugging Cursor
Debug Actions
You can perform debug actions for a selected cursor position.
Step Into
The Step Into action steps to the beginning of the first child node of the currently
selected node. If the currently selected node does not have a child, this is disabled.
The Step Into action works for all things including steps and tasks.
Pause
The Pause action suspends the current execution. When the execution is paused, you
can modify the code of the tasks that are yet to be executed, and that modified code is
taken up when you resume the execution.
The execution can be continued by stepping through the steps/tasks, or by resuming
execution.
Resume
The Resume action resume execution at the current cursor and continues until the
session is finished or a breakpoint is reached.
8-8
Chapter 8
Using the Debugging Cursor
Multiple Cursors
You can use multiple cursors for in-session parallelism.
Special Behavior
A parallel container task opens a separate cursor for each child task, and a cursor that
remains on the container task until the last child task has finished. Each child cursor
can be used independently to step through tasks, use breakpoints, or view data or
variables. The child cursor disappears when the child task is finished. Performing the
resume command on a child cursor only progresses to the end of the child task.
Using Breakpoints
You can set breakpoints on blueprint steps and tasks to suspend execution for
debugging purposes.
Placing Breakpoints
To add a breakpoint:
8-9
Chapter 8
Using the Debugging Cursor
Editing Breakpoints
To edit a breakpoint:
1. Select Run > Breakpoint > Edit Breakpoint.
2. The Breakpoint Properties window appears.
3. Set the following properties.
• Enabled: checked if the breakpoint is enabled.
– if checked, the breakpoint is active and suspends execution.
– if unchecked, the breakpoint is ignored during execution.
• Suspend after executing the task:
– if checked, the breakpoint suspends after executing the task or step.
– if unchecked, the breakpoint suspends before executing the task or step.
• Pass count: the number of times the breakpoint has to be passed before
suspending execution; 0 suspends the execution on the initial pass, 1 passes
the breakpoint once before suspending execution.
4. Click OK.
Removing Breakpoints
To remove a single breakpoint:
• Right-click on the step or task and select Remove Breakpoint.
To remove all breakpoints (available only from the breakpoint window):
• Select Run > Breakpoint > Remove All.
8-10
Chapter 8
Using the Debugging Cursor
Pass Count
The pass count indicates the number of times the breakpoint has to be passed before
suspending execution; 0 suspends the execution on every pass; 1 suspends the
execution only on the first pass; 5 suspends the execution only on the fifth pass.
Debugging Data
Use the Debug Data tab to query data in the context of the current debugger task.
The data window has two tabs, Source Task Data and Target Task Data, to query the
data servers associated with the source and the target for the current task. The Get
Data command in the main toolbar inserts the SQL code of the current task into both
Source Task Data and Target Task Data fields. The window provides a field to enter a
SQL command and execute it by clicking the Run SQL Code button.
SQL commands use the transaction context of the current session, uncommitted data
can be queried. If there are multiple tasks at debug execution in the session, the
commands use the context of the task synced to the data window.
Get Data
Get Data inserts the SQL code of the currently selected task into the SQL command
field of the Debug Data window. Both the Source Task Data and Target Task Data
windows are populated.
The Get Data command associates with the original cursor line; if you keep stepping
the data window remains attached to the original cursor line. You must press Get Data
again to go to the new current cursor line.
If Oracle Data Integrator is unable to parse the target SQL to identify the target table
name, a suggested query appears, such as:
select * from <SpecifyTargetTableName>
You must review and modify the query before executing, as the content may be
inappropriate to execute unchanged.
8-11
Chapter 8
Using the Debugging Cursor
Debugging Variables
Use the Debug Variables tab to view all the variables used in the current session, and
see how a variable may change as you step through the steps and tasks. You can
change the value of a variable to affect the execution of the session.
You can view the following information for each variable:
Properties Description
Name Name of the variable.
Value Value of the variable. Can be modified to change execution.
Type Type of the variable.
Modifying Variables
To modify a variable:
1. Set breakpoints, if required. See Using Breakpoints.
2. Position the cursor in the blueprint.
3. In the Debug Variables tab, select the variable whose value you want to modify.
4. Start or resume the execution of the session.
Debugging Threads
Use the Debug Threads tab to see all threads for the connected Session Editor in
focus. The icon of the thread shows whether the thread is suspended or executing.
Go To Source
The Go To Source context menu command on each thread jumps to the thread
location inside the blueprint.
8-12
Chapter 8
Managing Debugging Sessions
Properties Description
Agent Agent executing the session.
Session Number ID of the session.
Session Name Name of the session.
Session Connected Shows whether the session is connected or not connected to the
debugger client.
Restart Execution
In the session window, you can restart a stopped session.
To restart a session:
1. In the upper left of the session window, select Restart Execution.
The Restart Execution window appears.
2. To select the agent to execute the session, select one of the following options:
• Use the Previous Agent: <agent name> to use the agent that was used to
execute a previous session.
• Choose another Agent: to select the agent that you want to use to execute
the session. Select Internal to use the ODI Studio built-in agent.
3. Select the Log Level. Log level 6 has the same behavior as log level 5, but with
the addition of variable and sequence tracking.
8-13
Chapter 8
Managing Debugging Sessions
8-14
9
Monitoring Integration Processes
This chapter describes how to manage your development executions in Operator
Navigator. An overview of the Operator Navigator's user interface is provided.
This chapter includes the following sections:
• Introduction to Monitoring
• Monitoring Executions Results
• Managing your Executions
Introduction to Monitoring
Monitoring your development executions consists of viewing the execution results and
managing the development executions when the executions are successful or in error.
This section provides an introduction to the monitoring features in Oracle Data
Integrator. How to work with your execution results is covered in Monitoring
Executions Results. How to manage your development executions is covered in
Managing your Executions.
9-1
Chapter 9
Introduction to Monitoring
Scenarios
A scenario is designed to put a source component (mapping, package, procedure,
variable) into production. A scenario results from the generation of code (SQL, shell,
etc.) for this component.
When a scenario is executed, it creates a Session.
Scenarios are imported into production environment and can be organized into Load
Plan and Scenario folders. See Managing Scenarios and Load Plansfor more details.
Sessions
In Oracle Data Integrator, an execution results in a Session. Sessions are viewed and
managed in Operator Navigator.
9-2
Chapter 9
Introduction to Monitoring
Load Plans
A Load Plan is the most course-grained type of executable object in Oracle Data
Integrator, used to organize and run finer-grained objects. It uses Scenarios in its
steps. A Load Plan is an organized hierarchy of child steps. This hierarchy allows
conditional processing of steps in parallel or in series.
Load Plans are imported into production environments and can be organized into Load
Plan and Scenario folders. See Managing Scenarios and Load Plansfor more details.
9-3
Chapter 9
Introduction to Monitoring
is created for this Load Plan instance. A Load Plan run corresponds to an attempt to
execute the instance. See the Load Plan Execution Lifecycle section in Developing
Integration Projects with Oracle Data Integrator for more information.
When running, a Load Plan Run starts sessions corresponding to the scenarios
sequenced in the Load Plan.
Note that in the list of Load Plan executions, only the Load Plan runs appear. Each run
is identified by a Load Plan Instance ID and an Attempt (or Run) Number.
Schedules
You can schedule the executions of your scenarios and Load Plans using Oracle Data
Integrator's built-in scheduler or an external scheduler. Both methods are detailed in
Scheduling Scenarios and Load Plans.
The schedules appear in Designer and Operator Navigator under the Scheduling
node of the scenario or Load Plan. Each schedule allows a start date and a repetition
cycle to be specified.
Log
The Oracle Data Integrator log corresponds to all the Sessions and Load Plan
instances/runs stored in a repository. This log can be exported, purged or filtered for
monitoring. See Managing the Log for more information.
Status
A session, step, task or Load Plan run always has a status. Table 9-2 lists the six
possible status values:
9-4
Chapter 9
Introduction to Monitoring
When finished, a session takes the status of the last executed step (Done or Error).
When finished, the step, takes the status of the last executed task (Except if the task
returned a Warning. In this case, the step takes the status Done).
A Load Plan is successful (status Done) when all its child steps have been executed
successfully. It is in Error status when at least one of its child steps is in error and has
raised its exception to the root step.
Task Types
Tasks are the nodes inside of steps in a session. The types of tasks are shown in
Table 9-3.
9-5
Chapter 9
Monitoring Executions Results
Monitoring Sessions
To monitor your sessions:
1. In the Operator Navigator, expand the Session List navigation tree.
2. Expand the All Executions node and click Refresh in the Navigator toolbar.
3. Optionally, activate a Filter to reduce the number of visible sessions. For more
information, see Filtering Sessions.
4. Review in the list of sessions the status of your session(s).
9-6
Chapter 9
Monitoring Executions Results
• For the Run Scenario steps, you can click in the Session ID column to open
the session started by this Load Plan for this step.
Note:
Fixing the code in the session's task does not fix the source object that was
executed (mapping, procedure, package or scenario). This source object
must be fixed in Designer Navigator and the scenario (if any) must be
regenerated. Modifying the code within the session is useful for debugging
issues.
WARNING:
When a session fails, all connections and transactions to the source and
target systems are rolled back. As a consequence, uncommitted statements
on transactions are not applied.
9-7
Chapter 9
Monitoring Executions Results
Record Statistics
Properties Description
No. of Inserts Number of rows inserted during the session/step/task.
No. of Updates Number of rows updated during the session/step/task.
No. of Deletes Number of rows deleted during the session/step/task.
No. of Errors Number of rows in error in the session/step/task.
No. of Rows Total number of rows handled during this session/step/task.
Execution Statistics
Properties Description
Start Start date and time of execution of the session/step/task.
End End date and time of execution of the session/step/task.
Duration (seconds) The time taken for execution of the session/step/task.
Return code Return code for the session/step/task.
Execution Details The metrics about the performance of the loading task and any
configuration data that have an impact on performance.
For session steps in which a mapping has been executed or a datastore check has
been performed, the target table details are displayed. Also, for session steps in which
a mapping has been executed, the Knowledge Modules used in the mapping are
displayed in the Knowledge Module Details section of the Session Step Editor.
If tracking is enabled for a session, information regarding the variable or sequence is
displayed in the Variable and Sequence Values section of the Session Step Editor and
Session Task Editor.
You can view the options selected to limit concurrent executions of a session in the
Concurrent Execution Controller section of the Session Editor. See the Controlling
Concurrent Execution of Scenarios and Load Plans section in Developing Integration
Projects with Oracle Data Integrator for more information.
9-8
Chapter 9
Managing your Executions
Managing Sessions
Managing sessions involves the following tasks
• New sessions can be created by executing run-time objects or scenarios. See
Running Integration Processesfor more information on starting sessions.
9-9
Chapter 9
Managing your Executions
Parameter Description
Session Count Number of sessions for which to skip cleanup. If the count is
zero, all sessions that match the filter criteria are cleaned up.
From Start date for the cleanup. All sessions started after this date
are cleaned up.
9-10
Chapter 9
Managing your Executions
Parameter Description
To End date for the cleanup. All sessions started before this date
are cleaned up.
Context Cleans up only those sessions executed in this context.
Agent Cleans up only those sessions executed by this agent.
User Cleans up only those sessions launched by this user.
Session Name Name of the session.
3. Click OK.
Filtering Sessions
Filtering log sessions allows you to display only certain sessions in Operator
Navigator, by filtering on parameters such as the user, status or duration of sessions.
Sessions that do not meet the current filter are hidden from view, but they are not
removed from the log.
To filter out sessions:
1. In the Operator Navigator toolbar menu, click Filter. The Define Filter editor
opens.
2. In the Define Filter Editor, set the filter criteria according to your needs. Note that
the default settings select all sessions.
• Session Number: Use blank to show all sessions.
9-11
Chapter 9
Managing your Executions
• Session Name: Use % as a wildcard. For example DWH% matches any session
whose name begins with DWH.
• Session's execution Context
• Agent used to execute the session
• User who launched the session
• Status: Running, Waiting etc.
• Date of execution: Specify either a date From or a date To, or both.
While filtering to view running sessions in any version of ODI Operator, specify
only the (From) field and leave the (To) field blank.
If the (From) and (To) fields are specified, sessions that started after the
(From) date and finished before the (To) date will be identified . Since running
sessions do not have a known finish time, the (To) field should be left null.
This will allow for running sessions to be identified.
• Duration greater than a specified number of seconds
3. Click Apply for a preview of the current filter.
4. Click OK.
Sessions that do not match these criteria are hidden in the Session List navigation
tree. The Filter button on the toolbar is activated.
To deactivate the filter click Filter in the Operator toolbar menu. The current filter is
deactivated, and all sessions appear in the list.
Parameter Description
Purge Type Select the objects to purge.
From ... To Sessions and/or Load Plan runs in this time range will be
deleted.
When you choose to purge session logs only, then the
sessions launched as part of the Load Plan runs are not
purged even if they match the filter criteria.When you purge
Load Plan runs, the Load Plan run which matched the filter
criteria and the sessions launched directly as part of the Load
Plan run and its child/grand sessions will be deleted.
9-12
Chapter 9
Managing your Executions
Parameter Description
Context Sessions and/or Load Plan runs executed in this context will
be deleted.
Agent Sessions and/or Load Plan runs executed by this agent will
be deleted.
Status Session and/or Load Plan runs in this status will be deleted.
User Sessions and/or Load Plan runs executed by this user will be
deleted.
Name Sessions and/or Load Plan runs matching this session name
will be deleted. Note that you can specify session name
masks using % as a wildcard.
Purge scenario reports If you select Purge scenario reports, the scenario reports
(appearing under the execution node of each scenario) will
also be purged.
Only the sessions and/or Load Plan runs matching the specified filters will be
removed:
• When you choose to purge session logs only, then the sessions launched as
part of the Load Plan runs are not purged even if they match the filter criteria.
• When you purge Load Plan runs, the Load Plan run which matched the filter
criteria and the sessions launched directly as part of Load Plan run and its
child/grand sessions will be deleted.
• When a Load Plan run matches the filter, all its attached sessions are also
purged irrespective of whether they match the filter criteria or not.
3. Click OK.
Oracle Data Integrator removes the sessions and/or Load Plan runs from the log.
Note:
It is also possible to delete sessions or Load Plan runs by selecting one or
more sessions or Load Plan runs in Operator Navigator and pressing the
Delete key. Deleting a Load Plan run in this way, deletes the corresponding
sessions.
9-13
Chapter 9
Managing your Executions
Note:
Only sessions or load plans with all the keywords of a given session folder
will be shown below that session folder. Keyword matching is case sensitive.
Table 9-6 lists examples of how session folder keywords are matched.
To launch a session with keywords, you can for example start a scenario from a
command line with the -KEYWORDS parameter. Refer to Running Integration
Processesfor more information.
Note:
Session folder keyword matching is dynamic. If the keywords for a session
folder are changed or if a new folder is created, existing sessions are
immediately re-categorized.
9-14
Chapter 9
Managing your Executions
4. In the Export the log dialog, set the log export parameters as described in
Table 9-7.
Properties Description
Export to directory Directory in which the export file will be created.
Export to zip file If this option is selected, a unique compressed file containing
all log export files will be created. Otherwise, a set of log
export files is created.
Zip File Name Name given to the compressed export file.
Filters This set of options allow to filter the log files to export
according to the specified parameters.
Log Type From the list, select for which objects you want to retrieve the
log. Possible values are: All|Load Plan runs and
attached sessions|Sessions
From / To Date of execution: specify either a date From or a date To, or
both.
Agent Agent used to execute the session. Leave the default All
Agents value, if you do not want to filter based on a given
agent.
Context Session's execution Context. Leave the default All Contexts
value, if you do not want to filter based on a context.
Status The possible states are Done, Error, Queued, Running,
Waiting, Warning and All States. Leave the default All
States value, if you do not want to filter based on a given
session state.
User User who launched the session. Leave the default All Users
value, if you do not want to filter based on a given user.
Session Name Use % as a wildcard. For example DWH% matches any session
whose name begins with DWH.
Encryption These fields allow you to provide an Export Key, used to
encrypt any sensitive data that is contained in the exported
object. See the Export Keys section in Developing Integration
Projects with Oracle Data Integrator for details.
Export Key Specifies the AES KEY for any sensitive data encryption
needed during the export.
The export key string is minimum 8 characters long and
maximum 100 characters long. It should have at least one
special character (@#$%+/=) or digit, and at least one
alphabetic lower or upper case character.
Confirm Export Key Enter your Export Key again.
Save Export Key If checked, your Export Key is saved for all future exports.
Advanced options This set of options allow to parameterize the output file
format.
Character Set Encoding specified in the export file. Parameter encoding in
the XML file header.
<?xml version="1.0" encoding="ISO-8859-1"?>
Java Character Set Java character set used to generate the file.
9-15
Chapter 9
Managing your Executions
5. Click OK.
The log data is exported into the specified location.
Note that you can also automate the log data export using the OdiExportLog tool (see:
the OdiExportLog section in Oracle Data Integrator Tools Reference).
Note:
A verbose logging will slow down the ODI performance.
Log Level
The log level can be set against a log_handler and/or logger elements. Note the
following when setting the log level in the log configuration file for the ODI component:
9-16
Chapter 9
Managing your Executions
Table 9-8 Mapping between Java Log Levels and Oracle Java Debugging
Levels
9-17
Chapter 9
Managing your Executions
It is recommended that the console level for oracle.odi.agent is set so that agent
startup messages are displayed (NOTIFICATION:1).
9-18
Chapter 9
Managing your Executions
Managing Schedules
A schedule is always attached to one scenario or one Load Plan. Schedules can be
created in Operator Navigator. See Scheduling Scenarios and Load Plansfor more
information.
You can also import an already existing schedule along with a scenario or Load Plan
import. See the Importing Scenarios in Production and Exporting, Importing and
Versioning Load Plans sections in Developing Integration Projects with Oracle Data
Integrator for more information.
You can view the scheduled tasks of all your agents or you can view the scheduled
tasks of one particular agent. See Displaying the Schedulefor more information.
9-19
10
Using Oracle Data Integrator Console
This chapter describes how to work with Oracle Data Integrator Console. An overview
of the Console user interface is provided.
This chapter includes the following sections:
• Introduction to Oracle Data Integrator Console
• Using Oracle Data Integrator Console
• ODI Domain
• Oracle Enterprise Manager Fusion Middleware Control
• Management Pack for Oracle Data Integrator
10-1
Chapter 10
Introduction to Oracle Data Integrator Console
Note:
Oracle Data Integrator Console is required for the Fusion Middleware Control
Extension for Oracle Data Integrator. It must be installed and configured for
this extension to discover and display the Oracle Data Integrator components
in a domain.
Oracle Data Integrator Console displays the objects available to the current user in two
Navigation tabs in the left panel:
• Browse tab displays the repository objects that can be browsed and edited. In this
tab you can also manage sessions and error tables.
• Management tab is used to manage the repositories and the repository
connections. This tab is available to connection users having Supervisor
privileges, or to any user to set up the first repository connections.
The right panel displays the following tabs:
• Search tab is always visible and allows you to search for objects in the connected
repository.
10-2
Chapter 10
Using Oracle Data Integrator Console
• One Master/Details tab is displayed for each object that is being browsed or
edited. Note that it is possible to browse or edit several objects at the same time.
The search field above the Navigation tabs allows you to open the search tab when it
is closed.
Note:
Oracle Data Integrator Console uses the security defined in the master
repository. Operations that are not allowed for a user will appear grayed out
for this user.
In addition, the Management tab is available only for users with Supervisor
privileges.
10-3
Chapter 10
Using Oracle Data Integrator Console
Note:
The first time you connect to Oracle Data Integrator Console, if no repository
connection is configured, you will have access to the Management tab to
create a first repository connection. See Creating a Repository Connectionfor
more information. After your first repository connection is created, the
Management tab is no longer available from the Login page, and is available
only for users with Supervisor privileges.
Note:
Creating, editing, and deleting operations are not allowed for Scenarios and
Load Plans. For more information on the possible actions that can be
performed with these objects in ODI Console, see Managing Scenarios and
Sessionsand Managing Load Plans.
• Viewing an Object
• Editing an Object
• Creating an Object
• Deleting an Object
• Searching for an Object
Viewing an Object
To view an object:
1. Select the object in the Browse or Management Navigation tab.
2. Click View in the Navigation tab toolbar. The simple page or the Master/Detail
page for the object opens.
10-4
Chapter 10
Using Oracle Data Integrator Console
Editing an Object
To edit an object:
1. Select the object in the Browse or Management Navigation tab.
2. Click Update in the Navigation tab toolbar. The edition page for the object opens.
3. Change the value for the object fields.
4. Click Save in the edition page for this object.
Creating an Object
To create an object:
1. Navigate to the parent node of the object you want to create in the Browse or
Management Navigation tab. For example, to create a Context, navigate to the
Topology > Contexts node in the Browse tab.
2. Click Create in the Navigation tab toolbar. An Add dialog for this object appears.
3. Provide the values for the object fields.
4. Click Save in the Add dialog of this object. The new object appears in the
Navigation tab.
Deleting an Object
To delete an object:
1. Select the object in the Browse or Management Navigation tab.
2. Click Delete in the Navigation tab toolbar.
3. Click OK in the confirmation window.
10-5
Chapter 10
Using Oracle Data Integrator Console
3. Click Search.
4. The Search Results appear, grouped by object type. You can click an object in
the search result to open its master/details page.
Importing a Scenario
To import a scenario:
1. Select the Browse Navigation tab.
2. Navigate to Runtime > Scenarios/Load Plans > Scenarios.
3. Click Import in the Navigation tab toolbar.
4. Select an Import Mode and select an export file in Scenario XML File.
5. Click Import Scenario.
6. If prompted, enter the Export Key used when this scenario was exported. If you
do not enter an Export Key, any encrypted sensitive (cipher) data will be stripped
from the imported object. For more information about the Export Key, see the
Export Keys section in Developing Integration Projects with Oracle Data Integrator.
Exporting a Scenario
To export a scenario:
1. Select the Browse Navigation tab.
2. Navigate to Runtime > Scenarios/Load Plans > Scenarios.
3. Click Export in the Navigation tab toolbar.
4. In the Export Scenario dialog, set the parameters as follows:
• From the Scenario Name list, select the scenario to export.
• In the Encoding Java Charset field, enter the Java character set for the
export file.
• In the Encoding XML Charset field, enter the encoding to specify in the
export file.
• In the XML Version field, enter the XML Version to specify in the export file.
10-6
Chapter 10
Using Oracle Data Integrator Console
• In the Export Key field, enter the AES KEY for any sensitive data encryption
needed during the export. The export key string is minimum 8 characters long
and maximum 100 characters long. It should have at least one special
character (@#$%+/=) or digit, one alphabetic lower or upper case character.
• In the Confirm Export Key field, enter the export key again.
• Optionally, select Save export key for later exports to save the export key
for all future exports.
• Optionally, select Include Dependant objects to export linked child objects.
5. Click Export Scenario.
Running a Scenario
To execute a scenario:
1. Select the Browse Navigation tab.
2. Navigate to Runtime > Scenarios/Load Plans > Scenarios.
3. Select the scenario you want to execute.
4. Click Execute in the Navigation tab toolbar.
5. Select an Agent, a Context, and a Log Level for this execution.
6. Click Execute Scenario.
Stopping a Session
Note that you can perform a normal or an immediate kill of a running session.
Sessions with the status Done, Warning, or Error cannot be killed.
To kill a session:
1. Select the Browse Navigation tab.
2. Navigate to Runtime > Sessions/Load Plan Executions > Sessions.
3. Select the session you want to stop.
4. Click Kill in the Navigation tab toolbar.
Restarting a Session
To restart a session:
1. Select the Browse Navigation tab.
2. Navigate to Runtime > Sessions/Load Plan Executions > Sessions.
3. Select the session you want to restart.
4. Click Restart in the Navigation tab toolbar.
5. In the Restart Session dialog, set the parameters as follows:
• Agent: From the list, select the agent you want to use for running the new
session.
• Log Level: From the list, select the log level. Select Log Level 6 in the
Execution or Restart Session dialog to enable variable tracking. Log level 6
has the same behavior as log level 5, but with the addition of variable tracking.
6. Click Restart Session.
10-7
Chapter 10
Using Oracle Data Integrator Console
Note:
Sessions with erroneous data detected finish in Warning status.
Note:
Delete operations cannot be undone.
10-8
Chapter 10
Using Oracle Data Integrator Console
Note:
When you import a Load Plan that has been previously exported, the
imported Load Plan does not include the scenarios referenced by the Load
Plan. Scenarios used in a Load Plan need to be imported separately. See
Importing a Scenariofor more information.
10-9
Chapter 10
Using Oracle Data Integrator Console
• In the Encoding Java Charset field, enter the Java character set for the
export file.
• In the Encoding XML Charset field, enter the encoding to specify in the
export file.
• In the XML Version field, enter the XML Version to specify in the export file.
• In the Export Key field, enter the AES KEY for any sensitive data encryption
needed during the export. The export key string is minimum 8 characters long
and maximum 100 characters long. It should have at least one special
character (@#$%+/=) or digit, one alphabetic lower or upper case character.
• In the Confirm Export Key field, enter the export key again.
• Optionally, select Save export key for later exports to save the export key
for all future exports.
• Optionally, select Include Dependant objects to export linked child objects.
6. Click Export.
Note:
The export of a Load Plan does not include the scenarios referenced by the
Load Plan. Scenarios used in a Load Plan need to be exported separately.
See Exporting a Scenariofor more information.
10-10
Chapter 10
Using Oracle Data Integrator Console
Parameter Description
Purge Type Select the objects to purge.
From ... To Sessions and/or Load Plan runs in this time range will be
deleted.
When you choose to purge session logs only, then the
sessions launched as part of the Load Plan runs are not
purged even if they match the filter criteria.When you purge
Load Plan runs, the Load Plan run which matched the filter
criteria and the sessions launched directly as part of the Load
Plan run and its child/grand sessions will be deleted.
Context Sessions and/or Load Plan runs executed in this context will
be deleted.
Agent Sessions and/or Load Plan runs executed by this agent will
be deleted.
Status Session and/or Load Plan runs in this status will be deleted.
User Sessions and/or Load Plan runs executed by this user will be
deleted.
10-11
Chapter 10
Using Oracle Data Integrator Console
Parameter Description
Name Sessions and/or Load Plan runs matching this session name
will be deleted. Note that you can specify session name
masks using % as a wildcard.
Purge scenario reports If you select Purge scenario reports, the scenario reports
(appearing under the execution node of each scenario) will
also be purged.
Only the sessions and/or Load Plan runs matching the specified filters will be
removed:
• When you choose to purge session logs only, then the sessions launched as
part of the Load Plan runs are not purged even if they match the filter criteria.
• When you purge Load Plan runs, the Load Plan run which matched the filter
criteria and the sessions launched directly as part of Load Plan run and its
child/grand sessions will be deleted.
• When a Load Plan run matches the filter, all its attached sessions are also
purged irrespective of whether they match the filter criteria or not.
5. Click OK.
Oracle Data Integrator Console removes the sessions and/or Load Plan runs from the
log.
10-12
Chapter 10
Using Oracle Data Integrator Console
5. Select Show Mappings if you want that mappings are displayed between the
datastores nodes.
6. Select the prefix to add in your datastores and mapping names in the Naming
Options section.
7. Click View to draw the Data Lineage graph. This graph is centered on the
datastore selected in step 4.
In this graph, you can use the following actions:
• Click Go Back to return to the Data Lineage options and redraw the graph.
• Use the Hand tool and then click a datastore to redraw the lineage centered
on this datastore.
• Use the Hand tool and then click a mapping to view this mapping's page.
• Use the Arrow tool to expand/collapse groups.
• Use the Move tool to move the graph.
• Use the Zoom In/Zoom Out tools to resize the graph.
• Select View Options to change the display options have the graph refreshed
with this new option.
10-13
Chapter 10
Using Oracle Data Integrator Console
10-14
Chapter 10
Using Oracle Data Integrator Console
Administering Repositories
Oracle Data Integrator Console provides you with features to perform management
operations (create, import, export) on repositories. These operations are available
from the Management Navigation tab, under the Repositories node. These
management operations reproduce in a web interface the administrative operations
available via the Oracle Data Integrator Studio and allow setting up and maintaining
your environment from the ODI Console.
See Administering Repositories and the Exporting and Importing section inDeveloping
Integration Projects with Oracle Data Integrator for more information on these
operations.
10-15
Chapter 10
ODI Domain
ODI Domain
An ODI domain contains the Oracle Data Integrator components that can be managed
using Enterprise Manager. An ODI domain contains:
• One master repository and one or more work repositories attached to it.
• One or several run-time agents attached to the master repositories. These agents
must be declared in the master repositories to appear in the domain. These agents
may be Standalone agents, Standalone Colocated agents, or Java EE agents.
See Setting Up a Topologyfor information about how to declare the agents in the
master repositories.
• One or several Oracle Data Integrator Console applications. An Oracle Data
Integrator Console application is used to browse master and work repositories.
The Master Repositories and Agent pages display both application metrics and
information about the master and work repositories. You can also navigate to Oracle
Data Integrator Console from these pages, for example to view the details of a
session. In order to browse Oracle Data Integrator Console, the connections to the
work and master repositories must be declared in Oracle Data Integrator Console. See
Installing and Configuring Oracle Data Integrator for information on how to create and
configure a domain.
10-16
Chapter 10
Oracle Enterprise Manager Fusion Middleware Control
Figure 10-2 ODI Console Within Oracle Enterprise Manager Fusion Middleware
Control
10-17
Chapter 10
Oracle Enterprise Manager Fusion Middleware Control
Note:
To use Oracle Enterprise Manager with Oracle Data Integrator Console, and
your agent resides in a separate domain, you must first create the
appropriate Credential Store Entries for Oracle Enterprise Manager. See the
Specifying Supervisor Credentials section in Installing and Configuring
Oracle Data Integrator for more information.
Note:
If you want Oracle Enterprise Manager to drill down into Oracle Data
Integrator Console using a different URL than the one detected by Oracle
Enterprise Manager, you will need to reconfigure this in Oracle Enterprise
Manager. Reconfiguration is not mandatory but may be needed when using
a firewall for HTTP load balancing to Oracle Data Integrator Console.
For more information on using Oracle Enterprise Manager, see Administering Oracle
Fusion Middleware.
10-18
Chapter 10
Oracle Enterprise Manager Fusion Middleware Control
Searching Sessions
You can search for sessions that have been executed in the managed ODI domain.
The steps for this process are:
10-19
Chapter 10
Management Pack for Oracle Data Integrator
10-20
Chapter 10
Management Pack for Oracle Data Integrator
Oracle Enterprise Manager Cloud Control Getting Started with Oracle Fusion
Middleware Management Plug-in.
10-21
Part IV
Managing Security Settings
This part describes how to manage the security settings in Oracle Data Integrator.
Part IV contains the following chapter:
• Managing Security in Oracle Data Integrator
11
Managing Security in Oracle Data
Integrator
This chapter describes how to set up security in Oracle Data Integrator. It includes an
overview of Oracle Data Integrator security concepts and components.
This chapter includes the following sections:
• Introduction to Oracle Data Integrator Security
• User Management
• Advanced Encryption Standard
• Using a Password-Protected Wallet for Storing Login Credentials
• Setting Up External Password Storage
• Managing the Authentication Mode
• Configuring External Authentication
• Configuring OWSM Policies for JRF-ODI Asynchronous Web Services with
Callback
• Enforcing Password Policies
• Configuring Standalone or Standalone Colocated Agents to Use a Secure
Transport
• Configuring Oracle Data Integrator with a Web Proxy Server
• Configuring Single Sign-On (SSO) for Oracle Data Integrator Console and
Enterprise Manager using Oracle Access Manager
• Best Security Practices for Oracle Data Integrator
11-1
Chapter 11
Introduction to Oracle Data Integrator Security
A method is an action that can be performed on an object, such as edit, delete, and
so on. Each object has a predefined set of methods.
Note:
The notions of object instance and method in Oracle Data Integrator are
similar to the same concepts used in object-oriented programming.
Caution:
Although they appear in the Security Navigator, objects and methods are
predefined in Oracle Data Integrator and should not be altered.
Profiles
A profile contains a set of privileges for working with Oracle Data Integrator. You can
assign one or more profiles to a user, or to a role, to grant the sum of the privileges in
those profiles to that user or role.
A profile method is an authorization granted to a profile on a method of an object
type. Each granted method allows a user with this profile to perform an action on all
instances of an object type.
In Oracle Data Integrator Studio, methods granted to a profile appear under this profile
in the Profiles navigation tree of the Security Navigator. When a method does not
appear for a given profile, this profile does not have access to this method.
A method can be granted as a generic or nongeneric privilege:
• A method granted as a generic privilege is granted by default on all the instances
of this object.
• A method granted as a nongeneric privilege is not granted by default on all object
instances, but may be granted on a per instance basis.
11-2
Chapter 11
Introduction to Oracle Data Integrator Security
Built-In Profiles
Oracle Data Integrator contains built-in profiles that you can assign to the users or
roles you create.
Table 11-1 shows the built-in profiles provided by Oracle Data Integrator.
11-3
Chapter 11
Introduction to Oracle Data Integrator Security
Note:
Oracle recommends not modifying built-in profiles because they evolve to
secure new features of Oracle Data Integrator. If you want to customize your
own profiles or existing profiles, Oracle recommends that you create copies
of the built-in profiles and then customize those copies.
Users
A user is an Oracle Data Integrator user. A user inherits the following privileges:
• All the privileges granted to its various profiles
• Privileges on objects or instances, or both, given to this user
A user method is a privilege granted to a user on a method of an object type. Each
granted method allows the user to perform an action (edit, delete, and so forth) on
instances of an object type (project, model, data store, and so forth). These methods
are similar to profiles methods, but applied to users.
You can grant users with privileges on instances on specific work repositories where
these instances exist. For example, you may grant a developer user with the edit
privilege on the LOAD_DATAWAREHOUSE scenario on the a DEVELOPMENT
repository and not on a PRODUCTION repository.
You grant an authorization by object instance to a user on an object instance. It allows
you to grant to this user certain methods of this object instance.
An authorization by object instance for a given instance that appears in a user's tree
indicates that the user is granted specific privileges on the object methods for the
given instance. You specify these privileges in the object instance editor. If an instance
is not visible in the tree of the user instances, then the User Method or Profile Method
privileges for the object type apply.
Because an instance may be replicated over the different work repositories that are
attached to the master repository, you can define authorizations by object instances
for one, several, or all your work repositories that are attached to this master
repository. For example, you can replicate a LOAD_DATAWAREHOUSE scenario
instance (using, for example, versioning) in the DEVELOPMENT, TEST, and
PRODUCTION repositories. Privileges on the instance can change depending on the
repository. For example, it is common to replicate projects from a development
repository to a test repository. You can grant edit privileges to a developer for that
developer's project in the development repository, but not in the test repository. In the
test repository, the developer is granted with only view privileges on the project.
Roles
If Oracle Data Integrator is configured to use external authentication (see
Configuring External Authentication), you can leverage the enterprise role
integration feature in Oracle Data Integrator. Enterprise role integration in Oracle
Data Integrator is based on the authorization model in Oracle Platform Security
Services (OPSS). This feature allows you to map enterprise roles to Oracle Data
Integrator roles, enabling enterprise users of a particular enterprise role to access
11-4
Chapter 11
User Management
Oracle Data Integrator through the permissions granted to the Oracle Data Integrator
roles in the mapping.
Enterprise role integration in Oracle Data Integrator enables you to:
• Create a set of Oracle Data Integrator roles.
• Grant Oracle Data Integrator privileges (instance level and type level) and profiles
to Oracle Data Integrator roles.
• Map enterprise principals — that is, users or roles — defined in an external identity
store to Oracle Data Integrator roles.
• Determine the privileges granted to a user who is authenticated into Oracle Data
Integrator by evaluating all the Oracle Data Integrator roles to which the user is
mapped directly or indirectly through enterprise roles. (Privileges are automatically
calculated during authorization.).
For an introduction to enterprise roles, see the Understanding Users and Roles
chapter in Securing Applications with Oracle Platform Security Services. For details
about how enterprise role integration works in Oracle Data Integrator and how you can
manage roles in Oracle Data Integrator Studio, see Mapping Principals Defined in an
Identity Store to Oracle Data Integrator Roles.
User Management
This section explains how to use the different security capabilities to enforce security
in Oracle Data Integrator.
This section contains the following topics:
• Security Policy Approaches
• Managing Profiles
• Managing Users
• Managing Privileges
11-5
Chapter 11
User Management
Note:
It is possible to combine the two approaches by simultaneously using generic
and non generic profiles. For example, by using DESIGNER and
NG_METADATA_ADMIN for the users, you manage projects in a generic
approach, and manage models in a strongly secured approach.
Managing Profiles
You can create, delete, or duplicate profiles. Creating and duplicating profiles enables
you to customize the profiles assigned to users. The following topics provide the steps
for performing these procedures in Oracle Data Integrator Studio.
Duplicating a Profile
To duplicate a profile:
1. In Security Navigator expand the Profiles navigation tree.
2. Select the profile that you want to duplicate from the list of profiles.
3. Right-click and select Duplicate.
A new profile appears, which is a copy of the original profile.
Deleting a Profile
To delete a profile:
1. In Security Navigator expand the Profiles navigation tree.
2. Select the profile that you want to delete from the list of profiles.
3. Right-click and select Delete.
4. Click OK in the Confirmation dialog.
The profile disappears from the list. All users granted with this profile lose the
privileges attached to this profile.
11-6
Chapter 11
User Management
Managing Users
The way in which you manage users depends, in part, on where the user is defined.
By default, a user corresponds to the login name used to connect to a repository and
is persisted in the internal repository of Oracle Data Integrator. However, if external
authentication is enabled for Oracle Data Integrator components:
• Users authenticated into Oracle Data Integrator are created and managed in an
external identity store, such as Oracle Internet Directory. You use the tools and
utilities provided with that store to create, update, and delete users.
• To let external users access Oracle Data Integrator, you can do any of the
following:
– Map the external user to an Oracle Data Integrator role.
– Map any of the enterprise roles to which this external user belongs to an
Oracle Data Integrator role.
– Register the external user in Oracle Data Integrator using the Security
Navigator as in prior releases.
• You can assign profiles or other security privileges directly to external users who
are registered in Oracle Data Integrator. Or you can assign profiles or other
security privileges to an Oracle Data Integrator role, and then map external users
(or any of the external users' enterprise roles) to that Oracle Data Integrator role.
By doing the latter, an external user can inherit all the profiles or privileges granted
to the Oracle Data Integrator role.
You can also map an enterprise user (or the user's enterprise roles) to multiple
Oracle Data Integrator roles. When a user is authenticated, Oracle Data Integrator
calculates the user's privileges as a union of all the privileges granted to all the
Oracle Data Integrator roles in the mapping.
For more information about external authentication, see Configuring External
Authentication. For more information about enterprise role integration, see Mapping
Principals Defined in an Identity Store to Oracle Data Integrator Roles.
11-7
Chapter 11
User Management
The new user appears in the Users navigation tree. From the User editor, an ODI
supervisor user can disable other ODI user accounts including other supervisor
accounts.
WARNING:
At least one supervisor user account should be maintained at all times. If all
supervisor user accounts expire, contact Oracle Support.
Note:
If external authentication is enabled, you can assign profiles to roles. Users
who are defined in a given Oracle Data Integrator role are granted all the
profiles assigned to that role. Enterprise role integration gives you a more
convenient and coarse-grained approach to managing the privileges granted
to users. For more information, see Assign Privileges or Profiles to Oracle
Data Integrator Roles.
11-8
Chapter 11
User Management
Note:
If external authentication is enabled, you can remove profiles from roles.
Users who are defined in a given Oracle Data Integrator role are granted
only the profiles assigned to that role. For more information, see Assign
Privileges or Profiles to Oracle Data Integrator Roles.
Managing Privileges
After creating users and profiles, you can grant privileges to these users and profiles.
You can grant profile methods and user methods that apply to object types, and you
can also grant authorizations by object instances (for users only) that apply to specific
object instances.
Note:
If external authentication is enabled for Oracle Data Integrator components,
you can manage privileges for users more conveniently by using the
enterprise role integration feature. For more information, see Using the Roles
Editor.
11-9
Chapter 11
User Management
2. Expand the Objects navigation tree, and expand the node of the object for which
you want to grant a privilege.
3. Select the method that you want to grant, then drag it on the user or profile you
want to grant the method to.
4. Click OK in the Confirmation window.
The method is granted to the user or the profile. The method appears either under the
objects node of this user or under the profile.
Note:
You can grant privileges on all the methods of an object by dragging the
object itself onto the user or profile instead of dragging one of its methods.
11-10
Chapter 11
User Management
Note:
Only certain objects support authorization by object instance. These object
types are listed under the Instances node for each user.
Methods for which the user has generic privileges are not listed in the Object
Instance Editor.
Note:
You can also revoke privileges per method by editing the Authorization by
Object instance and denying certain methods to this user. After this
operation, if the user no longer has any privilege on an instance, the instance
automatically disappears from the tree in Security Manager.
Note:
All work repositories attached to the master repository must be accessible so
that you can verify the existence of the objects in those repositories
11-11
Chapter 11
Advanced Encryption Standard
1. From the Security Navigator toolbar menu, select Clean Up Security Settings....
The Security Clean-up Tool dialog appears.
2. On the Cleanable tab, select Clean for the cleanable security settings you want to
remove. The security settings that cannot be removed are shown on the Non-
cleanable tab.
3. Click OK to clean up the selected security settings.
Note:
To use AES-256, you must download the Java Cryptography Extension
(JCE) Unlimited Strength Jurisdiction Policy files from the Oracle Java
Download site, accept the download terms and conditions, and then replace
the existing policy files with the downloaded policy files in JRE_HOME/lib/
security.
11-12
Chapter 11
Using a Password-Protected Wallet for Storing Login Credentials
Note the following about using the password-protected wallet in Oracle Data Integrator
Studio:
• When you create the wallet, you specify the wallet password and the days until the
password expires. Oracle Data Integrator then stores the repository login
credentials in the wallet.
• When you connect to an Oracle Data Integrator repository, you need only to enter
the wallet password. All repository login credentials are then automatically
retrieved from the wallet.
• The wallet file is named ewallet.p12 and is placed in the following directory:
Windows: %APPDATA%\odi\oracledi\ewallet
UNIX: $HOME/.odi/oracledi/ewallet
Note:
Depending on your environment, you might first need to create the root
directory for the wallet. For more information, seeCreating the Password-
Protected Wallet .
• When the wallet password expires, Oracle Data Integrator Studio automatically
prompts you to enter a new one when you attempt to log in to Studio.
• You can change the wallet password and expiration at any time from Studio.
The following sections explain how to create and use the password-protected wallet
for storing Oracle Data Integrator login credentials:
• Creating the Password-Protected Wallet
• Permitting Repository Access to Other Users
• Changing the Wallet Password
• Customizing How Login Credentials Are Saved
UNIX:
On UNIX machines, you must create the root directory path .odi/oracledi in the
location represented by the environment variable $HOME. For example:
prompt> mkdir -p $HOME/.odi/oracledi/
11-13
Chapter 11
Using a Password-Protected Wallet for Storing Login Credentials
UNIX:
./odi.sh
5. Choose the default option, Store passwords in a secure wallet, then enter the
password in the Wallet Password and Confirm Wallet Password fields.
Optionally, you can change the password expiration.
6. Click OK.
You are then prompted to enter login credentials for the master repository. For
more information about the required credentials, see Creating the Master
Repository.
Subsequently, each time you log in to Studio and connect to a repository, you are
prompted for the wallet password.
11-14
Chapter 11
Using a Password-Protected Wallet for Storing Login Credentials
3. Enter the current password and the new password, then confirm your new
password.
Optionally, you can also change the expiration.
4. Click OK.
11-15
Chapter 11
Using a Password-Protected Wallet for Storing Login Credentials
11-16
Chapter 11
Setting Up External Password Storage
Note:
When using external password storage, other security details such as user
names, password, and privileges remain in the master repository. It is
possible to externalize the authentication and have users and password
stored in an identity store using external authentication. Note also: The
external password storage option is unrelated to the external authentication
feature. For more information about external authentication, see Configuring
External Authentication.
11-17
Chapter 11
Setting Up External Password Storage
Use the Switch Password Storage wizard to change the password storage options of
the data server passwords.
Before launching the Switch Password Storage wizard perform the following tasks:
• Disconnect Oracle Data Integrator Studio from the repository.
• Shut down every component using the Oracle Data Integrator repository.
To launch the Switch Password Storage wizard:
1. From the ODI main menu, select Password Storage > Switch...
2. Specify the login details of your Oracle Data Integrator master repository as
defined when connecting to the master repository (see: Connecting to the Master
Repository).
3. Click Next.
4. Select the password storage:
• Select Internal Password Storage if you want to store passwords in the
Oracle Data Integrator repository.
• Select External Password Storage if you want use OPSS Credential Store
Framework (CSF) to store the data server and context passwords.
If you select external password storage, you must provide the MBean Server
Parameters to access the credential store described in Table 11-2, and then
click Test Connection check the connection to the MBean Server.
5. Click Finish.
The password storage options have been changed. You can now reconnect to the
Oracle Data Integrator repository.
11-18
Chapter 11
Managing the Authentication Mode
Caution:
When performing a password storage recovery, passwords for context, data
servers, JDBC password of the work repository and Enterprise Scheduler
related passwords are lost and need to be re-entered manually in Topology
Navigator.
Use the Recover Password Storage wizard to start the password recovery.
To launch the Recover Password Storage wizard:
1. From the ODI main menu, select Password Storage > Recover...
2. Specify the login details of your Oracle Data Integrator master repository defined
when connecting to the master repository (see: Connecting to the Master
Repository).
3. Click Finish.
4. Re-enter manually data server and context passwords. Refer to Setting Up a
Topologyfor more information.
11-19
Chapter 11
Configuring External Authentication
• When you switch the authentication mode from Studio. The Switch Authentication
Mode Wizard allows you to change the authentication mode used by an existing
master repository. For detailed steps to switch to external authentication mode in
Studio, using this wizard, see Switching an Existing Master Repository to External
Authentication Mode.
Note:
Before you can select external authentication mode in the master repository,
you must configure external authentication, as explained in Configuring
External Authentication.
Note:
When using external authentication, only users and passwords are
externalized. Oracle Data Integrator privileges remain within the repository.
The following sections explain how to set up external authentication for the Studio and
the Standalone agent:
• Configuring Oracle Data Integrator Studio for External Authentication
• Switching an Existing Master Repository to External Authentication Mode
• Reactivating Users After Switching to External Authentication
• Configuring Standalone or Standalone Colocated Agents for External
Authentication
• Mapping Principals Defined in an Identity Store to Oracle Data Integrator Roles
11-20
Chapter 11
Configuring External Authentication
UNIX:
prompt> mkdir -p $HOME/.odi/oracledi/
2. Copy the following files into the odi/oracledi directory:
• ORACLE_HOME/oracle_common/modules/oracle.jps_12.1.2/
domain_config/jse/jps-config.xml
• ORACLE_HOME/oracle_common/modules/oracle.jps_12.1.2/
domain_config/jse/system-jazn-data.xml
3. Change to the odi/oracledi directory.
4. Rename jps-config.xml to jps-config-jse.xml.
5. Open jps-config-jse.xml in an editor.
6. Add a service instance for the identity store provider and include the following
properties:
• The service instance name. For example, for Oracle Internet Directory,
name="idstore.oid".
• The idstore.type property.
• The bootstrap.security.principal.map property.
• The bootstrap.security.principal.key property.
For an example service instance configuration, see Example 11-1.
For details about specifying these properties for your identity store, see the LDAP
Identity Store Properties section in Securing Applications with Oracle Platform
Security Services.
11-21
Chapter 11
Configuring External Authentication
11-22
Chapter 11
Configuring External Authentication
Note:
This wallet file is different from the password-protected wallet used for
storing login credentials for Oracle Data Integrator Studio.
Password The password for the bootstrap user account that is used
to connect to the identity store.
After you enter the correct credentials for the bootstrap user account, the following
message is displayed:
The credentials have been successfully added to the boostrap credential store.
UNIX:
./odi.sh
3. In Oracle Data Integrator Studio, select File > New, select Master Repository
Creation Wizard, and click OK.
4. In the repository selection screen of the Master Repository Creation Wizard, enter
the connection parameters for the database that is to contain the master
repository, and click Test Connection to ensure the parameters are correct. For
details about configuring this database, see Installing and Configuring Oracle Data
Integrator.
11-23
Chapter 11
Configuring External Authentication
UNIX:
./odi.sh
3. In Oracle Data Integrator Studio, select ODI > Switch Authentication Mode....
The Login screen of the Switch Authentication Mode wizard is displayed, as shown
in Figure 11-4.
11-24
Chapter 11
Configuring External Authentication
4. Enter the login name of the master repository, the JDBC connection parameters,
and the user name and password for the master repository database user, then
click Next.
The Credentials screen of the Switch Authentication Mode wizard is displayed, as
shown in Figure 11-5.
11-25
Chapter 11
Configuring External Authentication
5. Click the Add button, which is shown as the green plus symbol adjacent to the
search field, to display the Enterprise Roles and Users Retrieval dialog box, shown
in Figure 11-6.
11-26
Chapter 11
Configuring External Authentication
You can use the Enterprise Roles and Users Retrieval dialog box to either:
• Enter a filter expression to display the roles and users in the identity store that
match the filter.
• Search the identity store for a specific role or user name.
You can expand the Enterprise Roles and Enterprise Users nodes to browse the
available enterprise roles and users in the identity store.
6. Select the user or role you wish to assign to the SUPERVISOR_ROLE role, then click
Finish.
If the external authentication mode switch is successful, a dialog box similar to the one
in Figure 11-7 is displayed:
11-27
Chapter 11
Configuring External Authentication
11-28
Chapter 11
Configuring External Authentication
4. Click Retrieve GUID. If the user name has a match in the identity store, this
external user's GUID appear in the External GUID field.
5. From the File main menu, select Save and disconnect.
6. Reconnect as this user (for example, the user SUPERVISOR shown in Figure 11-8)
using the password in the external identity store.
You should now be able to connect to Oracle Data Integrator Studio using the external
authentication.
Note the following:
• For troubleshooting LDAP server issues, it is very useful to use any LDAP client to
browse the LDAP tree. You can download an LDAP client from the following URL:
http://www.ldapbrowser.com/
• For any LDAP directory other than Microsoft Active Directory, make sure that the
property user.filter.object.classes is set correctly to the user's object class,
which by default is set to USER if not specified.
• If Oracle Data Integrator Console and Java EE agent are installed in your
environment, and you have switched Oracle Data Integrator Studio to external
authentication, you might be unable to log in to Oracle Data Integrator Console
and the Java EE agent also might fail. If this occurs, you must also configure
Oracle Data Integrator Console and Java EE agent for external authentication
using the same external identity store. The procedure for doing this is documented
in Note 1510434.1 at My Oracle Support, available at the following URL:
https://support.oracle.com/epmos/faces/DocumentDisplay?id=1510434.1
Note:
For information about creating an Oracle Data Integrator domain, see
Installing and Configuring Oracle Data Integrator.
11-29
Chapter 11
Configuring External Authentication
5. Add a service instance for the identity store provider and include the following
properties:
• The service instance name. For example, for Oracle Internet Directory,
name="idstore.oid".
• The idstore.type property.
• The bootstrap.security.principal.map property.
• The bootstrap.security.principal.key property.
For an example service instance configuration, see Example 11-1.
For details about specifying these properties for your identity store, see the LDAP
Identity Store Properties section in Securing Applications with Oracle Platform
Security Services.
6. In the default jps context, change the serviceInstanceRef name="idstore.xml"
value to "idstore.<your-idstore-type>", as in the following example that sets
the identity store type for Oracle Internet Directory:
<serviceInstanceRef ref="idstore.oid"/>
7. Comment out the keystore and audit service instance references in the default
jps context element. For example:
<jpsContext name="default">
<serviceInstanceRef ref="credstore"/>
<!-- <serviceInstanceRef ref="keystore"/> -->
<serviceInstanceRef ref="policystore.xml"/>
<!-- <serviceInstanceRef ref="audit"/> -->
8. Save your changes to jps-config-jse.xml and exit from your editor.
9. Change to the DOMAIN_HOME/bin directory.
10. Run the odi_credtool script.
Password The password for the bootstrap user account that is used
to connect to the identity store.
After you enter the correct credentials for the bootstrap user account, the following
message is displayed:
The credentials have been successfully added to the boostrap credential store.
11-30
Chapter 11
Configuring External Authentication
11-31
Chapter 11
Configuring External Authentication
11-32
Chapter 11
Configuring External Authentication
When you click the Add button, the Enterprise Roles and Users Retrieval dialog
box is displayed, shown in Figure 11-10, in which you can either:
• Enter a filter expression to display the roles and users in the identity store that
match the filter.
• Search the identity store for a specific role or user name.
You can expand the Enterprise Roles and Enterprise Users nodes to display the
individual roles and users, respectively, that are defined in the identity store.
11-33
Chapter 11
Configuring External Authentication
3. Select the enterprise user or role from the Enterprise Roles and Enterprise Users
dialog box that you want to assign to the SUPERVISOR_ROLE role, and click OK.
4. Finish the creation of the master repository, as explained in Creating the Master
Repository.
11-34
Chapter 11
Configuring External Authentication
11-35
Chapter 11
Configuring External Authentication
11-36
Chapter 11
Configuring OWSM Policies for JRF-ODI Asynchronous Web Services with Callback
Note:
If you have assigned supervisor privileges to the role, this step is
unnecessary.
11-37
Chapter 11
Enforcing Password Policies
Note:
When a JRF-based web service receives a request, it forwards the same to
the agent. The agent requires a single key storing the login and password of
the user to connect to the repository. The Oracle Data Integrator user names
and passwords required by the agent to connect to the repositories are not
stored in ODI Configuration files but are stored in the Application Server
Credential store. Therefore, it is mandatory that the credential store entries
are added before using internal or external authentication methods. For
information on adding credential store entries, see step 2 in the following
procedure.
Note:
OWSM policies can also be attached during run-time using WebLogic
Scripting Tool (WLST) commands. For information, see Securing Web
Services and Managing Policies with Oracle Web Services Manager.
11-38
Chapter 11
Configuring Standalone or Standalone Colocated Agents to Use a Secure Transport
6. From the Condition to match list, select whether you want the password to meet
at least one or all conditions.
7. Click OK.
8. Add as many policies as necessary, and select Active for those of the rules that
you want to keep active. Only passwords that meet all the policies are considered
as valid for the current policy.
9. Click OK to update the password policy.
Note:
The keyStore, key, and trustStore passwords are
DemoIdentityKeyStorePassPhrase, DemoIdentityPassPhrase, and
DemoTrustKeyStorePassPhrase respectively. However, the keyStore and
key passwords must be DemoIdentityKeyStorePassPhrase.
2. Substitute the alias name with demoidentity for a default certificate or agent for a
user defined certificate and generate the certificate.
Default Certificate <aliasName>: demoidentity
User defined Certificate <aliasName>: agent
11-39
Chapter 11
Configuring Standalone or Standalone Colocated Agents to Use a Secure Transport
3. Generate a key for the agent using the Keytool utility. The agent uses its fully
qualified hostname to fetch the key from the keystore.
keytool -genkey -alias <aliasName> -keyalg RSA -keystore <domain>/security/
DemoIdentity.jks
Enter keystore password: DemoIdentityKeyStorePassPhrase
What is your first and last name?
[Unknown]:agenthostname.us.example.com
What is the name of your organizational unit?
[Unknown]: ODI
What is the name of your organization?
[Unknown]: company name
What is the name of your City or Locality?
[Unknown]: San Jose
What is the name of your State or Province?
[Unknown]: CA
What is the two-letter country code for this unit?
[Unknown]: US
Is CN=agent.us.example.com, OU=ODI, O=company name, L=San Jose, ST=CA, C=US
correct?
[no]: yes
Enter key password for <agent>
(RETURN if same as keystore password) : <return>
...
…
Trust this certificate? [no]: yes
11-40
Chapter 11
Configuring Standalone or Standalone Colocated Agents to Use a Secure Transport
• If using the ODI Enterprise install type, create an ODI domain and configure
the Oracle Data Integrator - Standalone Colocated Agent template to
create an ODI Instance configuration.
See Installing and Configuring Oracle Data Integrator for more information.
2. Create an agent in the master repository with the HTTPS protocol. If the agent
already exists, modify the agent's protocol to https in the master repository. See
Creating a Physical Agentfor more information.
3. Edit the instance.properties file at the following location and set PROTOCOL to
https:
<domain>/config/fmwconfig/components/ODI/<agentName>
11-41
Chapter 11
Configuring Standalone or Standalone Colocated Agents to Use a Secure Transport
<domain>/config/fmwconfig/components/ODI/OracleDIAgent1/bin/instance.sh
Sample ODI client tools that require the trustStorePassword system property are
listed below:
./agentstop.sh -NAME= OracleDIAgent1
./startcmd.sh -INSTANCE=OracleDIAgent1 OdiPingAgent -AGENT_NAME=OracleDIAgent1
./startcmd.sh -INSTANCE=OracleDIAgent1 OdiKillAgent -NAME=OracleDIAgent1 -
IMMEDIATE=YES -MAX_WAIT=0
./startscen.sh -INSTANCE=OracleDIAgent1 OdiStartScen -SCEN_NAME=SAM -
SCEN_VERSION=001 -CONTEXT=GLOBAL -SYNC_MODE=1
./startscen.sh -INSTANCE=OracleDIAgent1 SAM 001 GLOBAL -AGENT_URL=https://
<hostname>:<port>/oraclediagent
For information on ODI client tools, see Oracle Data Integrator Tools Reference.
Encoding a Password
To encode a cleartext password:
1. Execute the following script with agentName:
<domain>/bin/encode.sh -INSTANCE=<agentName>
2. Enter the password in the prompt, as shown below:
Enter password to encode: <password>
11-42
Chapter 11
Configuring Standalone or Standalone Colocated Agents to Use a Secure Transport
A list of available cipher suites is displayed and a list of cipher suites that can be
used by the SSL-enabled Standalone agent or Standalone Colocated agent is also
displayed.
11-43
Chapter 11
Configuring Oracle Data Integrator with a Web Proxy Server
11-44
Chapter 11
Best Security Practices for Oracle Data Integrator
Note:
The standard Java proxy password property, http.proxyPassword only
accepts a cleartext password, so Oracle Data Integrator has introduced an
additional property, oracle.odi.http.encoded.proxyPassword to set an
encrypted proxy server password instead of a cleartext password, if required.
The encrypted proxy server password can be set in the following manner:
• Standalone or Standalone Colocated agent: Append the
oracle.odi.http.encoded.proxyPassword property using the -D option
of the Java command to the ODI_INSTANCE_JAVA_OPTIONS variable in the
instance.sh file, which is available in the following location:
<DOMAIN_HOME>/config/fmwconfig/components/ODI/<INSTANCE_NAME>/bin
• Java EE agent: Edit the setDomainEnv.sh file in the WebLogic Server.
The setDomainEnv.sh file is available in the following location:
<DOMAIN_HOME>/bin
11-45
Chapter 11
Best Security Practices for Oracle Data Integrator
Table 11-3 (Cont.) Best Security Practices in an Oracle Data Integrator Environment
11-46