Oracle® Enterprise Service Bus: Developer's Guide, 10g (10.1.3.1.0)
Oracle® Enterprise Service Bus: Developer's Guide, 10g (10.1.3.1.0)
Developer's Guide,
10g (10.1.3.1.0)
B28211-01
September 2006
Oracle Enterprise Service Bus Developer's Guide, 10g (10.1.3.1.0)
B28211-01
Contributors: Abhimanyu Prabhavalkar, Amitabh Nandan, Aninda Sengupta, Ashwin Patel, Brian Volpi,
Dave Berry, Demed L'Her, Dhaval Parikh, Eric Belden, Harish Vinayachandran, Ingrid Stuart, Mahesh
Narayana, Maneesh Joshi, Nishad Desai, Prasad Dixit-Hardikar, Rakesh Saha, Santhosh Kumar, Seegler
Ittyavirah, Sivaraj Subbaiyan, Zahid Syed
The Programs (which include both the software and documentation) contain proprietary information; they
are provided under a license agreement containing restrictions on use and disclosure and are also protected
by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly,
or decompilation of the Programs, except to the extent required to obtain interoperability with other
independently created software or as specified by law, is prohibited.
The information contained in this document is subject to change without notice. If you find any problems in
the documentation, please report them to us in writing. This document is not warranted to be error-free.
Except as may be expressly permitted in your license agreement for these Programs, no part of these
Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose.
If the Programs are delivered to the United States Government or anyone licensing or using the Programs on
behalf of the United States Government, the following notice is applicable:
U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data
delivered to U.S. Government customers are "commercial computer software" or "commercial technical data"
pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As
such, use, duplication, disclosure, modification, and adaptation of the Programs, including documentation
and technical data, shall be subject to the licensing restrictions set forth in the applicable Oracle license
agreement, and, to the extent applicable, the additional rights set forth in FAR 52.227-19, Commercial
Computer Software--Restricted Rights (June 1987). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA
94065.
The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently
dangerous applications. It shall be the licensee's responsibility to take all appropriate fail-safe, backup,
redundancy and other measures to ensure the safe use of such applications if the Programs are used for such
purposes, and we disclaim liability for any damages caused by such use of the Programs.
Oracle, JD Edwards, PeopleSoft, and Siebel are registered trademarks of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
The Programs may provide links to Web sites and access to content, products, and services from third
parties. Oracle is not responsible for the availability of, or any content provided on, third-party Web sites.
You bear all risks associated with the use of such content. If you choose to purchase any products or services
from a third party, the relationship is directly between you and the third party. Oracle is not responsible for:
(a) the quality of third-party products or services; or (b) fulfilling any of the terms of the agreement with the
third party, including delivery of products or services and warranty obligations related to purchased
products or services. Oracle is not responsible for any loss or damage of any sort that you may incur from
dealing with any third party.
Contents
Figures
List of Tables
iii
Creating an Integration Server Connection ............................................................................ 2-7
Creating a Database Connection............................................................................................... 2-8
Testing a Connection ............................................................................................................... 2-10
Creating Applications and ESB Projects ...................................................................................... 2-11
Creating ESB Systems and Service Groups ................................................................................. 2-12
Creating ESB Systems.............................................................................................................. 2-12
Creating ESB Service Groups ................................................................................................. 2-13
Adding Project Content.................................................................................................................. 2-14
Importing Files into a Project ........................................................................................................ 2-14
Registering ESB Projects and Services with the ESB Server ..................................................... 2-15
Syncing Services From ESB Server ............................................................................................... 2-15
Deleting ESB Projects...................................................................................................................... 2-15
iv
Using SOAP Invocation Services ..................................................................................................... 4-7
Creating a SOAP Service............................................................................................................ 4-8
Modifying SOAP Services ......................................................................................................... 4-9
Deleting SOAP Services .......................................................................................................... 4-10
Browsing for Deployed Services................................................................................................... 4-10
Using Endpoint Properties ............................................................................................................ 4-11
Specifying Endpoint Properties ............................................................................................. 4-12
Creating a BPEL Partner Link to an ESB Service ............................................................................ 4-12
Calling an ESB Service From an External Service........................................................................... 4-14
v
Simple Copy by Linking Nodes....................................................................................................... 6-7
Setting Constant Values .................................................................................................................... 6-7
Adding Functions............................................................................................................................... 6-8
Editing Function Parameters..................................................................................................... 6-9
Chaining Functions.................................................................................................................. 6-10
Named Templates.................................................................................................................... 6-11
Importing User-Defined Functions ....................................................................................... 6-11
Editing XPath Expressions............................................................................................................. 6-11
Adding XSLT Constructs ............................................................................................................... 6-12
Conditional Processing with xsl:if......................................................................................... 6-12
Conditional Processing with xsl:choose ............................................................................... 6-13
Handling Repetition or Arrays .............................................................................................. 6-14
Automatically Mapping Nodes .................................................................................................... 6-15
Auto Map with Confirmation ................................................................................................ 6-16
Viewing Unmapped Target Nodes .............................................................................................. 6-17
Generating Dictionaries ................................................................................................................. 6-18
Creating Map Parameters and Variables..................................................................................... 6-18
Creating a Map Parameter...................................................................................................... 6-19
Creating a Map Variable ......................................................................................................... 6-19
Searching Source and Target Nodes ............................................................................................ 6-20
Ignoring Elements in the XSLT Document.................................................................................. 6-21
Replacing a Schema in the XSLT Mapper.................................................................................... 6-22
Using the Mapper Test Utility ............................................................................................................ 6-22
Testing a Map .................................................................................................................................. 6-22
Generating Reports ......................................................................................................................... 6-23
Correcting Memory Errors When Generating Reports ...................................................... 6-24
Sample XML Generation ................................................................................................................ 6-25
7 Domain-Value Maps
Understanding Domain-Value Maps ................................................................................................... 7-1
Creating and Populating Domain-Value Maps .................................................................................. 7-1
Creating a New Domain-Value Map from Scratch ....................................................................... 7-2
Exporting a Domain-Value Map...................................................................................................... 7-4
Domain-Value Map Template and XSD Files ................................................................................ 7-5
Importing an Existing Domain-Value Map File ............................................................................ 7-7
Importing Rows Into a Domain-Value Map .................................................................................. 7-8
Editing a Domain-Value Map ....................................................................................................... 7-10
Editing the Name of a Domain-Value Map ......................................................................... 7-10
Adding Rows or Columns to a Domain-Value Map .......................................................... 7-11
Deleting a Row from a Domain-Value Map ........................................................................ 7-11
Deleting a Column from a Domain-Value Map .................................................................. 7-11
Renaming a Column in a Domain-Value Map .................................................................... 7-11
Reordering the Columns in a Domain-Value Map ............................................................. 7-11
Resetting a Domain-Value Map to Its Last Saved State ..................................................... 7-12
Resizing Columns in a Domain-Value Map ........................................................................ 7-12
Deleting a Domain-Value Map ..................................................................................................... 7-12
Using a Domain-Value Map in a Transformation........................................................................... 7-12
vi
8 Administering the Enterprise Service Bus
Administrative Stages ............................................................................................................................. 8-1
Planning Resources for the ESB ....................................................................................................... 8-2
Understanding Oracle Enterprise Service Bus Clusters ................................................................... 8-2
Providing Security.................................................................................................................................... 8-4
Setting Up Notification Channels......................................................................................................... 8-4
Specifying Notification Channels .................................................................................................... 8-4
Configuring the Email Notification................................................................................................. 8-5
Configuring the Wireless Provider for Voice................................................................................. 8-7
Configuring Paging Notification .................................................................................................... 8-9
Configuring Mobile Notification ..................................................................................................... 8-9
Configuring Phone Notification ...................................................................................................... 8-9
Configuring the FAX Cover Page............................................................................................. 8-9
Testing the ESB Services ......................................................................................................................... 8-9
Checking Log Files................................................................................................................................ 8-11
Viewing Log Files............................................................................................................................ 8-12
Configuring Log Files..................................................................................................................... 8-13
Moving the ESB Instance to a Different Oracle Home .................................................................. 8-13
Using the ESB Import and Export Utilities.................................................................................. 8-15
Configuring the InterConnect Adapter with ESB........................................................................... 8-16
10 Error Handling
Overview of Error Handling ............................................................................................................... 10-1
Managing Error Conditions ................................................................................................................ 10-2
Inbound Adapter Error Handling ................................................................................................ 10-2
User Error Handling ....................................................................................................................... 10-2
Resubmitting Messages on Errors ................................................................................................ 10-4
vii
current-time .............................................................................................................................................. A-4
day-from-dateTime.................................................................................................................................. A-5
doc .............................................................................................................................................................. A-5
ends-with .................................................................................................................................................. A-5
format-dateTime ...................................................................................................................................... A-6
format-string............................................................................................................................................. A-6
generate-guid............................................................................................................................................ A-6
get-content-as-string ............................................................................................................................... A-7
get-localized-string.................................................................................................................................. A-7
getInboundResponseHeader ................................................................................................................ A-8
getRequestHeader ................................................................................................................................... A-8
hours-from-dateTime.............................................................................................................................. A-8
implicit-timezone .................................................................................................................................... A-9
index-within-string ................................................................................................................................. A-9
last-index-within-string ......................................................................................................................... A-9
left-trim.................................................................................................................................................... A-10
lookup-dvm ............................................................................................................................................ A-10
lookup-table ........................................................................................................................................... A-11
lookup-xml.............................................................................................................................................. A-12
lower-case................................................................................................................................................ A-12
minutes-from-dateTime ....................................................................................................................... A-12
month-from-dateTime .......................................................................................................................... A-13
query-database ....................................................................................................................................... A-13
right-trim................................................................................................................................................. A-14
seconds-from-dateTime........................................................................................................................ A-14
sequence-next-val .................................................................................................................................. A-14
setOutboundHeader ............................................................................................................................. A-15
setResponseHeader............................................................................................................................... A-15
square-root .............................................................................................................................................. A-16
subtract-dayTimeDuration-from-dateTime...................................................................................... A-16
timezone-from-dateTime ..................................................................................................................... A-16
upper-case ............................................................................................................................................... A-17
year-from-dateTime............................................................................................................................... A-17
Index
viii
List of Figures
1–1 Sample Data Mapper Tool......................................................................................................... 1-4
1–2 Sample Oracle JDeveloper ......................................................................................................... 1-7
1–3 Oracle ESB Control - Services View ......................................................................................... 1-8
1–4 ESB Architecture - Single Instance Environment ................................................................... 1-9
1–5 Illustration of a Sample ESB Scenario ................................................................................... 1-10
1–6 Oracle JDeveloper – Initial Display ....................................................................................... 1-12
1–7 Oracle ESB Control - Initial Display...................................................................................... 1-13
2–1 Sample Application Navigator ................................................................................................ 2-2
2–2 JDeveloper Design Tab and Component Palette.................................................................... 2-3
2–3 Create Routing Service Dialog Box .......................................................................................... 2-4
2–4 Sample Property Sheet for a Routing Service ......................................................................... 2-5
3–1 Oracle ESB Control - Services View Diagram Tab ................................................................. 3-3
3–2 Oracle ESB Control - Instances View Tracking Tab............................................................... 3-6
3–3 Oracle ESB Control - Instances View Errors Tab.................................................................... 3-6
3–4 Oracle ESB Control - Maps View with Sample Domain-Value Map .................................. 3-7
3–5 Icons Used in the Oracle ESB Control...................................................................................... 3-8
3–6 ESB System – Definition Tab .................................................................................................. 3-10
3–7 Services View – Trackable Fields Tab ................................................................................... 3-18
3–8 Trackable Fields - Expression Builder................................................................................... 3-19
4–1 Adapter Configuration Wizard - Messages Page................................................................... 4-6
4–2 Create File Adapter Service Dialog .......................................................................................... 4-7
4–3 Automatic Routing Service Creation ....................................................................................... 4-7
4–4 Oracle Application Server Control – Applications ................................................................ 4-8
4–5 Service Explorer Dialog........................................................................................................... 4-11
4–6 BPEL Partner Link ................................................................................................................... 4-13
4–7 Oracle ESB Control – Definition Tab of Services View ...................................................... 4-14
5–1 Creating a Routing Service ........................................................................................................ 5-2
5–2 Create Routing Service Dialog Box .......................................................................................... 5-3
5–3 Routing Rules Properties Page ................................................................................................. 5-4
5–4 Routing Rules – Request/Reply/Response Schema ............................................................. 5-5
5–5 Routing Rules Icons, Fields, and Options ............................................................................... 5-5
5–6 Browse Target Service Operation ............................................................................................. 5-7
5–7 Expression Builder Window – Initial View............................................................................. 5-8
5–8 Expression Builder Window – Function Preview and Description..................................... 5-9
5–9 Type Chooser Dialog ............................................................................................................... 5-13
5–10 Create Routing Service - Request Tab................................................................................... 5-14
5–11 Routing Rule Property Sheet Icons........................................................................................ 5-16
5–12 Routing Rules for Request/Reply with Target Service Specified..................................... 5-18
5–13 Sample Expression Builder Tool – WSDL Message Element Selected............................. 5-19
5–14 Sample Expression Builder Tool – WSDL Message Element Inserted............................. 5-20
5–15 Sample Expression Builder Tool – Function Selected......................................................... 5-21
5–16 Sample Expression Builder Tool – Function Inserted......................................................... 5-22
5–17 Sample Expression Builder Tool – Value Entered .............................................................. 5-23
5–18 Expression Editing Icons......................................................................................................... 5-23
5–19 Request and Outbound Headers ........................................................................................... 5-25
5–20 Response and Inbound Response Headers .......................................................................... 5-25
5–21 Create Variable Dialog With a Header Transformation Function.................................... 5-27
5–22 Expression Builder With a Header Transformation Function........................................... 5-29
6–1 Sample XSLT Data Mapper Tool .............................................................................................. 6-2
6–2 Request Transformation Map Dialog....................................................................................... 6-4
6–3 Auto Map Preferences Dialog ................................................................................................... 6-4
6–4 XSLT Data Mapper AutoMap ................................................................................................... 6-5
6–5 XSLT Data Mapper Context Menu ........................................................................................... 6-6
6–6 Linking Nodes ............................................................................................................................. 6-7
ix
6–7 Set Text Window ......................................................................................................................... 6-8
6–8 Using the Concat Function ........................................................................................................ 6-9
6–9 Editing Function Parameters.................................................................................................. 6-10
6–10 Chaining Functions.................................................................................................................. 6-11
6–11 The XPath Building Assistant ................................................................................................ 6-12
6–12 Conditional Processing with xsl:if......................................................................................... 6-13
6–13 Conditional Processing with xsl:choose ............................................................................... 6-14
6–14 Handling Repetition or Arrays .............................................................................................. 6-15
6–15 Auto Mapping Candidates ..................................................................................................... 6-16
6–16 Auto Map with Confirmation ................................................................................................ 6-17
6–17 Completion Status.................................................................................................................... 6-18
6–18 Test XSL Map Dialog............................................................................................................... 6-22
6–19 Test Window............................................................................................................................. 6-23
6–20 The Generate Report Dialog................................................................................................... 6-24
7–1 Oracle ESB Control Map View – Create New Map................................................................ 7-3
7–2 Domain-Value Map – Rows Created ...................................................................................... 7-4
7–3 Maps View – Import a New Map Dialog ................................................................................ 7-8
7–4 Sample Domain-Value Map with a Conflict ........................................................................... 7-8
7–5 Oracle ESB Control Map View – Import into an Existing Map Dialog............................... 7-9
7–6 Oracle ESB Control Map View – Updated Map After Importing Rows.......................... 7-10
7–7 Arrows for Rearranging Columns In Domain-Value Maps .............................................. 7-11
7–8 Data Mapper – Source to Target Map................................................................................... 7-13
7–9 Component Palette – lookup-dvm Function........................................................................ 7-13
7–10 Data Mapper – look-up dvm Function Added.................................................................... 7-14
7–11 Edit Function – lookup-dvm .................................................................................................. 7-14
7–12 Data Mapper – look-up dvm Function Defined .................................................................. 7-16
8–1 ESB Architecture - Clustered Environment ............................................................................ 8-3
8–2 ESB System – Definition Tab ..................................................................................................... 8-5
8–3 Oracle Enterprise Manager Web Services ........................................................................... 8-10
8–4 Oracle Enterprise Manager Test Web Service...................................................................... 8-10
8–5 Oracle Enterprise Manager Test Page................................................................................... 8-11
8–6 Oracle Application Server Control – OC4J Log Files.......................................................... 8-12
8–7 Oracle Application Server Control – Logger Configuration ............................................. 8-13
9–1 Instances View – Tracking Tab and Details Subtab ............................................................... 9-2
9–2 Instances View – Manage Panel................................................................................................ 9-2
9–3 Instances View – Search Panel .................................................................................................. 9-3
9–4 Instances Panel Showing Status Codes.................................................................................... 9-4
9–5 Oracle ESB Control – Instances View with Error ................................................................... 9-5
9–6 Instances View – Errors Tab ...................................................................................................... 9-6
9–7 Sample Overlay Statistics in Instances View .......................................................................... 9-8
10–1 Instances View – Tracking Tab .............................................................................................. 10-3
10–2 Error Details Dialog ................................................................................................................. 10-3
10–3 Instances View - Errors Tab.................................................................................................... 10-4
x
List of Tables
1–1 Oracle Adapter Services............................................................................................................ 1-3
3–1 Comparison of Features Available in the Oracle ESB Control and Oracle JDeveloper... 3-2
3–2 ESB System Definition Tab .................................................................................................... 3-10
3–3 ESB Service Group Definition Tab ....................................................................................... 3-12
3–4 Service Definition – General Region .................................................................................... 3-13
3–5 Service Definition - Operations Region ............................................................................... 3-14
3–6 Service Definition - Operation Details Region.................................................................... 3-14
3–7 Routing Rules Tab in Oracle ESB Control ........................................................................... 3-16
4–1 Summary of Oracle Technology Adapters............................................................................. 4-2
8–1 XML Elements for the E-mail Notification Configuration File ........................................... 8-6
8–2 XML Elements for the Voice Notification Configuration File ............................................. 8-7
9–1 Specifying Message Instance Search Criteria......................................................................... 9-8
xi
xii
Preface
This guide provides information about Oracle Enterprise Service Bus. The information
includes how to use Oracle JDeveloper and Oracle ESB Control to create and manage
Oracle Enterprise Service Bus.
Audience
This document is intended for all users interested in learning about and using Oracle
Enterprise Service Bus.
Documentation Accessibility
Our goal is to make Oracle products, services, and supporting documentation
accessible, with good usability, to the disabled community. To that end, our
documentation includes features that make information available to users of assistive
technology. This documentation is available in HTML format, and contains markup to
facilitate access by the disabled community. Accessibility standards will continue to
evolve over time, and Oracle is actively engaged with other market-leading
technology vendors to address technical obstacles so that our documentation can be
accessible to all of our customers. For more information, visit the Oracle Accessibility
Program Web site at
http://www.oracle.com/accessibility/
xiii
Related Documents
For more information, see these Oracle resources:
■ Oracle Enterprise Service Bus Quick Start Guide
■ Oracle Enterprise Service Bus Installation Guide
■ Oracle Application Server Adapter Concepts
■ Oracle Application Server Adapter for Files, FTP, Databases, and Enterprise Messaging
User's Guide
■ Oracle Application Server Adapter for Oracle Applications User's Guide
■ Oracle BPEL Process Manager Developer's Guide
■ Oracle Application Server Administrator's Guide
■ Oracle Application Server Performance Guide
■ Oracle Application Server Enterprise Deployment Guide
■ Oracle Application Server High Availability Guide
■ Oracle Web Services Manager Administrator's Guide
■ Oracle Application Server Installation Guide for Microsoft Windows
■ Oracle Application Server Installation Guide for Linux x86
To download free release notes, installation documentation, white papers, or other
collateral, please visit the Oracle Technology Network (OTN):
http://www.oracle.com/technology/documentation/
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.
xiv
1
Introduction to Oracle Enterprise Service
Bus
This chapter introduces Oracle Enterprise Service Bus features, concepts, and
components.
This chapter contains the following topics:
■ Oracle Enterprise Service Bus Concepts Overview on page 1-1
■ Creating, Configuring, and Managing Oracle Enterprise Service Bus on page 1-5
■ Oracle Enterprise Service Bus Architecture on page 1-8
■ Sample Oracle Enterprise Service Bus Scenario on page 1-9
■ Starting, Stopping, and Accessing Oracle Enterprise Service Bus Components on
page 1-10
Connectivity
Connectivity is provided through adapter services and Simple Object Access Protocol
(SOAP) invocation services, as described in the list that follows:
■ SOAP invocations services
SOAP invocation services provide connectivity with external SOAP clients, such
as Oracle BPEL Process Manager, Apache Axis, and Microsoft .NET. You can call
Oracle Enterprise Service Bus services from such clients, or you can call those
products from Oracle Enterprise Service Bus.
You might call Oracle Enterprise Service Bus from Oracle BPEL Process Manager,
for example, to take advantage of the document routing features that Oracle
Enterprise Service Bus provides, or you might call Microsoft .NET from Oracle
Enterprise Service Bus to integrate a legacy Microsoft .NET infrastructure.
■ WSIF
Oracle Enterprise Service Bus utilizes WSIF bindings in a WSDL document to
perform native Java calls to external java interfaces. WSIF is also used internally
by the JCA framework.
■ Adapter services
Oracle Application Server adapters provide bidirectional, real-time data access to
virtually any data source in your enterprise.
An adapter either listens for, or polls for, events in the source application it
supports. When listening for events, an adapter registers as a listener for the
application that is configured to push events to the adapter. The adapter can also
poll the back-end application, such as a database or file, for the events required by
Oracle Enterprise Service Bus.
By registering adapters with Oracle Enterprise Service Bus (using a wizard), you
integrate external data sources with Oracle Enterprise Service Bus, and ultimately,
with each other.
Oracle Enterprise Service Bus Server enables you to define inbound and outbound
adapter services. An inbound adapter service receives data from an external data
source and transforms it into an XML message. An outbound adapter service
sends data to a target application by transforming an XML message into the native
format of the target application. Oracle Enterprise Service Bus Server currently
supports the Oracle adapters described in Table 1–1.
Any service, except an inbound adapter service, created in Oracle Enterprise Service
Bus service, such as an outbound adapter service or routing service (described in
"Content-Based and Header-Based Routing" on page 1-4), is automatically exposed as
a SOAP service without requiring you to provide configuration details. Oracle ESB
Control (described in "Introduction to the Oracle Enterprise Service Bus Control" on
page 1-7) lists the concrete WSDL URL for these services on the Definitions tab. You
can use the concrete WSDL URL to invoke the service using SOAP over Hypertext
Transfer Protocol (HTTP) from Oracle JDeveloper or Microsoft .Net. On the Definitions
tab, you also specify whether a service can be invoked by an application (external)
outside of Oracle Enterprise Service Bus.
Document Transformation
Oracle Enterprise Service Bus includes a standards-based data mapper launched from
within Oracle JDeveloper. The data mapper specifies an XSL file to transform data
from one XML schema to another, thus enabling data interchange among applications
using different schemas. Multiple transformations may be required to achieve the
desired result. These transformations can be reused, as needed, across your enterprise.
Figure 1–1 shows an example of the data mapper being used to map data from one
schema to another.
"Sample Oracle Enterprise Service Bus Scenario" on page 1-9, you might apply a
filter expression that specifies that the database adapter service be invoked only if
the message includes customer contact information.
■ Whether a document transformation is applied.
See Document Transformation on page 1-4 for information about transformations.
■ Whether execution is synchronous or asynchronous
If you specify that execution is synchronous, then Oracle Enterprise Service Bus
invokes the target service immediately; control is not returned to the routing
service until the message has been received by the target service for processing.
If you specify that execution is asynchronous, then Oracle Enterprise Service Bus
uses JMS for delivering the message to the target service, which will be invoked at
a later time. Control is returned to the routing service immediately, before the
target service has received the message.
■ The priority level for execution
The priority level, determined by the order in which routing rules are ordered,
determines the order in which outbound service invocation actions are executed.
For information about routing rules, see "Specifying Routing Rules" on page 5-16. For
information about header transformation and filtering, see "Header Transformation
and Filtering" on page 5-24.
specify that you want to create a new transformation file, Oracle JDeveloper
opens the data mapper tool to enable you to do so.
■ Oracle ESB Control
Oracle ESB Control is primarily intended for run time use. It enables you to:
– View the Oracle Enterprise Service Bus configuration graphically.
As shown in Figure 1–3, Oracle ESB Control provides a graphical
representation of the inbound and outbound adapter services, the routing
services and the connections among them.
– Adjust routing rules
Oracle ESB Control provides property pages that enable you to specify or
adjust the routing rules for routing services. For example, if you have write
privileges you can specify a filter expression, or add or change the document
transformation file associated with a routing operation.
– View run-time statistics
Oracle ESB Control enables you to view run-time statistics for messages
processed by the various services.
– Track message instances across the enterprise service bus
Similar to the configuration diagram, Oracle ESB Control provides a graphical
representation of the message flow through the services of Oracle Enterprise
Service Bus.
– You can also use Oracle ESB Control to create systems and service groups.
Systems and service groups are described in "Introduction to the Oracle
Enterprise Service Bus Control" on page 1-7.
The following two sections introduce these tools in more detail:
■ Introduction to Oracle JDeveloper on page 1-6
■ Introduction to the Oracle Enterprise Service Bus Control on page 1-7
The Applications Navigator displays the project files that you have created. In
Figure 1–2, for example, the Applications Navigator includes an application named
ESBSamples, which contains the project node entitled CustomerData. When the
CustomerData node is expanded you can see the WSDL files that define the adapter
services for the application, and the XSD files that define the structure of the data that
will be routed across the Oracle Enterprise Service Bus.
For more information, see Chapter 2, "Developing the Enterprise Service Bus".
For more information, see Chapter 3, "Monitoring the Enterprise Service Bus".
Servlets
Console · Console
· WSIL
· Design Time
· WebDav WebDAV
· SOAP Provider · XSD
· XSLT
· WSDL
· Maps
Runtime Server
· Server Execution
· Memory Cache
· JMS Error Topic
· XML/XSL Engine
· JCA Adapter Agents
See Also: Oracle Enterprise Service Bus Quick Start Guide for
step-by-step instructions on implementing this scenario
For information about getting started with the Oracle SOA Suite components of Oracle
Application Server 10g Release 3 (10.1.3.1.0), see Oracle Application Server
Administrator's Guide.
Note: The Oracle Application Server SOA Suite Basic Install type is
recommended for developers. For information about the Oracle SOA
Suite installation, see the Oracle Application Server 10g Release 3
(10.1.3.1.0) installation guide for your system. For information about
stopping and starting Oracle SOA Suite components of Oracle
Application Server, see Oracle Application Server Administrator's Guide.
Windows Installation
To start the ESB Server on Windows, use one of the following methods:
■ From the desktop Start button, select Programs > Oracle – Oracle_Home >
Oracle ESB > Start ESB Server, where Oracle_Home is the name of the Oracle
home where you installed Oracle Enterprise Service Bus.
■ From a command window, run Oracle_Home/opnm/bin/opmnctl startall
where Oracle_Home is the name of the Oracle home where you installed Oracle
Enterprise Service Bus
To stop the ESB Server on Windows, use one of the following methods:
■ From the desktop Start button, select Programs > Oracle – Oracle_Home >
Oracle ESB > Stop ESB Server, where Oracle_Home is the name of the Oracle
home where you installed Oracle Enterprise Service Bus.
■ From a command window, run Oracle_Home/opnm/bin/opmnctl stopall
where Oracle_Home is the name of the Oracle home where you installed Oracle
Enterprise Service Bus
Linux Installation
To start the ESB Server on Linux:
1. Start a command prompt and navigate to the Oracle_Home/opmn/bin folder.
2. Run the following from the operating system prompt:
opmnctl startall
To stop the ESB Server on Linux:
1. Start a command prompt and navigate to the Oracle_Home/opmn/bin folder.
2. Run the following from the operating system prompt:
opmnctl stopall
To check the status of the ESB Server on Linux:
the output from the opmnctl status -l command. For more information about
viewing port numbers, see "Viewing Port Numbers" on page 2-6.
On Windows, you can launch the Oracle ESB Control from the Start menu. Select All
Programs > Oracle – Oracle_Home > Oracle ESB > ESB Control from the desktop
Start button, where Oracle_Home is the name of the Oracle home where you installed
Oracle Enterprise Service Bus.
Before opening the Oracle ESB Control, you must first start the ESB Server as
described in "Starting and Stopping the ESB Server" on page 1-11.
The Oracle ESB Control opens, as shown in Figure 1–7.
In Figure 1–7, The BPEL System is default location where BPEL services display up if
they are on the same SOA Suite container. The default service group matches the
BPEL Domain name for that BPEL process.
The primary interface for developing an enterprise service bus is Oracle JDeveloper.
This chapter provides an introduction to Oracle JDeveloper, an overview of the design
process, and detailed descriptions of how to accomplish the tasks required to design
an Oracle Enterprise Service Bus.
This chapter contains the following topics:
■ Overview of Oracle JDeveloper on page 2-1
■ Getting Started with Oracle JDeveloper on page 2-5
You use the Application Navigator tab to create an application workspace and an ESB
project. Within an ESB project you can create multiple ESB systems. As you build the
enterprise service bus, the files you create for the services, transformation maps, and
so on, are presented in the Applications Navigator within the project folder.
A sample Application Navigator tab is shown in Figure 2–1. In this sample, an
application workspace named ESBSamples contains an ESB project named
CustomerData. See "Creating Applications and ESB Projects" on page 2-11 for
step-by-step instructions.
When you right-click a node in the Application Navigator tab, a menu of commands is
displayed. The menu commands displayed depend on the node selected. For example,
when you right-click an ESB project, such as CustomerData in Figure 2–1, the
following commands are included in the menu:
■ New
This command opens the New Gallery dialog box, which provides access to dialog
boxes and wizards that enable you to create new projects, create inbound and
outbound adapter services, and access the document transformation tool.
■ Register with ESB
This command enables you to register the adapter services, transformations, and
routing services that you design using Oracle JDeveloper with Oracle Enterprise
Service Bus. When you register the ESB project with the ESB Server, as described
in "Registering ESB Projects and Services with the ESB Server" on page 2-15, the
files are written to the ESB repository and are available from the Oracle ESB
Control.
click the down arrow under Component Palette and select ESB Services, the types of
ESB services from which you can choose to build your enterprise service bus are
displayed, as shown in Figure 2–2. Similarly, if you click the down arrow under the
Component Palette and select Adapter Services, you can choose the type of adapter
service you want to create to move messages into and out of the enterprise service bus.
The Design tab initially appears in the empty area in the middle of the figure; the
Components Palette appears to its right. In Figure 2–2, the CustomerData project is
selected in the Applications view and the Design tab displays the adapter and routing
services in the project.
To create an ESB service, you drag a desired ESB service type from the Components
palette and drop it onto the Design tab. When you do so, a wizard or dialog box opens
to assist you in creating the desired service. Alternatively, you can create ESB services
and Adapter Services using dialog boxes only, but the Design tab provides a visual
method for building the enterprise service bus.
For example, you can drag and drop a Routing Service from the Component Palette to
the Design tab. When you do so, the Create Routing Service dialog box opens, as
shown in Figure 2–3. When you complete this dialog box and click OK, an icon
appears on the Design tab, similar to the CustOut_RS in Figure 2–2.
You can use this building block approach to add the component services to the
enterprise service bus design one-by-one. Figure 2–2, for example, shows a completed
simple ESB configuration.
See Chapter 4, "Creating Inbound and Outbound Services" for conceptual information
and step-by-step instructions on creating adapter services. See Chapter 5, "Creating
Routing Services and Routing Rules" detailed conceptual information and step-by-step
instructions on creating routing services and specifying routing rules.
The Routing Rules section, shown in Figure 2–4, presents icons that provide access to
the tools that enable you to specify a filter expression, a transformation map, and the
target operation (defined within the target service WSDL). It also enables you to limit
the ESB systems from which messages will be accepted and whether execution of the
target operation is to be synchronous or asynchronous.
See Chapter 5, "Creating Routing Services and Routing Rules" for step-by-step
instructions about creating routing services.
2. Right-click Application Server in the tree and select New Application Server
Connection to launch the Create Application Server Connection wizard. The
information you need to provide varies depending on the type of connection you
choose on the Type page. Follow the instructions in the wizard to complete each of
the following pages:
a. Welcome page
b. Type page
Connection Name: Enter a name, such as LocalApplicationServer
Connection Type: Select a type, such as Oracle Application Server
10g 10.13
c. Authentication page
Username: Enter the OC4J username
Password: Enter the password
Deploy Password: Specify whether to deploy the password
d. Connection page
Enter the information for the specific connection type. For example, these are
options for the Oracle Application Server 10g 10.13 type:
Host Name: Enter the host name or localhost
OPMN Port: Enter the port number, such as 6003
OC4J Instance Name: Enter the OC4J instance name
Connect To: Select Single Instance or Group
e. Test page
3. On the Test page, click the Test Connection button to test the information you
provided. If the test succeeds, click the Finish button. If the test fails, review the
information for the connection and correct as necessary. Before testing, make sure
the ESB Server is running.
1. Select Connection Navigator under the View menu to display the Connections
Navigator.
2. Right-click Integration Server tree and select New Integration Server Connection
to launch the Create Integration Server Connection wizard. Follow the instructions
in the wizard to complete each of the following pages:
a. Welcome page
b. Name page
Connection Name: Enter a name, such as LocalIntegrationServer
c. Connection page
Application Server: Select an application server that has been previously set
up from the list
Host Name: Enter the host name or localhost
Port Number: Enter the port number, such as 8888
Add Host Name: Specify whether you want to add the host name to the proxy
exceptions
d. Test page
3. On the Test page, click the Test Connection button to test the information you
provided. If the test succeeds, click the Finish button. If the test fails, review the
information for the connection and correct as necessary. Before testing, make sure
the ESB Server is running.
Follow the instructions in the wizard to complete each of the following pages. The
Oracle Lite database is used an example in the steps.
a. Welcome page
b. Type page
Connection Name: Enter a name for the database connection, such as Olite.
For the Oracle Lite database, it is strongly recommended to use Olite to
matched the predefined JNDI name (eis/DB/Olite) and in the name in
connector XML file.
Connection Type: Select a connection type from the list, such as Oracle Lite
c. Authentication
Username: Enter the username for the database account
Password: Enter the password for the username
Role: Enter the database role for the user
Deploy Password: Specify whether to deploy the password
d. Connection page
Provide the connections details for the type of database connection selected on
the Type page. For example, if Oracle Lite database type is selected you would
enter data for the fields described in this step.
Driver type and connection details for an Oracle Lite database:
Driver: Select the driver, such as Type 4 Driver
Host Name: Enter the host name where the database is installed
JDBC Port: Enter the port number for database, such as 1531
SID: Enter the service ID of the database, such as oraesb
Location of the Oracle Lite driver jar:
Driver Class: Enter the class name or accept the default class name, such as
oracle.lite.poljdbc.POLJDBCDriver
Library: Enter the library name, such as Olite40.jar
Classpath: Enter the classpath or accept the default classpath, such as
c:\product\10.1.3.1\OraceleAS_
1\integration\esg\lib\olite40.jar
e. Test page
3. On the Test page, click the Test Connection button to test the information you
provided. If the test succeeds, click the Finish button. If the test fails, review the
information for the connection and correct as necessary. Before testing, make sure
the database is running.
Testing a Connection
To review and test the connections in Oracle JDeveloper, perform the following steps:
1. Select Connection Navigator under the View menu to display the Connections
Navigator.
2. In the Connections Navigator, expand the connection tree that you want to test.
For example, expand the Application Server tree.
3. Right-click a connection in the tree that has been already been set up and select
Properties to display the Edit Connection property sheet. You can also double-click
the connection to display the property sheet.
For example, right-click an application server under the expanded Application
Server tree and select Properties. Click the Connection tab to view the connection
properties.
2. Select ESB Project under General Projects, and then click OK.
The Create ESB Project dialog box opens.
3. In the Project Name field, enter the name of the project.
4. In the Directory Name field, specify the directory where the project files will be
stored, if you do not want to accept the default directory.
5. In the Diagram Name field, optionally enter a name for the diagram that will
schematically represent the project, if you do not want to accept the default
diagram name.
6. Click OK.
A design area is presented with a label of esb_project-name.esb, or
diagram-name.esb if you specified an optional name for the diagram in the
previous step.
You use this design area to model the enterprise service bus system. It enables you to
drag and drop ESB Services (adapter, routing, and SOAP services) from the
Component Palette panel in the upper-right corner into the design area.
1. In the Applications Navigator, open the ESB Project in which you want to create
the ESB system.
2. In the Design tab, click the Create System/Group icon on the top of the Design
window. This is the icon on left in the group of three icons. See Figure 2–2 on
page 2-3 for a screenshot that shows the icons at the top of the Design tab.
The Create ESB System or Service Group dialog box opens.
3. In the Create ESB System or Service Group dialog box, follow these steps:
a. For the Create option, select System.
b. In the Name field, enter a unique name.
The name must be unique across the ESB project in which you are creating it.
c. Optionally, in the Description field, enter a description of the ESB service.
d. Click OK.
4. In the Applications Navigator, click the refresh icon.
An entry for the ESB system in the form, system-name.esbsys, is added to the
Resources folder under the project name. For example, Figure 2–1 on page 2-2
shows a Oracle JDeveloper application that contains an ESB project named
CustomerData and an ESB system also named CustomerData.
For information about creating an ESB system from the Oracle ESB Control, see
"Managing Oracle Enterprise Service Bus Systems and Service Groups" on page 3-8.
c. In the System/Group field, enter the ESB system or an existing service group
in which you want to create this service group.
d. Optionally, in the Description field, enter a description of the ESB service
group.
e. Click OK.
4. In the Applications Navigator, click the refresh icon.
An entry for the ESB service group in the form, service-group-name.esbgrp, is added
to the Resources folder under the project name.
Note: If you add an XSD file to the project with the Java Content
feature, the XSD file is not copied to the project directory if it is not
already present in the project directory. Although the file shows up in
the project tree, it does not get deployed to the ESB Server with the
Register with ESB menu option.
3. Select the type of file you want to import from the list in the dialog, then click OK
to launch the wizard for the specific file type. Follow the instructions provided by
each wizard.
For example, select Web Source to launch the Web Source wizard. Browse the local
files system to locate schema files (XSD) that you want to copy into the project,
then click OK.
Note that deleting projects or services from the Oracle JDeveloper does not remove the
object from Oracle ESB Control or the ESB Server.
This chapter describes how to use Oracle ESB Control, a Web-based interface for
managing, administering, and monitoring an Oracle Enterprise Service Bus.
This chapter contains the following topics:
■ Overview of the Oracle ESB Control on page 3-1
■ Understanding the Layout of the Oracle ESB Control on page 3-3
■ Creating, Viewing, and Updating Organizational Units for Services on page 3-7
■ Viewing and Updating Service Definitions on page 3-12
■ Understanding and Managing Routing Rules on page 3-15
■ Defining and Managing Tracking Fields on page 3-17
Table 3–1 Comparison of Features Available in the Oracle ESB Control and Oracle
JDeveloper
Available in Oracle Available in Oracle ESB
Feature JDeveloper? Control?
Create, modify, and delete Yes Yes
ESB systems
Create, modify, and delete Yes Yes
ESB routing service
definitions
Create, modify, and delete Yes Yes
routing rules
(transformations, filter
expression and so on)
Create a transformation file Yes No
Create, modify, and delete Yes No
ESB adapter services
Create, modify, and delete Yes No
SOAP invocation services
View service connections Yes Yes
schematically
View run-time statistics No Yes
Specify notification channels No Yes
View message instances No Yes
schematically
Resubmit messages that have No Yes
failed due to an error
Define and view trackable No Yes
fields
Define domain-value maps No Yes
Figure 3–1 shows the Oracle ESB Control with the schematic that is generated when
you complete the tutorial documented in the Oracle Enterprise Service Bus Quick Start
Guide. On the left side of the Oracle ESB Control is a navigation tree that enables you
to select a system, group, or service; on the right side of the Oracle ESB Control are
tabbed pages that display, and enable you to change, properties for an object selected
in the navigation tree.
For information about starting ESB components and opening the Oracle ESB Control,
see "Opening the Oracle ESB Control" on page 1-12
Note: All the tasks described in this section assume that the ESB
Server is started and the database that is serving as the ESB repository
is up and running. For information about starting the ESB Server, see
"Starting, Stopping, and Accessing Oracle Enterprise Service Bus
Components" on page 1-10.
provides a navigation tree of ESB systems and the service groups and services within
each, and buttons to create, delete, and move objects within the navigation tree.
The services panel appears on the left side of the Oracle ESB Control. It provides
buttons for creating and deleting ESB systems, groups, and services and a navigation
tree to present these items (and their current status) after they have been created.
The tabbed panel presents details about services selected in the navigation tree.
Depending on the service selected, the following tabs are available:
■ On the Diagram tab, view the relationship of the selected service to other objects
within the ESB system. Oracle Enterprise Service Bus creates this diagram
automatically, based on the definitions you specify for each service.
The selected service is represented in blue within the diagram, whereas the other
services are represented in gray. In the diagram, the following conventions are
used:
– Adapter services are represented by rectangles with a long horizontal plane.
– Routing services are represented by rectangles with long vertical planes.
– Communication between services is represented by the lines between the
services.
– A routing service filter expression is indicated by a funnel.
– A transformation is indicated by two rectangles with an X overlay.
The navigator tab indicates which area of the diagram is currently being displayed
in relation to the entire diagram. This is useful for large diagrams that extend
beyond the area that can be presented in the diagram region. When you move the
scroll bar in the diagram region, notice that the blue window in the navigator
scrolls also, to highlight the portion of the diagram that is currently visible.
The detail tab provides the name of the selected service and the status of the
selected service in the Diagram tab. Overlay metrics enable you to select which
metrics, if any, you want to be superimposed on the diagram.
See "Creating, Viewing, and Updating Organizational Units for Services" on
page 3-7.
■ On the Definition tab, view the definition of the selected service, enable it, or
disable it. For outbound adapter services and routing services, these details
including the concrete WSDL URL, which you can use to invoke the service using
SOAP over HTTP from another application.
See "Viewing and Updating Service Definitions" on page 3-12.
■ On the Routing Rules tab, view, update, delete, and set the priority of routing rules
for the selected routing service. The routing rules tab is presented only when you
select a routing service from the navigation tree. It shows the rules that govern
how a message is routed by the routing service.
See "Understanding and Managing Routing Rules" on page 3-15 for more
information about routing rules.
■ On the Properties tab, view, update, and delete endpoint properties for the
selected adapter or SOAP service. The Properties tab is presented only when you
select an adapter or SOAP service from the navigation tree.
Click the + on right side of the screen to add endpoint properties. Select the
endpoint from the list under the Name column and enter a value in the Value
column. Setting endpoints is similar to the actions in the endpoint properties panel
in Oracle JDeveloper. For more information about using endpoint properties, see
"Using Endpoint Properties" on page 4-11.
Note: Endpoint properties are not fully tested and have been marked
as a Preview feature. Preview features will be supported in a later
release.
■ On the Trackable Fields tab, define trackable fields for the selected service. See
"Defining and Managing Tracking Fields" on page 3-17.
If you select a service where an error occurred for the message, an Error tab is
presented, as shown in Figure 3–3. The Errors tab contains an error table that lists the
time, service:operation, and message associated with each error. Click the Error Details
icon in the Message column to view the error message and the stack trace.
For more information message tracking, see Chapter 9, "Tracking Message Instances
Across the Enterprise Service Bus". For more information about error handling, see
Chapter 10, "Error Handling".
Figure 3–4 Oracle ESB Control - Maps View with Sample Domain-Value Map
3. Review the properties presented on the Definition tab and described in Table 3–2.
4. Make any desired updates. All properties can be updated except the
Asynchronous Topic and the Error Topic.
5. If you are satisfied with your changes, click Apply; otherwise, click Reset to return
the properties to the settings that were presented when you opened the page.
■ Operations
This region of the page lists the operations that the service WSDL describes and
their type. Table 3–5 describes this region of the page.
■ Operation Details
This region of the page provides details on an operation selected in the Operations
region. Table 3–6 describes this region of the page. Which tabs are presented in this
region depend on the operation definition, as follows:
– One-way operations
If the selected operation is defined as a one-way operation (only input
elements are defined for the operation in the WSDL), then only the Request
tab is active.
– Request/response operation
If the selected operation is defined as a request/response operation (both
input and output elements are defined for the operation in the WSDL), then
both the Request and Response tabs are active.
– Faults
If a fault is defined for the operation (fault elements are defined for the
operation in the WSDL), then the fault tab is active. Note that a fault is simply
a special response that can be directed to the requester.
3. Click the plus sign (+) to the left of the routing rule to select it.
4. Click the minus (-) button on the far right of the routing rule page to delete the
selected routing rule.
5. Click Apply.
If you disable the trackable field, the trackable field information is not logged
and is not available in the Instances view of the Oracle ESB Control.
f. Click OK when finished.
6. Click Apply to save the changes you have made; click Reset to return to the values
that were presented before you began editing fields.
8. Click OK.
9. Click Apply to save the changes you have made; click Reset to return to the values
that were presented before you began editing fields.
Note: Oracle Enterprise Service Bus features that are not fully tested
have been designated as Preview features. These features will be
supported in a later release. Preview features in this release are:
■ Endpoint properties
Adapter Endpoint properties
SOAP Endpoint properties
■ Header Support
Header support for Adapters
Header support for SOAP Headers, such as security, encryption, and
WS-Addressing
The following sections describe adapter services and routing services in more detail.
■ Using Adapter Services on page 4-2
■ Creating Adapter Services on page 4-3
■ Using SOAP Invocation Services on page 4-7
■ Browsing for Deployed Services on page 4-10
■ Using Endpoint Properties on page 4-11
See Chapter 5, "Creating Routing Services and Routing Rules" for information about
routing services.
See Also:
■ Oracle Application Server Adapter Concepts for an overview of
adapters
■ Oracle Application Server Adapter for Files, FTP, Databases, and
Enterprise Messaging User's Guide for specific details about
configuring adapters for Oracle Enterprise Service Bus
■ Oracle Application Server Adapter for Oracle Applications User's Guide
for information about using the Oracle Applications adapter for
Oracle E-Business Suite
■ Oracle Enterprise Service Bus Quick Start Guide for a tutorial that
describes how to design an enterprise service bus that uses a file
adapter service, a database adapter services and a JMS adapter
service.
configuring the Oracle application adapter for Oracle E-Business Suite, see
Oracle Application Server Adapter for Oracle Applications User's Guide.
■ Service Explorer icon
Click this icon to launch the Service Explorer and search for deployed services.
See "Browsing for Deployed Services" on page 4-10.
6. In the Port Type field, click the down arrow, and then select the port type for the
routing service.
7. Click OK.
After you complete the process for creating an adapter service, an icon for the service
appears in the Design tab. In the Applications Navigator, files with esbsvc and wsdl
extensions are created in the Resources folder of the project. The esbsvc file provides
the definition of the ESB service. The wsdl file defines the input and output messages
for this instance flow, the supported client interface and operations, and other features.
In addition to the wsdl files that are named with the adapter service name, there are
standard JCA header files that are created with a new adapter. The header file name is
of the form adapter_typeAdapterOutboundHeader.wsdl or adapter_
typeAdapterInboundHeader.wsdl, depending on whether the service is inbound
or outbound. The adapter_type specifies the type of adapter, such as DB, file, or
jms. For information about the adapter inbound and outbound header WSDL files, see
Oracle Application Server Adapter for Files, FTP, Databases, and Enterprise Messaging User's
Guide.
When you create an inbound adapter service, Oracle JDeveloper automatically creates
a routing service for the newly created adapter and sets up the link between the two.
The name of this routing service is the name of the inbound adapter appended with
the string _RS, as an abbreviation for routing service. See "Specifying Routing Rules"
on page 5-16.
i. In the Finish page, click Finish to complete the Adapter Configuration Wizard.
8. In the Create File Adapter Service dialog box, click OK to create the service.
The new adapter service appears in the Design tab with a new routing service. The
routing service has the _RS suffix attached to the name.
For example, when use the Oracle JDeveloper Adapter Configuration wizard to create
an inbound file adapter service named CustFileDataIn, Oracle JDeveloper
automatically creates a routing service named CustDataFileIn_RS and creates a
connection from the CustDataFileIn adapter service to the CustDataFileIn_RS
routing service, as illustrated in Figure 4–3.
You now need to add the routing rules for this new routing service. See "Specifying
Routing Rules" on page 5-16.
To create an outbound SOAP service with Oracle JDeveloper, follow these steps:
1. In the Applications navigator, navigate to the ESB project for which you want to
create a SOAP service, expand the Resources folder and double click
project-name.esb, where project-name is the name of the project to which you want
to add the SOAP service.
The Design tab for the project is displayed.
2. In the Component Palette, click the down arrow and select ESB services if not
already selected.
3. Drag and drop SOAP Service into the Design tab.
The Create SOAP Invocation Service dialog box opens.
4. In the Create SOAP Invocation Service dialog box, enter the following information:
a. Name
Enter a unique name across the ESB system in which you are creating the
service; spaces are not allowed.
For example: ACMEService
b. System/Group
For example: CustomerData
c. Description
For example: A SOAP Service
d. WSDL File
For example:
http://localhost:8888/ESBSamples-AcmeCust-context-root/Rec
eiveCustomerDataSoapHttpPort?WSDL
e. Port Type
For example: ReceiveCustomerData
Note: Endpoint properties are not fully tested and have been marked
as a Preview feature. Preview features will be supported in a later
release. Endpoint properties are only available if Oracle JDeveloper is
started in Preview mode. See "Opening Oracle JDeveloper" on
page 1-12.
Each adapter type and SOAP service has a specific set of endpoint properties that are
provided when the service is created. For example, you can specify a new URL, or
URLs, for the Location endpoint property of a SOAP service. Or you can also change
the RetryCount and RetryInterval endpoint properties to override the default
values for adapter error handling. For information about adapter error handling, see
"Inbound Adapter Error Handling" on page 10-2.
There are two types of endpoint properties: predefined and logical.
■ Predefined (override) properties
These properties are defined in the adapter wizard and the value can be
overridden or a value can be provided at runtime.
■ Logical properties
For the file and FTP adapters you can specify that the directories are logical rather
than physical. These logical names appear as endpoint properties in the Endpoint
Property Chooser dialog.
In addition, any adapter property can be made into a logical property by inserting
a $ into the wizard value (or manually edit the WSDL file). For example, if the
user specifies $myName as a value in the adapter wizard, then myName appear in
the Endpoint Property Chooser dialog.
You can add, delete, update, or view endpoint properties for the service in the
Endpoint Properties panel when modifying an adapter or SOAP service in Oracle
JDeveloper. See "Modifying Adapter Services" on page 4-4 and "Creating a SOAP
Service" on page 4-8. You can also access endpoints in the Property tab of the Oracle
ESB Control Services view. See "Oracle ESB Control Services View" on page 3-3.
3. In the Invoke dialog, click the torch icon next to Partner Link field to display the
Partner Link Chooser dialog.
4. In the Partner Link Chooser, select Partner Links and click the magic wand to
display the Create Partner Link dialog.
5. In the Create Partner Link dialog, enter a name in the Name field.
6. In the Create Partner Link dialog, click the torch icon to display the Service
Explorer dialog.
7. In the Service Explorer dialog, select the desired ESB routing service in the
Registered ESB Services tree and click OK.
8. In the Create Partner Link dialog, select the Partner Role from the list and click
OK.
9. In the Create Partner Link dialog, click the magic wand next to the Input Variable
field to display the Create Variable dialog.
10. In the Create Variable dialog, click OK.
11. In the Invoke dialog, click OK.
After you have successfully deployed the BPEL process to the integration server, the
ESB service that you specified in the BPEL partner link will be invoked by the BPEL
process.
For information about creating BPEL projects, see Oracle BPEL Process Manager
Developer's Guide.
For information testing an ESB service in Oracle Enterprise Manager, see "Testing the
ESB Services" on page 8-9.
When you create a routing service, Oracle JDeveloper opens a dialog box, as shown in
Figure 5–2.
As Figure 5–2 indicates, there are two main ways you can create the routing service
WSDL:
■ By specifying an existing WSDL file and one of the port types defined within that
WSDL
This option enables you to use an existing WSDL file (on the local file system or at
a Oracle JDeveloper connection) to define the routing service. Oracle JDeveloper
parses the WSDL you specify to present the list of port types from which you
make a selection.
If you want to edit an existing WSDL for the routing service, edit it using a WSDL
editor (such as Oracle JDeveloper) prior to specifying it in this dialog box.
■ By generating the WSDL from a schema file (XSD)
This option enables you to use an existing XSD file or a file in a native file format
(such as a comma-delimited value (CSV) file, a fixed-length file, a document type
definition (DTD) file or a COBOL copybook file) to define the routing service.
You can specify the same or different schema files for the request, response, and
fault message schemas, which Oracle JDeveloper converts into WSDL input,
output, and fault elements in the WSDL. Minimally, you must specify the schema
for the request message. You cannot specify a fault message schema, unless you
also specify a response.
In addition, you specify the operation and namespace. Oracle JDeveloper converts
the operation into a operation element in the WSDL file and the namespace you
specify is defined as the tns namespace in the WSDL file.
The operation element describes how input to the operation is defined.
When you complete the Create Routing Service dialog box, an icon is added to the
Design tab, as shown in Figure 5–1 on page 5-2. The name of the routing service
appears at the top of the icon, the name of the routing service operation appears below
that. A yellow triangle with the question mark indicates that the routing rules for this
routing service have not been specified yet.
Clicking the large green + icon to the far right of the routing service operation, shown
in Figure 5–3, creates a routing rule and launches the service browser, allowing you to
choose the target service and operation for this new rule. When you click the small +
icon to the left of Routing Rules, fields such as shown in Figure 5–4 are presented.
Note that the operation specified when the routing service was defined appears with a
green arrow next to it. The green arrow indicates that only a request message schema
was specified for the routing service. If request, reply, and fault message schemas were
specified, three arrows would appear, such as shown in Figure 5–4. If a fault message
schema is not specified, then the red arrow is not presented.
Note: You must specify the target service and operation for each
routing rule before you can specify a transformation. Because the
service browser is launched when a new rule is created, the only time
you will see a rule without a target is when the target service is
deleted.
■ The operation that will be executed on the message instances received by the
target service.
Later, if you specify a filter expression, you can prevent particular message instances
from being sent to a given target service on the basis of each message instance's
payload.
For each routing rule, you can specify only one target service and operation. Therefore,
if you want to specify multiple target operations for a given target service, you must
specify one routing rule for each target service operation.
For example, suppose you specify a database adapter service as a target service and
you want the operation applied to a message instance to be one of the following,
depending on the message payload:
■ Insert
■ Update
■ Delete
To do so, you create three routing rules, one for each operation. Later, when you
specify a filter expression, you can specify which target service and operation is
applied to each message instance on the basis of the message payload.
When you click the gear icon to the right of the target operation field (shown in
Figure 5–4), the Browse Target Service Operation dialog box opens, such as shown in
Figure 5–6.
After you have registered an ESB project, the services are listed under both Services in
project and Services at an ESB Connection. When selecting a target service, you can
navigate to the target service and operation at either of the locations as they are the
same.
■ Services in project
This branch lists all the ESB systems and the target services and operations within
each ESB system in the local Oracle JDeveloper project. In Figure 5–6, for example,
you could select target services and operations from the ESB system named
DefaultSystem.
■ Services at an ESB Server Connection
This branch lists all the ESB systems and the target services and operations within
each ESB system defined at an ESB Server connection. See "Registering ESB
Projects and Services with the ESB Server" on page 2-15.
If, for example, you want to select a target service and operation in the local Oracle
JDeveloper project, you expand the desired ESB system under Services in Project,
expand the desired service, and then select the desired operation.
The OK button is only enabled if you select a target operation that is compatible with
the source operation. For example, if the source operation requires a reply and you
select a target operation that does not have a reply, the OK button is not enabled.
For step-by-step instructions on specifying the target service in the routing rules, see
"Specifying Routing Rules" on page 5-16.
The Expression Builder Window contains the components and controls that assist you
in designing a filter expression. Briefly, you double-click a value in the WSDL Message
navigation tree or the Functions palette, to add the value to the Expression field. Using
a combination of WSDL Message elements, functions, and manually entered text, you
use this window to build an expression by which you want message payloads to be
filtered for a given routing rule.
The following list describes each of the fields in the Expression Builder window:
■ Expression field
This field is where you enter the filter expression – either manually, or by using the
WSDL Message navigation tree and the Functions palette.
The icons that appear to the upper right of this field enable you to validate the
expression, undo the last edit made, redo the last edit made, or clear the entire
Expression field, respectively.
■ WSDL Message Navigation Tree
This field contains the WSDL for the message defined for the routing service.
When you select an element from the navigation tree, it is presented in the Content
Preview field and described in the Description field. For example, Figure 5–14 on
page 5-20 shows how the Expression Builder window appears when you select an
element and click Insert into Expression.
■ Functions Palette
This list enables you to select different functions to include in an expression. The
function categories include the following:
– BPEL Extension Functions
■ Content Preview
This field indicates how a value selected from the WSDL Message or Functions
palette will appear when it is inserted into the Expression field.
■ Description
This field provides a description of a value selected from the WSDL Message or
Functions palette.
See "Using An Expression for Filtering Messages Based on Payload" on page 5-18 for
step-by-step instructions on building a filter expression.
Transformation Overview
A transformation map enables you to transform data from one XML schema to
another, enabling data interchange among applications using different schemas.
For example, suppose an inbound adapter service picks up a comma-delimited file
from a file system. A routing service receives that message and, using a
transformation, changes the file structure to the table structure as required by an
outbound database adapter service.
When you click the transformation map icon to the right of the Transformation Map
field in the routing rules panel of the routing service properties page, the Request
Transformation Map dialog displays. In that dialog, you can select an existing mapper
file (xsl) or create a new xsl file with the Data Mapper tool to perform the required
transformation. For information about the Data Mapper tool, see Chapter 6, "XSLT
Data Mapper and Transformations".
Generating the WSDL for a Routing Service from an Existing XSD File
Use this method to provide an existing WSDL for the routing service. After you
specify the file, Oracle JDeveloper parses it to determine the defined schema elements
and presents them in a drop-down list from which you can make a selection.
1. If you have not already done so, open the Routing Service dialog box, as described
in "Creating and Modifying Routing Services" on page 5-10.
2. In the Name field, enter a name for the routing service.
The name must be unique within the scope of the project in which the routing
service is being created. Spaces are not allowed.
3. For the System/Group field, click Browse to open the ESB Service Group Browser
dialog box, select the system (and service group, if desired) to which you want to
add the routing service, and then click OK.
To create a new system or service group to contain the routing service you are
creating, click Create New at the top of the ESB Service Group Browser dialog box.
See "Creating ESB Systems and Service Groups" on page 2-12 for information
about creating a new ESB system or service group.
4. In the Description field, enter a description for the routing service, if desired. This
field is optional.
5. Choose Generate WSDL from Schemas.
This option includes the Request, Reply, and Fault tabs.
6. On the Request tab, click Browse to access the Schema Location.
The Type Chooser dialog box, shown in Figure 5–9, opens and presents the schema
files (XSD files) from which you can choose to generate the WSDL. Expand the
trees under Project Schema Files, Project WSDL Files, and ESB to locate the
schema. Navigate to the root element of the XSD file for the message instance that
you want this routing service to process. Select the element and click OK.
Note: If you want to use a schema XSD file that resides on your local
file system, ensure that the XSD file, and any XSD files that it imports,
all reside in the JDeveloper project directory.
You can import a schema XSD file or WSDL file into a project by clicking on the
Import Schema File or Import WSDL icon that appears at the top right of the Type
Chooser dialog box. For information about importing schemas into an ESB project,
see "Importing Files into a Project" on page 2-14.
7. In the Request tab Schema Element field, select the root element for the message
that you want this routing service to process if not already selected.
8. On the Reply tab, repeat the steps for the Request tab if entering any information.
9. On the Fault tab, repeat the steps for the Request tab if entering any information.
10. In the Operation Name field, enter the operation name. Spaces are not allowed.
For example: executeQuery
11. In the Namespace field, enter a namespace or accept the current value.
For example: http://oracle.com/esb/namespaces/DefaultSystem
12. Click OK.
The routing service is created and an icon is added to the Design tab of the ESB project.
Resources folder of the project. The esbsvc file provides the definition of the ESB
service. The WSDL file defines the input and output messages for this instance flow,
the supported client interface and operations, and other features.
The following sections describe each of the available routing rules and how to specify
them:
■ Specifying the Target Operations on page 5-17
■ Creating an XSL Map File for Data Structure Transformation on page 5-18
■ Using An Expression for Filtering Messages Based on Payload on page 5-18
■ Specifying the ESB Systems From which Messages are Accepted on page 5-24
■ Specifying Synchronous or Asynchronous Execution on page 5-24
■ Specifying Routing Rules Priority on page 5-24
Note: To modify the target service and target service operation, click
the Browse for Target Service Operation icon, as shown in Figure 5–11.
Figure 5–12 Routing Rules for Request/Reply with Target Service Specified
Figure 5–13 Sample Expression Builder Tool – WSDL Message Element Selected
Figure 5–14 Sample Expression Builder Tool – WSDL Message Element Inserted
3. From the Function box, select the function that you want to apply to the WSDL
Message payload.
Functions are listed within categories that are listed when you click the down
arrow within the Functions box. For example, if you click the down arrow and
select Logical Functions, the list appears as shown in Figure 5–15. Notice that if
you select a function within the Logical Functions list, a description of that
function is presented in the Explanation box.
8. Click OK.
The expression is added to the Routing Rule property sheet.
Note that in addition to the XPath expression generated by the Expression Builder,
namespace definitions are automatically provided by Oracle Enterprise Service Bus to
create an extended syntax. If you place the cursor on a non-empty filter icon of a
routing service in the Design tab, the extended syntax displays.
To modify or delete a filter expression, double-click the Add Filter Expression icon,
and then modify or delete the expression in the Expression panel of the Expression
Builder.
Routing Service
Pass-through
Routing Service
Pass-through
For information about the adapter inbound and outbound header WSDL files, see
Oracle Application Server Adapter for Files, FTP, Databases, and Enterprise Messaging User's
Guide.
Header-based Transformation
ESB header-based transformation is supported with XSLT extension functions for:
■ Reading request headers:
String getRequestHeader(String xpathExpression,
String namespaceDecl)
<types>
<schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/file/"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:FILEAPP="http://xmlns.oracle.com/pcbpel/adapter/file/">
<element name="InboundFileHeaderType">
<complexType>
<sequence>
<element name="fileName" type="string"/>
<element name="directory" type="string"/>
</sequence>
</complexType>
</element>
</schema>
</types>
</definitions>
For Example 5–1, the corresponding getRequestHeader call in the Xpath expression
would be in the following form:
ehdr:getRequestHeader('/fhdr:InboundFileHeaderType/fhdr:fileName',
'fhdr=http://xmlns.oracle.com/pcbpel/adapter/file/;')
If you are writing the fileName to an outbound file adapter, you could use the
following in the XPath expression when creating a variable, where INFILENAME is the
variable name corresponding to getRequestHeader call:
ehdr:setOutboundHeader('/fhdr:OutboundFileHeaderType/fhdr:fileName', $INFILENAME,
'fhdr=http://xmlns.oracle.com/pcbpel/adapter/file/;')
Note: When using the set header functions, you must set values in
the order that is expected by the target service. This means that in
Example 5–1, you would need to first set the fileName before setting
the directory element.
Header-Based Filtering
You can route a message based on the message headers using filtering. ESB
header-based filtering is supported for request and inbound response headers with
XPath extension functions:
■ Reading request headers:
String getRequestHeader(String xpathExpression)
For example, if you want to check if the fileName is payload.xml, then you use the
following in Expression Builder after checking the values in
fileAdapterInboundHeader.wsdl file shown in Example 5–1.
{ehdr:getRequestHeader('/fhdr:InboundFileHeaderType/fhdr:fileName') = 'payload.xml'};
{ namespace fhdr=http://xmlns.oracle.com/pcbpel/adapter/file/ namespace
ehdr=http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions }
■ Cannot set Custom JMS Properties, only known Properties such as CorrelationId,
Time to Live, and Priority.
This chapter describes features of the XSLT Data Mapper and provides instructions for
using a transformation mapping in routing rules.
This chapter contains the following topics:
■ XSLT Data Mapper on page 6-1
■ Creating an XSL Map with Data Mapper on page 6-3
■ Using the XSLT Mapper on page 6-6
■ Using the Mapper Test Utility on page 6-22
The Source and the Target schemas are represented as trees and the nodes in the trees
are represented using a variety of icons. The displayed icon reflects the schema or
property of the node. For example:
■ An XSD attribute is denoted with an icon that is different from an XSD element
■ An optional element is represented with an icon that is different from a mandatory
element
■ A repeating element is represented with an icon that is different from a
nonrepeating element, and so on
The various properties of the element and attribute are displayed in the Property
Inspector in the lower right of Figure 6–1 (for example, type, cardinality, and so on).
The Functions Palette in the upper right of Figure 6–1 is the container for all functions
provided by the XSLT Mapper. The mapper pane or canvas is the actual drawing area
for dropping functions and connecting them to source and target nodes.
The XSLT Mapper provides three separate context sensitive menus:
■ One in the source panel
■ One in the target panel
■ One in the mapper pane or canvas in the middle
Right-click in each of the three separate panels to see what the context menus look like.
A full set of Undo Auto Map, Redo, Delete, and Delete All functions are also
available.
If the routing rule includes a reply or fault, the Request Transformation Map
dialog contains the Include Request in the Reply Payload option for reply or fault
transformations. When you enable this option, you can obtain information from
the request message. When you create a new map for reply or fault
transformations, the ESBREQUEST variable is added on the source side of the Data
Mapper tool. When you view the properties in the Edit Parameter dialog for
ESBREQUEST, you can add XPath Expression functions.
4. Choose one of the following options:
■ Create New Mapper File and then enter a name for the file (or accept the
default value).
■ Use Existing Mapper File and then click the flashlight icon to browse for an
existing mapper file (or accept the default value). When the data mapper tool
opens, you can update the existing file.
5. Click OK.
If you chose Create New Mapper File, the XSLT Data Mapper tool opens to enable
you to correlate source schema elements to target schema elements, as shown in
Figure 6–1 on page 6-2.
6. You can select and drag a component on either side of the tool to the component
you want to correlate on the other side of the mapper tool. When you initially
select and drag, the Auto Map Preferences dialog displays so you can set
preferences for the mapping.
7. You can choose to drag and drop source elements to target elements individually
or you can use the AutoMap feature in the Auto Map Preferences dialog. If you
enable the AutoMap and Match Elements with Similar Names options, the Data
Mapper tool automatically maps source elements to target elements after you click
OK in the Auto Map Preferences dialog, as shown inFigure 6–4.
9. After you have completed the transformation map, use File > Save to save the xsl
file.
You can directly launch the Data Mapper tool by double-clicking on a data
transformation icon in a routing service icon in the Design tab. If the transformation
exists, the Data Mapper tool opens for you to update the transformation file. If the
transformation file has not been specified yet, the Request Transformation Map dialog
displays and enables you to create a new transformation file or select an existing
transformation map file for update.
Note: You can also create an XSL transformation map file from an
XSL stylesheet. Click New, then XML, then XSL Map From XSL
Stylesheet from the File main menu in Oracle JDeveloper.
See Also: The online Help for the Set Text window for detailed
information
Adding Functions
In addition to the standard XPath 1.0 functions, the Data Mapper provides a number
of prebuilt extension functions and has the ability to support user-defined functions
and named templates. The extension functions are prefixed with xp20 or orcl and
mimic XPath 2.0 functions.
To view function definitions and use a function in a data transformation map, Perform
the following steps:
1. Select a category of functions, such as String Functions, from the Component
Palette.
2. Right-click an individual function, such as lower-case.
3. Select Help. A window with a description of the function appears. You can also
click a link at the bottom to access the function description at the World Wide Web
Consortium at www.w3.org.
4. Drag a function from one of the functions categories in the Component Palette to
the data mapper pane.
■ You can drag a function from the Component Palette on an existing link in the
mapper pane.
See Also:
■ "Using a Domain-Value Map in a Transformation" on page 7-12
■ Appendix A, "XPath Extension Functions" for reference
information about the XPath extension functions.
so that the output of the concat function is ContactTitle: Contact Name, then click
Add to add a new parameter ':' (with single quotes) and reorder the parameters to get
this output.
See Also: The online Help for the Edit Function window by clicking
the Help button to see how to add, remove, and reorder function
parameters
Chaining Functions
Complex expressions can be built by chaining functions. The chaining function can
also be defined by dragging and dropping the function to a connecting link.
For example, to remove all leading and trailing spaces from the output of the concat
function discussed in "Editing Function Parameters" on page 6-9, use the left-trim and
right-trim functions and chain them as shown in the Figure 6–10.
Named Templates
Some complicated mapping logic cannot be represented or achieved by visual
mappings. For these situations, named templates are useful. Named templates enable
you to share common mapping logic. You can define the common mapping logic as a
named template and then use it as often as you want.
You define named templates in the source view, and they appear in the User Defined
Named Templates list of the Component Palette. You can use named templates in
almost the same way as you use other functions. The only difference is that you cannot
link the output of a named template to a function or another named template; you can
only link its output to a target node in the target tree.
To write named templates, you must be familiar with the XSLT language. See any
XSLT book or visit the following URL for details about writing named templates:
http://www.w3.org/TR/xslt
See Also: The online Help for the Edit XPath Expression window,
which includes a link to instructions on using the XPath Building
Assistant
See Also: The online Help for the Auto Map Preferences window by
clicking the Help button to see a description of the fields
To see potential source mapping candidates for a target node, right-click the target
node, select Show Matches, and click OK in the Auto Map Preferences window. The
Auto Map window appears, as shown in Figure 6–15.
See Also: The online Help for the Auto Map window by clicking the
Help button to see a description of the fields
See Also: The online Help for the Auto Map window by clicking the
Help button to see a description of the fields
Generating Dictionaries
A dictionary is an XML file that captures the synonyms for mappings. Right-click in
the mapper pane as shown in Figure 6–5 on page 6-6 and select Generate Dictionary.
This prompts you for the dictionary name and the directory in which to place the
dictionary.
The XSLT Data Mapper uses the rules defined in the dictionary when attempting to
automatically map source and target elements. For example, you may want to map a
purchase order to a purchase order acknowledgment, then reuse most of the map
definitions later.
1. Build all the mapping logic for the purchase order and purchase order
acknowledgment.
2. Generate a dictionary for the created map.
3. Create a new map using a different purchase order and purchase order
acknowledgment.
4. Load the previously created dictionary by selecting Tools > Preferences > XSL
Maps > Auto Map in Oracle JDeveloper.
5. Perform an automatic mapping from the purchase order to the purchase order
acknowledgment.
■ Parameters are created in the source tree, are global, and can be used anywhere in
the mappings.
■ Variables are created in the target tree, and are either global or local. Where they
are defined in the target tree determines if they are global or local.
– Global variables are defined immediately below the <target> node and
immediately above the actual target schema (for example, POAcknowledge).
Right-click the <target> node to create a global variable.
– Local variables are defined on a specific node below the actual target schema
(for example, subnode name on schema POAcknowledge). Local variables
can have the same name as long as they are in different scopes. Local variables
can only be used in their scopes, while global variables can be used anywhere
in the mappings.
Note: You cannot search on functions or text values set with the Set
Text option.
Testing a Map
Use the Data Mapper test utility for testing from data transformation maps.
To test an XSL map:
1. Select the Test menu item from the mapper pane context sensitive menu.
The Test XSL Map dialog displays, shown in Figure 6–18.
2. Choose to allow a sample source XML file to be generated for testing or click
Browse to specify a different source XML file in the Source XML File field.
When you click OK, the source XML file is validated. If validation passes,
transformation occurs, and the target XML file is created.
Generating Reports
You can generate an HTML report with the following information:
■ XSL map file name, source and target schema file names, their root element names,
and their root element namespaces
■ Target document mappings
■ Target fields not mapped (including mandatory fields)
■ Sample transformation map execution
To generate a report, right-click the transformation window and select Generate
Report. The Generate Report window appears in the transformation window, as
shown in Figure 6–20. If the map has defined parameters, the Parameters table
appears.
See Also: The online Help for the Generate Report window by
clicking the Help button to see detailed information
In addition, you can also uncheck the Open Report option on the Generate Report
window before generating the report.
This chapter introduces domain-value maps, presents the XML structure required by
Oracle Enterprise Service Bus for a domain-value-map, describes how to create,
populate, import and export domain-value maps using the Oracle ESB Control, and
how to use domain-value maps when designing transformations within enterprise
service bus routing rules.
This chapter contains the following topics:
■ Understanding Domain-Value Maps on page 7-1
■ Creating and Populating Domain-Value Maps on page 7-1
■ Using a Domain-Value Map in a Transformation on page 7-12
1. Using the Oracle ESB Control, you create a domain-value map and populate it
with values that will need to be mapped across the applications integrated using
the enterprise service bus. This process is described in the subsections of this topic.
2. Using Oracle JDeveloper, you create an XSL file to define the source to target
transformation within a routing rule transformation. This process is described in
"Creating an XSL Map File for Data Structure Transformation" on page 5-18.
3. At runtime, Oracle Enterprise Service Bus uses the domain-value map to look up
appropriate values and populate the targets for the applications that it integrates
with.
You create (and then save) a domain-value map using the Map view of the Oracle ESB
Control. When you save the domain-value map, it is saved in the ESB repository,
which makes it available for use with the data mapper in Oracle JDeveloper. The
following sections describe the various methods available for creating (and saving) a
domain-value map.
■ Creating a New Domain-Value Map from Scratch on page 7-2
■ Exporting a Domain-Value Map on page 7-4
■ Domain-Value Map Template and XSD Files on page 7-5
■ Importing an Existing Domain-Value Map File on page 7-7
■ Importing Rows Into a Domain-Value Map on page 7-8
■ Editing a Domain-Value Map on page 7-10
■ Deleting a Domain-Value Map on page 7-12
Figure 7–1 Oracle ESB Control Map View – Create New Map
4. Replace the default New DVM with a name for the domain-value map file. To edit
New DVM, click in the name field in the right pane of the screen above the
Mappings area.
For example, you replace New DVM with StateCodes to identify a domain-value
map for state names, abbreviations, and short codes.
If you export the domain-value map, the name you specify is used for the export
file name. See "Exporting a Domain-Value Map" on page 7-4 for information about
exporting a domain-value map.
5. In the Description field, enter a description of the domain-value map.
For example, you might enter: Mappings of state names, abbreviations, and short
codes
6. If you need additional columns, click the Add down-arrow, and then click
Column once for each additional column you want to add. If you add too many
columns, select the column and click Delete.
Each column represents a domain. If you will be using the domain-value map to
map values among four domains, for example, you click Column twice to add two
more columns. There are no restrictions on what can be considered a domain; you
specify domains based on your needs. A domain might be, for example, a trading
partner, an organization, a department, an application, and so on.
For example, add one column Add > Column.
7. Double-click a column name to change it from the default value of Applicationn to
a more meaningful name. Each column name must be unique within the
domain-value map.
For example, you change the default column names to Long, Abbrev, and Short.
8. If you need additional rows, click the Add down-arrow, and then click Row once
for each additional row you want to add. If you add too many rows, select the row
and click Delete, or leave it as-is. Empty rows are deleted when you save the
domain-value map.
9. Double-click a row and enter values for the domain value map.
For example, enter Massachusetts, Mass, and MA in the columns under Long,
Abbrev, and Short.
10. Repeat the previous step until you have entered the desired rows. You do not have
to enter all rows that will be required by the applications. You can edit the
domain-value map to add more rows later.
Figure 7–2, shows an example of a domain-value map.
11. Review the name for the domain-value map and click the Save button above the
Description field.
After you click the Save button, you can change components of the domain-value
map, as described in "Editing a Domain-Value Map" on page 7-10.
You can change the name of a saved domain-value map by double-clicking on the
map name, but any transformation map referring to the domain-value map would
need to modified. See "Using a Domain-Value Map in a Transformation" on
page 7-12.
Although these instructions indicate that you click Save when you have completed
a domain-value map, you can click Save at any point in the process.
12. If you want to export the map, see "Exporting a Domain-Value Map" on page 7-4.
The domain-value map can now be used when creating a transformation in Oracle
JDeveloper.
1. In the Maps view of the Oracle ESB Control, create or import a domain value map,
as described in "Creating a New Domain-Value Map from Scratch" on page 7-2 or
"Importing an Existing Domain-Value Map File" on page 7-7.
2. Click Save, if you have not already done so.
3. Click Export.
4. Click OK, and then wait for the operating system dialog box to open that enables
you to save the file to the local file system. If you are prompted whether to open or
save the file, select Save.
5. In the save file dialog box, save the domain-value map file, such as
StateCodes.xml, in the desired location.
After the map file has been exported and saved to the file system, you can edit the
XML file with a text editor. However, make sure that you have carefully updated the
file so that the file remains valid. See Example 7–1 for a sample domain-value map file.
Example 7–3 shows the domain-value map schema definition (XSD) file. All imported
domain-value map XML files are validated against this schema definition file.
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" use="required"/>
<xsd:attribute name="isNew"/>
</xsd:complexType>
</xsd:element>
<xsd:annotation>
<xsd:documentation>This schema is used to validate the DVM Document used for creating
and updating a domain-value map
</xsd:documentation>
</xsd:annotation>
</xsd:schema>
Because the name becomes the primary key for the domain-value map when it
is stored in the ESB repository, the name must be unique. If you select
overwrite if a map with the same name already exists and a domain-value
map with the same name already exists that you do not want to overwrite,
you can do either of the following:
– Cancel this dialog box, rename the domain-value map, and then restart
the import operation. See "Editing the Name of a Domain-Value Map" on
page 7-10.
– Deselect overwrite if a map with the same name already exists.
5. Click OK.
The Oracle ESB Control refreshes and presents the imported domain-value map
file. The imported file is saved to the ESB repository and the domain-value map
can now be used when creating a transformation in Oracle JDeveloper.
When such a conflict exists you are given the following options:
■ Overwrite conflicting rows
If you select this option, conflicting rows in the domain-value map displaying in
the Oracle ESB Control are overwritten with rows from the file being imported.
■ Skip conflicting rows
If you select this option, conflicting rows in the domain-value map displaying in
the Oracle ESB Control are not overwritten with rows from the file being
imported. Those rows are not imported into the domain-value map.
■ Add conflicting rows
If you select this option, rows from the file being imported are added to the
domain-value map, even if they conflict with existing rows in the domain value
map. You should only select this option under particular circumstances and if you
are familiar with the applications that will use the domain-value map at runtime.
For example, the rows presented in Figure 7–4, should remain only if the
domain-value map will be used to map values from the SAP application values to
the Oracle application at run time, and not the reverse. If values from the Oracle
application will map to the SAP application at run time, then it is impossible for
the ESB Server to determine whether, Gallon should map to Container or Gal, and
therefore an error will result.
Follow these steps to import rows into a domain-value map:
1. In the Maps view of the Oracle ESB Control, create or import a domain value map,
as described in "Creating a New Domain-Value Map from Scratch" on page 7-2 or
"Importing an Existing Domain-Value Map File" on page 7-7.
2. Click Save to save any changes you have made.
3. Click Import.
The Import into an Existing Map dialog box opens.
4. In the Import File field, enter the path for the file from which you want to import
rows.
5. Select one of the Import Options, which are described in section.
Figure 7–5 Oracle ESB Control Map View – Import into an Existing Map Dialog
6. Click OK.
The Oracle ESB Control refreshes the view and presents the imported rows. The
domain-value map is saved to the ESB repository and it can be used when creating a
transformation in Oracle JDeveloper, as described in "Using a Domain-Value Map in a
Transformation" on page 7-12.
Figure 7–6 Oracle ESB Control Map View – Updated Map After Importing Rows
2. Click the arrow in the direction you want to move the selected column.
3. Repeat steps 1 and 2 until all the columns appear in the desired order.
5. In the Components palette, click the down-arrow and then select Advanced
Functions.
The lookup-dvm function is listed in the component palette, as shown in
Figure 7–9.
6. Drag and drop lookup-dvm onto the line that connects the source object to the
target object.
A lookup-dvm icon appears on the connecting line, as shown in Figure 7–10. The
yellow warning triangles indicate that the definition of the lookup-dvm function
is not complete.
Move the source value that appears in the dvmName field to the sourceValue
field by clicking Move Down twice.
Press Ctrl-Space to launch Expression Builder. Press the up and down keys to
locate an object in the list and press enter to select that item.
b. In the dvmName field, enter the name of the domain-value map schema that
you previously defined using the Oracle ESB Control.
Click the flashlight icon to the right of the dvmName field to select the name
from a list of domain-value maps stored in the ESB repository.
For example, select 'StateCodes' that was described in "Creating a New
Domain-Value Map from Scratch" on page 7-2.
c. In the sourceColumnName field, enter the name of the column in the
domain-value map that is associated with the source element value.
Click the flashlight icon to the right of the sourceColumnName field to select
the name from the columns defined for the domain-value map you previously
selected.
For example, 'Long'
d. In the targetColumnName field, enter the name of the column in the
domain-value map that is associated with the target element value.
Click the flashlight icon to the right of the targetColumnName field to select
the name from the columns defined for the domain-value map you previously
selected.
For example, 'Short'
e. Enter an optional default value.
For example, ""
f. Click OK.
The data mapper appears in the Design tab with the lookup-dvm function
icon, as shown in Figure 7–12.
This chapter discusses various administration tasks for Oracle Enterprise Service Bus.
This chapter contains the following topics:
■ Administrative Stages on page 8-1
■ Understanding Oracle Enterprise Service Bus Clusters on page 8-2
■ Providing Security on page 8-4
■ Setting Up Notification Channels on page 8-4
■ Testing the ESB Services on page 8-9
■ Checking Log Files on page 8-11
■ Moving the ESB Instance to a Different Oracle Home on page 8-13
■ Configuring the InterConnect Adapter with ESB on page 8-16
Administrative Stages
At different stages in setting up and running Oracle Enterprise Service Bus,
administrative attention is required, as described in the following list:
■ Planning Resources for the ESB
This stage involves choosing the right amount of resources to provide the
necessary capacity. This includes simple resources such as CPU, memory, and disk
space; and also more complex resources including the type and size of the
database to use for the metadata repository.
■ Installing the ESB software
This stages involves determining the system topology, deciding whether or not to
create a cluster of Oracle Enterprise Service Bus Servers installed on different
machines for high availability, choosing an active/active or active/passive model
for failover, and choosing firewalls.
■ Designing the enterprise service bus
This stage involves testing and stress testing the enterprise service bus at design
time
■ Functional testing
This stage involves testing to make sure the system supports the message flow as
expected, coverage to ensure that the testers do not overlook any key elements, the
number of different environments, and production once all testing is complete
■ Operational tuning
This stage involves tuning the Oracle Enterprise Service Bus to provide the best
performance, generating and reading log files, and performing backups and
restoring from a backup if necessary.
For information about administration tasks, see Oracle Application Server
Administrator's Guide.
RAC Cluster
OHS
Load Balancer
By configuring ESB systems into ESB clusters, you can take advantage of the high
availability and load balancing features that OC4J instances configured with multiple
processes provide. Configuring ESB systems in ESB clusters do not limit the flow of
messages; messages can flow across ESB clusters.
When you install Oracle Enterprise Service Bus, an ESB cluster named ESB is created
and configured for you. This default ESB cluster is provided so that you can use ESB
tutorial documented in the Oracle Enterprise Service Bus Quick Start Guide without the
prerequisite of configuring an ESB cluster manually. For production systems, you will
want to create and configure additional ESB clusters, if you want to take advantage of
the load-balancing and high-availability features enabled by OC4J clusters.
For information about high availability solutions for Oracle Enterprise Service Bus, see
"High Availability for Oracle SOA Suite" in Oracle Application Server High Availability
Guide. For information about high availability deployment scenarios for Oracle
Enterprise Service Bus, see Oracle Application Server Enterprise Deployment Guide.
Providing Security
Security for Oracle Enterprise Service Bus is provided by Oracle Application Server.
See the following resources information about setting up security:
■ For information about Secure Sockets Layer (SSL) and HTTPS protocol in Oracle
Application Server, see "Enabling SSL in the Infrastructure" and "Enabling SSL in
the Middle Tier" in Oracle Application Server Administrator's Guide.
■ For information about JDBC Client-Side security features, see Oracle Containers for
J2EE Security Guide.
■ For information about Oracle Web Services Manager's authentication capabilities,
see Oracle Web Services Manager Administrator's Guide.
Note: If you have installed the SOA suite, or ESB and BPEL are both
on the same middle tier, the configuration files are located in the
Oracle_Home\bpel\system\services\config directory.
See "Opening the Oracle ESB Control" on page 1-12 for instructions.
2. In the Services navigation tree, select the ESB system for which you want to set
channels under Notification Details.
The Definition tab appears similar to Figure 8–2.
3. Enter or update the values in the Email ID, Pager Number, Mobile Number, or
Phone Number fields. Separate multiple entries with commas.
For example, enter [email protected],[email protected] in
the Email ID field.
4. If you are satisfied with your changes, click Apply; otherwise, click Reset to return
the properties to the settings that were presented when you opened the page.
Table 8–1 describes the XML elements for the e-mail notification configuration stored
in the ns_emails.xml file.
Table 8–1 XML Elements for the E-mail Notification Configuration File
Name Description
EmailAccount/Name Name of the account. This can be any name, but
must be unique within this server.
EmailAccount/GeneralSettings/FromName Name of the From e-mail address
EmailAccount/GeneralSettings/FromAddress E-mail address for the From e-mail address
EmailAccount/OutgoingServerSettings/SMTPHost Name of the outgoing SMTP server
EmailAccount/OutgoingServerSettings/SMTPPort Port of the outgoing SMTP server
EmailAccount/IncomingServerSettings/Server Name of the incoming e-mail server
EmailAccount/IncomingServerSettings/Port Port of the incoming e-mail server
EmailAccount/IncomingServerSettings/UserName User ID of the e-mail address
EmailAccount/IncomingServerSettings/Password User password
EmailAccount/IncomingServerSettings/Password[encrypted Encrypted attribute of the password. It is true if the
password is encrypted and false if it is not.
Generally, you should set this to false when you
first enter the password. The server automatically
encrypts the password the first time it reads the
configuration file and sets the attribute to true.
EmailAccount/IncomingServerSettings/UseSSL Secure sockets layer (SSL) attribute. It is true if the
incoming server requires SSL and false if it does
not.
EmailAccount/IncomingServerSettings/Folder Name of the folder from which to read the incoming
messages
EmailAccount/IncomingServerSettings/PollingFrequency Polling interval for reading messages from the
incoming messages folder
<EmailAccounts xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService"
EmailMimeCharset=""
NotificationMode="NONE">
<EmailAccount>
<Name>Default</Name>
<GeneralSettings>
<FromName>Oracle ESB</FromName>
<FromAddress>[email protected]</FromAddress>
</GeneralSettings>
<OutgoingServerSettings>
<SMTPHost>yourdomain.com</SMTPHost>
<SMTPPort>25</SMTPPort>
</OutgoingServerSettings>
<IncomingServerSettings>
<Server>yourdomain.com</Server>
<Port>110</Port>
<Protocol>pop3</Protocol>
<UserName>accountId</UserName>
<Password ns0:encrypted="false"
xmlns:ns0="http://xmlns.oracle.com/ias/pcbpel/NotificationService">password</Password>
<UseSSL>false</UseSSL>
<Folder>Inbox</Folder>
<PollingFrequency>1</PollingFrequency>
<PostReadOperation>
<MarkAsRead/>
</PostReadOperation>
</IncomingServerSettings>
</EmailAccount>
<!--EmailAccount>
<Name>TaskServiceReceiving</Name>
<GeneralSettings>
<FromName>Oracle BPM</FromName>
<FromAddress>[email protected]</FromAddress>
</GeneralSettings>
<OutgoingServerSettings>
<SMTPHost>yourdomain.com</SMTPHost>
<SMTPPort>25</SMTPPort>
</OutgoingServerSettings>
<IncomingServerSettings>
<Server>yourdomain.com</Server>
<Port>110</Port>
<Protocol>pop3</Protocol>
<UserName>accountId</UserName>
<Password ns0:encrypted="false"
xmlns:ns0="http://xmlns.oracle.com/ias/pcbpel/NotificationService">password</Password>
<UseSSL>false</UseSSL>
<Folder>Inbox</Folder>
<PollingFrequency>1</PollingFrequency>
<PostReadOperation>
<MarkAsRead/>
</PostReadOperation>
</IncomingServerSettings>
</EmailAccount-->
</EmailAccounts>
Table 8–2 XML Elements for the Voice Notification Configuration File
Name Description
/IASWConfiguration/SoapURL URL of the wireless service provider
/IASWConfiguration/UserName Name of the user account with the wireless service
provider
/IASWConfiguration/Password User password
Table 8–2 (Cont.) XML Elements for the Voice Notification Configuration File
Name Description
/IASWConfiguration/Password[encr Encrypted attribute of the password. It is true if the
ypted password is encrypted and false if it is not. Generally,
you should set this to false when you first enter the
password. The server automatically encrypts the
password the first time it reads the configuration file
and sets the attribute to true.
/IASWConfiguration/ProxyHost Name of the proxy server
/IASWConfiguration/ProxyPort Port number of the proxy server
<IASWConfiguration xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService">
<!-- URL to the SOAP Service -->
<SoapURL>http://messenger.oracle.com/xms/webservices</SoapURL>
<!-- UserName - this username should exist in iAS Wireless schema -->
<UserName></UserName>
<Password ns0:encrypted="false"
xmlns:ns0="http://xmlns.oracle.com/ias/pcbpel/NotificationService"></Password>
<!-- Specify any custom implementation for sending notification through Voice, Fax, -->
<!-- Pager, SMS or IM channels. -->
<!-- All refers to an implementation for all of the above specified channels. -->
<!-- Email service can't have a custom implementation -->
<CustomNotificationServices>
<All/>
<Email/>
<Voice/>
<Fax/>
<Pager/>
<SMS/>
<IM/>
</CustomNotificationServices>
</IASWConfiguration>
6. In the Test Web Service page, click the Test Web Service button.
The test page displays.
7. Enter data in the fields of the Test page to test the service.
For example, enter sample data for a customer order that would be processed by
the CustIn_RS routing service.
8. After providing sample data, click Invoke to display the Test Results page.
Check whether there are any errors in the page. You can close the test page after
viewing the results.
9. View Instances in the Oracle ESB Control to check whether the message instance
was successfully processed with the sample data. For an example of successful
processing in the Instances in the Oracle ESB Control, see Figure 3–2 on page 3-6.
10. If necessary, correct any errors and repeat the test process.
6. Expand the items in the Select list until you locate a specific log file, then click
View.
For example, expand the Application esb-dt, Application esb-rt, and Diagnostic
Logs items. Click the icon in the View column to display the log file text.
The diagnostic file is located in the log.xml file and can be viewed with a text
editor.
9. Click Apply.
1. If the new Oracle Home does not have an ESB schema, create a new database
schema by executing the createuser.sql and createschema.sql scripts that
are located in the Oracle_Home/integration/esb/sql/oracle/ directory.
For example:
SQL>@Oracle_Home\integration\esb\sql\oracle\createuser.sql
SQL>@Oracle_Home\integration\esb\sql\oracle\createschema.sql
3. Export the ESB parameters from the old Oracle Home by running the ant utility
as follows:
ant export-params -Dparamfile=file_path_specfication\esb.properties>
-DDB_URL=jdbc_url_to_old_database
-DDB_USER=db_user_name
-DDB_PASSWORD=db_user_password
7. Import the metadata from the old Oracle Home to the new Oracle Home with the
ESB import utility.
For example:
> Oracle_home/integration/esb/bin/import c:\temp\metadata.zip
See "Using the ESB Import and Export Utilities" on page 8-15.
■ file-spec is the full file specification for the file in which you want to export
the metadata
■ -system is the name of the system to be exported. All service
groups/services belonging to the specified system are exported recursively.
■ -serviceGroup is the name of the service group to be exported. All service
groups/services belonging to the specified service group are exported
recursively.
■ -service is the name of the service to be exported
■ -flow indicates that the entire flow of the service specified using -service
option is to be exported. All the down stream services along with this service
are exported. If inbound adapter service is specified using -service option,
then all services involving in the flow are exported. If a routing service is
specified, the routing service and all the down stream services involving in the
flow are exported.
The options -system, -serviceGroup, and -service can be used multiple
times for different entities. If no option is specified, the entire metadata is
exported.
Examples:
export c:\temp\metadata.zip
export c:\esb\metadata.zip -system T-Vox -system T-Vox1
-serviceGroup T-Vox2.Stores -service
T-Vox3.Stores.SFOProductLanuch -flow
To import metadata to an ESB Server:
1. Start the ESB Server if it is not currently running. See "Starting, Stopping, and
Accessing Oracle Enterprise Service Bus Components" on page 1-10.
■ file-spec is the full file specification for the file that contains the metadata
that you want to import
■ -system is the name of the system to be imported. All service
groups/services belonging to the specified system are imported recursively.
■ -serviceGroup is the name of the service group to be imported. All service
groups/services belonging to the specified service group are exported
recursively.
■ -service is the name of the service to be imported
■ -flow indicates that the entire flow of the service specified using -service
option is to be imported. All the down stream services along with this service
are imported. If inbound adapter service is specified using -service option,
then all services involving in the flow are imported. If a routing service is
specified, the routing service and all the down stream services involving in the
flow are imported.
The options -system, -serviceGroup, and -service can be used multiple
times for different entities. If no option is specified, the entire metadata is
imported.
Examples:
import c:\temp\metadata.zip
import c:\esb\metadata.zip -system T-Vox -system T-Vox1
-serviceGroup T-Vox2.Stores -service
T-Vox3.Stores.SFOProductLanuch -flow
This chapter describes how to use the Oracle ESB Control Instances view to track
message instances across the enterprise service bus.
This chapter contains the following topics:
■ Overview of the Oracle ESB Control Instances View on page 9-1
■ Understanding Instances View Elements and Controls on page 9-2
■ Administering Message Instances on page 9-6
■ Search panel
Because the volume of messages processed during that time can be quite large, the
Search panel, shown in Figure 9–3, enables you to limit the messages displayed
using a variety of filter criterion.
The control to the left of the Search title enables you to open or close this panel; the
green arrow icon to the right of the Search title applies changes you make in this
panel. The Advanced control toggles to Basic and back; it enables you to show or
hide the Instances containing region of this panel.
By default, the Instances panel displays all the messages processed during the past
day. If you want to view messages processed prior to the past day, then you need
to increase the number of days in the Activity in last field in the Advanced
options before searching for messages.
Only the first 100 instances are returned after any search filtering.
■ Instances panel
The Instances panel lists the message instances processed or being processed by
the ESB services, optionally filtered by search options you select. The maximum
number of displayed is 100.
For each message, the time at which each message instance entered the enterprise
service bus, instance ID for the message, and the status of that processing is
provided. The status is represented by the following color-coded icon(s) in the
Status column (shown in Figure 9–4):
– Green rectangle - No faults or errors during message processing
– Solid red circle overlaid with an X - Error occurred
– Yellow triangle overlaid with an exclamation point - Faulted message (the
target service returned an application fault)
– An error icon plus a faulted icon - Error and faulted
– An error icon overlaid with a small yellow left arrow – Error is resubmittable
(for asynchronous processing)
– An error icon overlaid with a small yellow left arrow plus a faulted icon –
Error (resubmittable) and faulted
– An error icon overlaid with a small yellow right arrow plus a faulted icon –
Error (rejection by inbound adapter) and faulted
– Navigator subtab
For complex ESB configurations, the schematic can be quite large and you may
not be able to view it in its entirety all at once. The Navigator subtab provides
a birds-eye view of the entire schematic. The purple region of the Navigator
tab highlights the area of the schematic currently in showing.
Use the scroll bars around the schematic to view areas currently outside the
purple shaded region. Click the down-arrow button to the left of the
Navigator tab to hide the contents of the subtabs (and thereby increase the
available viewing area for the schematic.)
– Details subtab
The details subtab provides information about the status of a message with
respect to a selected service. Note that a pencil icon on the service designates
that the service has been updated since the message instance was processed.
– Overlay subtab
The Overlay subtab enables you to view statistics on the messages processed
by each service.
■ Error tab
The Error tab is presented only when you select a service in the Instances panel
where an error occurred, as shown in Figure 9–6. The Errors tab contains an error
table that lists the time, service:operation, and message associated with each error.
Click the Error Details icon in the Message column to view the error message and
the stack trace. See Chapter 10, "Error Handling" for information about handling
error conditions.
– Status
This field specifies the status of the message, which can be successful or failed.
If a message was processed successfully, but the transaction was rolled back
due to some other error, that information is included in the Status field. For
example, the status might be: Successful; however, the transaction
was rolled back due to an error in CRMOUT:Write.
– Activity Time
This field specifies the time at which the message was processed by the service
selected in the Instances panel.
– Tracking data
■ If you click the connection between two services in the schematic:
– Source
Specifies the service and operation from which the message instance is being
sent, in the format source_service::operation.
– Target
Specifies the service and operation to which the message instance is being
sent, in the format target_service::operation.
– Status
Specifies the status of the target service. For example, the status might be one
of the following:
* Did not process the message.
* Not executed as part of the message flow.
* Not successful because there was an error during the invocation of the
target.
This chapter describes how to interpret error conditions and how to handle them in
Oracle Enterprise Service Bus. The Instances view in the Oracle ESB Control enables
you to view and manage error conditions that occur across the enterprise service bus.
This chapter contains the following topics:
■ Overview of Error Handling on page 10-1
■ Managing Error Conditions on page 10-2
You can also view the log files with Oracle Enterprise Manager to check for details on
error conditions. See "Checking Log Files" on page 8-11.
You can view the error message, trace, and payload details by clicking on the Error
Details icon in the Message column on the Errors tab, shown in Figure 10–3.
Figure 10–2 is an example of the Error Details dialog.
After you review the error details and fix the error condition, you can resubmit the
message to the invoking service.
For information about enabling validation of the payload at runtime, see Table 3–6 on
page 3-14 in "Viewing Service Definitions" on page 3-13.
Oracle provides XPath extension functions that use built-in ESB capabilities and XPath
standards. This chapter describes the XPath extension functions, along with their
descriptions, signature, argument descriptions, and property ID information
This appendix contains the following topics:
■ add-dayTimeDuration-to-dateTime on page A-2
■ compare on page A-2
■ compare-ignore-case on page A-3
■ create-delimited-string on page A-3
■ current-date on page A-4
■ current-dateTime on page A-4
■ current-time on page A-4
■ day-from-dateTime on page A-5
■ doc on page A-5
■ ends-with on page A-5
■ format-dateTime on page A-6
■ format-string on page A-6
■ generate-guid on page A-6
■ get-content-as-string on page A-7
■ get-localized-string on page A-7
■ getInboundResponseHeader on page A-8
■ getRequestHeader on page A-8
■ hours-from-dateTime on page A-8
■ implicit-timezone on page A-9
■ index-within-string on page A-9
■ last-index-within-string on page A-9
■ left-trim on page A-10
■ lookup-dvm on page A-10
■ lookup-table on page A-11
■ lookup-xml on page A-12
add-dayTimeDuration-to-dateTime
This function returns a new date time value adding dateTime to the given duration.
If the duration value is negative, then the resulting value precedes dateTime.
Signature:
xp20:add-dayTimeDuration-from-dateTime(dateTime as string,
duration as string)
Arguments:
■ dateTime as string – The dateTime to which the function adds the duration,
in string format.
■ duration as string – The duration to add to the dateTime, or subtract if the
duration is negative, in string format.
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
compare
This function returns the lexicographical difference between inputString and
compareString comparing the unicode value of each character of both the strings.
This function returns -1 if inputString lexicographically precedes the
compareString.
This function returns 0 if both inputString and compareString are equal.
This function returns 1 if inputString lexicographically follows the
compareString.
Example:
xp20:compare('Audi', 'BMW') returns -1
Signature:
xp20:compare(inputString as string, compareString as string)
Arguments:
■ variableName – The source variable for the data
■ propertyName – The qualified name (QName) of the property
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
compare-ignore-case
This function returns the lexicographical difference between inputString and
compareString while ignoring case and comparing the unicode value of each
character of both the strings.
This function returns -1 if inputString lexicographically precedes the
compareString.
This function returns 0 if both inputString and compareString are equal.
This function returns 1 if inputString lexicographically follows the
compareString.
Example:
xp20:compare-ignore-case('Audi','bmw') returns -1
Signature:
orcl:compare-ignore-case(inputString as string, compareString as
string)
Arguments:
■ inputString as string – The input string
■ CompareString as string – The string to compare against the input string
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
create-delimited-string
This function returns a delimited string created from nodeSet delimited by delimiter.
Signature:
orcl:create-delimited-string(nodeSet as node-set, delimiter as
string)
Arguments:
■ nodeSet – The node set to be converted into a deliminated string
■ delimiter – The character that separates the items in the output string; for
example, a comma or a semicolon.
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.ExtFunc
■ namespace-prefix: orcl
current-date
This function returns the current date in ISO format YYYY-MM-DD.
Signature:
xp20:current-date(object)
Arguments:
■ object - The time in standard format
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
current-dateTime
This function returns the current datetime-value in ISO format
CCYY-MM-DDThh:mm:ssTZD.
Signature:
xp20:current-dateTime(object)
Arguments:
■ object – The time in standard format
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
current-time
This function returns the current time in ISO format. The format is hh:mm:ssTZD.
Signature:
xp20:current-time(object)
Arguments:
day-from-dateTime
This function returns the day from dateTime. The default day is 1.
Signature:
xp20:day-from-dateTime(object)
Arguments:
■ object – The time in standard format
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
doc
This function returns the content of an XML file.
Signature:
ora:doc('fileName','xpath'?)
Arguments:
■ fileName – The name of the XML file
■ xpath – path to the XML file
Property IDs:
■ namespace-uri: http://schemas.oracle.com/xpath/extension
■ namespace-prefix: ora
ends-with
This function returns true if inputString ends with searchString.
Example:
xp20:ends-with('XSL Map','Map') returns true
Signature:
xp20:ends-with(inputString as string, searchString as string)
Arguments:
■ inputString – The string of data to be searched
■ searchString – The string for which the function searches
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
format-dateTime
This function returns the formatted string of dateTime using the format provided.
Signature:
xp20:format-dateTime(dateTime as string, format as string)
Arguments:
■ dateTime – The dateTime to be formatted
■ format – The format for the output
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
format-string
This function returns the message formatted with the arguments passed. At least one
argument is required and supports up to a maximum of 10 arguments.
Example:
orcl:format-string('{0} + {1} = {2}','2','2','4') returns '2 + 2 =
4'
Signature:
orcl:format-string(string,string,string...)
Arguments:
■ string – One of the strings to be used in the formatted output
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.ExtFunc
■ namespace-prefix: orcl
generate-guid
This function generates a unique GUID.
Signature:
orcl:generate-guid()
Arguments:
■ none
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.ExtFunc
■ namespace-prefix: orcl
get-content-as-string
This function returns the XML representation of the input element.
Signature:
orcl:get-content-as-string(element as node-set)
Arguments:
■ element as node-set – The input element that the function returns as an XML
representation
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.ExtFunc
■ namespace-prefix: orcl
get-localized-string
This function returns the locale-specific string for key. This function uses language,
country, variant, and resource bundle to identify the correct resource bundle.
The resource bundle in obtained by resolving resourceLocation against the
resourceBaseURL. The URL is assumed to be a directory only if it ends with /.
Usage:
orcl:get-localized-string(resourceBaseURL as string,
resourceLocation as string, resource bundle as string, language
as string, country as string, variant as string, key as string)
Example:
orcl:get-localized-string('file:/c:/','','MyResourceBundle','en'
,'US','','MSG_KEY') returns a locale-specific string from a resource bundle
'MyResourceBundle' in the C:\ directory
Signature:
orcl:get-localized-string(resourceURL,resourceLocation,resourceB
undleName,language,country,variant,messageKey)
Arguments:
■ resourceURL – The URL of the resource
■ resourceLocation – The subdirectory location of the resource
■ resourceBundleName – The name of the zip file containing the resource bundle
■ language – The language of the localized output
■ country – The country of the localized output
getInboundResponseHeader
This function gets a string value from inbound response header.
Signature:
ehdr:getInboundResponseHeader(headerXPath,
namespaceDeclarations)
Arguments:
■ headerXPath is the xpath into the header document
■ namespaceDeclarations used in the headerXPath as
prefix=Namespace-URI
Property IDs:
■ http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.
headers.ESBHeaderFunctions
■ namespace-prefix: ehdr
getRequestHeader
This function gets a string value from request message header.
Signature:
ehdr:getRequestHeader(headerXPath, namespaceDeclarations)
Arguments:
■ headerXPath is the xpath into the header document
■ namespaceDeclarations used in the headerXPath as
prefix=Namespace-URI
Property IDs:
■ http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.
headers.ESBHeaderFunctions
■ namespace-prefix: ehdr
hours-from-dateTime
This function returns the hour from dateTime. The default hour is 0.
Signature:
xp20:hours-from-dateTime(dateTime as string)
Arguments:
implicit-timezone
This function returns the current time zone in ISO format +/- hh:mm, indicating a
deviation from UTC (Coordinated Universal Timezone).
Signature:
xp20:implicit-timezone(object)
Arguments:
■ object – The time in standard format
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
index-within-string
This function returns the zero-based index of the first occurrence of searchString
within the inputString.
This function returns -1 if searchString is not found.
Example:
orcl:index-within-string('ABCABC, 'B') returns 1
Signature:
orcl:index-within-string(inputString as string, searchString as
string)
Arguments:
■ inputString – The string to be searched
■ searchString – The string for which the function searches in the inputString
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.ExtFunc
■ namespace-prefix: orcl
last-index-within-string
This function returns the zero-based index of the last occurrence of searchString
within inputString.
left-trim
This function returns the value of inputString after removing all the leading white
spaces.
Example:
orcl:left-trim(' account ') returns 'account '
Signature:
orcl:left-trim(inputString)
Arguments:
■ inputString – The string to be left-trimmed
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.ExtFunc
■ namespace-prefix: orcl
lookup-dvm
This function returns a string by looking up the value for target column in the DVM
where the value for source column is equal to the source value. The source value is an
xpath expression bound to the source document of the XSLT transformation. The
expression will be evaluated during the transformation and the result value will be
passed as the source value for lookup. This function takes 5 parameters.
Example:
orcl:lookup-dvm
('StateCodes','Long',/inp1:Customer/Profile/AccountRep/Address/S
tate,'Short',"")
Signature:
lookup-table
This function returns a string based on the SQL query generated from the parameters.
The string is obtained by executing:
SELECT outputColumn FROM table WHERE inputColumn = key
against the data source that can be either a JDBC connect string
(jdbc:oracle:thin:username/password@host:port:sid) or a data source
JNDI identifier. Only Oracle Thin Driver is supported if the JDBC connect string is
used.
Example:
orcl:lookup-table('employee','id','1234','last_
name','jdbc:oracle:thin:scott/tiger@localhost:1521:ORCL')
Signature:
orcl:lookup-table(table, inputColumn, key, outputColumn,
datasource)
Arguments:
■ table – The table from which to draw the data
■ inputColumn – The column within the table
■ key – The key
■ outputColumn – The column to output the data
■ datasource – The source of the data
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.ExtFunc
■ namespace-prefix: orcl
lookup-xml
This function returns the string value of an element defined by lookupXPath in an
XML file (docURL) given its parent XPath (parentXPath), the key XPath
(keyXPath), and the value of the key (key).
Example:
orcl:lookup-xml('file:/d:/country_data.xml',
'/Countries/Country', 'Abbreviation', 'FullName', 'UK') returns the
value of the element FullName child of /Countries/Country where
Abbreviation = 'UK' is in the file D:\country_data.xml.
Signature:
orcl:lookup-xml(docURL, parentXPath, keyXPath, lookupXPath, key)
Arguments:
■ docURL – The XML file
■ parentXPath – The parent XPath
■ keyXPath – The key XPath
■ lookupXPath – The lookup XPath
■ key – The key value
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.ExtFunc
■ namespace-prefix: orcl
lower-case
This function returns the value of inputString after translating every character to its
lower-case correspondent.
Example:
xp20:lower-case('ABc!D') returns 'abc!d'
Signature:
xp20:lower-case(inputString)
Arguments:
■ inputString – The input string
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
minutes-from-dateTime
This function returns the minute from dateTime. The default minute is 0.
Signature:
xp20:minutes-from-dateTime(dateTime)
Arguments:
■ dateTime – The dateTime
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
month-from-dateTime
This function returns the month from dateTime. The default month is 1 (January).
Signature:
xp20:month-from-dateTime(dateTime)
Arguments:
■ dateTime – The dateTime to be formatted
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
query-database
This function returns a node-set by executing the SQL query against the specified
database.
Signature:
orcl:query-database(sqlquery as string, rowset as boolean, row
as boolean, datasource as string)
Arguments:
■ sqlquery – The SQL query to perform
■ rowset – Indicates if the rows should be enclosed in a <rowset> element
■ row – Indicates if each row should be enclosed in a <row> element
■ datasource – Either a JDBC connect string
(jdbc:oracle:thin:username/password@host:port:sid) or a JNDI
name for the database
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.ExtFunc
■ namespace-prefix: orcl
right-trim
This function returns the value inputString after removing all the trailing white
spaces.
Example:
orcl:right-trim(' account ') returns ' account'
Signature:
orcl:right-trim(inputString as string)
Arguments:
■ inputString – The input string to be right-trimmed
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.ExtFunc
■ namespace-prefix: orcl
seconds-from-dateTime
This function returns the second from dateTime. The default second is 0.
Signature:
xp20:seconds-from-dateTime(dateTime as string)
Arguments:
■ dateTime – The dateTime as a string
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
sequence-next-val
Return the next value of an Oracle sequence.
The next value is obtained by executing
SELECT sequence.nextval FROM dual
Arguments:
■ sequence – name of the sequence in the database
■ datasource – a JDBC connect string or data source JNDI identifier
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.ExtFunc
■ namespace-prefix: orcl
setOutboundHeader
This function sets an outbound message header value.
Signature:
ehdr:set-outbound-header(headerXPath, value,
namespaceDeclarations)
Arguments:
■ headerXPath is the xpath into the outbound header document
■ value is the value to set on outbound message header
■ namespaceDeclarations used in the headerXPath as
prefix=Namespace-URI
Property IDs:
■ http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.
headers.ESBHeaderFunctions
■ namespace-prefix: ehdr
setResponseHeader
This function sets a response message header value.
Signature:
ehdr:set-response-header(headerXPath, value,
namespaceDeclarations)
Arguments:
■ headerXPath is the xpath into the response header document
■ value is the value to set on response message header
■ namespaceDeclarations used in the headerXPath as
prefix=Namespace-URI
Property IDs:
■ http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.
headers.ESBHeaderFunctions
■ namespace-prefix: ehdr
square-root
This function returns the square root of inputNumber.
Example:
orcl:square-root(25) returns 5
Signature:
orcl:square-root(inputNumber as number)
Arguments:
■ inputNumber – The input number for which the function calculates the square
root
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.ExtFunc
■ namespace-prefix: orcl
subtract-dayTimeDuration-from-dateTime
This function returns a new dateTime value after subtracting duration from
dateTime.
If the duration value is negative, then the resultant dateTime value follows
input-dateTime value.
Signature:
xp20:subtract-dayTimeDuration-from-dateTime(dateTime as string,
duration as string)
Arguments:
■ dateTime as string – The dateTime from which the function subtracts the
duration, in string format.
■ duration as string – The duration to subtract to the dateTime, or add if the
duration is negative, in string format.
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
timezone-from-dateTime
This function returns the timezone from dateTime. The default timezone is
GMT+00:00.
Signature:
xp20:timezone-from-dateTime(dateTime as string)
Arguments:
■ dateTime as string – The dateTime for which this function returns a time
zone
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
upper-case
This function returns the value of inputString after translating every character to its
upper-case correspondent.
Example:
xp20:upper-case('abCd0') returns 'ABCD0'
Signature:
xp20:upper-case(inputString as string)
Arguments:
■ inputString – The input string
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
year-from-dateTime
This function returns the year from dateTime.
Signature:
xp20:year-from-dateTime(dateTime as string)
Arguments:
■ dateTime – The dateTime
Property IDs:
■ namespace-uri:
http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.servic
es.functions.Xpath20
■ namespace-prefix: xp20
A in transformations, 6-16
adapter services
access to data sources and, 1-2 B
AQ, 1-3 BPEL partner link
configuring, 4-1 to an ESB service, 4-12
creating, 4-3
database, 1-3
deleting, 4-4 C
described, 1-2 clusters
error handling with inbound, 10-2 Oracle Enterprise Service Bus, 8-2
example creating an inbound file, 4-5 compare function
file, 1-3 description, A-2
FTP, 1-3 compare-ignore-case function
inbound, 1-3 description, A-3
JMS, 1-3 Component Palette
modifying, 4-4 Oracle JDeveloper, 2-2
Native MQSeries, 1-3 concrete WSDL
Oracle Applications (OA), 1-3 calling an ESB service, 4-14
outbound, 1-3 concrete WSDL URL
using, 4-2 using to invoke a service, 1-4
adapters conditional processing
supported by Oracle JDeveloper, 1-6 with xsl choose, 6-13
add-dayTimeDuration-to-dateTime function with xsl if, 6-12
description, A-2 Connection Navigator tab
Apache Axis Oracle JDeveloper, 2-1
connectivity with, 1-2 connections
SOAP invocation services and, 1-2 creating a database, 2-8
Application Navigator tab creating an application server, 2-6
New Gallery dialog, 2-2 creating an integration server, 2-7
Oracle JDeveloper, 2-1 creating and testing in Oracle JDeveloper, 2-6
Register with ESB, 2-2 testing in Oracle JDeveloper, 2-10
applications connectivity
creating, 2-11 example of, 1-2
ESB, 2-11 Oracle Enterprise Service Bus, 1-2
Applications Navigator SOAP invocation services and, 1-2
Oracle JDeveloper and, 1-7 constant values
AQ adapter services in transformations, 6-7
defined, 1-3 Create Routing Service dialog
arrays opening, 5-11
in transformations, 6-14 Oracle JDeveloper, 2-3
asynchronous execution specifying the WSDL file, 5-11
JMS and, 1-5 create-delimited-string function
auto mapping description, A-3
in transformations, 6-15 creating
auto mapping with confirmation domain-value map, 7-2
Index-1
current-date function endpoint properties
description, A-4 specifying, 4-12
current-dateTime function using, 4-11
description, A-4 ends-with function
current-time function description, A-5
description, A-4 error conditions
managing, 10-2
error handling
D
inbound adapters, 10-2
data mapper managing, 10-2
document transformation and, 1-4 Oracle Enterprise Service Bus, 10-1
purpose of, 1-4 overview, 10-1
database adapter services resubmitting messages, 10-4
defined, 1-3 user, 10-2
day-from-dateTime function ESB metadata
description, A-5 moving, 8-15
Definition tab ESB Metadata Server
services, 3-4 overview, 1-1
definitions ESB Server
services in Oracle ESB Control, 3-12 overview, 1-1
deleting registering ESB projects, 2-15
adapter services, 4-4 starting, 1-10, 1-11
ESB projects, 2-15 starting and stopping on Linux, 1-11
deleting a routing service, 5-30 starting and stopping on Windows, 1-11
deployed services stopping, 1-11
browsing, 4-10 syncing services, 2-15
Design tab execution priority
Oracle JDeveloper, 2-2 routing rules and, 1-5
details execution types
displaying in Diagram panel, 3-4 asynchronous, 1-5
Details panel defined, 1-5
on Diagram tab, 3-4 synchronous, 1-5
Diagram panel Expression Builder
displaying details, 3-4 specifying a trackable field, 3-19
Diagram tab
Details panel, 3-4
Navigator panel, 3-4
F
dictionaries file adapter services
in transformations, 6-18 defined, 1-3
doc function filter expressions
description, A-5 defined, 1-4
document transformation routing rules and, 1-4
data mapper and, 1-4 format-dateTime function
Oracle Enterprise Service Bus, 1-4 description, A-6
reuse of, 1-4 format-string function
document transformations description, A-6
routing rules and, 1-5 FTP adapter services
domain-value maps defined, 1-3
creating, 7-2 functions
creating and populating, 7-1 add-dayTimeDuration-to-dateTime, A-2
editing, 7-10 chaining in transformations, 6-10
importing an existing map, 7-7 compare, A-2
importing rows into an existing map, 7-8 compare-ignore-case, A-3
overview, 7-1 create-delimited-string, A-3
using in a transformation map, 7-12 current-date, A-4
current-dateTime, A-4
current-time, A-4
E
day-from-dateTime, A-5
elements descriptions, 6-8
ignoring in XSLT documents, 6-21 doc, A-5
Index-2
editing in transformations, 6-9 description, A-8
editing XPath expressions in
transformations, 6-11
I
ends-with, A-5
format-dateTime, A-6 icons
format-string, A-6 used in Oracle ESB Control, 3-8
functions prefixed with xp20 or orcl, 6-8 implicit-timezone function
generate-guid, A-6 description, A-9
get-content-as-string, A-7 import
getInboundResponseHeader, A-8 user-defined functions in the XSLT Mapper, 6-11
get-localized-string, A-7 inbound adapter services
getRequestHeader, A-8 defined, 1-3
hours-from-dateTime, A-8 index-within-string function
implicit-timezone, A-9 description, A-9
in transformations, 6-8 Instances view
index-within-string, A-9 Details tab, 9-6
last-index-within-string, A-9 disabling tracking, 9-6
left-trim, A-10 elements and controls, 9-2
lookup-dvm, A-10 enabling tracking, 9-6
lookup-table, A-11 Oracle ESB Control, 3-5, 9-1
lookup-xml, A-12 Overlay tab, 9-7
lower-case, A-12 processing statistics, 9-7
minutes-from-dateTime, A-12 purging messages, 9-10
month-from-dateTime, A-13 searching for messages, 9-8
prefixed with xp20 or orcl, 6-8
query-database, A-13 J
right-trim, A-14
seconds-from-dateTime, A-14 JMS
sequence-next-val, A-14 asynchronous execution type and, 1-5
setOutboundHeader, A-15 JMS adapter services
setResponseHeader, A-15 defined, 1-3
square-root, A-16
subtract-dayTimeDuration-from-dateTime, A-16 L
timezone-from-dateTime, A-16
last-index-within-string function
upper-case, A-17
description, A-9
user-defined in transformations, 6-11
left-trim function
year-from-dateTime, A-17
description, A-10
log files
G configuring in Oracle Enterprise Manager, 8-13
generate-guid function viewing in Oracle Enterprise Manager, 8-12
description, A-6 lookup-dvm function
get-content-as-string function description, A-10
description, A-7 lookup-table function
getInboundResponseHeader function description, A-11
description, A-8 lookup-xml function
get-localized-string function description, A-12
description, A-7 lower-case function
getRequestHeader function description, A-12
description, A-8
getting started M
Oracle JDeveloper, 2-5
maps
domain-value, 7-1
H Maps view
header transformation and filtering, 5-24 Oracle ESB Control, 3-7
header-based routing, 5-24 maxOccurs attribute
heap size setting for transformations, 6-25
increasing, 6-24 messages
hours-from-dateTime function purging in Instances view, 9-10
resubmitting on error, 10-4
Index-3
searching in the Instances view, 9-8 security, 8-4
Microsoft .NET service groups, 2-12
SOAP invocation services and, 1-2 starting and stopping components, 1-10
Microsoft .Net systems, 2-12
connectivity with, 1-2 testing, 8-9
minOccurs attribute tools for creating, configuring, and managing, 1-5
setting for transformations, 6-25 WSIF, 1-2
minutes-from-dateTime function Oracle ESB Control
description, A-12 creating a service group, 3-11
modifying a routing service, 5-30 creating a system, 3-9
month-from-dateTime function creating or modifying routing rules, 3-15
description, A-13 creating, viewing, and updating structures, 3-7
moving ESB metadata, 8-15 defining and updating trackable fields, 3-18
enabling and disabling services, 3-13
icons used in, 3-8
N
Instances view, 3-5, 9-1
named templates introduction to, 1-7
creating, 6-11 layout, 3-3
in functions, 6-11 managing routing rules, 3-15
Native MQSeries adapter services managing systems and service groups, 3-8
defined, 1-3 managing trackable fields, 3-17
Navigator panel managing tracking fields, 3-17
on Diagram tab, 3-4 Maps view, 3-7
notification channels opening, 1-10, 1-12
email, 8-5 overview, 1-1, 3-1
mobile, 8-9 Services view, 3-3
phone, 8-9 understanding trackable fields, 3-17
setting up, 8-4 viewing and updating service definitions, 3-12
wireless provider for voice, 8-7 viewing or modifying a service group, 3-12
viewing or modifying a system, 3-9
O viewing routing rules, 3-15
viewing service definitions, 3-13
Oracle Applications (OA) adapter services views, 3-3
defined, 1-3 Oracle InterConnect
Oracle BPEL Process Manager configuring the adapter with ESB, 8-16
connectivity with, 1-2 Oracle JDeveloper
SOAP invocation services and, 1-2 adapters supported by, 1-6
Oracle Database Lite Application Navigator tab, 2-1
starting, 1-10 Applications Navigator, 1-7
Oracle Enterprise Service Bus Component Palette, 2-2
adapter services, 4-1 Connection Navigator tab, 2-1
administrative stages, 8-1 Create Routing Service dialog, 2-3, 5-11
architecture, 1-8 creating a database connection, 2-8
checking log files creating an application server connection, 2-6
log files creating an integration server connection, 2-7
Oracle Enterprise Service creating and modifying routing services, 5-10
Bus, 8-11 creating and testing connections, 2-6
clusters, 8-2 Design tab, 2-2
components, 1-1 getting started, 2-5
configuring InterConnect adapter, 8-16 introduction to, 1-6
developing with Oracle JDeveloper, 2-1 overall process and tasks, 2-5
error handling, 10-1 overview, 1-1, 2-1
features, 1-2 routing rules, 5-16
managing error conditions, 10-2 routing services and, 1-6
notification channels, 8-4 SOAP services, 1-6
overview, 1-1 starting, 1-10, 1-12
planning resources, 8-2 testing a connection, 2-10
routing rules, 5-1 transformations and, 1-6
routing services, 5-1 outbound adapter services
Secure Sockets Layer (SSL), 8-4 defined, 1-3
Index-4
P Routing Rules tab
Oracle ESB Control, 3-4
port numbers
routing service
viewing, 2-6
defined, 1-4
projects
routing services
adding content, 2-14
Create Routing Service dialog, 5-11
creating, 2-11
creating, 5-2
deleting, 2-15
creating and modifying in Oracle
ESB, 2-11
JDeveloper, 5-10
importing files into, 2-14
deleting, 5-30
registering with ESB Server, 2-15
header transformation and filtering, 5-24
Properties tab
introduction, 5-1
Oracle ESB Control, 3-4
modifying, 5-30
Oracle JDeveloper and, 1-6
Q overview, 2-4
specifying the WSDL file, 5-11
query-database function
specifying WSDL, 5-2
description, A-13
R S
scenario
registering ESB projects with ESB Server, 2-15
used for tutorial, 1-9
repeating elements
schemas
in transformations, 6-14
replacing in the XSLT Mapper, 6-22
reports
seconds-from-dateTime function
correcting memory errors when generating for
description, A-14
transformations, 6-24
sequence-next-val function
customizing sample XML generation for
description, A-14
transformations, 6-25
service groups
generating for transformations, 6-23
creating, 2-13
resubmitting messages
creating in Oracle ESB Control, 3-11
on error conditions, 10-4
ESB, 2-12
right-trim function
managing in Oracle ESB Control, 3-8
description, A-14
Oracle Enterprise Service Bus, 3-8
routing
restrictions on, 2-13
content-based, 1-4
viewing or modifying in Oracle ESB Control, 3-12
header-based, 1-4, 5-24
service icon
XML messages, 1-4
used in Oracle ESB Control, 3-8
routing rules
services
accept messages from, 5-10
browsing for deployed, 4-10
asynchronous invocation, 5-10
calling from an external service, 4-14
creating, 5-4
creating a BPEL partner link to, 4-12
creating or modifying in Oracle ESB Control, 3-15
creation as SOAP services, 1-3
defined, 1-4
Definition tab, 3-4
deleting, 3-16
enabling and disabling in Oracle ESB
document transformations and, 1-5
Control, 3-13
execution priority and, 1-5
external, 4-14
execution type and, 1-5
managing definitions in Oracle ESB Control, 3-12
filter expression, 5-7
managing in Oracle ESB Control, 3-7
filter expressions and, 1-4
overview of definitions, 2-4
introduction, 5-1
syncing from ESB Server, 2-15
invocation type, 5-10
viewing definitions in Oracle ESB Control, 3-13
managing in Oracle ESB Control, 3-15
services group icon
overview, 2-4
used in Oracle ESB Control, 3-8
priority, 5-10
Services view
specifying, 5-4
Oracle ESB Control, 3-3
specifying in Oracle JDeveloper, 5-16
setOutboundHeader function
synchronous invocation, 5-10
description, A-15
target service and operation, 5-5
setResponseHeader function
transformation map, 5-10
description, A-15
viewing in Oracle ESB Control, 3-15
Index-5
SOAP invocation services, 1-2 creating an XSL map, 6-3
Apache Axis and, 1-2 creating an XSL map from an XSL stylesheet, 6-6
Microsoft .NET and, 1-2 customizing sample XML generation, 6-25
Oracle BPEL Process Manager and, 1-2 dictionaries, 6-18
SOAP services editing functions, 6-9
creating, 4-8 editing XPath expressions, 6-11
deleting, 4-10 error when mapping duplicate elements, 6-3
modifying, 4-9 functions, 6-8
Oracle Enterprise Service Bus services, 1-3 functions prefixed with xp20 or orcl, 6-8
supported by Oracle JDeveloper, 1-6 generating optional elements, 6-25
using, 4-7 generating reports, 6-23
square-root function ignoring elements, 6-21
description, A-16 linking source target nodes, 6-7
stacked disks icon named templates in functions, 6-11
systems and, 3-8 Oracle JDeveloper and, 1-6
starting and stopping components repeating elements, 6-14
Oracle Enterprise Service Bus, 1-10 replacing schemas, 6-22
subtract-dayTimeDuration-from-dateTime function rules, 6-3
description, A-16 setting constant values, 6-7
sync services from ESB Server, 2-15 setting the maximum depth, 6-25
system icon setting the number of repeating elements, 6-25
used in Oracle ESB Control, 3-8 testing the map file, 6-22
systems user-defined functions, 6-11
creating, 2-12 using arrays, 6-14
creating in Oracle ESB Control, 3-9 using the XSLT Mapper, 6-6
ESB, 2-12 viewing unmapped target nodes, 6-17
examples of, 2-12, 3-8 xsl choose conditional processing, 6-13
managing in Oracle ESB Control, 3-8 xsl if conditional processing, 6-12
Oracle Enterprise Service Bus, 3-7 tutorial
stacked disks icon and, 3-8 scenario description, 1-9
viewing or modifying in Oracle ESB Control, 3-9
U
T upper-case function
target services description, A-17
defined, 1-4
testing
W
Oracle Enterprise Service Bus, 8-9
testing JDeveloper connections WSDL
viewing port numbers, 2-6 concrete, 4-14
timezone-from-dateTime function WSDL URL
description, A-16 using to invoke a service, 1-4
trackable fields WSIF
defining and updating, 3-18 connectivity, 1-2
deleting, 3-20
disabling, 3-20 X
enabling, 3-20
managing in Oracle ESB Control, 3-17 XML messages
overview, 3-17 routing, 1-4
specifying with Expression Builder, 3-19 XPath expressions
Trackable Fields tab editing in transformations, 6-11
Oracle ESB Control, 3-5 XPath functions
tracking fields in transformations, 6-8
managing in Oracle ESB Control, 3-17 xsl choose
transformations conditional processing, 6-13
adding XSLT constructs, 6-12 xsl if
auto mapping, 6-15 conditional processing, 6-12
auto mapping with confirmation, 6-16 XSL map
chaining functions, 6-10 creating, 6-3
correcting memory errors, 6-24 creating from an XSL stylesheet, 6-6
XSL stylesheet
Index-6
creating an XSL map, 6-6
XSLT constructs
adding in transformations, 6-12
XSLT Mapper
adding XSLT constructs, 6-12
auto mapping, 6-15
auto mapping with confirmation, 6-16
chaining functions, 6-10
correcting memory errors when generating
reports, 6-24
creating a map file, 6-1
creating an XSL map, 6-3
creating an XSL map from an XSL stylesheet, 6-6
customizing sample XML generation for
transformations, 6-25
dictionaries, 6-18
editing functions, 6-9
editing XPath expressions, 6-11
error when mapping duplicate elements, 6-3
functions, 6-8
functions prefixed with xp20 or orcl, 6-8
generating optional elements, 6-25
generating reports, 6-23
ignoring elements, 6-21
layout in Oracle JDeveloper, 6-1
linking source and target nodes, 6-7
named templates in functions, 6-11
repeating elements, 6-14
replacing schemas, 6-22
rules, 6-3
setting constant values, 6-7
setting the maximum depth, 6-25
setting the number of repeating elements, 6-25
testing the map file, 6-22
user-defined functions, 6-11
using, 6-6
using arrays, 6-14
viewing unmapped target nodes, 6-17
xsl choose conditional processing, 6-13
xsl if conditional processing, 6-12
Y
year-from-dateTime function
description, A-17
Index-7
Index-8