Go to main content
1/82
Contents
List of Tables
Title and Copyright Information
Preface
Conventions
What's New in This Guide
Significant Documentation Changes for 12c (12.1.3)
New and Changed Features for 12c (12.1.3)
Part I Introduction to Oracle Service Bus
1
Learning About Oracle Service Bus
1.1
Oracle Service Bus Overview
1.1.1
Functional Areas
1.1.2
Adaptive Messaging
1.1.3
Service Security
1.1.4
Service Virtualization
1.1.5
Configuration Framework
1.1.6
Service Management
1.2
Service Bus Architectural Concepts
1.2.1
Message Processing
1.2.2
Proxy Service Role in Message Processing
1.2.3
Transport Layer (Inbound)
1.2.4
Binding Layer
1.2.5
Pipeline Role in Message Processing
1.2.6
Transport Layer (Outbound)
1.2.7
Business Service Role in Message Processing
1.3
Service Bus Components
1.3.1
Service Components
1.3.1.1
Proxy Services
1.3.1.2
Business Services
1.3.2
Message Flows
1.3.2.1
Pipelines
1.3.2.1.1
How Data Flows Through a Pipeline
1.3.2.1.2
Message Context
1.3.2.2
Split-Joins
1.3.3
Transports, Adapters, and Bindings
1.3.3.1
Supported Transport Protocols
1.3.3.2
Service Types
1.3.4
Transformation Resources
1.3.4.1
XQuery Mappings
1.3.4.2
XSLT Mappings
1.3.4.3
Cross References
1.3.4.4
Domain Value Maps
1.3.5
Transport and Adapter Related Resources
1.3.5.1
JCA Bindings
1.3.5.2
JAR Files (Archives)
1.3.5.3
JavaScript Files
1.3.5.4
MQ Connections
1.3.6
Schema and Document Resources
1.3.6.1
XML Schemas
1.3.6.2
XML Documents
1.3.6.3
WSDL Documents
1.3.6.4
WADL Documents
1.3.6.5
MFL Resources
1.3.7
Security Resources
1.3.7.1
Service Key Providers
1.3.7.2
Service Accounts
1.3.7.3
WS-Policy Resources
1.3.8
Alert Destinations
1.3.9
Throttling Group Resources
1.3.10
System Resources
1.3.10.1
JNDI Providers
1.3.10.2
SMTP Servers
1.3.10.3
Proxy Servers
1.3.10.4
UDDI Registries
1.4
Service Bus Messaging
1.4.1
Messaging Models
1.4.2
Message Formats
1.4.3
Message Context
1.4.4
Content Types
1.5
Using Work Managers with Service Bus
1.6
Service Bus Security
1.6.1
Service Bus Security Features
1.6.2
Service Bus Service Security Model
1.6.3
Oracle Web Services Manager
1.6.4
Oracle Platform Security Services
1.6.5
WS-Policies
1.6.6
Types of Security
1.6.6.1
Inbound Security
1.6.6.2
Outbound Security
1.6.6.3
Identity Propagation
1.6.6.4
User Management and Administrative Security
1.6.6.5
Transport-Level Security
1.6.6.6
Message-Level Security
1.6.7
Custom Security Credentials
1.7
Approaches for Designing Service Bus Services
1.7.1
Service Bus Top-Down Roadmap
1.7.2
Service Bus Bottom-Up Roadmap
1.8
Naming Guidelines for Service Bus Components
1.9
Viewing Service Bus Resources in a Web Browser
1.9.1
WSDL Documents
1.9.2
WS Policies
1.9.3
Message Format Language (MFL) Resources
1.9.4
Schema Resources
1.9.5
Notes About Viewing Service Bus Resources in a Web Browser
1.10
Accessibility Options
1.10.1
Setting Accessibility Options in JDeveloper
1.10.2
Notes on Screen Reader Mode
1.10.3
How to Set Accessibility Options in the Oracle Service Bus Console
1.11
Additional Resources
2
Getting Started with the Oracle Service Bus Console
2.1
Overview of the Oracle Service Bus Console
2.1.1
Service Bus Sessions
2.1.2
Oracle Service Bus Console Layout
2.1.3
Service Bus Projects and Folders
2.1.3.1
The System Project
2.1.3.2
Projects and Folder Names
2.1.3.3
Qualified Resource Names Using Projects and Folders
2.1.4
Service Bus Resources
2.1.5
Oracle Service Bus Console Editors
2.2
Getting Started
2.2.1
How to Access the Oracle Service Bus Console
2.2.2
How to Exit the Oracle Service Bus Console
2.3
Working with Sessions
2.3.1
How to Create a Session
2.3.2
How to Activate a Session
2.3.3
How to Exit a Session
2.4
Working with Projects, Folders, and Resources in Oracle Service Bus Console
2.4.1
How to Locate Services
2.4.2
Working with the Project and Folder Definition Editors
2.4.2.1
About Viewing Project, Folder, and Resource Information
2.4.2.2
Viewing All Projects in the Session
2.4.2.3
Viewing Folders and Resources in a Project
2.4.2.4
Viewing the Subfolders and Resources in a Folder
2.4.2.5
How to Filter Components on the Project and Folder Definition Editors
2.4.3
Create New Projects and Folders for Resources
2.4.3.1
Creating a Project in the Project Navigator
2.4.3.2
Creating a Folder in the Project Navigator
2.4.4
How to Clone Projects, Folders, and Resources
2.4.4.1
What Happens When You Clone a Project
2.4.4.2
What Happens When You Clone a Folder
2.4.5
How to Rename Projects, Folders, and Resources
2.4.6
How to Move Projects, Folders, and Resources
2.4.7
How to Delete Projects, Folders, and Resources
2.4.7.1
Deleting a Service Bus Component using the Project Navigator
2.4.7.2
Deleting a Service Bus Component Using an Editor
2.5
Viewing and Resolving Conflicts
2.5.1
How to View Conflicts and Errors
2.5.1.1
Viewing All Conflicts and Errors in the Service Bus Console
2.5.1.2
Viewing Conflicts and Errors for a Deployed Resource
2.5.2
How to Resolve Conflicts and Errors
2.5.2.1
Resolving Concurrent Update Conflicts
2.5.2.2
Resolving Error Conflicts
2.6
Viewing Historical Data
2.6.1
How to View the Changes in the Current Session
2.6.2
How to View the Existing Sessions
2.6.3
How to View the Changes in an Activated Session
2.6.4
How to Purge Activated Sessions
2.7
Undoing Changes and Activations
2.7.1
How to Undo Specific Changes in the Current Session
2.7.2
How to Undo a Session Activation
2.8
Viewing References
2.8.1
Viewing Resource References
2.9
Customizing the Appearance of the Oracle Service Bus Console
2.9.1
How to Customize Table Views
2.9.1.1
Specifying the Columns to Display
2.9.1.2
Sorting the Columns in a Table
2.9.1.3
Reordering Columns in a Table
2.9.1.4
Viewing a Table in Full-Screen Mode
3
Getting Started with Oracle Service Bus in JDeveloper
3.1
JDeveloper Concepts for Service Bus
3.1.1
Application Navigator
3.1.2
Service Bus Overview Editor
3.1.3
Resource Editors
3.1.4
Components Window
3.1.5
Resources Window
3.1.6
Properties Window
3.1.7
Structure View
3.1.8
Log Window
3.2
Managing Service Bus Components in JDeveloper
3.3
Creating Service Bus Applications and Projects in JDeveloper
3.3.1
Guidelines for Creating Applications and Projects
3.3.2
How to Create a Service Bus Application and Project
3.3.2.1
Creating a Service Bus Application with No Project
3.3.2.2
Creating a Service Bus Application and Project
3.3.2.3
Adding a Service Bus Project to a Service Bus Application
3.4
Refactoring Service Bus Projects, Folders, and Resources
3.4.1
How to Rename a Service Bus Folder or Resource in JDeveloper
3.4.2
How to Move a Service Bus Folder or Resource in JDeveloper
3.4.3
How to Delete a Project or Resource:
3.4.3.1
Deleting a Resource
3.4.3.2
Deleting a Project
3.4.4
How to Clone a Project or Folder:
4
Setting up the Development Environment for JDeveloper
4.1
Creating Server Connections in JDeveloper
4.1.1
How to Create an Application Server Connection
4.1.2
How to Create a SOA-MDS Connection
4.1.3
How to Change the MDS Repository Location
4.2
Creating Connection Factories for Oracle JCA Adapters
4.3
Disabling the JMS Reporting Provider
5
Developing Oracle Service Bus Applications in JDeveloper
5.1
Introduction to the Service Bus Overview Editor
5.1.1
Service Bus Overview Editor Components
5.1.2
Transports, Adapters, and Bindings
5.1.3
Project and Overview Diagram Synchronization
5.2
Adding Service Bus Components
5.2.1
How to Launch the Service Bus Overview Editor
5.2.2
How to Add a Pipeline
5.2.3
How to Add a Split-Join
5.2.4
How to Create a Proxy Service
5.2.4.1
Creating a Proxy Service with an Adapter
5.2.4.2
Creating a Proxy Service with a Transport
5.2.4.3
Creating a Proxy Service from an Existing Pipeline or Split-Join
5.2.5
How to Reuse Existing Proxy Services in the Overview
5.2.6
How to Create a Business Service
5.2.6.1
Creating a Business Service with an Adapter
5.2.6.2
Creating a Business Service with a Transport
5.2.7
How to Reuse Existing Business Services in the Overview
5.2.8
How to Invoke Deployed Service Bus and SOA Applications
5.2.9
What You May Need to Know About Adding Components
5.3
Modifying and Deleting Components in the Service Bus Overview Editor
5.3.1
How to Edit Components from the Service Bus Overview Editor
5.3.2
How to Rename Components in the Service Bus Overview Editor
5.3.3
How to Delete Components in the Service Bus Overview Editor
5.4
Synchronizing the Overview Diagram
5.5
Wiring Service Bus Components
5.5.1
How to Wire Service Bus Components
5.5.2
How to Delete Wires Between Services
5.6
Attaching Security Policies to Service Bus Components
5.7
Testing Service Bus Components in the Overview Editor
5.7.1
How to Test a Service Bus Component
5.7.2
How to Debug a Service Bus Component
5.8
Deploying a Service Bus Application
Part II Working with Oracle Service Bus Resources
6
Creating and Configuring Project Resources
6.1
Introduction to Service Bus Project Resources
6.1.1
Project Resources and Sessions in the Oracle Service Bus Console
6.2
Working with Service Accounts
6.2.1
Service Account Authentication Types
6.2.1.1
Static
6.2.1.2
User Name and Password Pass-Through
6.2.1.3
User Mapping Authentication
6.2.2
How to Create Service Accounts
6.2.2.1
Creating a Service Account that Passes Though Authentication Information
6.2.2.2
Creating a Service Account with a Static Password
6.2.2.3
Creating a Service Account that Maps Incoming Passwords
6.2.3
How to Edit Service Accounts
6.2.4
How to Delete Service Accounts
6.3
Working with Service Key Providers
6.3.1
How to Create Service Key Providers
6.3.2
How to Edit Service Key Providers
6.3.3
How to Delete Service Key Providers
6.4
Working with Alert Destinations
6.4.1
Alert Destination Types
6.4.1.1
Email
6.4.1.2
SNMP Traps
6.4.1.3
Reporting
6.4.1.4
Alert Logging
6.4.1.5
JMS
6.4.2
How To Create Alert Destinations
6.4.3
How to Define Email Recipients for an Alert Destination
6.4.4
How to Define JMS Recipients for an Alert Destination
6.4.5
How to Edit Alert Destinations
6.4.6
How to Delete Alert Destinations
6.4.7
Working with SNMP
6.4.7.1
Guidelines for Working with SNMP Agents for Service Bus
6.4.7.2
How to Start Listening for Traps
6.5
Working with XML Schemas
6.5.1
How to Create XML Schemas
6.5.2
How to Edit XML Schemas
6.5.3
How to Delete XML Schemas
6.6
Working with XML Documents
6.6.1
How to Create XML Documents
6.6.2
How to Edit XML Documents
6.6.3
How to Delete XML Documents
6.7
Working with JAR Files
6.7.1
How to Add JAR Files
6.7.2
How to Update a JAR File
6.7.3
How to Modify JAR File Dependencies
6.7.4
How to Delete a JAR File
7
Creating and Configuring System Resources
7.1
Working with JNDI Provider Resources
7.1.1
Classpath Requirements for JBoss Application Server
7.1.2
About JBoss Initial Context Factory Environment Properties
7.1.3
How to View JNDI Provider Resources in the Oracle Service Bus Console
7.1.4
How to Create a JNDI Provider Resource
7.1.5
How to Edit JNDI Provider Resources
7.1.6
How to Delete JNDI Provider Resources
7.2
Working with SMTP Server Resources
7.2.1
How to View SMTP Server Resources in the Oracle Service Bus Console
7.2.2
How to Create SMTP Server Resources
7.2.3
How to Configure a Default SMTP Server
7.2.4
How to Edit SMTP Server Resources
7.2.5
How to Delete SMTP Server Resources
7.3
Working with Proxy Server Resources
7.3.1
Using Proxy Servers with SSL
7.3.2
How to View Proxy Server Resources in Oracle Service Bus Console
7.3.3
How to Create Proxy Server Resources
7.3.4
How to Edit Proxy Server Resources
7.3.5
How to Delete Proxy Server Resources
8
Creating and Configuring Proxy Services
8.1
Introduction to Proxy Services
8.1.1
Proxy Service Definitions
8.1.2
Service Types and Protocols for Proxy Services
8.1.3
When to Use SOAP or Any XML Service Types
8.1.4
When to Use the Messaging Service Type
8.1.5
Binding Definitions and Runtime Variables for Proxy Service Types
8.1.5.1
WSDL Service Type
8.1.5.2
Messaging Service Type
8.1.5.3
Any SOAP Service
8.1.5.4
Any XML Service
8.1.6
Proxy Service Transport Protocol Configuration
8.2
Securing Proxy Services
8.3
Service Level Agreement Alert Rules
8.4
Web Services Interoperability Compliance
8.5
Creating Proxy Services
8.5.1
How to Create a Proxy Service
8.5.2
How to Generate a Proxy Service from a JCA Binding Resource
8.5.2.1
Generating a Proxy Service from a JCA Binding in JDeveloper
8.5.2.2
Generating a Proxy Service from a JCA Binding in the Console
8.5.3
How to Generate a Proxy Service from an Existing Service in JDeveloper
8.5.4
How to Generate a Proxy Service from a WSDL Document in JDeveloper
8.6
Configuring Proxy Services
8.6.1
How to Configure General Information for a Proxy Service
8.6.2
How to Configure a Proxy Service Transport
8.6.3
How to Configure Proxy Service Message Handling
8.6.4
How to Configure Security for a Proxy Service
8.6.5
How to Configure Service Level Agreement Alerts for a Proxy Service
8.7
Deleting Proxy Services
8.7.1
How to Delete a Proxy Service
8.8
Consuming Proxy Services in JDeveloper with WSIL
8.8.1
How to Consume Service Bus Proxy Services in JDeveloper with WSIL
9
Creating and Configuring Business Services
9.1
Introduction to Business Services
9.1.1
Business Service Definitions
9.1.2
Service Types and Protocols for Business Services
9.1.3
Binding Definitions and Runtime Variables for Business Service Types
9.1.4
Business Service Transport Protocol Configuration
9.1.4.1
About the Load Balancing Algorithm
9.1.4.2
About Business Service URI Retries
9.1.4.3
Suppressing Retries in Case of Application Errors
9.1.5
Message Handling for Business Services
9.1.5.1
XOP/MTOM Support
9.1.5.2
Attachments
9.1.5.3
Web Services Interoperability Compliance
9.2
Using Proxy Servers
9.3
Service Level Agreement Alert Rules
9.4
Security and Security Policies for Business Services
9.5
Creating Business Services
9.5.1
How to Create a Business Service
9.5.2
How to Generate a Business Service from a JCA Binding Resource
9.5.2.1
Generating a Business Service from a JCA Binding in JDeveloper
9.5.2.2
Generating a Business Service from a JCA Binding in the Console
9.5.3
How to Generate a Business Service from a Proxy Service in JDeveloper
9.5.4
How to Generate a Business Service from a WSDL Document in JDeveloper
9.6
Configuring Business Services
9.6.1
How to Configure General Information for a Business Service
9.6.2
How to Configure a Business Service Transport
9.6.3
How to Configure Business Service Message Handling
9.6.4
How to Configure Performance for a Business Service
9.6.5
How to Configure Security for a Business Service
9.6.6
How to Configure Service Level Agreement Alerts for a Business Service
9.7
Deleting Business Services
9.7.1
How to Delete a Business Service
9.8
Improving Performance by Caching Business Service Results
9.8.1
How Result Caching Works
9.8.1.1
Flushing Cached Results
9.8.2
Result Caching Best Practices
9.8.3
Result Cache Metadata
9.8.3.1
Cache Token
9.8.3.2
Expiration Time
9.8.3.3
Request Metadata
9.8.3.4
Response Metadata
9.8.4
Testing Result Caching
9.8.5
How to Configure a Business Service for Result Caching
9.8.6
Result Caching Advanced Configuration
9.8.6.1
Working with Unicast and Multicast
9.8.6.2
How to Disable Coherence for Service Bus
9.8.6.3
About Out-of-Process Coherence Servers
9.8.6.4
How to Use an Out-of-Process Coherence Cache Server
9.8.6.4.1
Creating an Out-of-Process Coherence Cache Server
9.8.6.4.2
Configuring the Servers for an Out-of-Process Coherence Cache Server
9.8.6.5
More Information on Configuring and Using Oracle Coherence
10
Improving Service Performance with Split-Join
10.1
Introduction to Split-Joins
10.1.1
Static Split-Joins
10.1.1.1
Static Split-Join – Sample Scenario
10.1.2
Dynamic Split-Join
10.1.2.1
Dynamic Split-Join – Sample Scenario
10.1.3
Split-Join Operations
10.1.3.1
Split-Join Communication Operations
10.1.3.2
Split-Join Flow Control Operations
10.1.3.3
Split-Join Assign Operations
10.1.4
Using Split-Join with Content in SOAP Headers
10.1.5
Transaction Support
10.1.6
Security with Split-Joins
10.1.7
Split-Join Resource Type and Environment Variable
10.2
Service Level Agreement Alert Rules
10.3
Working with Split-Joins in JDeveloper
10.3.1
How to Create a Split-Join in JDeveloper
10.3.2
How to Generate a Split-Join from a WSDL Document in JDeveloper
10.3.3
How to Display the Components Window and Properties Windows
10.3.3.1
Displaying the Components Window
10.3.3.2
Displaying the Properties Window
10.3.4
How to Configure the Start Node
10.3.5
How to View External Services
10.3.6
How to Configure Global and Local Variables
10.3.6.1
Defining Global and Local Variables
10.3.6.2
Editing Global or Local Variables
10.3.7
How to Configure the Receive Operation
10.4
Adding Communication Operations in JDeveloper
10.4.1
How to Invoke a Service
10.4.2
How to Configure a Reply
10.5
Adding Flow Control Operations in JDeveloper
10.5.1
How to Create a Container Node
10.5.2
How to Iterate Through a Variable Number of Requests
10.5.3
How to Process a Fixed Number of Requests in Parallel
10.5.4
How to Define If-Else Conditional Logic
10.5.5
How to Create Error Handlers
10.5.6
How to Raise an Error
10.5.7
How to Re-Raise an Error
10.5.8
How to Repeat an Operation Until it Evaluates to True
10.5.9
How to Repeat an Operation Until it Evaluates to False
10.5.10
How to Insert a Pause in Processing
10.6
Adding Assign Operations in JDeveloper
10.6.1
About Transformations and Expressions in Assign Operations
10.6.2
Assign Operation Expression Resolution
10.6.3
How to Assign a Value to a Variable
10.6.4
How to Copy a Value from a Source to a Destination Document
10.6.5
How to Delete a Set of Nodes
10.6.6
How to Insert the Result of an XQuery Expression
10.6.7
How to Invoke a Java Method in a Split-Join
10.6.8
How to Log Split-Join Data
10.6.9
How to Replace a Node or Its Contents
10.7
Working with Split-Joins in the Oracle Service Bus Console
10.7.1
How to Import a Split-Join into the Console
10.7.2
How to Configure Split-Joins in the Console
10.7.3
How to Define Service Level Agreement Rules for a Split-Join
10.8
Static and Dynamic Split-Join Samples
10.8.1
Designing a Static Split-Join
10.8.1.1
Creating a New Split-Join
10.8.1.2
Adding an Assign
10.8.1.3
Adding a Parallel Node
10.8.1.4
Adding an Assign for Each Branch
10.8.1.5
Adding an Invoke Service
10.8.1.6
Adding an Assign for Each Branch
10.8.1.7
Exporting and Testing the Split-Join
10.8.2
Designing a Dynamic Split-Join
10.8.2.1
Creating a New Split-Join
10.8.2.2
Adding an Assign
10.8.2.3
Adding a For Each
10.8.2.4
Adding an Assign
10.8.2.5
Adding an Invoke Service
10.8.2.6
Adding an Assign
10.8.2.7
Adding an Error Handler
10.8.2.8
Exporting and Testing the Split-Join
11
Working with WSDL Documents
11.1
WSDL Overview
11.1.1
WSDL Types
11.1.2
WSDL Messages
11.1.3
WSDL Port Types
11.1.4
WSDL Bindings
11.1.5
WSDL Services and Ports
11.2
WSDL Documents in Service Bus
11.2.1
Web Service Types
11.2.1.1
SOAP Document Wrapped Web Services
11.2.1.2
SOAP Document Style Web Services
11.2.1.3
SOAP RPC Web Services
11.2.2
About Effective WSDL Documents and Generated WSDL Documents
11.2.2.1
Effective WSDL Documents
11.2.2.2
Generated WSDL Documents
11.3
Services Based on WSDL Ports and on WSDL Bindings
11.3.1
Effective WSDL Documents for Proxy Services
11.3.2
Effective WSDL Files for Non-Transport-Type Business Services
11.3.3
Effective WSDL Files for Transport-Type Business Services
11.3.4
Examples of Proxy Services Based on a Port and on a Binding
11.3.4.1
A Service Based on a Port
11.3.4.2
A Service Based on a Binding
11.4
Importing and Exporting WSDL Resources
11.5
Working with WSDL Documents in JDeveloper
11.5.1
How to Create a WSDL Resource in JDeveloper
11.5.2
How to Generate a WSDL File from a Service in JDeveloper
11.5.3
How to Edit a WSDL Document in JDeveloper
11.5.4
How to Delete a WSDL Document in JDeveloper
11.6
Working with WSDL Documents in the Oracle Service Bus Console
11.6.1
How to Create a WSDL Resource in the Console
11.6.2
How to Export a WSDL File in the Console
11.6.2.1
Exporting a WSDL FIle from a Project or Folder in the Console
11.6.2.2
Exporting a WSDL File From a Service Definition Editor
11.6.3
How to Generate a WSDL File from a Service in the Console
11.6.4
How to Edit a WSDL Document in the Console
11.6.5
How to Delete a WSDL Document in the Console
11.7
Viewing Effective WSDL Documents
Part III Working with Oracle Service Bus Pipelines
12
Modeling Message Flow in Oracle Service Bus
12.1
Pipeline Components
12.1.1
Building a Message Flow
12.1.2
Message Execution
12.2
Branching in Pipelines
12.2.1
Operational Branching
12.2.2
Conditional Branching
12.3
Configuring Actions in Stages and Route Nodes
12.3.1
Communication Actions
12.3.2
Flow Control Actions
12.3.3
Message Processing Actions
12.3.4
Reporting Actions
12.3.5
Configuring Transport Headers in Pipelines
12.3.5.1
Global Pass Through and Header-Specific Copy Options
12.3.5.2
How the Runtime Uses Transport Headers Settings
12.3.5.3
Limitations to Transport Header Values you Specify in Transport Header Actions
12.4
Performing Transformations in Pipelines
12.4.1
Transformations and Publish Actions
12.4.1.1
Publish Action Behavior with Quality of Service
12.4.2
Transformations and Route Nodes
12.5
Constructing Service Callout Messages
12.5.1
SOAP Document Style Services
12.5.2
SOAP RPC Style Services
12.5.3
XML Services
12.5.4
Messaging Services
12.6
Using Attachments with Service Callout Messages
12.6.1
Example of Using Attachments with SOAP-Document Style Services
12.6.2
Example of Using Attachments with SOAP RPC Style Service
12.6.3
MTOM/XOP Support
12.6.4
Page Attachments to Disk
12.7
Handling Errors as the Result of a Service Callout
12.7.1
Transport Errors
12.7.2
SOAP Faults
12.7.3
Unexpected Responses
12.8
Handling Errors in Pipelines
12.8.1
Generating the Error Message, Reporting, and Replying
12.8.2
Different Behavior of Security Fault Handling in Service Bus 11g and 12c
12.8.3
Example of Action Configuration in Error Handlers
12.9
Using Dynamic Routing
12.9.1
Implementing Dynamic Routing
12.9.1.1
Sample XML File
12.9.1.2
Creating an XQuery Resource From the Sample XML
12.9.1.3
Creating and Configuring the Pipeline to Implement Dynamic Routing
12.9.1.4
Guidelines for Implementing Identity-Based Routing
12.10
Accessing Databases Using XQuery
12.11
Understanding Message Context
12.11.1
Message Context Components
12.11.2
Guidelines for Viewing and Altering Message Context
12.11.3
Copying JMS Properties From Inbound to Outbound
12.12
Working with Variable Structures
12.12.1
Using the Inline XQuery Expression Editor
12.12.1.1
Inline XQueries
12.12.1.2
Uses of the Inline XQuery Expression Editor
12.12.1.2.1
Best Practices for Type-Dependent Expressions
12.12.2
Using Variable Structures
12.13
Quality of Service
12.13.1
Delivery Guarantees
12.13.1.1
Overriding the Default Element Attribute
12.13.1.2
Delivery Guarantee Rules
12.13.1.3
Threading Model
12.13.1.4
Splitting Proxy Services
12.13.2
Outbound Message Retries
12.14
Using Work Managers with Service Bus
12.15
Content Types, JMS Type, and Encoding
12.16
Throttling Pattern
12.17
WS-I Compliance
12.17.1
WS-I Compliance Checks
12.18
Converting Between SOAP 1.1 and SOAP 1.2
13
Working with Pipelines in Oracle Service Bus Console
13.1
Introduction to the Oracle Service Bus Console Pipeline Designer
13.1.1
Edit Message Flow Page on the Console
13.1.2
Edit Stage Configuration Page on the Console
13.2
Viewing and Editing Pipelines in the Console
13.2.1
How to View and Edit Pipelines in the Console
13.2.2
How to Add Shared Variables to Pipelines in the Console
13.2.3
How to Add Pipeline Pairs to Pipelines
13.2.4
How to Add Conditional Branches to Pipelines in the Console
13.2.5
How to Add Operational Branches to Pipelines in the Console
13.2.6
How to Add Stages to Pipelines in the Console
13.2.7
How to Add Route Nodes to Pipelines in the Console
13.3
Cutting, Copying, and Pasting Stages and Route Nodes
13.4
Configuring the Resequencer in the Console
13.4.1
How to Configure Resequencing in a Pipeline in the Console
13.4.2
How to Select the Resequence Level in the Console
13.4.3
How to Configure the Resequencing Mode in the Console
13.4.3.1
Configuring a Standard Resequencer
13.4.3.2
Configuring a FIFO Resequencer
13.4.3.3
Configuring a Best Effort Resequencer
13.5
Creating Variable Structure Mappings
13.5.1
Sample WSDL Document
13.5.2
Creating the Resources You Need for the Examples
13.5.2.1
Save the WSDL File as a Resource
13.5.2.2
Create a Proxy Service and Pipeline
13.5.2.3
Build a Message Flow for the Sample Pipeline
13.5.2.4
Create a Business Service
13.5.3
Example 1: Selecting a Predefined Variable Structure
13.5.4
Example 2: Mapping a Variable to a Type
13.5.5
Example 3: Mapping a Variable to an Element
13.5.6
Example 4: Mapping a Variable to a Child Element
13.5.7
Example 5: Mapping a Variable to a Business Service
13.5.8
Example 6: Mapping a Child Element to Another Child Element
14
Working with Pipeline Actions in Oracle Service Bus Console
14.1
Adding and Editing Pipeline Actions in the Console
14.2
Adding Publish Actions in the Console
14.3
Adding Publish Table Actions in the Console
14.4
Adding Dynamic Publish Actions in the Console
14.5
Adding Routing Options Actions in the Console
14.6
Adding Service Callout Actions in the Console
14.7
Adding Transport Header Actions in the Console
14.7.1
Setting Cookies in Outbound HTTP Transport Headers
14.7.1.1
Setting a Cookie as a Complex XML Expression
14.7.1.2
Setting a Cookie with a String Expression
14.8
Adding Dynamic Routing to Route Nodes in the Console
14.9
Adding Routing Actions to Route Nodes in the Console
14.10
Adding Routing Tables to Route Nodes in the Console
14.11
Adding For-Each Actions in the Console
14.12
Adding If-Then Actions in the Console
14.13
Adding Raise Error Actions in the Console
14.13.1
Transactions
14.14
Adding Reply Actions in the Console
14.15
Adding Resume Actions in the Console
14.16
Adding Skip Actions in the Console
14.17
Adding Assign Actions in the Console
14.18
Adding Delete Actions in the Console
14.19
Adding Insert Actions
14.20
Adding Java Callout Actions in the Console
14.21
Adding MFL Translate Actions in the Console
14.22
Adding nXSD Translate Actions
14.23
Adding Rename Actions in the Console
14.24
Adding Replace Actions in the Console
14.25
Adding Validate Actions in the Console
14.26
Adding Alert Actions in the Console
14.27
Adding Log Actions in the Console
14.28
Adding Report Actions in the Console
14.29
Adding Error Handlers in the Console
14.29.1
Adding Pipeline Error Handlers in the Console
14.29.2
Adding Stage Error Handlers in the Console
14.29.3
Adding Route Node Error Handlers in the Console
14.29.4
Editing Error Handlers in the Console
14.30
Disabling an Action or a Stage in the Console
14.30.1
Disabling an Action on the Pipeline
14.30.2
Re-Enabling an Action in the Pipeline
14.30.3
Disabling a Stage in the Pipeline
14.30.4
Re-Enabling a Stage in the Pipeline
15
Working With Expression Editors in Oracle Service Bus Console
15.1
Creating and Editing Inline XQuery and XPath Expressions
15.2
Understanding XQuery Editor Layouts and Tasks
15.2.1
Palettes
15.2.2
Workspace
15.2.3
Property Inspector
15.3
Building Expressions in the Editor Workspace Text Fields
15.4
Creating Namespaces to Use in Inline Expressions
15.5
Creating Variable Structures in the XQuery Editors
15.6
Creating Custom XPath Functions in the XQuery Editors
15.7
Binding External XQuery Resources to Inline XQueries
15.8
Binding External XSLT Resources to Inline XQueries
15.9
Binding Dynamic XQuery Expressions to Inline XQueries
15.10
Binding Dynamic XSLT Expressions to Inline XQueries
15.11
Entering XQuery Comparison Expressions Using the Builder Option
15.12
Entering Unary Expressions Using the Builder Option
16
Working with Pipelines in Oracle JDeveloper
16.1
Adding a Pipeline Component in JDeveloper
16.1.1
How to Add a Pipeline in JDeveloper
16.2
Viewing and Editing Pipelines in JDeveloper
16.2.1
How to View and Edit a Pipeline in JDeveloper
16.3
Adding Shared Variables to Pipelines in JDeveloper
16.3.1
How to Add a Shared Variable to a Pipeline in JDeveloper
16.4
Adding Pipeline Pair Nodes to Pipelines in JDeveloper
16.4.1
How to Add a Pipeline Pair Node to a Pipeline in JDeveloper
16.5
Adding Conditional Branches to Pipelines in JDeveloper
16.5.1
How to Add a Conditional Branch to a Pipeline in JDeveloper
16.6
Adding Operational Branches to Pipelines in JDeveloper
16.6.1
How to Add an Operational Branch to a Pipeline in JDeveloper
16.7
Adding Stages to Pipelines in JDeveloper
16.7.1
How to Add a Stage to a Pipeline in JDeveloper
16.8
Adding Route Nodes to Pipelines in JDeveloper
16.8.1
How to Add a Route Node to a Pipeline in JDeveloper
16.9
Cutting, Copying, and Pasting Stages and Route Nodes in JDeveloper
16.10
Configuring the Resequencer in JDeveloper
16.10.1
How to Configure Resequencing in a Pipeline in JDeveloper
16.10.2
Selecting the Resequence Level in JDeveloper
16.10.3
How to Configure the Resequencing Mode in JDeveloper
16.10.3.1
Configuring a Standard Resequencer
16.10.3.2
Configuring a FIFO Resequencer
16.10.3.3
Configuring a Best Effort Resequencer
17
Working with Pipeline Actions in Oracle JDeveloper
17.1
Adding and Editing Actions in Pipelines in JDeveloper
17.2
Adding Publish Actions in JDeveloper
17.3
Adding Publish Table Actions in JDeveloper
17.4
Adding Dynamic Publish Actions in JDeveloper
17.5
Adding Routing Options Actions in JDeveloper
17.6
Adding Service Callout Actions in JDeveloper
17.7
Adding Transport Header Actions in JDeveloper
17.8
Adding Dynamic Routing to Route Nodes in JDeveloper
17.9
Adding Routing Actions to Route Nodes in JDeveloper
17.10
Adding Routing Tables to Route Nodes in JDeveloper
17.11
Adding For Each Actions in JDeveloper
17.12
Adding If Then Actions in JDeveloper
17.13
Adding Raise Error Actions in JDeveloper
17.14
Adding Reply Actions in JDeveloper
17.15
Adding Resume Actions in JDeveloper
17.16
Adding Skip Actions in JDeveloper
17.17
Adding Assign Actions in JDeveloper
17.18
Adding Delete Actions in JDeveloper
17.19
Adding Insert Actions in JDeveloper
17.20
Adding Java Callout Actions in JDeveloper
17.21
Adding MFL Translate Actions in JDeveloper
17.22
Adding nXSD Translate Actions in JDeveloper
17.23
Adding Rename Actions in JDeveloper
17.24
Adding Replace Actions in JDeveloper
17.25
Adding Validate Actions in JDeveloper
17.26
Adding Alert Actions in JDeveloper
17.27
Adding Log Actions in JDeveloper
17.28
Adding Report Actions in JDeveloper
17.29
Adding Error Handlers in JDeveloper
17.29.1
How to Add Error Handlers in Pipelines in JDeveloper
17.30
Disabling an Action or a Stage in JDeveloper
17.30.1
Disabling an Action or Stage
17.30.2
Re-Enable an Action or Stage
18
Working with Pipeline Templates
18.1
Adding a Pipeline Template
18.1.1
How to Add a Pipeline Template
18.2
Editing a Pipeline Template
18.2.1
How to Edit a Pipeline Template
18.2.1.1
How to View External Services
18.2.1.2
How to View Shared Variables
18.3
Adding Placeholder Blocks to a Pipeline Template Message Flow
18.4
Locking an Action in a Pipeline Template
18.4.1
How to Lock an Action in a Pipeline Template
18.5
Creating a Concrete Pipeline from a Pipeline Template
18.5.1
How to Create a Concrete Pipeline
18.6
Editing the Message Flow for a Concrete Pipeline
18.6.1
How to Edit the Message Flow for a Concrete Pipeline
18.7
Converting a Concrete Pipeline in to a Regular Pipeline
18.7.1
How to Break a Template Link for a Concrete Pipeline
Part IV Transforming Data
19
Transforming Data with XQuery
19.1
Introduction to XQuery Transformations
19.2
XQuery Editors and Mappers
19.2.1
JDeveloper Editors and Mappers
19.2.2
Oracle Service Bus Console Editors
19.3
Creating XQuery Maps in JDeveloper
19.3.1
How to Create XQuery Mappings in JDeveloper
19.4
Testing Service Bus Projects Converted from XQuery 2004 to XQuery 1.0 in JDeveloper
19.5
Working with XQuery Resources in the Oracle Service Bus Console
19.5.1
How to Create an XQuery Resource in the Console
19.5.2
How to Edit an XQuery Resource in the Console
19.5.3
How to Delete an XQuery Resource in the Console
19.5.4
How to Upgrade Your XQuery Resources to use XQuery 1.0
19.6
Service Bus XQuery Functions
19.6.1
Supported Function Extensions from Oracle
19.6.2
Function Extensions from Service Bus
19.6.2.1
fn-bea:lookupBasicCredentials
19.6.2.2
fn-bea:isUserInGroup
19.6.2.3
fn-bea:isUserInRole
19.6.2.4
fn-bea: uuid
19.6.2.5
fn-bea:execute-sql()
19.6.2.5.1
Example 1: Retrieving the URI from a Database for Dynamic Routing
19.6.2.5.2
Example 2: Getting XMLType Data from a Database
19.6.2.6
fn-bea:serialize()
19.6.3
Creating and Using Custom XPath Functions
20
Transforming Data with XSLT
20.1
Introduction to XSLT
20.2
XSLT Editors and Mappers
20.2.1
JDeveloper Editors and Mappers
20.2.2
Oracle Service Bus Console Editors
20.3
Creating XSLT Mappings in JDeveloper
20.3.1
How to Create XSLT Mappings in JDeveloper
20.4
Working with XSLT Resources in the Oracle Service Bus Console
20.4.1
How to Create XSLT Resources in the Console
20.4.2
How to Edit XSLT Resources in the Console
20.5
How to Delete an XSLT Resource
21
Mapping Data with Cross-References
21.1
Introduction to Cross References
21.1.1
Cross Reference Database Tables
21.1.2
Cross Reference Functions
21.1.3
Managing Cross Reference Data at Runtime
21.2
Creating Cross Reference Tables in JDeveloper
21.2.1
How to Create Cross Reference Tables in JDeveloper
21.3
Working with Cross Reference Resources in the Oracle Service Bus Console
21.3.1
How to Create Cross Reference (XRef) Resources in the Console
21.3.2
How to Edit Cross Reference Resources in the Console
21.3.3
How to Create a Custom Database Table in the Console
21.4
Deleting a Cross Reference Resource
21.4.1
How to Delete a Cross Reference Resource
21.5
Populating Cross Reference Tables in Oracle Service Bus
22
Mapping Data with Domain Value Maps
22.1
Introduction to Domain Value Maps
22.1.1
Domain Value Map Functions
22.2
Creating Domain Value Maps in JDeveloper
22.2.1
How to Create a Domain Value Map in JDeveloper
22.3
Working with DVM Resources in the Oracle Service Bus Console
22.3.1
How to Create DVM Resources in the Console
22.3.2
How to Add Domains to a Domain Value Map
22.3.3
How to Add Domain Values to a Domain Value Map
22.3.4
How to Edit a Domain Value Map in the Console
22.4
Deleting a Domain Value Map
22.4.1
How to Delete a Domain Value Map
22.5
Using Domain Value Maps in Expressions and Conditions
23
Defining Data Structures with Message Format Language
23.1
Introduction to the Format Builder
23.1.1
About MFL Files
23.1.2
Valid Names for Formats, Fields, and Groups
23.1.3
Supported Character Delimiters
23.2
Working with MFL Resources in the Oracle Service Bus Console
23.2.1
How to Create MFL Resources in the Console
23.2.2
How to Edit MFL Resources in the Console
23.3
Creating the MFL Message Structure
23.3.1
Using Drag and Drop in the Format Builder
23.3.2
How to Create an MFL File in JDeveloper
23.3.3
How to Create a Group
23.3.4
How to Create a Field
23.3.5
How to Reference Groups or Fields
23.3.6
How to Add a Comment
23.4
Configuring the MFL Message Structure
23.4.1
How to Make a Node Recurring
23.4.2
How to Define Delimiters
23.4.2.1
Specifying a Delimiter by Reference
23.4.2.2
Specifying a Delimiter by Value
23.5
Importing and Converting Metadata
23.5.1
How to Convert a Guideline XML File
23.5.2
How to Convert an XML Schema
23.5.3
How to Convert a COBOL Copybook
23.5.4
How to Convert C Structures
23.5.5
How to Convert an FML Field Table Class
23.6
Deleting MFL Resources
23.6.1
How to Delete an MFL Resource
23.7
Testing Format Definitions
23.7.1
How to Start Format Tester
23.7.2
How to Test Using the Non-XML Window
23.7.2.1
Using the Data Offset Feature
23.7.2.2
Using the Text Feature
23.7.3
How to Test Using the XML Window
23.7.4
How to Test Using the Debug Window
23.7.5
How to Debug Format Definitions
23.7.5.1
Searching for Values
23.7.5.2
Searching for Offsets
23.7.5.3
Using the Debug Log
23.7.6
Format Tester Command Reference
23.7.6.1
File Menu
23.7.6.2
Edit Menu
23.7.6.3
Display Menu
23.7.6.4
Generate Menu
23.7.6.5
Transform Menu
23.8
Using the Palette
23.8.1
How to Display the Palette Window
23.8.2
How to Add Items to the Palette
23.8.3
How to Add Palette Items to a Message Format
23.9
Format Builder Supported Data Types
23.9.1
MFL Data Types
23.9.2
COBOL Copybook Importer Data Types
23.9.3
Unsupported C Language Features
23.10
Format Builder Field Reference
23.10.1
Format Builder Window
23.10.2
Format Builder Tool Bar
23.10.3
Format Builder Tree Pane
23.10.4
Field Configuration Window
23.10.5
Group Configuration Window
23.10.6
Format Builder Reference Configuration Window
24
Using Java Callouts and POJOs
24.1
Introduction to Java Callouts
24.1.1
Java Callout Usage Guidelines
24.1.2
Java Callouts or EJBs
24.2
Working with Streaming Content
24.2.1
Passing Streaming Content to a Java Callout
24.2.2
Streaming Content Results from a Java Callout
24.3
Best Practices for Java Callouts and POJOs
Part V Working with JCA Adapters, Transports, and Bindings
25
Using the JCA Transport and JCA Adapters
25.1
Introduction to the JCA Transport
25.1.1
Supported JCA Adapters
25.1.1.1
AQ Adapter
25.1.1.2
Oracle BAM 11g Adapter
25.1.1.3
Coherence Adapter
25.1.1.4
Database Adapter
25.1.1.5
File Adapter
25.1.1.6
FTP Adapter
25.1.1.7
JDE World Adapter
25.1.1.8
JMS Adapter
25.1.1.9
LDAP Adapter
25.1.1.10
MQ Series Adapter
25.1.1.11
MSMQ Adapter
25.1.1.12
Oracle E-Business Suite Adapter
25.1.1.13
Salesforce Cloud Adapter
25.1.1.14
SAP Adapter
25.1.1.15
Socket Adapter
25.1.1.16
Third Party Adapter
25.1.1.17
User Messaging Service Adapter
25.1.2
Oracle JCA Adapter Limitations
25.1.2.1
Limitations that Apply to All JCA Adapters
25.1.2.2
Oracle JCA Adapters for Files/FTP Limitations
25.1.3
JCA Adapter Framework
25.1.4
JCA Transport Messaging
25.1.5
Security for JCA Transports
25.1.5.1
Proxy Services
25.1.5.2
Business Services
25.1.6
Logging
25.1.6.1
Oracle BAM Adapter Logging
25.1.7
JCA Transport Error Handling
25.1.8
URI Rewriting with JCA Transports
25.1.9
JCA Transport Message Encoding
25.1.10
Rejected Messages
25.2
JCA Adapter Configuration Recommendations for Service Bus
25.2.1
Configuring the JCA Adapter Connections
25.2.2
Configuring JCA Adapters that Poll a Database
25.2.3
Configuring the Oracle JCA Adapter for Database
25.2.4
Configuring the Oracle JCA Adapter for AQ
25.2.5
Configuring the Oracle JCA Adapter for Coherence
25.2.6
Configuring the Salesforce Cloud Adapter
25.3
Working with JCA Binding Resources
25.3.1
How to Create a JCA Adapter in JDeveloper
25.3.2
How to Import JCA Adapters in the Oracle Service Bus Console
25.3.3
How to Create a JCA Binding Resource in the Oracle Service Bus Console
25.3.4
How to Edit JCA Binding Resources in the Console
25.3.5
How to Delete JCA Binding Resources
25.3.6
Using Custom JCA Adapters
25.3.6.1
About the Custom Adapter Registration File
25.3.6.2
Registering and Using a Custom JCA Adapter with Service Bus
25.4
Working with JavaScript Resources
25.4.1
How to Create JavaScript Resources
25.4.2
How to Edit JavaScript Resources
25.4.3
How to Delete JavaScript Resources
25.5
JCA Transport Configuration Reference
25.5.1
JCA Transport Endpoint URIs
25.5.1.1
Endpoint Redeployment
25.5.2
JCA Transport Headers and Normalized Message Properties
25.5.3
JCA Transport Endpoint Properties
25.5.3.1
Standard Endpoint Properties
25.5.3.2
Dynamic Endpoint Properties
25.5.3.3
Activation and Interaction Specification Properties
25.5.4
JCA Transport Environment Variables
25.5.5
Configuring Proxy and Business Services to Use the JCA Transport
25.5.6
Proxy Service Operation Configuration
26
Creating REST Services with Oracle Service Bus
26.1
Oracle Service Bus and REST
26.1.1
REST Features in Service Bus
26.1.2
REST Implementation in Service Bus
26.1.3
REST Security
26.2
WADL Documents for REST Services in Service Bus
26.2.1
WADL Documents in the Design Time and Runtime
26.2.2
Query Operations with WADL
26.2.3
WADL Restrictions
26.2.4
Effective WADL Documents
26.3
Creating WADL Documents
26.3.1
How to Create a WADL Resource in the Oracle Service Bus Console
26.4
Modifying WADL Documents
26.4.1
How to Edit a WADL Document
26.4.2
How to Delete a WADL Document
26.5
Creating REST Services
26.5.1
How to Create REST Services for Service Bus
26.5.2
How to Create or Configure a REST Operation
26.5.3
How to Expose an HTTP Proxy or Business Service as REST
26.5.4
What you May Need to Know About Configuring URI Parameters for REST
26.6
Accessing WADL Documents in a Web Browser
26.6.1
Viewing WADL Documents in XML Format
26.6.2
Viewing WADL Documents in a Readable Format
27
Using the DSP Transport
27.1
Introduction to the DSP Transport
27.2
Enabling Data Services for Service Bus
27.3
Using the DSP Transport
27.3.1
Generate the WSDL File in Oracle Data Service Integrator
27.3.1.1
Step 1. Start Your Server
27.3.1.2
Step 2. Generate a WSDL File from the Data Service
27.3.1.3
Step 3: Obtain the Web Service Address
27.3.2
Create the Service Bus Project
27.3.2.1
Step 4: Import the Data Service WSDL File into Service Bus
27.3.2.2
Step 5: Create the Business Service
27.3.2.3
Step 6: Create the Proxy Service
27.3.2.4
Step 7: Create a Pipeline
27.3.2.5
Step 8: Test Your Setup
27.4
DSP Transport Configuration Reference
27.4.1
DSP Transport Endpoint URIs
27.4.2
Configuring Business Services to Use the DSP Transport
28
Using the EJB Transport
28.1
Introduction to the EJB Transport
28.2
Prerequisites for Creating Services that Invoke EJBs
28.2.1
Registering a JNDI Provider Resource
28.2.2
Registering an EJB Client or Converter JAR Resource
28.2.2.1
Adding a Client or Converter JAR File
28.2.2.2
Create a Service Account (Optional)
28.2.2.3
Locate an EJB in the JNDI Tree
28.3
Invoking EJB Business Services
28.4
Exposing EJBs as Web Services
28.5
Advanced EJB Transport Topics
28.5.1
EJB Transport Transactions
28.5.2
EJB Transport Retries and Failover
28.5.3
EJB Transport Error Handling
28.5.4
Supported Types and Converter Classes
28.5.4.1
Custom Converter Classes
28.5.4.2
Using a Converter Class for an EJB Business Service
28.5.5
Business Exception Classes
28.6
Troubleshooting EJB Transports
28.6.1
Temp Directories
28.6.2
Deployed Application
28.6.3
EJB Transport Errors
28.7
EJB Transport Configuration Reference
28.7.1
EJB Endpoint URI Format
28.7.2
Configuring Business Services to Use the EJB Transport
29
Using HTTP and Poller Transports
29.1
Introduction to Poller Transports
29.2
Using the HTTP Transport
29.2.1
HTTP Session Stickiness
29.2.2
Retrieving the HTTP Authorization Header in a Proxy Service
29.2.3
HTTP Transport Configuration Reference
29.2.3.1
HTTP Transport Endpoint URIs
29.2.3.2
Configuring Proxy Services to Use the HTTP Transport
29.2.3.3
Configuring Business Services to Use the HTTP Transport
29.2.4
REST Support
29.2.4.1
REST in Proxy Services
29.2.4.1.1
XQuery Examples
29.2.4.1.2
Headers
29.2.4.2
REST in Business Services
29.2.5
Response Codes and Error Handling for HTTP Business Services
29.3
Using the Email Transport
29.3.1
Email Transport Configuration Reference
29.3.1.1
Email Transport Endpoint URIs
29.3.1.2
Configuring Proxy Services to Use the Email Transport
29.3.1.3
Configuring Business Services to Use the Email Transport
29.4
Using the File Transport
29.4.1
File Transport Configuration Reference
29.4.1.1
File Transport Endpoint URIs
29.4.1.2
Configuring Proxy Services to Use the File Transport
29.4.1.3
Special Considerations for NFS File Systems
29.4.1.4
Configuring Business Services to Use the File Transport
29.5
Using the FTP Transport
29.5.1
FTP Transport Configuration Reference
29.5.1.1
FTP Transport Endpoint URIs
29.5.1.2
Configuring Proxy Services to Use the FTP Transport
29.5.1.3
Configuring Business Services to Use the FTP Transport
29.6
Using the SFTP Transport
29.6.1
SFTP Transport Features
29.6.2
General Principles of SFTP Authentication
29.6.3
SFTP Transport Runtime Behavior
29.6.4
Enabling SFTP Authentication
29.6.4.1
Creating the Known Hosts File
29.6.4.2
Enabling User Name and Password Authentication
29.6.4.3
Enabling Host-Based Authentication
29.6.4.4
Enabling Public Key Authentication
29.6.5
Handling SFTP Transport Communication Errors
29.6.6
Troubleshooting the SFTP Transport
29.6.7
Importing SFTP Transport Services
29.6.7.1
Importing Resources Used by the SFTP Transport
29.6.7.2
Importing and Publishing Services: UDDI Registries
29.6.8
SFTP Transport Configuration Reference
29.6.8.1
SFTP Transport Endpoint URIs
29.6.8.2
Configuring Proxy Services to Use the SFTP Transport
29.6.8.2.1
Configuring Transport Headers and Metadata
29.6.8.3
Configuring Transport Headers in the Pipeline
29.6.8.4
Configuring Transports Headers and Metadata in the Test Console
29.6.8.5
Configuring Business Services to Use the SFTP Transport
29.6.8.6
SFTP Transport Environment Values
30
Using the JEJB Transport
30.1
Introduction to the JEJB Transport
30.1.1
Differences Between the JEJB Transport and the EJB Transport
30.1.2
JEJB Transport WSDL Generation
30.1.3
JEJB Transport Error Handling
30.1.3.1
Exception Propagation in the Response
30.1.3.2
Application and Connection Errors
30.1.3.2.1
Connection Errors
30.2
Prerequisites for Creating JEJB Services
30.2.1
Creating and Packaging Your Client EJB JAR File
30.2.2
Registering a JNDI Provider Resource (Business Services)
30.3
Use Cases
30.3.1
EJB Invoking an External Service
30.3.2
Non-EJB Client Invoking an EJB
30.3.3
EJB Invoking EJB
30.4
UDDI Integration
30.4.1
UDDI Publish
30.4.2
UDDI Import
30.5
JEJB Transport Configuration Reference
30.5.1
JEJB Transport Endpoint URI
30.5.1.1
Proxy Service JEJB Endpoint URI
30.5.1.2
Business Service JEJB Endpoint URI
30.5.2
Configuring Proxy Services to Use the JEJB Transport
30.5.3
Configuring Business Services
30.5.4
JEJB Transport Environment Values
31
Using the JMS Transport
31.1
Introduction to the JMS Transport
31.1.1
JMS Content Type for Services
31.1.2
JMS Transport Security
31.1.3
Asynchronous Request-Response Messaging
31.1.4
Sending and Receiving Java Objects in Messages
31.1.5
Required JMS Resources
31.1.6
Platform Interoperability
31.1.6.1
Interoperability with WebLogic JMS
31.1.6.2
Interoperability with WebSphere MQ
31.1.6.3
Interoperability with Tibco EMS
31.2
Using SOAP Over JMS Transport
31.2.1
Interoperating with WebLogic Server
31.2.2
Configuring the Response Queues for Cross-Domain JMS Calls
31.3
Naming Guidelines for Domains, Servers, and URIs
31.3.1
JMS Server Names
31.3.2
JNDI Names and Service Bus
31.4
JMS Client ID in Proxy Services
31.4.1
About the Client ID and Subscriber Name
31.4.2
Recommended Usage
31.5
JMS Transport Error Handling
31.5.1
Application Errors
31.5.2
Communication Errors
31.5.3
Pipeline Exceptions with Java Objects
31.6
WSDL-Defined SOAP Fault Messages
31.6.1
Adding a Fault in a SOAP Message if the Fault is Constructed from inside a Service Bus Pipeline
31.7
Message ID and Correlation ID Patterns for JMS Request/Response
31.7.1
Overview of JMS Request-Response and Design Patterns
31.7.1.1
Patterns for Messaging
31.7.2
JMS Message ID Pattern
31.7.2.1
Access to the JMSReplyTo Property
31.7.2.2
JMS Message ID Pattern in a Cluster
31.7.3
JMS Correlation ID Pattern
31.7.4
Comparison of Message ID and Correlation ID Patterns
31.7.5
Interoperating with JAX-RPC Over JMS
31.7.5.1
Invoking a JAX-RPC Web Service Using the JMS Message ID Pattern
31.7.5.2
Invoking a JMS Request-Response Proxy Service from a JAX-RPC Client
31.7.6
JMS Message ID Pattern Examples
31.7.6.1
MQ Service Using a JMS Message ID to Correlate the Request-Response Message
31.7.6.2
JAX-RPC Client with a Proxy Service
31.7.6.3
Service Bus as a Client of a WebLogic Server JAX-RPC Service
31.8
JMS Transport Configuration Reference
31.8.1
JMS Transport Endpoint URIs
31.8.2
Configuring Proxy Services to Use the JMS Transport
31.8.3
JMS Transport Headers
31.8.3.1
Configuring Transport Headers
31.8.4
Configuring Business Services to Use the JMS Transport
32
Using the Local Transport
32.1
Introduction to the Local Transport
32.1.1
Features and Characteristics of Local Transport Proxy Services
32.2
Using Local Transport Proxy Services
32.2.1
Changes from Previous Usage
32.3
Propagating SOAP Faults Between Proxy Services
32.4
Using OWSM Security with Local Proxy Services
33
Using the MQ Transport
33.1
Introduction to the MQ Transport
33.1.1
MQ Transport Features
33.1.2
MQ Transport Advantages
33.1.3
Messaging Patterns
33.1.4
MQ Connection Resources
33.1.5
Quality of Service
33.1.6
MQ Clusters and the MQ Transport
33.1.7
Limitations of the MQ Transport
33.2
Setting Up the Environment for the MQ Transport
33.2.1
How to Add MQ Client Libraries to Your Environment
33.2.2
How to Configure Environment Variables
33.3
Working with MQ Connections
33.3.1
How to Create MQ Connections
33.3.2
How to Edit MQ Connections
33.3.3
How to Delete MQ Connections
33.4
MQ Transport Error Handling
33.5
Using the WebSphere JMS MQ Interface
33.5.1
Using the WebSphere MQ JMS Interface
33.5.2
MQ Messaging Types
33.5.2.1
Non-Persistent Messaging
33.5.2.2
Non-XA Persistent Messaging
33.5.2.3
XA Messaging
33.5.3
Tuning WebSphere MQ
33.6
MQ Transport Configuration Reference
33.6.1
MQ Transport Endpoint URIs
33.6.2
Configuring Proxy Services to Use the MQ Transport
33.6.3
Configuring Business Services to Use the MQ Transport
33.6.4
MQ Transport Environment Values
33.7
MQ Transport Headers
33.7.1
Configuring Transport Headers
33.7.2
About RFH2 Headers
34
Using the Oracle BPEL Process Manager Transport
34.1
Introduction to the BPEL Transport
34.1.1
SOAP Support with the BPEL Transport
34.1.2
Transaction Propagation in the BPEL Transport
34.1.3
SSL Support in the BPEL Transport
34.1.4
BPEL Transport Environment Values
34.2
BPEL Transport Simple Use Cases (Synchronous)
34.2.1
Synchronous: Invoking Processes in Oracle BPEL Process Manager
34.2.1.1
Creating and Configuring the Services
34.2.2
Synchronous: Calling External Services from Oracle BPEL Process Manager
34.2.2.1
Creating and Configuring the Services
34.2.3
Associating Messages with the Correct Conversation
34.3
Advanced Use Cases (Asynchronous)
34.3.1
Asynchronous: Invoking Processes in Oracle BPEL Process Manager
34.3.1.1
Creating and Configuring the Services
34.3.2
Asynchronous: Calling Service Providers from Oracle BPEL Process Manager
34.3.2.1
Creating and Configuring the Services
34.4
BPEL Transport Security
34.4.1
Using SSL from Oracle Service Bus to Oracle Servers
34.5
BPEL Transport Error Handling
34.5.1
Application Errors
34.5.2
Connection Errors
34.5.3
Other Errors
34.6
WS-Addressing Reference
34.6.1
ReplyTo
34.6.1.1
Calling a BPEL Process Asynchronously Through Service Bus
34.6.1.2
BPEL Processes Calling External Services Through Service Bus
34.6.2
MessageID / RelatesTo
34.7
Examples of XML Messaging with the BPEL Transport
34.7.1
Conversation ID Examples
34.7.1.1
Port and Message Definitions
34.7.1.2
WS-Addressing that Sets the Conversation ID
34.7.1.3
Message Payload Data that Sets the Conversation ID
34.7.1.4
Transformation Examples
34.7.2
Asynchronous BPEL to BPEL Through Service Bus Example
34.7.2.1
Port and Message Definitions
34.7.2.2
BP1 to P1 – Initiate operation
34.7.2.3
P1/B1 to BP2
34.7.2.4
BP2 to P2 – onResult operation
34.7.2.5
P2/B2 to BP1 – onResult operation
34.8
BPEL Transport Configuration Reference
34.8.1
BPEL Transport Endpoint URI
34.8.2
Configuring Business Services to Use the BPEL Transport
35
Using the SB Transport
35.1
Introduction to the SB Transport
35.1.1
SB Transport Features
35.2
SB Transport Error Handling
35.3
UDDI and the SB Transport
35.3.1
Publishing a Service
35.3.2
Importing a Service
35.4
SB Transport Configuration Reference
35.4.1
SB Transport Environment Values
35.4.2
Configuring Proxy Services to Use the SB Transport
35.4.3
Configuring Business Services to Use the SB Transport
35.4.3.1
JNDI Providers
36
Using the SOA-DIRECT Transport
36.1
Introduction to the SOA-DIRECT Transport
36.1.1
SOA-DIRECT Transport Features
36.1.2
Service Binding Types
36.1.3
WS-Addressing for the SOA-DIRECT Transport
36.1.4
SOA-DIRECT Transport Security
36.1.5
SOA-DIRECT Transport Error Handling
36.1.5.1
Connection Errors
36.1.5.2
Application Errors
36.1.5.3
Generic Errors
36.2
Using SOA Suite Services with Service Bus
36.2.1
Simple Use Cases – Synchronous
36.2.1.1
Transactional Boundaries
36.2.1.2
Synchronous Invocation of a SOA Composite
36.2.1.3
Synchronous Invocation from a SOA Composite
36.2.1.4
Associating Messages with the Correct Conversation
36.2.2
Advanced Use Cases – Asynchronous
36.2.2.1
Asynchronous Invocation of a SOA Composite
36.2.2.2
Asynchronous Invocation from a SOA Composite
36.3
SOA-DIRECT Transport Configuration Reference
36.3.1
SOA-DIRECT Endpoint URIs
36.3.1.1
Endpoint URI Format in a Cluster
36.3.1.2
Endpoint URI Examples
36.3.2
Configuring Business Services to Use the SOA-DIRECT Transport
36.3.3
SOA-DIRECT Transport Environment Values
36.4
WS-Addressing Reference
36.4.1
ReplyTo Header
36.4.1.1
Calling a SOA Composite Asynchronously
36.4.1.2
Calling Back to a SOA Composite Asynchronously
36.4.2
MessageID / RelatesTo Headers
36.5
XML Messaging Examples
36.5.1
Conversation ID Examples
36.5.1.1
Port and Message Definitions
36.5.1.2
WS-Addressing that Sets the Conversation ID
36.5.1.3
Message Payload Data that Sets the Conversation ID
36.5.1.4
Transformation Examples
36.5.2
Asynchronous Composite to Composite Communication Through Service Bus
36.5.2.1
Port and Message Definitions
36.5.2.2
BP1 to P1 – Initiate operation
36.5.2.3
P1/B1 to BP2
36.5.2.4
BP2 to P2 – onResult operation
36.5.2.5
P2/B2 to BP1 – onResult operation
37
Using the Tuxedo Transport
37.1
Introduction to the Tuxedo Transport
37.1.1
Capabilities of the Tuxedo Transport
37.2
Configuring Oracle Tuxedo Connector
37.2.1
Before You Begin
37.2.2
Configuring Oracle Tuxedo Connector
37.3
Using Tuxedo Services from Service Bus
37.3.1
Configuring a Tuxedo-Based Business Service
37.3.1.1
Business Service Endpoint URIs for Tuxedo Transports
37.3.2
Load Balancing and Failover for Tuxedo-Based Business Services
37.3.3
Error Handling for Tuxedo-Based Business Services
37.3.4
Testing Your Configuration
37.4
Using Service Bus from Tuxedo
37.4.1
Configuring a Tuxedo-Based Proxy Service
37.4.2
Testing Your Configuration
37.5
Tuxedo Transport Buffer Transformation
37.5.1
Buffer Transformation with the Any XML Service Type
37.5.2
Buffer Transformation with the Messaging Service Type
37.6
Tuxedo Transport Transaction Processing
37.6.1
Inbound Tuxedo Service Transaction Processing
37.6.2
Outbound Tuxedo Service Transaction Processing
37.7
Tuxedo Transport Configuration Reference
37.7.1
Configuring Proxy Services to Use the Tuxedo Transport
37.7.2
Configuring Business Services to Use the Tuxedo Transport
38
Using the WS Transport
38.1
Introduction to the WS Transport
38.1.1
Web Services Reliable Messaging
38.1.2
WS Transport Features
38.1.3
Messaging Patterns
38.1.4
WS-Policies in the WS Transport
38.1.4.1
WS-Policy Configurations
38.1.5
Streaming Content for Large Messages
38.1.6
Web Services Interoperability
38.2
Authentication and Authorization of Services
38.2.1
Proxy Service Authentication
38.2.2
Proxy Service Authorization
38.2.3
Business Service Authentication
38.3
Using the WS Transport
38.3.1
Importing the WSDL Document into the Oracle Service Bus Console
38.3.2
Configuring WS Policies
38.3.3
Attaching WS Policies to a Service
38.3.4
Configuring an Error Queue
38.3.5
Routing the WS Transport Through an HTTP Proxy Server
38.3.6
WS Transport Error Handling
38.3.7
Importing and Exporting Resources
38.3.8
Importing and Publishing Services Using UDDI Registries
38.4
WS Transport Configuration Reference
38.4.1
Endpoint URIs for the WS Transport
38.4.2
Configuring Business Services to Use the WS Transport
38.4.3
Configuring Proxy Services to Use the WS Transport
Part VI Creating Custom Transport Providers
39
Learning About Custom Transport Providers
39.1
Introduction to Transport Providers
39.2
Introduction to the Transport SDK
39.2.1
Transport SDK Features
39.2.1.1
Handling Inbound and Outbound Messages
39.2.1.2
Deploying Transport-Related Artifacts
39.2.1.3
Processing Messages Asynchronously
39.2.2
Transport Provider Modes
39.2.3
Related Features
39.2.3.1
Load Balancing
39.2.3.2
Monitoring and Metrics
39.3
Determining Whether to Develop a Custom Transport Provider
39.3.1
When to Use the Transport SDK
39.3.2
When Alternative Approaches are Recommended
39.4
Transport Provider Components
39.4.1
Design-Time Component
39.4.2
Runtime Component
39.5
The Transaction Model
39.5.1
Overview of Transport Endpoint Properties
39.5.1.1
Transactional vs. Non-Transactional Endpoints
39.5.1.2
Supported Message Patterns
39.5.2
Support for Synchronous Transactions
39.5.2.1
Use Case 1 (Response Pipeline Processing)
39.5.2.2
Use Case 2 (Service Callout Processing)
39.5.2.3
Use Case 3 (Suspending Transactions)
39.5.2.4
Use Case 4 (Multiple URIs)
39.6
Transport SDK Security Model
39.6.1
Inbound Request Authentication
39.6.2
Outbound Request Authentication
39.6.2.1
Outbound User Name and Password Authentication
39.6.2.2
Outbound SSL Client Authentication (Two-Way SSL)
39.6.2.3
Outbound JAAS Subject Authentication
39.6.3
Link-Level or Connection-Level Credentials
39.6.4
Uniform Access Control to Proxy Services
39.6.5
Identity Propagation and Credential Mapping
39.7
Transport SDK and the Threading Model
39.7.1
Inbound Request Message Thread
39.7.2
Outbound Response Message Thread
39.7.3
Support for Asynchrony
39.7.4
Publish and Service Callout Threading
39.8
Designing for Message Content
39.8.1
Sources and Transformers
39.8.2
Sources and the MessageContext Object
39.8.3
Built-In Transformations
40
Developing Custom Transport Providers
40.1
Development Road Map
40.1.1
Planning
40.1.2
Developing
40.1.3
Packaging and Deploying
40.2
Before You Begin
40.3
Basic Development Steps
40.3.1
Step1. Review the Transport Framework Components
40.3.2
Step 2. Create a Directory Structure for Your Transport Project
40.3.3
Step 3. Create an XML Schema File for Transport-Specific Artifacts
40.3.4
Step 4. Define Transport-Specific Artifacts
40.3.4.1
EndPointConfiguration
40.3.4.2
RequestMetaDataXML
40.3.4.3
RequestHeadersXML
40.3.4.4
ResponseMetaDataXML
40.3.4.5
ResponseHeadersXML
40.3.5
Step 5. Define the TransportProviderConfiguration XMLBean
40.3.6
Step 6. Implement the Transport Provider User Interface
40.3.7
Step 7. Implement the Runtime Interfaces
40.3.8
Step 8. Package and Deploy the Transport Provider
40.4
Important Development Topics
40.4.1
Handling Messages
40.4.1.1
Sending and Receiving Message Data
40.4.1.2
Request and Response Metadata Handling
40.4.1.3
Character Set Encoding
40.4.1.4
Co-Located Calls
40.4.1.5
Returning Outbound Responses to the Service Bus Runtime
40.4.2
Transforming Messages
40.4.3
Working with TransportOptions
40.4.3.1
Inbound Processing
40.4.3.2
Outbound Processing
40.4.3.3
Request Mode
40.4.4
Handling Errors
40.4.4.1
Case 1: The Exception Occurs Before the Outbound Call
40.4.4.2
Case 2: The Exception Occurs During the Outbound Call
40.4.4.3
Case 3: The Exception Occurs After the Outbound Call
40.4.4.4
Catching Application Errors
40.4.4.4.1
Identifying Application Errors
40.4.4.4.2
Configuring Application Error Retries
40.4.4.5
Catching Connection Errors
40.4.4.5.1
Identifying Connection Errors
40.4.5
Defining Custom Environment Value Types
40.4.6
Publishing Proxy Services to a UDDI Registry
40.4.7
When to Implement TransportWLSArtifactDeployer
40.5
Creating Help for Custom Transports
40.5.1
About Custom Transport Online Help
40.5.2
How to Provide Custom Transport Help in the Console
40.5.2.1
Implement the CustomHelpProvider Interface
40.5.2.2
Create an HTML File to Launch
40.5.2.3
Create a Simple Web Application to Display Expanded Help (Optional)
40.5.2.3.1
META-INF/application.xml
40.5.2.3.2
WEB-INF/web.xml
40.5.2.3.3
Help Content and Resources
40.5.3
How to Provide Custom Transport Help in JDeveloper
40.5.4
Packaging Help for the Transport Plug-in
41
Developing Custom Transport Providers for JDeveloper
41.1
Introduction
41.2
Services Runtime and Services Configuration
41.2.1
Offline Methods
41.2.2
Restrictions when Working Offline
41.2.3
Working Offline with a Remote Server
41.2.4
Bootstrapping Transports in Offline Mode
41.3
Packaging Transports for JDeveloper
41.4
Custom Transport Provider Reference for Offline Tools
41.4.1
Working in Different Modes
41.4.2
TransportProviderFactory
41.4.3
TransportManagerHelper Methods
42
Packaging and Deploying a Custom Transport Provider
42.1
Packaging and Deployment Overview
42.1.1
Custom Transport Provider Components
42.1.2
Custom Transport Provider Resources
42.2
Packaging the Transport Provider
42.2.1
Transport JAR File Packaging
42.2.2
Transport EAR File Packaging
42.2.3
Transport Plug-in Registration for JDeveloper
42.3
Transport Plug-in Installation
42.4
Deploying the Transport Provider
42.4.1
Transport Registration
42.5
Undeploying a Transport Provider
42.6
Deploying to a Cluster
43
Creating a Sample Socket Transport Provider
43.1
Sample Socket Transport Provider Design
43.1.1
Concepts Illustrated by the Sample
43.1.2
Basic Architecture of the Sample
43.1.3
Configuration Properties
43.2
Sample Location and Directory Structure
43.3
Building and Deploying the Sample
43.3.1
How to Set Up the Environment
43.3.2
How to Build the Sample Transport Provider
43.3.3
How to Deploy the Sample Transport Provider
43.3.4
Registering the Sample Transport Provider With JDeveloper
43.4
Creating a Socket Transport Sample Project
43.4.1
Creating the Project
43.4.2
Creating the Business Service
43.4.3
Creating the Proxy Service
43.4.4
Creating the Pipeline
43.4.5
Connecting the Proxy Service and Pipeline
43.5
Testing the Socket Transport Provider
43.5.1
Using the Sample Server and Client for Testing
43.5.1.1
Starting the Sample External Service
43.5.1.2
Starting the Sample Initiating Service
43.5.2
Using the Test Console
Part VII Sharing Artifacts and Services
44
Importing and Exporting Resources and Configurations
44.1
About Importing and Exporting Resources
44.1.1
About Exporting Resources
44.1.1.1
Data Encryption During Export
44.1.2
About Importing Resources
44.1.2.1
Improving Import Performance
44.1.2.2
Importing Service Accounts or Service Key Providers
44.1.2.3
Preserving Operational Settings During Import
44.1.2.4
Preserving Security Configuration During Import
44.1.2.4.1
Preserve Security and Policy Configuration
44.1.2.4.2
Preserve Credentials
44.1.2.4.3
Preserve Access Control
44.1.2.5
Customizing Environment Values After an Import
44.2
Importing and Exporting Resources in JDeveloper
44.2.1
How to Export Resources to a Configuration JAR File in Oracle JDeveloper
44.2.2
How to Export Resources to a Server in Oracle JDeveloper
44.2.3
How to Import Resources in JDeveloper
44.3
Importing and Exporting Resources in the Oracle Service Bus Console
44.3.1
How to Export Resources to a Configuration JAR File in the Console
44.3.2
How to Import Resources from a Configuration JAR File in the Console
44.3.3
How to Import Resources from a ZIP File in the Console
44.3.4
How to Import Resources from a URL in the Console
44.4
Exporting a Service Bus Configuration Offline
44.4.1
About the Export Process
44.4.2
Preparing to Export a Service Bus Configuration
44.4.2.1
Before You Begin
44.4.2.2
Creating the Export Settings File
44.4.2.3
Configuring the Environment
44.4.3
Exporting a Service Bus Configuration Offline
44.4.3.1
Exporting a Configuration Offline Using a Command Line
44.4.3.2
Exporting a Configuration Offline Using Ant
44.4.3.3
Exporting a Configuration Offline Using WLST
44.4.4
Export Settings File Format, Samples, and Schema
44.4.4.1
Export Settings File Format
44.4.4.2
Validation
44.4.4.3
Inclusion and Exclusion Rules
44.4.4.4
Export Settings File Samples
44.4.4.5
Export Settings File Schema Definition
45
Sharing Data Using the Metadata Services Repository
45.1
Service Bus and the MDS Repository
45.2
Managing the MDS Repository
45.3
Sharing Artifacts Using the MDS Repository
45.3.1
How to Publish Service Bus Artifacts to the MDS Repository
45.4
Consuming Artifacts Stored in the MDS Repository
45.4.1
How to Consume MDS Repository Artifacts Using the Resource Browser
45.4.2
How to Add MDS Repository Artifacts to a Service Bus Project
45.4.3
How to Create a Business Service from a WSDL File in the MDS Repository
45.4.4
How to Create a Business Service from a WADL File in the MDS Repository
45.4.5
How to Expose a WSDL File in the MDS Repository as a REST Service
45.4.6
Opening the Project Overview File Through a SOA-MDS Connection
46
Working with UDDI Registries
46.1
UDDI, UDDI Registries, and Web Services
46.1.1
Basic Concepts of the UDDI Specification
46.1.2
Benefits of Using a UDDI Registry with Service Bus
46.1.3
Introduction to UDDI Entities
46.2
Service Bus and UDDI
46.2.1
UDDI Registry URLs
46.2.2
UDDI Registry Security Configuration
46.2.3
Authentication Configuration and UDDI Registries
46.2.4
About Publishing Proxy Services to a UDDI Registry
46.2.5
About Importing Services from a UDDI Registry
46.2.5.1
About Business Entities and Patterns
46.3
Keeping Services Synchronized
46.3.1
Automatic Publishing for Proxy Services
46.3.1.1
Changes to the Default Registry
46.3.1.2
Auto-Publish Synchronization Process
46.3.2
Automatic Importing of UDDI Services
46.3.2.1
Synchronization of Imported Services
46.3.2.2
Unlinking Imported Services
46.4
Related References
46.5
Working with UDDI Registry Resources
46.5.1
How to View UDDI Registry Resources in the Oracle Service Bus Console
46.5.2
How to Create UDDI Registry Resources
46.5.3
How to Create a UDDI Registry Resource from a JDeveloper UDDI Connection
46.5.4
How to Edit a UDDI Registry Resource
46.5.5
How to Specify a Default UDDI Registry Resource
46.5.6
How to Delete a UDDI Registry Resource
46.6
Sharing UDDI Registry Services in JDeveloper
46.6.1
How to Create a UDDI Registry Connection in JDeveloper
46.6.2
How to Create a Business Service from a UDDI Registry Service
46.6.3
How to Download a Service From a UDDI Registry
46.7
Sharing UDDI Registry Services in the Oracle Service Bus Console
46.7.1
Publishing Proxy Services to a UDDI Registry
46.7.1.1
How to Automatically Publish Proxy Services to a UDDI Registry
46.7.1.2
How to Manually Publish a Proxy Service to a UDDI Registry
46.7.2
How to Import Resources from a UDDI Registry
46.7.3
How to Automatically Synchronize Imported Services
46.7.4
How to Manually Synchronize an Imported Service
46.7.5
How to Unlink an Imported Service From the UDDI Registry
46.8
Sample Business Scenarios for Service Bus and UDDI
46.8.1
Basic Proxy Service Communication with a UDDI Registry
46.8.2
Cross-Domain Deployment in Service Bus
46.9
Mapping Service Bus Proxy Services to UDDI Entities
46.9.1
UDDI Mapping Details for a Service Bus Proxy Service
46.9.2
Transport Attributes
46.9.3
Service Type Attributes
46.9.4
Canonical tModels Supporting Service Bus Services
46.9.5
Mapping Example
Part VIII Security
47
Understanding Oracle Service Bus Security
47.1
Inbound Security
47.2
Outbound Security
47.3
Options for Identity Propagation
47.3.1
Using a Service Account with Business Service when Attaching OWSM Policies
47.3.2
Example: Authentication with a User Name Token
47.4
Administrative Security
47.5
Access Control Policies
47.5.1
Configuring Proxy Service Access Control
47.5.2
Access Control Policy Management
47.5.2.1
Deleting a Proxy Service
47.5.2.2
Deleting the Access Control Policy Assigned to a Proxy Service
47.5.2.3
Moving or Renaming a Proxy Service
47.5.2.4
Renaming a Proxy Service Operation
47.6
Configuring the Oracle WebLogic Security Framework: Main Steps
47.7
Context Properties Are Passed to Security Providers
47.7.1
Context Properties for HTTP Transport-Level Authentication
47.7.2
ContextHandler Properties for Access Control and Custom Authentication
47.7.3
Additional Transport-Specific Context Properties
47.7.4
Administrator-Supplied Context Properties for Message-Level Authentication
47.7.5
Security Provider Must Have Knowledge of the Property Name
47.7.6
WebLogic Server Administrative Channel is Supported
47.7.6.1
Using the Administrative Channel: Main Steps
47.8
Using Security Providers
47.8.1
Configuring Authentication Providers
47.8.2
Using a Custom Authorization Provider to Protect Service Bus Resources
47.8.2.1
WebLogic Authorization Provider Usage Information
47.8.2.2
ALSBProxyServiceResource Object
47.8.2.2.1
ALSBProxyServiceResource Examples
47.8.2.3
ProjectResourceV2 Object
47.8.2.4
ConsoleResource Object
47.8.3
About Errors When Using Security Provider Policies
48
Oracle Service Bus Security FAQ
48.1
How are Service Bus and WebLogic Server Security related?
48.2
What is Transport-Level Security?
48.3
What is Web Services Security?
48.4
What is Web Service Policy?
48.5
What are Web Service Policy assertions?
48.6
Are Access Control Policy and Web Service Policy the same?
48.7
What is Web Services Security Pass-Through?
48.8
What is a Web Services Security Active Intermediary?
48.9
What is outbound Web Services Security?
48.10
What is SAML?
48.11
Is it possible to customize the format of the subject identity in a SAML assertion?
48.12
What is the Certificate Lookup And Validation Framework?
48.13
Does Service Bus support identity propagation in a proxy service?
48.14
Is single sign-on supported in Service Bus?
48.15
Are security errors monitored?
48.16
Can I configure security for MBeans?
49
Securing Business and Proxy Services
49.1
Introduction to Policies
49.2
Security and Security Policies for Business and Proxy Services
49.2.1
Security Policies in Service Bus
49.2.2
Policy Overrides
49.2.3
Security Settings
49.2.4
Global Policies
49.2.5
Service Accounts in Business Services
49.2.6
Security-Related Validation for Active Proxy Services
49.3
Attaching and Configuring Policies in JDeveloper
49.3.1
How to Attach Oracle Web Services Manager Policies in JDeveloper
49.3.2
How to Define Override Values for a Policy in JDeveloper
49.3.3
How to Configure Custom Authentication for Proxy Services in JDeveloper
49.3.3.1
Configuring Proxy Service Custom Authentication in JDeveloper
49.3.4
How to Specify a Service Key Provider for a Proxy Service in JDeveloper
49.3.5
How to Specify Web Services Policy Enforcement in JDeveloper
49.4
Attaching and Configuring Policies in the Oracle Service Bus Console
49.4.1
How to Attach Oracle Web Services Manager Policies in the Console
49.4.2
How to Define Override Values for a Policy in the Console
49.4.3
How to Configure Custom Authentication for a Proxy Service in the Console
49.4.3.1
Configuring Proxy Server Custom Authentication in the Console
49.4.4
How to Specify a Service Key Provider for a Proxy Service in the Console
49.4.5
How to Specify Web Services Policy Enforcement in the Console
49.5
Configuring Service Bus Client Access Security
49.5.1
How To Configure Transport-Level Access Policies
49.5.1.1
Enabling HTTP URL Links to Open the Policy Editor
49.5.1.2
Configuring Transport-Level Access Policies
49.5.2
How to Configure Message-Level Access Policies
49.5.3
How to Add Policy Conditions
49.6
Hiding Personally Identifiable Information in Messages
49.6.1
How to Hide Personally Identifiable Information
49.6.1.1
Hiding Personally Identifiable Information Using JDeveloper
49.6.1.2
Hiding Personally Identifiable Information Using the Console
50
Configuring Message-Level Security for Web Services
50.1
About Message-Level Security
50.1.1
Sample Sequence of Actions in Message-Level Security
50.2
Message-Level Access Control Policies for Proxy Services
50.3
Configuring Proxy Service Message-Level Security
50.3.1
Creating an Active Intermediary Proxy Service: Main Steps
50.3.2
Creating a Pass-Through Proxy Service: Main Steps
50.4
Configuring Business Service Message-Level Security: Main Steps
50.5
Using the Service Identity Certificate Extensions
50.5.1
Publishing Certificate Identity Extension in a Proxy Service Effective WSDL
50.5.2
Consuming Certificate Identity Extension in a Business Service
50.6
Examples of Custom WS-Policy Statements
50.6.1
Example: Encrypting Part of the SOAP Body and Header
50.6.2
Example: Encryption Policy for a Business Service
50.6.3
Example: Encrypting a Custom SOAP Header
50.6.4
Example: Signing the Message Body and Headers
50.6.5
Example: Signing a SOAP Body with SAML Holder-of-Key
50.6.6
Example: Authenticating, Signing, and Encrypting with SAML Sender Vouches
50.7
Disabling Outbound WS-Security
51
Configuring Transport-Level Security
51.1
Configuring Transport-Level Security for HTTPS
51.1.1
HTTPS Authentication Levels
51.1.2
Configuring Inbound HTTPS Security: Main Steps
51.1.3
Configuring Outbound HTTPS Security: Main Steps
51.2
Configuring Transport-Level Security for HTTP
51.2.1
Configuring Inbound HTTP Security: Main Steps
51.2.2
Configuring Outbound HTTP Security: Main Steps
51.2.3
Using Custom Authentication for Outbound HTTP Security
51.3
Configuring Transport-Level Security for JMS
51.3.1
Configuring Inbound JMS Transport-Level Security: Main Steps
51.3.2
Configuring Outbound JMS Transport-Level Security: Main Steps
51.4
Configuring Transport-Level Security for SFTP Transport
51.4.1
How Two-Way Authentication is Performed
51.4.2
Use of the known_hosts File
51.4.3
SFTP Transport Authentication Process
51.4.3.1
Inbound One-Way Download to the Proxy Service
51.4.3.2
Outbound One-Way Upload from the Business Service
51.4.4
Configuring Inbound SFTP Transport-Level Security: Main Steps
51.4.5
Configuring Outbound SFTP Transport-Level Security: Main Steps
51.4.6
SFTP Security Attributes Preserved During Import
51.4.7
SFTP Credential Life Cycle
51.5
Email, FTP, and File Transport-Level Security
51.5.1
Email and FTP Transport-Level Security
51.5.2
File Transport Security
51.6
Configuring Transport-Level Security for SB Transport
51.6.1
Configuring SAML Authentication With Service Bus (SB) Transport
51.7
Configuring Transport-Level Security for WS Transport
51.7.1
Reliable Web Services Messaging Defined
51.7.2
WS Transport Resources Visible in WLS Console
51.7.3
Use of WS-Policy Files for Web Service Reliable Messaging Configuration
51.7.3.1
Preconfigured WS-RM Policy Files
51.7.4
RM WS-Policy Required Prior to Activation
51.7.5
Async Responses
51.7.6
Proxy Service Authentication
51.7.7
Preserving Security Configuration on Import
51.7.8
Configuring Inbound and Outbound WS Transport-Level Security
51.8
Configuring Transport-Level Security for WebSphere Message Queue Transport
51.8.1
Configuring Inbound MQ Transport-Level Security: Main Steps
51.8.2
Configuring Outbound MQ Transport-Level Security: Main Steps
51.9
Transport-Level Security Elements in the Message Context
52
Securing Oracle Service Bus with Oracle Web Services Manager
52.1
About Oracle Web Services Manager Integration with Oracle Service Bus
52.1.1
Security Providers
52.1.1.1
JPS Providers
52.1.1.2
CSS Providers
52.2
Using Oracle Web Services Manager with Oracle Service Bus
52.2.1
Attaching Oracle Web Services Manager Policies to Oracle Service Bus Services
52.2.1.1
Policy Overrides
52.2.2
Configuring SAML
52.2.3
Advertising WSDL Files to Support WS Standards
52.2.3.1
WSDL Query Parameter Reference for WS Policies
52.2.4
Deployment Considerations
52.2.5
Auditing
52.2.6
Monitoring Statistics
52.2.7
Predefined Policies and Unsupported Assertions
52.2.7.1
Predefined Policies
52.2.7.2
wss_http_token_*_policy Guidelines
52.2.7.3
OWSM Authentication Policy Guidelines
52.2.7.4
OWSM Policies and SOAP with Attachments (SwA)
52.2.7.5
OWSM Policies and MTOM-Formatted Messages
52.2.7.6
Unsupported Assertions
52.2.8
Custom Assertions
53
Securing Oracle Service Bus Proxy and Business Services with WS-Policy
53.1
About Web Services Policy
53.1.1
Relationship Between WS-Security and WS-Policy
53.1.2
Abstract and Concrete WS-Policy Statements
53.2
Oracle-Proprietary Security Policy Best Practices
53.3
Policy Subjects and Effective Policy
54
Using SAML with Oracle Service Bus
54.1
Mapping Identity to a SAML Token
54.2
Configuring SAML Pass-Through Identity Propagation
54.3
Authenticating SAML Tokens in Proxy Service Requests
54.4
Configuring SAML Authentication with Service Bus (SB) Transport
54.5
Using SAML Identity Switching
54.5.1
Protecting the Identity-Switching Resource
54.6
Troubleshooting SAML with Oracle Service Bus
55
Configuring Custom Authentication
55.1
Introduction to Custom Authentication in Oracle Service Bus
55.1.1
Understanding Custom Authentication Tokens
55.1.2
Custom Authentication Token Use and Deployment
55.1.3
Understanding Transport-Level Custom Authentication
55.1.3.1
Import/Export and Transport-Level Custom Token Authentication
55.1.4
Understanding Message-Level Custom Authentication
55.1.5
Propagating the Identity Obtained From Custom Authentication Tokens
55.1.6
Combining WS-Security with Custom User Name/Password and Tokens
55.2
Format of XPath Expressions
55.3
Configuring Identity Assertion Providers for Custom Tokens
55.3.1
Object Type of Custom Tokens
55.3.2
Configuring a Custom Token Type in an Identity Assertion Provider
55.3.2.1
How to Configure a Custom Token Type in an Identity Assertion Provider
55.3.2.2
Setting the Supported and Active Types in the MBean
55.4
Configuring Custom Authentication Transport-Level Security
55.4.1
How to Create a Custom Authentication Class for Outbound
55.4.2
How to Configure Transport-Level Custom Authentication
55.5
Configuring Message-Level Custom Authentication
55.5.1
How to Configure Message-Level Custom Authentication for Proxy Services
56
Defining Message-Level Security with .Net 2.0
56.1
Message-Level Security Between .NET 2.0 and Oracle Service Bus
56.2
What is .NET?
56.3
Message-Level Security Configuration in .NET
56.4
Oracle Service Bus Configuration for Message-Level Security with .NET
56.4.1
Sample WSDL File
Part IX Completing Oracle Service Bus Services
57
Debugging Oracle Service Bus Applications
57.1
Introduction to the Debugger
57.1.1
Debug Servers
57.1.2
Local and Remote Debugging
57.1.3
Debugging With Breakpoints
57.1.4
JDeveloper Debugging Windows
57.2
Configuring the Project and Debugger
57.2.1
How to Create Run Configuration for Remote Debugging
57.2.2
How to Choose a Run Configuration for Debugging
57.3
Accessing the Debugger
57.4
Debugging a Service Bus Application
57.4.1
How to Set Breakpoints on Service Bus Components
57.4.2
How to Debug Using Breakpoints
57.4.3
How to Step Through a Debugging Session
57.4.4
How to End or Detach from Debugging
57.5
Working with the Debugger Windows
57.5.1
How to Edit Breakpoint Options
57.5.2
How to Create a Breakpoint Group
57.5.2.1
Creating a Breakpoint Group
57.5.2.2
Adding a Breakpoint to an Existing Group
57.5.3
How to Remove or Disable Breakpoints
57.5.4
How to Enable a Disabled Breakpoint
57.5.5
How to View and Modify Variable Values at the Current Breakpoint
57.5.6
How to Add a Watch
58
Using the Test Console
58.1
Introduction to the Test Console
58.1.1
Proxy Service Testing
58.1.2
Pipeline Testing
58.1.2.1
Execution Tracing in Pipelines Using the Test Console
58.1.3
Business Service Testing
58.1.4
Recommended Approaches to Testing Services
58.1.5
HTTP Requests
58.2
Accessing the Test Console
58.2.1
Prerequisites
58.2.2
How to Access the Test Console from the Oracle Service Bus Console
58.2.2.1
Accessing the Test Console from a Component's Definition Editor
58.2.2.2
Accessing the Test Console from the Project or Folder Definition Editor
58.2.3
How to Access the Test Console from Fusion Middleware Control
58.2.4
How to Access the Test Console from JDeveloper
58.2.4.1
Accessing the Test Console from JDeveloper
58.2.4.2
Accessing the Test Console for a Transformation from JDeveloper
58.3
Testing Proxy Services, Business Services, Pipelines, and Split-Joins
58.3.1
How to Test Service Bus Services
58.3.2
How to Test Attachments in Services
58.3.3
How To Trace Pipeline Processing
58.3.4
How to View Service Test Results
58.4
Testing MFL Transformations
58.4.1
How to Test MFL Transformations in the Test Console
58.4.2
MFL Test Console Example
58.5
Testing XSLT Transformations (Resources)
58.5.1
How to Test XSLT Transformations Using the Test Console
58.5.2
How to Test XSLT Transformations Using the JDeveloper XSLT Mapper
58.6
Testing XQuery Transformations (Resources)
58.6.1
XQuery Transformation Testing Prerequisites and Guidelines
58.6.2
How to Test XQuery Transformations in the Test Console
58.7
Testing Inline Expressions
58.7.1
How to Test XQuery Expressions
58.7.2
How to Test XPath Expressions
58.8
Testing Services With OWSM Security
58.8.1
Limitations for Services and Policies
58.9
About Security and Transports
58.10
Undeploying the Test Console
58.10.1
Untargeting the Test Console Before Domain Creation
58.10.2
Untargeting the Test Console when the Server is Running
58.10.3
Untargeting the Test Console when the Server is Not Running
58.11
Test Console Page Reference for Services
58.11.1
Test Configuration Test Console Properties
58.11.2
Service Operation Test Console Properties
58.11.3
Request Document Test Console Properties
58.11.4
Security Test Console Properties
58.11.5
Authentication Test Console Properties
58.11.6
Transport Test Console Properties
58.11.6.1
Test Console Transport Settings
58.11.6.2
How the Runtime Uses the Transport Settings in the Test Console
58.11.7
Attachment Test Console Properties
59
Deploying Oracle Service Bus Services
59.1
Deployment Overview
59.2
Before You Deploy
59.2.1
Creating a Service Bus Domain Using the Configuration Wizard
59.2.2
Resolving Conflicts
59.2.3
Configuring JMS Resources
59.2.4
Configuring Security
59.3
Deploying from the Oracle Service Bus Console
59.3.1
How to Deploy from the Console
59.4
Deploying from JDeveloper
59.4.1
How to Create a Connection to the WebLogic Server
59.4.2
How to Create a Deployment Profile
59.4.3
How to Deploy a Service Bus Project or Application
59.4.4
How to Deploy a Project or Application Using the Previous Configuration
59.4.5
What Happens When You Deploy Using JDeveloper
59.5
Deploying a Service Bus Configuration JAR File in Fusion Middleware Control
59.6
Updating an Online Configuration
59.6.1
What You Need to Know for Successful Online Configuration Updates
59.6.2
Changing an Online Business Service
59.6.3
Changing an Online Proxy Service
59.6.4
Changing an Online Pipeline
59.7
Updating an Online Configuration in a Cluster
59.7.1
Changing a Business Service in a Cluster
59.7.2
Installing a New Version of a Proxy Service in a Cluster
60
Using the Oracle Service Bus Development Maven Plug-In
60.1
Introduction to the Oracle Service Bus Maven Plug-In
60.1.1
Maven Lifecycle Phases and Goals
60.1.2
POM Files and Archetypes
60.2
Installing and Configuring Maven
60.2.1
How to Configure the Oracle Service Bus Development Maven Plug-In
60.2.2
How to Use Maven Online Help
60.3
Using the Oracle Service Bus Development Maven Plug-In
60.3.1
How to Generate a Service Bus Project POM File
60.3.2
How to Generate a Service Bus Project POM File from an Archetype
60.3.2.1
Creating a Service Bus Project POM File from an Archetype in JDeveloepr
60.3.2.2
Generating a Service Bus Project POM File from an Archetype Using a Command Line
60.3.3
How to Generate a Service Bus System Resources POM File from an Archetype
60.3.3.1
Generating a Service Bus System Resources POM File from an Archetype in JDeveloper
60.3.3.2
Generating a Service Bus System Resources POM File from a Command Line
60.3.4
Parameters for Generating a POM File
60.4
Service Bus Development Maven Plug-In Goals
60.4.1
package
60.4.2
deploy
60.5
Oracle Service Bus Development Maven Plug-In POM File Samples
Appendixes
A
Message Context
A.1
The Message Context Model
A.2
Predefined Context Variables
A.3
Message-Related Variables
A.3.1
Header Variable
A.3.2
Body Variable
A.3.3
Attachments Variable
A.3.4
Message Types and Context Variables
A.3.5
Binary Content in the Body and Attachments Variables
A.3.5.1
Sending SOAP with Attachments to Business Processes
A.3.6
Java Content in the Body Variable
A.3.7
Streaming Body Content
A.3.7.1
Best Practices for Using Content Streaming
A.3.8
Streaming Attachments
A.3.8.1
Inbound Message Handling
A.3.8.2
Outbound Response Message Handling
A.3.9
XOP/MTOM Support
A.3.9.1
XOP/MTOM in Pipelines
A.3.9.1.1
Binary by Reference Option
A.3.9.1.2
Binary by Value Option
A.3.9.2
XOP/MTOM in Business Services
A.3.9.2.1
XOP/MTOM in Outbound Messages
A.3.9.3
XOP/MTOM Attachments Streaming
A.3.10
Custom MIME Headers
A.4
Inbound and Outbound Variables
A.4.1
Sub-Elements of the Inbound and Outbound Variables
A.4.1.1
service
A.4.1.2
transport
A.4.1.3
security
A.4.2
Related Topics
A.5
Operation Variable
A.6
Fault Variable
A.6.1
Error Codes
A.6.2
Error Details
A.6.3
XML Parsing Errors (PayloadDetail)
A.7
messageID Variable
A.8
Initializing Context Variables
A.8.1
Initializing the Attachments Context Variable
A.8.2
Initializing the Header and Body Context Variables
A.8.2.1
SOAP Services
A.8.2.2
XML Services (Non SOAP)
A.8.2.3
Messaging Services
A.9
Performing Operations on Context Variables
A.9.1
$body
A.9.2
$header
A.9.3
Related Topics
A.10
Constructing Messages to Dispatch
A.10.1
SOAP Services
A.10.2
XML Services (Non SOAP)
A.10.3
Messaging Services
A.10.3.1
About Sending Binary Content in Email Messages
A.10.4
Related Topics
A.11
Message Context Schema
A.12
Errors Schema
B
XPath Extension Functions
B.1
Cross-Reference Functions
B.1.1
lookupPopulatedColumns
B.1.2
lookupXRef
B.1.3
lookupXRef1M
B.1.4
markForDelete
B.1.5
populateLookupXRefRow
B.1.6
populateXRefRow
B.1.7
populateXRefRow1M
B.2
Domain Value Map Functions
B.2.1
lookup
B.2.2
lookupValue
B.2.3
lookupValue1M
B.3
Creating Custom XPath Functions
B.3.1
Registering Custom Functions with Service Bus
B.3.2
Creating and Packaging the Custom Function Java Classes
B.3.2.1
Creating the Class and Method
B.3.2.1.1
Using Single-Dimensional Arrays
B.3.2.2
Packaging the Custom Function Class
B.3.3
Using Custom Functions
B.3.3.1
Custom Functions In Inline XQuery Expressions and XQuery Resources
B.3.3.2
Custom Functions In XSLT Resources
B.3.4
Deploying Custom Functions in a Cluster
C
Oracle Service Bus APIs
C.1
Resource Update and Customization
C.2
Management and Monitoring
C.3
Deployment
D
Transport SDK Interfaces and Classes
D.1
Introduction
D.2
Schema-Generated Interfaces
D.3
General Classes and Interfaces
D.3.1
Summary of General Classes
D.3.2
Summary of General Interfaces
D.4
Source and Transformer Classes and Interfaces
D.4.1
Summary of Source and Transformer Interfaces
D.4.2
Summary of Source and Transformer Classes
D.5
Metadata and Header Representation for Request and Response Messages
D.5.1
Runtime Representation of Message Contents
D.5.2
Interfaces
D.6
User Interface Configuration
D.6.1
Summary of UI Interfaces
D.6.2
Summary of UI Classes
E
Transport SDK UML Sequence Diagrams
E.1
Service Bus Runtime Inbound Messages
E.2
Service Bus Runtime Outbound Messages
E.3
Design Time Service Registration
F
XQuery-SQL Mapping Reference
F.1
IBM DB2/NT 8
F.2
Microsoft SQL Server
F.3
Oracle8i, 8.1.x
F.4
Oracle 9i and Later
F.5
Sybase 12.5.2 (and higher)
F.6
Base (Generic) RDBMS Data Type Mapping
G
Work Managers and Threading
G.1
Key Threading Concepts
G.2
Pipeline Actions
G.2.1
Route Action
G.2.2
Publish Action
G.2.3
Service Callout Action
G.3
Work Managers
G.3.1
Work Manager Configuration
G.3.2
Work Manager Priority
G.4
Designating Work Managers
Scripting on this page enhances content navigation, but does not change the content in any way.