Developing Services With Oracle Service Bus

Transcription

Oracle Fusion MiddlewareDeveloping Services with Oracle Service Bus12c (12.2.1.4.0)E95448-06June 2021

Oracle Fusion Middleware Developing Services with Oracle Service Bus, 12c (12.2.1.4.0)E95448-06Copyright 2008, 2021, Oracle and/or its affiliates.Primary Author:Oracle CorporationThis software and related documentation are provided under a license agreement containing restrictions onuse and disclosure and are protected by intellectual property laws. Except as expressly permitted in yourlicense agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license,transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverseengineering, disassembly, or decompilation of this software, unless required by law for interoperability, isprohibited.The information contained herein is subject to change without notice and is not warranted to be error-free. Ifyou find any errors, please report them to us in writing.If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it onbehalf of the U.S. Government, then the following notice is applicable:U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software,any programs embedded, installed or activated on delivered hardware, and modifications of such programs)and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government endusers are "commercial computer software" or "commercial computer software documentation" pursuant to theapplicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use,reproduction, duplication, release, display, disclosure, modification, preparation of derivative works, and/oradaptation of i) Oracle programs (including any operating system, integrated software, any programsembedded, installed or activated on delivered hardware, and modifications of such programs), ii) Oraclecomputer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in thelicense contained in the applicable contract. The terms governing the U.S. Government’s use of Oracle cloudservices are defined by the applicable contract for such services. No other rights are granted to the U.S.Government.This software or hardware is developed for general use in a variety of information management applications.It is not developed or intended for use in any inherently dangerous applications, including applications thatmay create a risk of personal injury. If you use this software or hardware in dangerous applications, then youshall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure itssafe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of thissoftware or hardware in dangerous applications.Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks oftheir respective owners.Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks areused under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Epyc,and the AMD logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registeredtrademark of The Open Group.This software or hardware and documentation may provide access to or information about content, products,and services from third parties. Oracle Corporation and its affiliates are not responsible for and expresslydisclaim all warranties of any kind with respect to third-party content, products, and services unless otherwiseset forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not beresponsible for any loss, costs, or damages incurred due to your access to or use of third-party content,products, or services, except as set forth in an applicable agreement between you and Oracle.

ContentsPrefaceAudiencelviiDocumentation AccessibilitylviiRelated DocumentslviiConventionslviiWhat's New in This GuidePart I1Introduction to Oracle Service BusAbout Oracle Service Bus1.11.21.3Oracle Service Bus Overview1-11.1.1Functional Areas1-21.1.2Adaptive Messaging1-31.1.3Service Security1-31.1.4Service Virtualization1-31.1.5Configuration Framework1-41.1.6Service Management1-4Service Bus Architectural Concepts1-51.2.1Message Processing1-51.2.2Proxy Service Role in Message Processing1-61.2.3Transport Layer (Inbound)1-61.2.4Binding Layer1-61.2.5Pipeline Role in Message Processing1-61.2.6Transport Layer (Outbound)1-71.2.7Business Service Role in Message Processing1-7Service Bus Components1.3.1Service Components1-71-71.3.1.1Proxy Services1-71.3.1.2Business Services1-8iii

3.3Transports, Adapters, and Bindings1-101.3.3.1Supported Transport Protocols1-101.3.3.2Service Types1-11Transformation Resources1-111.3.41.3.4.1XQuery Mappings1-121.3.4.2XSLT Mappings1-121.3.4.3Cross References1-121.3.4.4Domain Value Maps1-131.3.5Transport and Adapter Related Resources1-131.3.5.1JCA Bindings1-131.3.5.2JAR Files (Archives)1-131.3.5.3JavaScript Files1-141.3.5.4MQ Connections1-141.3.6Schema and Document Resources1-141.3.6.1XML Schemas1-151.3.6.2XML Documents1-151.3.6.3WSDL Documents1-151.3.6.4WADL Documents1-161.3.6.5MFL Resources1-161.3.7Security Resources1-161.3.7.1Service Key Providers1-161.3.7.2Service Accounts1-171.3.7.3WS-Policy Resources1-171.3.8Alert Destinations1-171.3.9Throttling Group Resources1-171.3.101.4Message FlowsSystem Resources1-181.3.10.1JNDI Providers1-181.3.10.2SMTP Servers1-181.3.10.3Proxy Servers1-181.3.10.4UDDI Registries1-19Service Bus Messaging Models1-191.4.1Message Formats1-191.4.2Message Context1-201.4.3Content Types1-201.5Using Work Managers with Service Bus1-211.6Service Bus Security1-211.6.1Service Bus Security Features1-211.6.2Service Bus Service Security Model1-22iv

1.6.3Oracle Web Services Manager1-221.6.4Oracle Platform Security Services1-231.6.5WS-Policies1-231.6.6Types of Security1-231.6.6.1Inbound Security1-231.6.6.2Outbound Security1-241.6.6.3Identity Propagation1-241.6.6.4User Management and Administrative Security1-241.6.6.5Transport-Level Security1-241.6.6.6Message-Level Security1-251.6.71.7Approaches for Designing Service Bus Services1-251-251.7.1Service Bus Top-Down Roadmap1-251.7.2Service Bus Bottom-Up Roadmap1-261.8Naming Guidelines for Service Bus Components1-271.9Viewing Service Bus Resources in a Web Browser1-271.9.1WSDL Documents1-281.9.2WS Policies1-281.9.3Message Format Language (MFL) Resources1-281.9.4Schema Resources1-281.9.5Notes About Viewing Service Bus Resources in a Web Browser1-281.10Accessibility Options1-291.10.1How to Set Accessibility Options in JDeveloper1-291.10.2How to Set Accessibility Options in the Oracle Service Bus Console1-291.10.3Notes on Screen Reader Mode1-301.112Custom Security CredentialsAdditional Resources1-30Getting Started with the Oracle Service Bus Console2.12.2Overview of the Oracle Service Bus Console2-12.1.1Service Bus Sessions2-12.1.2Oracle Service Bus Console Layout2-22.1.3Service Bus Projects and Folders2-32.1.3.1The System Project2-32.1.3.2Projects and Folder Names2-42.1.3.3Qualified Resource Names Using Projects and Folders2-42.1.4Service Bus Resources2-42.1.5Oracle Service Bus Console Editors2-5Getting Started2-52.2.1How to Access the Oracle Service Bus Console2-52.2.2How to Exit the Oracle Service Bus Console2-6v

2.32.4Working with Sessions2.3.1How to Create a Session2-62.3.2How to Activate a Session2-72.3.3How to Exit a Session2-8Working with Projects, Folders, and Resources in Oracle Service Bus ConsoleHow to Locate Services2-82.4.2Working with the Project and Folder Definition Editors2-92.4.2.1About Viewing Project, Folder, and Resource Information2-92.4.2.2Viewing All Projects in the Session2-92.4.2.3Viewing Folders and Resources in a Project2-102.4.2.4Viewing the Subfolders and Resources in a Folder2-112.4.2.5How to Filter Components on the Project and Folder Definition Editors2-122.82-13Creating a Project in the Project Navigator2-132.4.3.2Creating a Folder in the Project Navigator2-132.4.4Creating Resources with the Resource Gallery2-132.4.5How to Clone Projects, Folders, and Resources2-142.4.5.1What Happens When You Clone a Project2-142.4.5.2What Happens When You Clone a Folder2-142.4.6How to Rename Projects, Folders, and Resources2-152.4.7How to Move Projects, Folders, and Resources2-152.4.8How to Delete Projects, Folders, and Resources2-162.4.8.1Deleting a Service Bus Component using the Project Navigator2-162.4.8.2Deleting a Service Bus Component Using an Editor2-16Viewing and Resolving Conflicts2-17How to View Conflicts and Errors2-172.5.1.1Viewing All Conflicts and Errors in the Service Bus Console2-182.5.1.2Viewing Conflicts and Errors for a Deployed Resource2-182.5.22.7Create New Projects and Folders for Resources2.4.3.12.5.12.62-82.4.12.4.32.52-6How to Resolve Conflicts and Errors2-182.5.2.1Resolving Concurrent Update Conflicts2-192.5.2.2Resolving Error Conflicts2-19Viewing Historical Data2-192.6.1How to View the Changes in the Current Session2-192.6.2How to View the Existing Sessions2-202.6.3How to View the Changes in an Activated Session2-212.6.4How to Purge Activated Sessions2-21Undoing Changes and Activations2-222.7.1How to Undo Specific Changes in the Current Session2-222.7.2How to Undo a Session Activation2-23Viewing References2.8.12-24Viewing Resource References2-24vi

2.9Customizing the Appearance of the Oracle Service Bus Console2.9.132.9.1.1Specifying the Columns to Display2-252.9.1.2Sorting the Columns in a Table2-262.9.1.3Reordering Columns in a Table2-262.9.1.4Viewing a Table in Full-Screen Mode2-26JDeveloper Concepts for Service Bus3-13.1.1Application Navigator3-23.1.2Service Bus Overview Editor3-33.1.3Resource Editors3-33.1.4Components Window3-43.1.5Resources Window3-53.1.6Properties Window3-53.1.7Structure View3-63.1.8Log Window3-63.2Managing Service Bus Components in JDeveloper3-63.3Refactoring Service Bus Projects, Folders, and Resources3-63.3.1How to Rename a Service Bus Folder or Resource in JDeveloper3-73.3.2How to Move a Service Bus Folder or Resource in JDeveloper3-73.3.3How to Delete a Project or Resource3-83.3.3.1Deleting a Resource3-83.3.3.2Deleting a Project3-83.3.4How to Clone a Project or Folder3-9Setting up the Development Environment for JDeveloper4.152-25Getting Started with Oracle Service Bus in JDeveloper3.14How to Customize Table Views2-25Creating Server Connections in JDeveloper4-14.1.1How to Create an Application Server Connection4-14.1.2How to Create a SOA-MDS Connection4-14.1.3How to Change the MDS Repository Location4-24.2Creating Connection Factories for Oracle JCA Adapters4-34.3Disabling the JMS Reporting Provider4-4Developing Service Bus Applications in JDeveloper5.1Introduction to the Service Bus Overview Editor5-15.1.1Service Bus Overview Editor Components5-15.1.2Transports, Adapters, and Bindings5-45.1.3Project and Overview Diagram Synchronization5-9vii

5.2Creating Service Bus Applications and Projects in JDeveloper5.2.15.45-10Guidelines for Creating Applications and Projects5-115.2.1.2Creating a Service Bus Application with No Project5-125.2.1.3Creating a Service Bus Application and Project5-125.2.1.4Adding a Service Bus Project to a Service Bus Application5-13Developing Service Bus Projects in Reference Configuration Mode5-14Adding Service Bus Components5-155.3.1How to Launch the Service Bus Overview Editor5-155.3.2How to Add a Pipeline5-165.3.3How to Add a Split-Join5-165.3.4How to Create a Proxy Service5-175.3.4.1Creating a Proxy Service with an Adapter5-175.3.4.2Creating a Proxy Service with a Transport5-185.3.4.3Creating a Proxy Service from an Existing Pipeline or Split-Join5-185.3.5How to Reuse Existing Proxy Services in the Overview5-195.3.6How to Create a Business Service5-195.3.6.1Creating a Business Service with an Adapter5-195.3.6.2Creating a Business Service with a Transport5-205.3.7How to Reuse Existing Business Services in the Overview5-215.3.8How to Invoke Deployed Service Bus and SOA Applications5-215.3.9What You May Need to Know About Adding Components5-22Modifying and Deleting Components in the Service Bus Overview Editor5-225.4.1How to Edit Components from the Service Bus Overview Editor5-225.4.2How to Rename Components in the Service Bus Overview Editor5-235.4.3How to Delete Components in the Service Bus Overview Editor5-245.5Synchronizing the Overview Diagram5-245.6Wiring Service Bus Components5-245.6.1How to Wire Service Bus Components5-255.6.2How to Delete Wires Between Services5-265.7Attaching Security Policies to Service Bus Components5-265.8Testing Service Bus Components in the Overview Editor5-265.9Part II6How to Create a Service Bus Application and Project5.2.1.15.2.25.35-105.8.1How to Test a Service Bus Component5-275.8.2How to Debug a Service Bus Component5-27Deploying a Service Bus Application5-27Working with Oracle Service Bus ResourcesCreating and Configuring Project Resources6.1Introduction to Service Bus Project Resources6-1viii

6.1.16.2Project Resources and Sessions in the Oracle Service Bus ConsoleWorking with Service Accounts6.2.1Service Account Authentication Types6-26.2.1.2User Name and Password Pass-Through6-26.2.1.3User Mapping Authentication6-3How to Create Service Accounts6.66.76-3Creating a Service Account that Passes Though AuthenticationInformation6-46.2.2.2Creating a Service Account with a Static Password6-46.2.2.3Creating a Service Account that Maps Incoming Passwords6-56.2.3How to Edit Service Accounts6-66.2.4How to Delete Service Accounts6-7Working with Service Key Providers6-76.3.1How to Create Service Key Providers6-86.3.2How to Edit Service Key Providers6-96.3.3How to Delete Service Key ProvidersWorking with Alert .2.26.36-2Alert Destination Types6-106-106-106.4.1.1Email6-116.4.1.2SNMP Traps6-116.4.1.3Reporting6-116.4.1.4Alert Logging6-116.4.1.5JMS6-116.4.2How To Create Alert Destinations6-126.4.3How to Define Email Recipients for an Alert Destination6-126.4.4How to Define JMS Recipients for an Alert Destination6-136.4.5How to Edit Alert Destinations6-146.4.6How to Delete Alert Destinations6-146.4.7Working with SNMP6-156.4.7.1Guidelines for Working with SNMP Agents for Service Bus6-156.4.7.2How to Start Listening for Traps6-16Working with XML Schemas6-166.5.1How to Create XML Schemas6-166.5.2How to Edit XML Schemas6-176.5.3How to Delete XML Schemas6-18Working with XML Documents6-186.6.1How to Create XML Documents6-186.6.2How to Edit XML Documents6-196.6.3How to Delete XML Documents6-20Working with JAR Files6-20ix

7How to Add JAR Files6-206.7.2How to Update a JAR File6-216.7.3How to Modify JAR File Dependencies6-226.7.4How to Delete a JAR File6-23Creating and Configuring System Resources7.17.27.386.7.1Working with JNDI Provider Resources7-17.1.1Classpath Requirements for JBoss Application Server7-17.1.2About JBoss Initial Context Factory Environment Properties7-27.1.3How to View JNDI Provider Resources in the Oracle Service Bus Console7-37.1.4How to Create a JNDI Provider Resource7-47.1.5How to Edit JNDI Provider Resources7-57.1.6How to Delete JNDI Provider Resources7-6Working with SMTP Server Resources7-67.2.1How to View SMTP Server Resources in the Oracle Service Bus Console7-67.2.2How to Create SMTP Server Resources7-77.2.3How to Configure a Default SMTP Server7-87.2.4How to Edit SMTP Server Resources7-87.2.5How to Delete SMTP Server Resources7-8Working with Proxy Server Resources7-97.3.1Using Proxy Servers with SSL7-97.3.2How to View Proxy Server Resources in Oracle Service Bus Console7-97.3.3How to Create Proxy Server Resources7-107.3.4How to Edit Proxy Server Resources7-117.3.5How to Delete Proxy Server Resources7-11Creating and Configuring Proxy Services8.1Introduction to Proxy Services8.1.1Proxy Service Definitions8-28.1.2Service Types and Protocols for Proxy Services8-28.1.3When to Use SOAP or Any XML Service Types8-38.1.4When to Use the Messaging Service Type8-38.1.5Binding Definitions and Runtime Variables for Proxy Service Types8-38.1.5.1WSDL Service Type8-38.1.5.2Messaging Service Type8-38.1.5.3Any SOAP Service8-48.1.5.4Any XML Service8-58.1.68.28-1Proxy Service Transport Protocol Configuration8-5Securing Proxy Services8-5x

8.3Service Level Agreement Alert Rules8-68.4Web Services Interoperability Compliance8-68.5Creating Proxy Services8-68.68.78.5.1How to Create a Proxy Service8-78.5.2How to Create a Proxy Service Using the Service Bus Console8-78.5.3How to Create a Typed REST Proxy Service Using the Service Bus Console8-98.5.4How to Create a Proxy Service Using JDeveloper8-118.5.5How to Generate a Proxy Service from a JCA Binding Resource8-138.5.5.1Generating a Proxy Service from a JCA Binding in JDeveloper8-138.5.5.2Generating a Proxy Service from a JCA Binding in the Console8-148.5.6How to Generate a Proxy Service from an Existing Service in JDeveloper8-148.5.7How to Generate a Proxy Service from a WSDL Document in JDeveloper8-15Configuring Proxy Services8.6.1How to Configure General Information for a Proxy Service8-158.6.2How to Configure a Proxy Service Transport8-178.6.3How to Configure Proxy Service Message Handling8-188.6.4How to Configure Security for a Proxy Service8-208.6.5How to Configure Service Level Agreement Alerts for a Proxy Service8-20Deleting Proxy Services8.7.18.8How to Delete a Proxy ServiceConsuming Proxy Services in JDeveloper with WSIL8.8.198-15How to Consume Service Bus Proxy Services in JDeveloper with WSIL8-208-208-218-21Creating and Configuring Business Services9.1Introduction to Business Services9-19.1.1Business Service Definitions9-19.1.2Service Types and Protocols for Business Services9-29.1.3Binding Definitions and Runtime Variables for Business Service Types9-39.1.4Business Service Transport Protocol Configuration9-39.1.4.1About the Load Balancing Algorithm9-39.1.4.2About Business Service URI Retries9-49.1.4.3Suppressing Retries in Case of Application Errors9-49.1.5Message Handling for Business Services9-59.1.5.1XOP/MTOM Support9-59.1.5.2Attachments9-59.1.5.3Web Services Interoperability Compliance9-59.2Using Proxy Servers9-69.3Service Level Agreement Alert Rules9-69.4Security and Security Policies for Business Services9-69.5Creating Business Services9-6xi

9.5.1How to Create a SOAP Business Service Using the Service Bus Console9-79.5.2How to Create a Typed or Untyped REST Business Service Using the ServiceBus Console9-8How to Create a Typed REST Business Service Specifying WADL DetailsUsing the Service Bus Console9-99.5.39.5.49.5.59-11How to Create a Business Service That Connects to Oracle Integration Usingthe Service Bus Console9-149.5.5.1Consuming an Integration in the Service Bus Console By Browsing9-159.5.5.2Consuming an Integration in the Service Bus Console Using a Direct Link9-169.5.6How to Create a Business Service Using JDeveloper9-169.5.7How to Create a Business Service That Connects to Oracle Integration UsingJDeveloper9-189.5.7.1Create an Oracle Integration Connection9-189.5.7.2Create a REST Binding9-199.5.7.3Configure OWSM Policies on the REST Reference9-219.5.7.4Configure and Deploy the Application9-219.5.8How to Generate a Business Service from a JCA Binding Resource9-219.5.8.1Generating a Business Service from a JCA Binding in JDeveloper9-229.5.8.2Generating a Business Service from a JCA Binding in the Console9-229.5.99.5.109.6How to Create a REST Business Service Based on a SOAP Service Using theSOAP to REST WizardHow to Generate a Business Service from a Proxy Service in JDeveloper9-22How to Generate a Business Service from a WSDL Document in JDeveloper9-23Configuring Business Services9-239.6.1How to Configure General Information for a Business Service9-239.6.2How to Configure a Business Service Transport9-249.6.3How to Configure Business Service Message Handling9-269.6.4How to Configure Performance for a Business Service9-279.6.5How to Configure Security for a Business Service9-279.6.6How to Configure Service Level Agreement Alerts for a Business Service9-279.7Deleting a Business Service9-279.8Improving Performance by Caching Business Service Results9-289.8.1How Result Caching Works9.8.1.19-28Flushing Cached Results9-299.8.2Result Caching Best Practices9-309.8.3How to Delete Entries in the Result Cache9-309.8.4Result Cache Metadata9-329.8.4.1Cache Token9-329.8.4.2Expiration Time9-329.8.4.3Request Metadata9-339.8.4.4Response Metadata9-339.8.5Testing Result Caching9-33xii

109.8.6How to Configure a Business Service for Result Caching9-339.8.7Result Caching Advanced Configuration9-359.8.7.1Working with Unicast and Multicast9-359.8.7.2How to Disable Coherence for Service Bus9-369.8.7.3About Out-of-Process Coherence Servers9-369.8.7.4How to Use an Out-of-Process Coherence Cache Server9-379.8.7.5More Information on Configuring and Using Oracle Coherence9-37Improving Service Performance with Split-Join10.1Introduction to Split-Joins10.1.1Static Split-Joins10.1.1.110.1.2Dynamic Split-Join10.1.2.110.1.3Static Split-Join – Sample ScenarioDynamic Split-Join – Sample ScenarioSplit-Join in Communication Operations10-410.1.3.2Split-Join Flow Control Operations10-410.1.3.3Split-Join Assign Operations10-510.1.4Using Split-Join with Content in SOAP Headers10-610.1.5Transaction Support10-710.1.6Security with Split-Joins10-710.1.7Split-Join Resource Type and Environment Variable10-710.2Service Level Agreement Alert Rules10-810.3Working with Split-Joins in JDeveloper10-810.3.1How to Create a Split-Join in JDeveloper10-810.3.2How to Generate a Split-Join from a WSDL Document in JDeveloper10-910.3.3How to Display the Components Window and Properties Windows10-910.3.3.1Displaying the Components Window10-910.3.3.2Displaying the Properties Window10-910.3.4How to Configure the Start Node10-1010.3.5How to View External Services10-1010.3.6How to Configure Global and Local Variables10-1010.3.6.1Defining Global and Local Variables10-1010.3.6.2Editing Global or Local Variables10-1110.3.710.4How to Configure the Receive OperationAdding Communication Operations in JDeveloper10-1110-1210.4.1How to Invoke a Service10-1210.4.2How to Configure a Reply10-1310.5Adding Flow Control Operations in JDeveloper10.5.1How to Create a Container Node10-1410-14xiii

10.5.2How to Iterate Through a Variable Number of Requests10-1510.5.3How to Process a Fixed Number of Requests in Parallel10-1610.5.4How to Define If-Else Conditional Logic10-1610.5.5How to Create Error Handlers10-1810.5.6How to Raise an Error10-1810.5.7How to Re-Raise an Error10-1910.5.8How to Repeat an Operation Until it Evaluates to True10-1910.5.9How to Repeat an Operation Until it Evaluates to False10-2010.5.1010.6How to Insert a Pause in Processing10-20Adding Assign Operations in JDeveloper10-2110.6.1About Transformations and Expressions in Assign Operations10-2110.6.2Assign Operation Expression Resolution10-2210.6.3How to Assign a Value to a Variable10-2210.6.4How to Copy a Value from a Source to a Destination Document10-2310.6.5How to Delete a Set of Nodes10-2410.6.6How to Insert the Result of an XQuery Expression10-2510.6.7How to Invoke a Java Method in a Split-Join10-2510.6.8How to Log Split-Join Data10-2610.6.9How to Replace a Node or Its Contents10-2710.7Working with Split-Joins in the Oracle Service Bus Console10-2810.7.1How to Import a Split-Join into the Console10-2810.7.2How to Configure Split-Joins in the Console10-2810.7.3How to Define Service Level Agreement Rules for a Split-Join10-2910.8Static and Dynamic Split-Join Samples10.8.110-29Designing a Static Split-Join10-2910.8.1.1Creating a New Split-Join10-2910.8.1.2Adding an Assign10-3010.8.1.3Adding a Parallel Node10-3010.8.1.4Adding an Assign for Each Branch10-3110.8.1.5Adding an Invoke Service10-3110.8.1.6Adding an Assign for Each Branch10-3110.8.1.7Exporting and Testing the Split-Join10-3110.8.2Designing a Dynamic Split-Join10-3210.8.2.1Creating a New Split-Join10-3310.8.2.2Adding an Assign10-3410.8.2.3Adding a For Each10-3410.8.2.4Adding an Assign10-3510.8.2.5Adding an Invoke Service10-3510.8.2.6Adding an Assign10-3510.8.2.7Adding an Error Handler10-35xiv

10.8.2.811Exporting and Testing the Split-Join10-35Working with WSDL Documents11.1WSDL Overview11-111.1.1WSDL Types11-211.1.2WSDL Messages11-211.1.3WSDL Port Types11-311.1.4WSDL Bindings11-311.1.5WSDL Services and Ports11-311.2WSDL Documents in Service Bus11.2.111-411.2.1.1SOAP Document Wrapped Web Services11-411.2.1.2SOAP Document Style Web Services11-511.2.1.3SOAP RPC Web Services11-611.2.211.3Web Service Types11-4About Effective WSDL Documents and Generated WSDL Documents11.2.2.1Effective WSDL Documents11.2.2.2Generated WSDL DocumentsServices Based on WSDL Ports and on WSDL Bindings11-911-911-1011-1011.3.1Effective WSDL Documents for Proxy Services11-1011.3.2Effective WSDL Files for Non-Transport-Type Business Services11-1111.3.3Effective WSDL Files for Transport-Type Business Services11-1211.3.4Examples of Proxy Services Based on a Port and on a Binding11-1211.3.4.1A Service Based on a Port11-1311.3.4.2A Service Based on a Binding11-1311.4Importing and Exporting WSDL Resources11-1411.5Working with WSDL Documents in JDeveloper11-1411.5.1How to Create a WSDL Resource in JDeveloper11.5.1.1How to move from SOAP 1.1 version to SOAP 1.211-1411-1611.5.2How to Generate a WSDL File from a Service in JDeveloper11-1711.5.3How to Edit a WSDL Document in JDeveloper11-1811.5.4How to Delete a WSDL Document in JDeveloper11-1811.6Working with WSDL Documents in the Oracle Service Bus Console11-1811.6.1How to Create a WSDL Resource in the Console11-1911.6.2How to Export a WSDL File in the Console11-1911.6.2.1Exporting a WSDL FIle from a Project or Folder in the Console11-2011.6.2.2Exporting a WSDL File From a Service Definition Editor11-2011.6.3How to Generate a WSDL File from a Service in the Console11-2011.6.4How to Edit a WSDL Document in the Console11-2111.6.5How to Delete a WSDL Document in the Console11-21xv

11.7Part III12Viewing Effective WSDL Documents11-22Working with Oracle Service Bus PipelinesModeling Message Flow in Oracle Service Bus12.1Pipeline Components12-212.1.1Building a Message Flow12-312.1.2Message Execution12-312.2Branching in Pipelines12-312.2.1Operational Branching12-412.2.2Conditional Branching12-412.2.3REST Branching12-512.3Configuring Actions in Stages and Route Nodes12-512.3.1Communication Actions12-512.3.2Flow Control Actions12-612.3.3Message Processing Actions12-712.3.4Reporting Actions12-812.3.5Configuring Transport Headers in Pipelines12-912.412.3.5.1Global Pass Through and Header-Specific Copy Options12.3.5.2How the Runtime Uses Transport Headers Settings12-1012.3.5.3Limitations to Transport Header Values you Specify in TransportHeader Actions12-10Performing Transformations in Pipelines12.4.112.4.212-13Transformations and Publish Actions12.4.1.112.512-912-13Publish Action Behavior with Quality of Service12-13Transformations and Route Nodes12-14Constructing Service Callout Messages12-1412.5.1SOAP Document Style Services12-1412.5.2SOAP RPC Style Services12-1612.5.3XML Services12-1812.5.4Messaging Services12-1812.6Using Attachments with Service Callout Messages12-1912.6.1Example of Using Attachments with SOAP-Document Style Services12-1912.6.2Example of Using Attachments with SOAP RPC Style Service12-2312.6.3MTOM/XOP Support12-2612.6.4Page Attachments to Disk12-2612.7Handling Errors as the Result of a Service Callout12-2712.7.1Transport Errors12-2712.7.2SOAP Faults12-2812.7.3Unexpected Responses12-29xvi

12.8Handling Errors in Pipelines12-3012.8.1Generating the Error Message, Reporting, and Replying12-3112.8.2Different Behavior of Security Fault Handling in Service Bus 11g and 12c12-3212.8.3Example of Action Configuration in Error Handlers12-3212.9Using Dynamic Routing12.9.1Implementing Dynamic Routing12-3312-3412.9.1.1Sample XML File12-3512.9.1.2Creating an XQuery Resource From the Sample XML12-3512.9.1.3Creating and Configuring the Pipeline to Implement Dynamic Routing12-3612.9.1.4Guidelines for Implementing Identity-Based Routing12-3712.10Accessing Databases Using XQuery12-3812.11Understanding Message Context12-3912.11.1Message Context Components12-4012.11.2Guidelines for Viewing and Altering Message Context12-4112.11.3Copying JMS Properties From Inbound to Outbound12-4212.12Using Variable Structures12.12.112.1312-4412.12.1.1Inline XQueries12-4512.12.1.2Uses of the Inline XQuery Expression Editor12-45Quality of Service12.13.1Delivery Guarantees12-4612-4612.13.1.1Overriding the Default Element Attribute12-4712.13.1.2Delivery Guarantee Rules12-4812.13.1.3Threading Model12-5012.13.1.4Splitting Proxy Services12-5012.13.212.14Using the Inline XQuery Expression Editor12-43Outbound Message RetriesUsing the JavaScript Action and JavaScript Expressions12-5112-5112.14.1JavaScript Action and Message Context Variables12-5312.14.2Update Context Variables Using JavaScript Expressions12-5412.14.3Creating Variables Using JavaScript Expressions12-5412.14.4Deleting Variables Using JavaScript Expressions12-5512.14.5About XQuery, XPath, and JSON Variables12-5512.14.6Streaming body Variables and the JavaScript Action12-5512.14.7JavaScript Action and Custom Java Functions12-5612.14.8Logging and Reporting the Result of JavaScript Expressions12-5612.15Using Work Managers with Service Bus12-5612.16Content Types, JMS Type, and Encoding12-5712.17Throttling Pattern12-5812.18WS-I Compliance12-5812.18.1WS-I Compliance Checks12-59xvii

12.191312-61Working with Pipelines in Oracle Service Bus Console13.1Introduction to the Oracle Service Bus Console Pipeline Designer13-113.1.1Edit Message Flow Page on the Console13-113.1.2Edit Stage Configuration Page on the Console13-413.2Viewing and Editing Pipelines in the Console13-513.2.1How to View and Edit Pipelines i

1.10.2 How to Set Accessibility Options in the Oracle Service Bus Console 1-29 1.10.3 Notes on Screen Reader Mode 1-30 1.11 Additional Resources 1-30. 2 . Getting Started with the Oracle Service Bus Console. 2.1 Overview of the Oracle Service Bus Console 2-1 2.1.1 Service Bus Sessions 2-1 2.1.2 Oracle Service Bus Console Layout 2-2