SlideShare a Scribd company logo
Oracle® Fusion Middleware
Developer’s Guide for Oracle Service Bus
11g Release 1 (11.1.1.6.3)
E15866-08




August 2012
Documentation for developers that describes how to use the
Oracle Service Bus (OSB) development environment (IDE) to
create and configure proxy and business services, Split-Joins,
create message flows, perform message transformation with
XQuery, XSLT, and MFL, configure transports, work with
JCA adapters, create custom transports, configure security
using WS-Security, use the OSB API, and create global JNDI
resources.
Oracle Fusion Middleware Developer's Guide for Oracle Service Bus, 11g Release 1 (11.1.1.6.3)

E15866-08

Copyright © 2008, 2012, Oracle and/or its affiliates. All rights reserved.

Primary Author:     Carol Thom

Contributing Author:     Floyd Jones

Contributor:

This software and related documentation are provided under a license agreement containing restrictions on
use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your
license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license,
transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse
engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is
prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If
you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it
on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data
delivered to U.S. Government customers are "commercial computer software" or "commercial technical data"
pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As
such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and
license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of
the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software
License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software or hardware is developed for general use in a variety of information management
applications. It is not developed or intended for use in any inherently dangerous applications, including
applications that may create a risk of personal injury. If you use this software or hardware in dangerous
applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other
measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages
caused by use of this software or hardware in dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of
their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks
are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD,
Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced
Micro Devices. UNIX is a registered trademark of The Open Group.

This software or hardware and documentation may provide access to or information on content, products,
and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly
disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle
Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your
access to or use of third-party content, products, or services.
Contents

Preface .............................................................................................................................................................. xliii
        Documentation Accessibility ..................................................................................................................                xliii
        Conventions ..............................................................................................................................................    xliii

What's New in This Guide for Release 11.1.1.6.x .................................................................... xlv

Part I         IDE Help for Oracle Service Bus

1 Introduction to Oracle Service Bus

2 Tasks
        Working with Projects, Folders, Resources, and Configurations ................................................... 2-1
           Resource Naming Restrictions ......................................................................................................... 2-2
           Editing Resources............................................................................................................................... 2-2
           Cloning Oracle Service Bus Projects and Folders.......................................................................... 2-2
           Creating Oracle Service Bus Configuration Projects..................................................................... 2-3
           Creating Oracle Service Bus Projects............................................................................................... 2-3
           Creating Servers ................................................................................................................................. 2-3
           Creating Custom Resources.............................................................................................................. 2-4
           Creating and Editing JNDI Provider Resources ............................................................................ 2-4
           Creating Proxy Server Resources..................................................................................................... 2-5
           Creating Message Format Files ........................................................................................................ 2-5
           Exporting Resources .......................................................................................................................... 2-5
               Using the Export Wizard ........................................................................................................... 2-6
               Using the Command Line or a Script to Export an Oracle Service Bus Configuration .... 2-6
                   Before You Begin.................................................................................................................. 2-6
                   Exporting a Configuration Using the Command Line................................................... 2-6
                   Exporting a Configuration Using Ant .............................................................................. 2-8
                   Exporting a Configuration Using WLST .......................................................................... 2-9
           Generating an Effective WSDL ........................................................................................................ 2-9
           Modifying JAR Dependencies.......................................................................................................... 2-9
           Importing Resources.......................................................................................................................... 2-9
               Using the Import Wizard........................................................................................................ 2-10
               Using the Command Line or a Script to Import an Oracle Service Bus Configuration. 2-10
           Creating Service Account Resources............................................................................................ 2-10


                                                                                                                                                                         iii
Creating Service Key Provider Resources ...................................................................................                  2-10
        Creating SMTP Server Resources .................................................................................................             2-11
        Creating XQuery Transformations ...............................................................................................              2-11
        Creating XSL Transformations......................................................................................................           2-11
     Working with Business Services ........................................................................................................         2-11
        Creating Business Services.............................................................................................................      2-12
            Generating a Business Service from an Existing Service....................................................                               2-12
        Generating a JCA Business Service from an Outbound JCA File ............................................                                     2-12
        Generating a Business Service from Oracle Enterprise Repository .........................................                                    2-13
            Re-generating an Existing Business Service from Oracle Enterprise Repository ...........                                                 2-13
        Editing Business Services...............................................................................................................     2-13
     Working with Proxy Services ..............................................................................................................      2-13
        Creating Proxy Services .................................................................................................................    2-13
            Generating a Proxy Service from an Existing Service ........................................................                             2-14
        Generating a JCA Proxy Service from an Inbound JCA File ....................................................                                 2-14
        Consuming Oracle Service Bus Proxy Services in Oracle JDeveloper with WSIL ................                                                  2-15
        Editing Proxy Services....................................................................................................................   2-16
     Working with Proxy Service Message Flows ...................................................................................                    2-16
        Constructing Proxy Service Message Flows................................................................................                     2-17
        Adding and Configuring Alert Actions in Message Flows ......................................................                                 2-18
        Adding and Configuring Assign Actions in Message Flows ...................................................                                   2-18
        Adding and Configuring Conditional Branch Nodes in Message Flows ...............................                                             2-19
        Adding and Configuring Delete Actions in Message Flows ....................................................                                  2-19
        Adding and Configuring Dynamic Publish Actions in Message Flows .................................                                            2-20
        Adding and Configuring Dynamic Routing Actions in Message Flows ................................                                             2-20
        Adding and Configuring Error Handlers in Message Flows ...................................................                                   2-20
        Adding and Configuring For-Each Actions in Message Flows................................................                                     2-21
        Adding and Configuring If-Then Actions in Message Flows ..................................................                                   2-21
        Adding and Configuring Insert Actions in Message Flows .....................................................                                 2-22
        Adding and Configuring Java Callout Actions in Message Flows..........................................                                       2-22
        Adding and Configuring Log Actions in Message Flows.........................................................                                 2-23
        Adding and Configuring MFL Transform Actions in Message Flows ...................................                                            2-23
        Adding and Configuring Operational Branch Nodes in Message Flows...............................                                              2-23
        Adding and Configuring Pipeline Pair Nodes in Message Flows ...........................................                                      2-24
        Adding and Configuring Publish Actions in Message Flows ..................................................                                   2-24
        Adding and Configuring Publish Table Actions in Message Flows .......................................                                        2-25
        Adding and Configuring Raise Error Actions in Message Flows............................................                                      2-26
        Adding and Configuring Rename Actions in Message Flows .................................................                                     2-26
        Adding and Configuring Replace Actions in Message Flows..................................................                                    2-27
        Adding and Configuring Reply Actions in Message Flows .....................................................                                  2-27
        Adding and Configuring Report Actions in Message Flows ...................................................                                   2-27
        Adding and Configuring Resume Actions in Message Flows .................................................                                     2-28
        Adding and Configuring Route Nodes in Message Flows .......................................................                                  2-28
        Adding and Configuring Routing Actions in Message Flows .................................................                                    2-28
        Adding and Configuring Routing Options Actions in Message Flows ..................................                                           2-29
        Adding and Configuring Routing Table Actions in Message Flows ......................................                                         2-29
        Adding and Configuring Service Callout Actions in Message Flows.....................................                                         2-30



iv
Adding and Configuring Skip Actions in Message Flows........................................................                                       2-30
   Adding and Configuring Stages in Message Flows...................................................................                                  2-31
   Adding and Configuring Transport Headers Actions in Message Flows ..............................                                                   2-31
   Adding and Configuring Validate Actions in Message Flows.................................................                                          2-31
Working with Alert Destinations.......................................................................................................                2-32
   Creating and Editing Alert Destinations .....................................................................................                      2-32
   Adding E-mail Recipients to Alert Destinations ........................................................................                            2-32
   Adding JMS Destinations to Alert Destinations.........................................................................                             2-32
Working with MQ Connections .........................................................................................................                 2-33
   Adding and Editing MQ Connections .........................................................................................                        2-33
Working with Oracle Enterprise Repository and Harvester .........................................................                                     2-34
   Generating Business Services from Oracle Enterprise Repository ..........................................                                          2-34
   Using Harvester...............................................................................................................................     2-35
       Using Harvester from Eclipse ................................................................................................                  2-36
       Using Harvester from the Command Line or a Script .......................................................                                      2-37
   Performing Queries in Oracle Enterprise Repository from Eclipse.........................................                                           2-38
Working with UDDI Registries ..........................................................................................................               2-38
   Adding and Configuring UDDI Registries .................................................................................                           2-39
   Importing Business Services From a UDDI Registry .................................................................                                 2-39
Working with Split-Join.......................................................................................................................        2-39
   Introduction to Split-Join ...............................................................................................................         2-40
       Using Split-Join with Content in SOAP Headers ................................................................                                 2-40
       Transaction Support ................................................................................................................           2-41
       Security with Split-Joins..........................................................................................................            2-41
   Designing a Split-Join .....................................................................................................................       2-41
       Initial Setup...............................................................................................................................   2-42
            Creating/Importing a WSDL Containing the Base Operation ..................................                                                2-42
            Creating/Importing a Business Service to Use the Split-Join ....................................                                          2-42
   Designing a Static Split-Join ..........................................................................................................           2-42
       1. Creating a New Split-Join ...................................................................................................               2-42
       2. Adding an Assign ................................................................................................................           2-43
       3. Adding a Parallel Node ......................................................................................................               2-43
       4. Adding an Assign for Each Branch ...................................................................................                        2-44
       5. Adding an Invoke Service ..................................................................................................                 2-44
       6. Adding an Assign for Each Branch ...................................................................................                        2-44
       7. Exporting and Testing the Split-Join.................................................................................                       2-44
   Designing a Dynamic Split-Join ....................................................................................................                2-45
       1. Creating a New Split-Join ...................................................................................................               2-46
       2. Adding an Assign ................................................................................................................           2-47
       3. Adding a For Each ...............................................................................................................           2-47
       4. Adding an Assign ................................................................................................................           2-47
       5. Adding an Invoke Service ..................................................................................................                 2-47
       6. Adding an Assign ................................................................................................................           2-48
       7. Adding an Error Handler ...................................................................................................                 2-48
       8. Exporting and Testing the Split-Join.................................................................................                       2-48
   Creating a New Split-Join ..............................................................................................................           2-49
   Configuring the Start Node ...........................................................................................................             2-50



                                                                                                                                                         v
Adding General Information..................................................................................................                    2-51
         Defining Global Variables.......................................................................................................                2-51
         Viewing External Services ......................................................................................................                2-52
     Configuring a Receive ....................................................................................................................          2-52
         Viewing the Operation............................................................................................................               2-52
         Defining the Receive Variable................................................................................................                   2-52
         Adding General Information..................................................................................................                    2-53
     Creating an Assign..........................................................................................................................        2-53
         Adding and Configuring Assign Operations ......................................................................                                 2-53
             Adding an Operation to an Assign ................................................................................                           2-54
             Adding a Copy Operation...............................................................................................                      2-54
         Adding General Information..................................................................................................                    2-55
     Invoking a Service ...........................................................................................................................      2-55
         Selecting an Operation ............................................................................................................             2-55
         Defining Input and Output Variables...................................................................................                          2-55
         Adding General Information..................................................................................................                    2-56
     Creating a Parallel ...........................................................................................................................     2-56
         Adding Nodes ..........................................................................................................................         2-56
         Adding General Information..................................................................................................                    2-57
     Creating a For Each.........................................................................................................................        2-57
         Defining the For Each Logic ...................................................................................................                 2-57
         Adding General Information..................................................................................................                    2-58
     Creating an If Activity ....................................................................................................................        2-58
         Configuring the If ...................................................................................................................          2-58
             Writing the logic of the condition...................................................................................                       2-59
             Adding resulting nodes ...................................................................................................                  2-59
             Adding General Information ..........................................................................................                       2-59
         Adding and Configuring Else If ...........................................................................................                      2-59
             Writing the Logic of the Condition ................................................................................                         2-59
             Adding Resulting Nodes .................................................................................................                    2-60
             Adding General Information ..........................................................................................                       2-60
         Configuring the Else ................................................................................................................           2-60
             Adding Resulting Nodes .................................................................................................                    2-60
         Adding General Information..................................................................................................                    2-60
     Creating an Error Handler.............................................................................................................              2-60
     Creating a Raise Error.....................................................................................................................         2-61
     Configuring a Reply........................................................................................................................         2-61
         Viewing the Operation............................................................................................................               2-62
         Defining the Reply Variable ...................................................................................................                 2-62
         Adding General Information..................................................................................................                    2-63
     About Scope .....................................................................................................................................   2-63
         Scope and Variables.................................................................................................................            2-63
     Exporting and Testing a Split-Join................................................................................................                  2-64
         Creating a Transport Typed Business Service .....................................................................                               2-64
         Exporting the Split-Join Files..................................................................................................                2-64
             Exporting from the Business Service Menu ..................................................................                                 2-65
             Auto-export .......................................................................................................................         2-65



vi
Manual export ...................................................................................................................                 2-65
          Testing the Split-Join in the Test Console.............................................................................                               2-66
              Exporting from the Business Service Menu ..................................................................                                       2-66
   Using the Oracle Service Bus Debugger...........................................................................................                             2-66
      Enabling Debugging .......................................................................................................................                2-67
      Using Standard Debugging ...........................................................................................................                      2-67
          Debug Views.............................................................................................................................              2-68
          Step Actions and Breakpoints ................................................................................................                         2-69
      Using the Oracle Service Bus Debugger Launch Configuration..............................................                                                  2-69
          Remote Debugging ..................................................................................................................                   2-70
          Debugging Oracle Service Bus Running Stand-Alone on a Managed Server.................                                                                 2-70
          Server Sharing ..........................................................................................................................             2-70

3 Transport Configuration
   Protocol-Specific Transport Configuration Pages.............................................................................. 3-1
       BPEL-10g Transport Configuration Page (Business Services)..................................................... 3-2
       DSP Transport Configuration Page (Business Services)............................................................... 3-3
       EJB Transport Configuration Page (Business Services) ................................................................ 3-4
       E-Mail Transport Configuration Page (Business Services) .......................................................... 3-5
       E-Mail Transport Configuration Page (Proxy Services) ............................................................... 3-6
       File Transport Configuration Page (Business Services)................................................................ 3-7
       File Transport Configuration Page (Proxy Services)..................................................................... 3-7
       FTP Transport Configuration Page (Business Services) ............................................................... 3-8
       FTP Transport Configuration Page (Proxy Services) .................................................................... 3-9
       HTTP Transport Configuration Page (Business Services) ........................................................ 3-10
       HTTP Transport Configuration Page (Proxy Services) ............................................................. 3-13
       JCA Transport Configuration Page (Proxy and Business Services)......................................... 3-15
       JEJB Transport Configuration Page (Business Services)............................................................ 3-17
       JEJB Transport Configuration Page (Proxy Services) ................................................................ 3-19
       JMS Transport Configuration Page (Business Services) ............................................................ 3-20
       JMS Transport Configuration Page (Proxy Services)................................................................. 3-24
       MQ Transport Configuration Page (Business Services) ............................................................ 3-28
       MQ Transport Configuration Page (Proxy Services) ................................................................. 3-30
       SB Transport Configuration Page (Business Services)............................................................... 3-32
       SB Transport Configuration Page (Proxy Services) ................................................................... 3-33
       SFTP Transport Configuration Page (Business Services) .......................................................... 3-34
       SFTP Transport Configuration Page (Proxy Services)............................................................... 3-34
       SOA-DIRECT Transport Configuration Page (Business Services)........................................... 3-36
       Tuxedo Transport Configuration Page (Business Services)...................................................... 3-38
       Tuxedo Transport Configuration Page (Proxy Services)........................................................... 3-40
       WS Transport Configuration Page (Business Services) ............................................................. 3-41
       WS Transport Configuration Page (Proxy Services) .................................................................. 3-42

4 User Interface Reference
   Alerts........................................................................................................................................................... 4-1
      Alert Destination Editor .................................................................................................................... 4-2



                                                                                                                                                                    vii
Edit E-mail Recipient Page ............................................................................................................... 4-2
          Edit JMS Destination Page ................................................................................................................ 4-3
       Business Service Configuration ............................................................................................................ 4-3
          Business Service General Configuration Page ............................................................................... 4-4
               Business Service Editor Options ............................................................................................... 4-4
          Business Service Message Type Configuration Page.................................................................... 4-4
          Business Service SOAP Binding Configuration Page ................................................................... 4-6
          Business Service Transport Configuration Page ........................................................................... 4-6
          Business Service Message Handling Configuration Page......................................................... 4-10
          Business Service - Service Policy Configuration Page ............................................................... 4-13
          Business Service Security Configuration Page............................................................................ 4-14
       Proxy Service Configuration ............................................................................................................... 4-15
          Proxy Service General Configuration Page ................................................................................. 4-15
               Proxy Service Editor Options ................................................................................................. 4-15
          Proxy Service Message Type Configuration Page...................................................................... 4-16
          Proxy Service Operation Selection Configuration Page ............................................................ 4-18
          Proxy Service Message Handling Configuration Page.............................................................. 4-21
          Proxy Service SOAP Binding Configuration Page .................................................................... 4-24
          Proxy Service Transport Configuration Page ............................................................................. 4-25
          Proxy Service - Service Policy Configuration Page ................................................................... 4-27
          Proxy Service Security Configuration Page ................................................................................ 4-28
       Oracle Service Bus Configurations and Projects............................................................................. 4-30
          Oracle Service Bus Configurations View..................................................................................... 4-30
          New Oracle Service Bus Configuration Project Wizard ............................................................ 4-31
          Oracle Service Bus Configuration Page ....................................................................................... 4-31
          New Oracle Service Bus Project .................................................................................................... 4-32
       Custom Resources ................................................................................................................................. 4-32
          New Custom Resource Wizard..................................................................................................... 4-33
          New Custom Resource Editor....................................................................................................... 4-33
          New Custom Resource - Resource Type Page ........................................................................... 4-33
          Custom MQ Resource Configuration Page ................................................................................ 4-33
       Export Wizard......................................................................................................................................... 4-34
          Export Wizard - Oracle Service Bus Configuration JAR Export Page..................................... 4-34
          Export Wizard - Export to Server - Select Resources Page ....................................................... 4-35
          Export Wizard - Export to Server - Review Resources Page .................................................... 4-36
       Import Wizard ........................................................................................................................................ 4-36
          Import Wizard - Config JAR Import - Load Resources Page ................................................... 4-36
          Import Wizard - Config JAR Import - Review Resources Page ............................................... 4-37
          Import Wizard - Config ZIP Import - Load Resources Page .................................................... 4-37
          Import Wizard - Config ZIP Import - Review Resources Page ................................................ 4-37
          Import Wizard - URL Import - Load Resources Page ............................................................... 4-38
          Import Wizard - URL Import - Review Resources Page ........................................................... 4-38
       JNDI Providers....................................................................................................................................... 4-38
          JNDI Provider Editor ...................................................................................................................... 4-38
          New JNDI Provider Resource Wizard ......................................................................................... 4-39
       Proxy Servers ......................................................................................................................................... 4-39
       Message Flow Design Palette ............................................................................................................. 4-40



viii
Message Flow Nodes ......................................................................................................................         4-40
   Message Flow Route Actions - Communication Actions..........................................................                                      4-41
   Message Flow Route Actions - Flow Control Actions ...............................................................                                 4-41
   Message Flow Stage Actions - Communication Actions...........................................................                                     4-42
   Message Flow Stage Actions - Flow Control Actions ................................................................                                4-42
   Message Flow Stage Actions - Message Processing Actions ....................................................                                      4-43
   Message Flow Stage Actions - Reporting Actions......................................................................                              4-44
Message Flow Editor.............................................................................................................................     4-44
   Alert Action Properties...................................................................................................................        4-46
   Assign Action Properties ...............................................................................................................          4-46
   Conditional Branch Node Properties ...........................................................................................                    4-47
   Delete Action Properties ................................................................................................................         4-48
   Dynamic Publish Action Properties .............................................................................................                   4-49
   Dynamic Routing Action Properties ............................................................................................                    4-50
   Error Handler Node Properties.....................................................................................................                4-50
   For-Each Action Properties............................................................................................................            4-50
   If-Then Action Properties...............................................................................................................          4-51
       If Action and Else-If Action Properties.................................................................................                      4-52
       Else Action Properties .............................................................................................................          4-52
   Insert Action Properties .................................................................................................................        4-52
   Java Callout Action Properties ......................................................................................................             4-53
   Log Action Properties.....................................................................................................................        4-55
   Message Flow Properties - Comment ..........................................................................................                      4-56
   Message Flow Properties - Namespaces .....................................................................................                        4-56
   Message Flow Properties - Variables ..........................................................................................                    4-56
   MFL Transform Action Properties................................................................................................                   4-56
   Operational Branch Node Properties ...........................................................................................                    4-57
   Pipeline Pair Node Properties .......................................................................................................             4-58
   Publish Action Properties ..............................................................................................................          4-59
   Publish Table Action Properties....................................................................................................               4-59
       Publish Table Properties .........................................................................................................            4-60
       Case Action Properties ............................................................................................................           4-60
       Publish Action Properties .......................................................................................................             4-61
   Raise Error Action Properties........................................................................................................             4-61
       Transactions ..............................................................................................................................   4-61
   Rename Action Properties .............................................................................................................            4-61
   Replace Action Properties..............................................................................................................           4-62
   Reply Action Properties .................................................................................................................         4-63
   Report Action Properties................................................................................................................          4-64
   Resume Action Properties .............................................................................................................            4-65
   Route Node Properties ...................................................................................................................         4-65
   Routing Action Properties .............................................................................................................           4-66
   Routing Options Action Properties ..............................................................................................                  4-66
   Routing Table Action Properties...................................................................................................                4-67
       Routing Table Properties ........................................................................................................             4-68
       Case Action Properties ............................................................................................................           4-69
       Routing Action Properties ......................................................................................................              4-69



                                                                                                                                                       ix
Service Callout Action Properties.................................................................................................                  4-69
        Skip Action Properties....................................................................................................................          4-72
        Stage Node Properties ....................................................................................................................          4-72
        Transport Headers Action Properties ..........................................................................................                      4-72
        Validate Action Properties.............................................................................................................             4-74
    Modify JAR Dependencies Dialog ....................................................................................................                     4-75
    SMTP Servers.........................................................................................................................................   4-75
        Edit SMTP Server Page...................................................................................................................            4-76
        New SMTP Server Resource Wizard............................................................................................                         4-76
    UDDI Registry Configuration Page...................................................................................................                     4-76
    Outline view - Oracle Service Bus .....................................................................................................                 4-77
    Resource Management .........................................................................................................................           4-77
        Preferences dialog - Oracle Service Bus - Type Associations Page..........................................                                          4-77
        References View ..............................................................................................................................      4-78
        Select Clone Target Dialog.............................................................................................................             4-78
        Select a Resource Dialog.................................................................................................................           4-78
    New Service Key Provider Resource .................................................................................................                     4-78
    New WS-Policy ......................................................................................................................................    4-79
    Service Accounts....................................................................................................................................    4-79
        New Service Account Resource ....................................................................................................                   4-80
        Service Account Editor - General Configuration Page ..............................................................                                  4-80
        Service Account Editor - Static User Configuration Page .........................................................                                   4-80
        Service Account Editor - User Mappings Configuration Page.................................................                                          4-81
    Expression Editors ................................................................................................................................     4-81
        XQuery/XSLT Expression Editor .................................................................................................                     4-81
        XPath Expression Editor ................................................................................................................            4-82
        Condition Editor..............................................................................................................................      4-82
        Condition Builder Page ..................................................................................................................           4-83
        Expression Page...............................................................................................................................      4-83
        XQuery Resource Page ...................................................................................................................            4-83
        XSLT Resource Page .......................................................................................................................          4-84
        Dynamic XQuery Page ...................................................................................................................             4-84
        Variable Structures Page ................................................................................................................           4-85
        Namespace Definitions Page.........................................................................................................                 4-85
        XQuery Functions Page..................................................................................................................             4-86
        Add Variable Structure Dialog .....................................................................................................                 4-86
    New XSL Transformation ....................................................................................................................             4-87
    Split-Join User Interface Reference ...................................................................................................                 4-87
        Split-Join Design Palette.................................................................................................................          4-88
            Operations.................................................................................................................................     4-88
        Global / Start Node Properties .....................................................................................................                4-90
        Variable Properties..........................................................................................................................       4-90
        Error Handler Properties ...............................................................................................................            4-91
        Invoke Service Properties...............................................................................................................            4-91
            Invoking Another Split-Join ...................................................................................................                 4-92
        Reply Properties ..............................................................................................................................     4-93
        For Each Properties .........................................................................................................................       4-93



x
If Properties......................................................................................................................................    4-94
         If and Else If Properties ..................................................................................................................           4-94
         Parallel Properties ...........................................................................................................................        4-95
         Raise Error Properties.....................................................................................................................            4-95
         Repeat Until Properties ..................................................................................................................             4-95
         Re-Raise Error Properties...............................................................................................................               4-95
         Scope Properties ..............................................................................................................................        4-96
         While Properties ..............................................................................................................................        4-96
         Wait Properties ................................................................................................................................       4-96
         Assign Properties ............................................................................................................................         4-97
              Assign Operation Properties ..................................................................................................                    4-97
         Copy Properties...............................................................................................................................         4-98
         Delete Properties .............................................................................................................................        4-98
         Insert Properties ..............................................................................................................................       4-99
         Java Callout Properties.................................................................................................................              4-100
         Log Properties................................................................................................................................        4-101
         Replace Properties.........................................................................................................................           4-101
         Receive Properties .........................................................................................................................          4-102
         Counter Variable Dialog ..............................................................................................................                4-102
         Create/Edit Variable Dialog........................................................................................................                   4-102
              Scope and Variables...............................................................................................................               4-103
         Create Message Variable Dialog .................................................................................................                      4-103
         Service Browser .............................................................................................................................         4-103
         SOAP Fault Variable Dialog ........................................................................................................                   4-103
         WSDL Browser ..............................................................................................................................           4-104
         Split-Join Wizard - New Split-Join..............................................................................................                      4-104
         Split-Join Wizard - Specify Operations ......................................................................................                         4-104

Part II XQuery Mapper

5 Introduction
   Overview of XQuery Mapper ................................................................................................................ 5-1
   Support for XQuery 2002 and 2004........................................................................................................ 5-2
      Restrictions Applicable to the XQuery Test View ......................................................................... 5-2

6 Transforming Data Using XQuery Mapper
   Launching XQuery Mapper....................................................................................................................                   6-1
   Importing the XQuery Mapper Sample Project .................................................................................                                  6-1
   Creating an XQuery Mapper Project ....................................................................................................                        6-2
   Importing and Creating Schema Files..................................................................................................                         6-2
       Importing XML Schemas and MFL Files ........................................................................................                              6-3
       Creating XML Schemas .....................................................................................................................                6-4
       Creating XML Files from XML Schemas ........................................................................................                              6-4
       Creating WSDL Files..........................................................................................................................             6-5
       Creating MFL Files.............................................................................................................................           6-5
   Selecting Source and Target Data Types ..............................................................................................                         6-6



                                                                                                                                                                  xi
Creating Data Transformations ............................................................................................................. 6-7
          Creating Basic Element Transformations ....................................................................................... 6-8
              Prerequisite .................................................................................................................................. 6-8
              Creating Element-to-Element Links......................................................................................... 6-8
          Creating Basic Attribute Transformations...................................................................................... 6-8
              Prerequisite .................................................................................................................................. 6-9
              Creating an Attribute-to-Element Link.................................................................................... 6-9
          Creating Complex Transformations................................................................................................ 6-9
              Prerequisite ............................................................................................................................... 6-10
              Creating a Complex Transformation .................................................................................... 6-10
      Editing Data Transformations............................................................................................................. 6-10
          Viewing and Editing XQuery Files............................................................................................... 6-10
          Creating Joins and Unions ............................................................................................................. 6-11
          Creating If-Then-Else Expressions................................................................................................ 6-11
          Creating For-Let-Where-Order By-Return (FLWOR) Expressions.......................................... 6-13
          Creating Typeswitch Expressions................................................................................................. 6-14
          Inserting XQuery Functions .......................................................................................................... 6-15
          Inserting Expression Variables...................................................................................................... 6-16
          Viewing Schema Properties........................................................................................................... 6-17
      Restricting Output of Optional Elements ........................................................................................ 6-17
      Testing Data Transformations............................................................................................................. 6-18
          Features of the Test View............................................................................................................... 6-18
              Related Topics .......................................................................................................................... 6-21
      Graphical Features in Design View ................................................................................................... 6-21
          Right-Click Menu Options............................................................................................................. 6-21
          Link Patterns .................................................................................................................................... 6-22
          Link Colors....................................................................................................................................... 6-23
      XML Global Elements, Global Types, Local Elements, and Attributes...................................... 6-24

7 Examples: Data Transformation Using XQuery Mapper
      Combining Data from Different Schemas .......................................................................................... 7-1
      Mapping Repeating Elements and Creating Joins ............................................................................ 7-4
         Step 1. Create an XQuery File........................................................................................................... 7-4
         Step 2. Add a Constraint ................................................................................................................... 7-6
         Step 3. Add Data to Return Element ............................................................................................... 7-7
         Step 4. Add Function to Calculate Value of Quote ....................................................................... 7-7
         Step 5. Add a Constraint with Multiple Conditions ..................................................................... 7-9
         Test the XQuery............................................................................................................................... 7-10
      Creating Unions..................................................................................................................................... 7-10
      Creating Repeating-Source to Nonrepeating-Target Transformations ....................................... 7-12
      Creating Nonrepeating-Source to Repeating-Target Transformation......................................... 7-14
      Creating Nested If-Then-Else Expressions....................................................................................... 7-17
         Step 1. Create the XQuery Transformation ................................................................................. 7-18
         Step 2. Create the First "If" Condition .......................................................................................... 7-19
         Step 3. Create the First Nested If-Then-Else Condition............................................................. 7-20
         Step 4. Create the Second Nested If-Then-Else Condition ........................................................ 7-20
      Creating FLWOR Expressions............................................................................................................. 7-21


xii
Using Recursive Schemas .................................................................................................................... 7-23
     Grouping Data by Key Fields ............................................................................................................. 7-25

Part III      Format Builder

8 Introduction
     Overview.................................................................................................................................................... 8-1

9 Format Builder Main Window
     Using the Menu Bar .................................................................................................................................          9-1
     Using the Toolbar .....................................................................................................................................       9-1
     Using the Tree Pane..................................................................................................................................         9-2
     Using the Shortcut Menus ......................................................................................................................               9-3
     Using Drag and Drop ..............................................................................................................................            9-4
     Valid Names ..............................................................................................................................................    9-4

10 Message Format Detail Window

11 Field Detail Window

12 Group Detail Window

13 Reference Detail Window

14 Comment Detail Window

15 Format Builder Options

16 Importing Metadata
     Importing a Guideline XML File........................................................................................................                       16-1
     Importing an XML Schema .................................................................................................................                    16-2
     Importing a COBOL Copybook .........................................................................................................                         16-2
     Importing C Structures.........................................................................................................................              16-3
     Starting the C Structure Importer ......................................................................................................                     16-3
     Generating MFL Data...........................................................................................................................               16-4
     Generating C Code................................................................................................................................            16-5
     Importing an FML Field Table Class ................................................................................................                          16-5
         FML Field Table Class Importer Prerequisites ..........................................................................                                  16-5
         Sample FML Field Table Class Files ............................................................................................                          16-6
         Creating XML with the FML Field Table Class Importer ........................................................                                            16-6

17 Format Tester
     Format Tester Window ......................................................................................................................... 17-1
     Format Tester Menus ............................................................................................................................ 17-1



                                                                                                                                                                   xiii
File Menu ................................................................................................................................................   17-1
      Edit Menu ...............................................................................................................................................    17-2
      Display Menu.........................................................................................................................................        17-2
      Generate Menu ......................................................................................................................................         17-3
      Transform Menu ....................................................................................................................................          17-3
      Shortcut Menu .......................................................................................................................................        17-3
      Using the Non-XML Window .............................................................................................................                       17-3
      Using the Data Offset Feature.............................................................................................................                   17-4
      Using the Text Feature ..........................................................................................................................            17-4
      Using the XML Window ......................................................................................................................                  17-4
      Using the Debug Window ...................................................................................................................                   17-4
      Using the Resize Bars ...........................................................................................................................            17-5
      Debugging Format Definitions ..........................................................................................................                      17-5
      Searching for Values .............................................................................................................................           17-5
      Searching for Offsets ............................................................................................................................           17-5
      Using the Debug Log ............................................................................................................................             17-6

18 Format Builder Menus
      File Menu ................................................................................................................................................   18-1
      Edit Menu ...............................................................................................................................................    18-1
      Insert Menu ............................................................................................................................................     18-2
      View Menu .............................................................................................................................................      18-3
      Tools Menu .............................................................................................................................................     18-3
      Help Menu..............................................................................................................................................      18-3
      Shortcut Menu .......................................................................................................................................        18-3

19 How Do I?
      Create a Message Format .....................................................................................................................                19-1
      Create a Group .......................................................................................................................................       19-1
      Create a Field..........................................................................................................................................     19-2
      Create a Comment .................................................................................................................................           19-2
      Create a Reference .................................................................................................................................         19-3
      Save a Document ...................................................................................................................................          19-3
      Use Format Tester ..................................................................................................................................         19-4
      Debug Format Definitions ..................................................................................................................                  19-4
      Search for Values ...................................................................................................................................        19-4
      Search for Offsets ..................................................................................................................................        19-5
      Use the Debug Log................................................................................................................................            19-5
      Character Delimiters.............................................................................................................................            19-5
      Specify a Delimiter ...............................................................................................................................          19-6
         Specify by Reference .......................................................................................................................              19-6
         Specify by Value .............................................................................................................................            19-7
      Delimiter Match Rule...........................................................................................................................              19-7
         Data Delimiter .................................................................................................................................          19-7
         Escape Character .............................................................................................................................            19-8
         None ..................................................................................................................................................   19-8



xiv
20 Using the Palette
   Displaying the Palette Window..........................................................................................................                     20-1
   Adding Items to the Palette .................................................................................................................               20-1
   Adding Palette Items to a Message Format ......................................................................................                             20-2
   Using the File Menu .............................................................................................................................           20-2
   Using the Shortcut Menu.....................................................................................................................                20-2

21 Format Builder Supported Data Types
   MFL Data Types..................................................................................................................................... 21-1
   COBOL Copybook Importer Data Types ......................................................................................... 21-5
   Unsupported C Language Features.................................................................................................... 21-6

Part IV General Development Topics

22 Development Environment Setup
   Running Multiple Development Servers with Derby ...................................................................                                         22-1
      Derby Best Practices and Troubleshooting..................................................................................                               22-1
      Sharing a Single Derby Database Instance Between Multiple Domains.................................                                                       22-2
      Running Each Domain with a Unique Derby Instance .............................................................                                           22-3
   Disabling the JMS Reporting Provider.............................................................................................                           22-4

23 Creating and Using Custom XPath Functions
   Registering Custom Functions with Oracle Service Bus ...............................................................                                        23-1
   Creating and Packaging the Custom Function Java Classes.........................................................                                            23-3
       Creating the Class and Method.....................................................................................................                      23-3
           Using Single-Dimensional Arrays .........................................................................................                           23-3
       Packaging the Custom Function Class.........................................................................................                            23-4
   Using Custom Functions......................................................................................................................                23-4
       Using Custom Functions in Inline XQuery Expressions and XQuery Resources .................                                                              23-4
       Using Custom Functions in XSLT Resources..............................................................................                                  23-4
   Testing Custom XPath Functions in Eclipse.....................................................................................                              23-5
   Deploying Custom Functions in a Cluster .......................................................................................                             23-5

Part V Transports

24 Oracle SOA Suite Transport (SOA-DIRECT)
   About the SOA-DIRECT Transport ...................................................................................................                          24-1
      WS-Addressing................................................................................................................................            24-2
      Security .............................................................................................................................................   24-3
      Environment Values .......................................................................................................................               24-3
      Error Handling ................................................................................................................................          24-3
          Connection Errors ....................................................................................................................               24-3
          Application Errors ...................................................................................................................               24-3
          Generic Errors...........................................................................................................................            24-4
   Using SOA Suite Services with Oracle Service Bus.......................................................................                                     24-4


                                                                                                                                                                 xv
Simple Use Cases – Synchronous .................................................................................................                     24-4
              Synchronous Invocation of a SOA Composite ....................................................................                                   24-4
                  Creating and Configuring the Services .........................................................................                              24-4
              Synchronous Invocation from a SOA Composite ...............................................................                                      24-5
                  Creating and Configuring the Services .........................................................................                              24-5
              Associating Messages with the Correct Conversation .......................................................                                       24-6
          Advanced Use Cases – Asynchronous.........................................................................................                           24-6
              Asynchronous Invocation of a SOA Composite..................................................................                                     24-6
                  Creating and Configuring the Services .........................................................................                              24-7
              Asynchronous Invocation from a SOA Composite.............................................................                                        24-8
                  Creating and Configuring the Services .........................................................................                              24-9
      Transport Configuration Reference .................................................................................................                     24-10
          SOA-DIRECT Endpoint URI .......................................................................................................                     24-11
              Cluster URI .............................................................................................................................       24-11
              URI Examples .........................................................................................................................          24-11
          SOA-DIRECT Transport Configuration for Business Services...............................................                                             24-12
      WS-Addressing Reference.................................................................................................................                24-14
          ReplyTo Header ............................................................................................................................         24-14
              Calling a SOA Composite Asynchronously with a SOA-DIRECT Business Service ...                                                                   24-14
              Calling Back to a SOA Composite Asynchronously with a SOA-DIRECT
              Business Service .....................................................................................................................          24-14
          MessageID / RelatesTo Headers ................................................................................................                      24-14
      XML Examples .....................................................................................................................................      24-15
          Conversation ID Examples ..........................................................................................................                 24-15
              Port and Message Definitions ..............................................................................................                     24-15
              WS-Addressing that Sets the Conversation ID..................................................................                                   24-16
              Message Payload Data that Sets the Conversation ID......................................................                                        24-17
              Transformation Examples.....................................................................................................                    24-18
          Asynchronous Composite to Composite Native Communication Through Oracle
          Service Bus Example.....................................................................................................................            24-20
              Port and Message Definitions ..............................................................................................                     24-20
              BP1 to P1 – Initiate operation ...............................................................................................                  24-20
              P1/B1 to BP2...........................................................................................................................         24-21
              BP2 to P2 – onResult operation ............................................................................................                     24-21
              P2/B2 to BP1 – onResult operation .....................................................................................                         24-22

25 JCA Transport
      About the JCA Transport .....................................................................................................................            25-1
         Messaging.........................................................................................................................................    25-2
             Transactions ..............................................................................................................................       25-2
         Transport Headers and Normalized Message Properties.........................................................                                          25-2
             $inbound and $outbound Request Headers ........................................................................                                   25-2
             $inbound-Only Request Headers ..........................................................................................                          25-3
             $outbound-Only Request Headers........................................................................................                            25-3
         Endpoint Properties ........................................................................................................................          25-4
             Proxy Service Endpoint Properties (Inbound).....................................................................                                  25-4
             Business Service Endpoint Properties (Outbound).............................................................                                      25-6


xvi
Security .............................................................................................................................................    25-6
           Proxy Services...........................................................................................................................             25-7
           Business Services......................................................................................................................               25-7
       Logging .............................................................................................................................................     25-7
           Oracle BAM Adapter Logging ...............................................................................................                            25-8
       Error Handling ................................................................................................................................           25-8
           EIS Fault Details in JCA Business Services...........................................................................                                 25-8
           Business Service Retry Application Errors...........................................................................                                  25-8
       URI Rewriting..................................................................................................................................           25-8
       Environment Variables...................................................................................................................                  25-8
       Encoding...........................................................................................................................................       25-9
   Working with Adapters........................................................................................................................                 25-9
       Adapter Support..............................................................................................................................             25-9
       Oracle JCA Adapter Limitations.................................................................................................                          25-10
           Limitations that Apply to All JCA Adapters .....................................................................                                     25-10
           Oracle JCA Adapter for AQ Limitations ............................................................................                                   25-10
           Oracle JCA Adapters for Files/FTP Limitations ...............................................................                                        25-10
       JCA Adapter Framework .............................................................................................................                      25-10
       Configuring Adapters – General ................................................................................................                          25-11
       Configuring Adapters that Poll a Database ..............................................................................                                 25-11
       Configuring the Oracle JCA Adapter for Database .................................................................                                        25-12
       Configuring the Oracle JCA Adapter for AQ ...........................................................................                                    25-12
       Using Custom JCA Adapters ......................................................................................................                         25-12
       Rejected Messages.........................................................................................................................               25-13
   Invoking an EIS Service Through Oracle Service Bus.................................................................                                          25-13
       Creating, Configuring, and Invoking the Services...................................................................                                      25-13
   Invoking an External Service from an EIS .....................................................................................                               25-14
       Creating, Configuring, and Invoking the Services...................................................................                                      25-14
   Transport Configuration Reference .................................................................................................                          25-15
       Endpoint URI .................................................................................................................................           25-15
           Endpoint Redeployment.......................................................................................................                         25-15
       JCA Transport Configuration for Proxy and Business Services.............................................                                                 25-15
       Proxy Service Operation Configuration ....................................................................................                               25-17
       Proxy Service Message Handling ...............................................................................................                           25-17
       Policies ............................................................................................................................................    25-17

26 HTTP and Poller Transports
   HTTP Transport .....................................................................................................................................          26-1
      Configuring Proxy Services using the HTTP Transport ...........................................................                                            26-1
      Configuring Business Services using the HTTP Transport.......................................................                                              26-3
      REST Support...................................................................................................................................            26-6
           REST in Proxy Services ...........................................................................................................                    26-7
              XQuery Examples .............................................................................................................                      26-7
              Headers ..............................................................................................................................             26-8
           REST in Business Services.......................................................................................................                      26-8
              Response Codes and Error Handling for HTTP Business Services...........................                                                            26-9
   E-mail Transport ....................................................................................................................................         26-9


                                                                                                                                                                  xvii
Configuring Proxy Services Using the E-mail Transport .......................................................                                              26-10
            Configuring Business Services Using the E-mail Transport ...................................................                                               26-11
        File Transport .......................................................................................................................................         26-12
            Configuring Proxy Services using the File Transport..............................................................                                          26-12
            Configuring Business Services using the File Transport ........................................................                                            26-13
        FTP Transport .......................................................................................................................................          26-14
            Configuring Proxy Services using the FTP Transport .............................................................                                           26-14
            Configuring Business Services using the FTP Transport ........................................................                                             26-15
        SFTP Transport.....................................................................................................................................            26-16
            Environment Values .....................................................................................................................                   26-17
            General Principles of SFTP Authentication...............................................................................                                   26-17
            Run-Time Behavior .......................................................................................................................                  26-18
            Using the SFTP Transport............................................................................................................                       26-19
                Enabling SFTP Authentication.............................................................................................                              26-19
                    Creating the Known Hosts File.....................................................................................                                 26-19
                    Enabling Username-Password Authentication ..........................................................                                               26-20
                    Enabling Host-Based Authentication ..........................................................................                                      26-20
                    Enabling Public Key Authentication............................................................................                                     26-21
                Configuring Proxy Services..................................................................................................                           26-21
                    Configuring Transport Headers and Metadata..........................................................                                               26-24
                Configuring Business Services .............................................................................................                            26-25
                Handling Communication Errors........................................................................................                                  26-26
                Troubleshooting .....................................................................................................................                  26-27
                Importing Resources..............................................................................................................                      26-27
                Importing and Publishing Services: UDDI Registries ......................................................                                              26-27

27 SB Transport
        Environmental Values ..........................................................................................................................                 27-2
        Configuring Proxy Services to Use the SB Transport.....................................................................                                         27-2
        Configuring Business Services to Use the SB Transport ..............................................................                                            27-3
           JNDI Provider ..................................................................................................................................             27-4
        Handling Errors ....................................................................................................................................            27-5
        UDDI........................................................................................................................................................    27-5
           Publishing a Service........................................................................................................................                 27-5
           Importing a Service .........................................................................................................................                27-6

28 EJB Transport
        Introduction............................................................................................................................................        28-1
        Invoking EJBs from Oracle Service Bus ...........................................................................................                               28-2
            Register a JNDI Provider Resource ..............................................................................................                            28-2
               Adding a JNDI Provider .........................................................................................................                         28-3
            Register an EJB Client JAR Resource............................................................................................                             28-3
               Adding a Client or Converter JAR ........................................................................................                                28-3
               Create a Service Account (Optional) .....................................................................................                                28-3
               Locate an EJB in the JNDI Tree ..............................................................................................                            28-3
            Transport Configuration Reference..............................................................................................                             28-3
               EJB Endpoint URI.....................................................................................................................                    28-4

xviii
EJB Transport Configuration for Business Services............................................................                                          28-4
      Invoking EJB Business Services.....................................................................................................                        28-6
   Exposing EJBs as Web Services...........................................................................................................                      28-6
   Advanced Topics....................................................................................................................................           28-6
      Transaction Processing, Retries, and Error Handling................................................................                                        28-6
          Transactions ..............................................................................................................................            28-6
          Retries and Failover .................................................................................................................                 28-7
          Error Handling .........................................................................................................................               28-8
      Supported Types and Converter Class ........................................................................................                               28-8
          Converter Classes.....................................................................................................................                 28-9
      Business Exception Classes............................................................................................................                     28-9
   Troubleshooting.....................................................................................................................................          28-9
      Enabling Debug Mode....................................................................................................................                    28-9
      Temp Directories .............................................................................................................................             28-9
      Deployed Application ....................................................................................................................                  28-9
      Errors...............................................................................................................................................     28-10

29 JEJB Transport
   About the JEJB Transport.....................................................................................................................                 29-1
       Difference Between the JEJB Transport and the EJB Transport ...............................................                                               29-1
       Environment Values .......................................................................................................................                29-2
       WSDL Generation ...........................................................................................................................               29-2
       Error Handling ................................................................................................................................           29-2
           Exception Propagation in the Response ...............................................................................                                 29-2
               Java Callout and Service Callout Exceptions................................................................                                       29-3
           Application and Connection Errors ......................................................................................                              29-3
               Connection Errors.............................................................................................................                    29-3
               Application Errors ............................................................................................................                   29-4
   Creating and Configuring JEJB Services ..........................................................................................                             29-4
       Creating and Packaging Your Client EJB JAR ............................................................................                                   29-4
       Register a JNDI Provider Resource (Business Services) ............................................................                                        29-5
           Adding a JNDI Provider .........................................................................................................                      29-5
       Configuring a JEJB Proxy or Business Service ............................................................................                                 29-5
   Use Cases.................................................................................................................................................    29-6
       EJB Invokes an External Service....................................................................................................                       29-6
       Non-EJB Client Invokes an EJB .....................................................................................................                       29-7
       EJB Invokes EJB ...............................................................................................................................           29-7
   Transport Configuration Reference ...................................................................................................                         29-8
       JEJB Endpoint URI ..........................................................................................................................              29-8
           Proxy Service JEJB Endpoint URI ..........................................................................................                            29-8
           Business Service JEJB Endpoint URI .....................................................................................                              29-9
       JEJB Transport Configuration for Proxy Services.......................................................................                                    29-9
       JEJB Transport Configuration for Business Services................................................................                                       29-11
   Testing JEJB Services ..........................................................................................................................             29-12
   UDDI Integration ................................................................................................................................            29-12
       UDDI Publish.................................................................................................................................            29-12
       UDDI Import..................................................................................................................................            29-12


                                                                                                                                                                  xix
30 JMS Transport
     Overview of JMS Interoperability .....................................................................................................                       30-1
     Asynchronous Request-Response Messaging .................................................................................                                    30-2
     Using SOAP-JMS Transport................................................................................................................                     30-3
         Interoperating with Oracle WebLogic Server .............................................................................                                 30-3
             Configuring the Response Queues for Cross-Domain JMS Calls .....................................                                                     30-3
     Naming Guidelines for Domains, WebLogic, and JMS Servers ..................................................                                                  30-4
     Specifying the JMS Type for Services ...............................................................................................                         30-4
     WSDL-Defined SOAP Fault Messages .............................................................................................                               30-4
     Interoperability with WebSphere MQ ..............................................................................................                            30-6
     Interoperability with Tibco EMS .......................................................................................................                      30-6
     Message ID and Correlation ID Patterns for JMS Request/Response........................................                                                      30-6
         Overview of JMS Request-Response and Design Patterns .......................................................                                             30-7
             Patterns for Messaging............................................................................................................                   30-7
         JMS Message ID Pattern .................................................................................................................                 30-8
         JMS Correlation ID Pattern ............................................................................................................                  30-9
         Comparison of Message ID and Correlation ID Patterns..........................................................                                           30-9
         Interoperating with JAX-RPC Over JMS ...................................................................................                                30-10
             Invoking a JAX-RPC Web Service Using the JMS Message ID Pattern ........................                                                            30-11
             Invoking a JMS Request-Response Proxy Service from a JAX-RPC Client ...................                                                             30-12
         JMS Message ID Pattern Examples.............................................................................................                            30-12
             Example 1: An MQ Service Uses a JMS Message ID to Correlate the
             Request-Response Message                                                                                                                            30-13
             Example 2: A JAX-RPC Client with Oracle Service Bus Proxy Service..........................                                                         30-13
             Example 3: Oracle Service Bus as a Client of an Oracle WebLogic Server JAX-RPC
              Request/Response Service ..................................................................................................                        30-14
     Using the JMS Transport....................................................................................................................                 30-14
         Security ...........................................................................................................................................    30-15
         Configuring Proxy Services using JMS Transport Protocol....................................................                                             30-15
         Transport Headers ........................................................................................................................              30-15
             Configuring Transport Headers ..........................................................................................                            30-17
         Sending and Receiving Java Objects in Messages ....................................................................                                     30-18
         Configuring Business Services using JMS Transport Protocol...............................................                                               30-18
         Error Handling ..............................................................................................................................           30-19

31 Local Transport
     Introduction............................................................................................................................................     31-1
     Features and Characteristics of Local Transport Proxy Services ..................................................                                            31-1
     Message Handling for Local Transport Proxy Services .................................................................                                        31-2
     Usage of Local Transport Proxy Services ..........................................................................................                           31-2
         Propagating SOAP Faults Between Proxy Services ...................................................................                                       31-4
     Using OWSM Security with Local Proxies.......................................................................................                                31-4
     Limitations..............................................................................................................................................    31-6

32 WS Transport
     Supported Functionality ..................................................................................................................... 32-2



xx
Messaging Patterns .........................................................................................................................               32-2
       Policies ..............................................................................................................................................    32-2
           WS-Policy Configurations ......................................................................................................                        32-3
       Streaming Content for Large Messages ......................................................................................                                32-3
       Web Services Interoperability .......................................................................................................                      32-3
   Authentication and Authorization of Services ...............................................................................                                   32-3
       Proxy Service Authentication .......................................................................................................                       32-3
       Proxy Service Authorization .........................................................................................................                      32-4
       Business Service Authentication ..................................................................................................                         32-4
   Using the WS Transport .......................................................................................................................                 32-5
       Adding Resources to an Oracle Service Bus Domain ................................................................                                          32-5
           Configuring WS Policies .........................................................................................................                      32-5
           Attaching WS Policies to a Service ........................................................................................                            32-6
       Configuring an Error Queue .........................................................................................................                       32-6
       Configuring Proxy Services to Use the WS Transport...............................................................                                          32-6
       Assigning Transport Access Control to Proxy Services ............................................................                                          32-8
           Adding Policy Conditions ....................................................................................................                         32-10
       Routing the WS Transport Through an HTTP Proxy Server..................................................                                                   32-15
       Configuring Business Services to Use the WS Transport .......................................................                                             32-15
   Error Handling ....................................................................................................................................           32-17
   Importing and Exporting Resources................................................................................................                             32-17
   Importing and Publishing Services Using UDDI Registries......................................................                                                 32-18

33 MQ Transport
   Key Features ...........................................................................................................................................       33-1
   Advantages of Using the MQ Transport ...........................................................................................                               33-2
   Supported Service Types .....................................................................................................................                  33-2
   Messaging Patterns ...............................................................................................................................             33-2
   Environment Values..............................................................................................................................               33-3
   Quality of Service..................................................................................................................................           33-4
   MQ Clusters and the MQ Transport..................................................................................................                             33-4
   Using the MQ Transport ......................................................................................................................                  33-4
      Adding MQ Client Libraries to Your Environment...................................................................                                           33-4
      MQ Connection Resources.............................................................................................................                        33-5
          Creating an MQ Connection Resource .................................................................................                                    33-5
      Configuring Proxy Services to Use the MQ Transport..............................................................                                            33-7
      Configuring Business Services to Use the MQ Transport .........................................................                                             33-9
      Transport Headers ........................................................................................................................                 33-12
          Configuring Transport Headers ..........................................................................................                               33-18
               About RFH2 Headers .....................................................................................................                          33-19
      Error Handling ..............................................................................................................................              33-19
      Limitations of the MQ Transport................................................................................................                            33-19
   Using the WebSphere JMS MQ Interface.......................................................................................                                   33-20
      Using the WebSphere MQ JMS Interface...................................................................................                                    33-20
      Messaging Types ...........................................................................................................................                33-21
          Non-Persistent Messaging ....................................................................................................                          33-21
          Non-XA Persistent Messaging .............................................................................................                              33-21


                                                                                                                                                                   xxi
XA Messaging......................................................................................................................... 33-21
             Tuning WebSphere MQ ............................................................................................................... 33-21

34 Oracle BPEL Process Manager Transport (for use with Oracle SOA Suite 10g
only)
       Overview.................................................................................................................................................     34-1
           SOAP Support..................................................................................................................................            34-2
           Transaction Propagation ................................................................................................................                  34-2
           SSL Support......................................................................................................................................         34-2
           Environment Variables...................................................................................................................                  34-2
       Simple Use Cases (Synchronous).......................................................................................................                         34-3
           Synchronous: Invoking Processes in Oracle BPEL Process Manager......................................                                                      34-3
               Creating and Configuring the Services.................................................................................                                34-3
           Synchronous: Calling External Services from Oracle BPEL Process Manager ......................                                                            34-4
               Creating and Configuring the Services.................................................................................                                34-4
           Associating Messages with the Correct Conversation ..............................................................                                         34-4
       Advanced Use Cases (Asynchronous) ...............................................................................................                             34-5
           Asynchronous: Invoking Processes in Oracle BPEL Process Manager ...................................                                                       34-5
               Creating and Configuring the Services.................................................................................                                34-5
           Asynchronous: Calling Service Providers from Oracle BPEL Process Manager ...................                                                              34-6
               Creating and Configuring the Services.................................................................................                                34-7
       Transport Configuration Reference ...................................................................................................                         34-8
           Endpoint URI ...................................................................................................................................          34-8
           bpel-10g Transport Configuration................................................................................................                          34-9
       Security..................................................................................................................................................   34-11
           Using SSL from Oracle Service Bus to Oracle Servers .............................................................                                        34-11
       Error Handling .....................................................................................................................................         34-12
           Application Errors.........................................................................................................................              34-12
           Connection Errors .........................................................................................................................              34-12
           Other Errors ...................................................................................................................................         34-12
       WS-Addressing Reference.................................................................................................................                     34-12
           ReplyTo...........................................................................................................................................       34-12
               Calling a BPEL Process Asynchronously Through Oracle Service Bus .........................                                                           34-12
               BPEL Processes Calling External Services Through Oracle Service Bus .......................                                                          34-13
           MessageID / RelatesTo ................................................................................................................                   34-13
       XML Examples .....................................................................................................................................           34-13
           Conversation ID Examples ..........................................................................................................                      34-13
               Port and Message Definitions ..............................................................................................                          34-14
               WS-Addressing that Sets the Conversation ID..................................................................                                        34-14
               Message Payload Data that Sets the Conversation ID......................................................                                             34-15
               Transformation Examples.....................................................................................................                         34-17
           Asynchronous BPEL to BPEL Through Oracle Service Bus Example ...................................                                                         34-18
               Port and Message Definitions ..............................................................................................                          34-19
               BP1 to P1 – Initiate operation ...............................................................................................                       34-19
               P1/B1 to BP2...........................................................................................................................              34-19
               BP2 to P2 – onResult operation ............................................................................................                          34-20
               P2/B2 to BP1 – onResult operation .....................................................................................                              34-20


xxii
35 Tuxedo Transport
   Overview.................................................................................................................................................    35-1
      Capabilities of the Tuxedo transport............................................................................................                          35-2
   Configuring the Oracle Tuxedo Connector ......................................................................................                               35-3
      Before You Begin .............................................................................................................................            35-3
      Configuring Oracle Tuxedo Connector .......................................................................................                               35-4
   Using Tuxedo Services from Oracle Service Bus.............................................................................                                   35-4
      Configuring a New Business Service ...........................................................................................                            35-5
          Add a New Project...................................................................................................................                  35-5
          Add a Business Service ...........................................................................................................                    35-5
      Load Balancing and Failover .........................................................................................................                     35-9
      Handling Errors...............................................................................................................................            35-9
      Testing Your Configuration...........................................................................................................                     35-9
   Using Oracle Service Bus from Tuxedo...........................................................................................                             35-10
      Adding and Configuring a Proxy Service ................................................................................                                  35-10
          Add a New Project.................................................................................................................                   35-10
          Add a Proxy Service ..............................................................................................................                   35-10
          Configure the Proxy Service.................................................................................................                         35-12
      Testing Your Configuration.........................................................................................................                      35-13
   Tuxedo Transport Buffer Transformation .......................................................................................                              35-13
      Any XML Service Type ................................................................................................................                    35-14
      Messaging Service Type ...............................................................................................................                   35-14
   Tuxedo Transport Transaction Processing ......................................................................................                              35-15
      Inbound Services ...........................................................................................................................             35-15
      Outbound Services........................................................................................................................                35-16

36 DSP and Oracle Data Service Integrator Transport
   Enabling Data Services for Oracle Service Bus...............................................................................                                 36-1
   Using the DSP Transport .....................................................................................................................                36-2
      Actions Needed Within Oracle Data Service Integrator ...........................................................                                          36-2
          Step 1. Start Your Server .........................................................................................................                   36-2
          Step 2. Generate a WSDL from the Data Service.................................................................                                        36-2
          Step 3: Obtaining the Web Service Address.........................................................................                                    36-3
      Actions Needed Within Oracle Service Bus ................................................................................                                 36-3
          Step 4: Import the Data Service WSDL into Oracle Service Bus .......................................                                                  36-3
          Step 5: Create the Business Service........................................................................................                           36-3
          Step 6: Create the Proxy Service ............................................................................................                         36-4
          Step 7: Test Your Setup ...........................................................................................................                   36-4

Part VI Transport SDK

37 Introduction

38 Design Considerations
   What is a Transport Provider?............................................................................................................. 38-1



                                                                                                                                                                 xxiii
What is the Transport SDK? ...............................................................................................................                 38-2
           Purpose of the SDK .........................................................................................................................           38-2
           Transport SDK Features .................................................................................................................               38-3
               Handling Inbound and Outbound Messages ......................................................................                                      38-3
               Deploying Transport-Related Artifacts ................................................................................                             38-3
               Processing Messages Asynchronously ................................................................................                                38-4
           Transport Provider Modes.............................................................................................................                  38-4
           Related Features ..............................................................................................................................        38-4
               Load Balancing .........................................................................................................................           38-4
               Monitoring and Metrics ..........................................................................................................                  38-4
       Do You Need to Develop a Custom Transport Provider? ..............................................................                                         38-4
           When to Use the Transport SDK...................................................................................................                       38-5
           When Alternative Approaches are Recommended....................................................................                                        38-5
       Transport Provider Components .......................................................................................................                      38-6
           Overview ..........................................................................................................................................    38-6
           Design-Time Component ..............................................................................................................                   38-7
           Runtime Component ......................................................................................................................               38-8
       The Transaction Model ........................................................................................................................             38-9
           Overview of Transport Endpoint Properties ..............................................................................                               38-9
               Transactional vs. Non-Transactional Endpoints ...............................................................                                     38-10
               Supported Message Patterns ...............................................................................................                        38-10
           Support for Synchronous Transactions .....................................................................................                            38-10
               Use Case 1 (Response Pipeline Processing) .......................................................................                                 38-10
               Use Case 2 (Service Callout Processing).............................................................................                              38-11
               Use Case 3 (Suspending Transactions) ...............................................................................                              38-12
               Use Case 4 (Multiple URIs) ..................................................................................................                     38-12
       The Security Model ............................................................................................................................           38-12
           Inbound Request Authentication ...............................................................................................                        38-12
           Outbound Request Authentication ...........................................................................................                           38-13
               Outbound Username/Password Authentication .............................................................                                           38-13
               Outbound SSL Client Authentication (Two-Way SSL) ...................................................                                              38-14
               Outbound JAAS Subject Authentication ...........................................................................                                  38-14
           Link-Level or Connection-Level Credentials ...........................................................................                                38-14
           Uniform Access Control to Proxy Services ...............................................................................                              38-15
           Identity Propagation and Credential Mapping .......................................................................                                   38-15
       The Threading Model.........................................................................................................................              38-15
           Overview ........................................................................................................................................     38-15
           Inbound Request Message Thread .............................................................................................                          38-16
           Outbound Response Message Thread .......................................................................................                              38-17
           Support for Asynchrony ..............................................................................................................                 38-17
           Publish and Service Callout Threading .....................................................................................                           38-17
       Designing for Message Content ......................................................................................................                      38-18
           Overview ........................................................................................................................................     38-18
           Sources and Transformers ..........................................................................................................                   38-18
           Sources and the MessageContext Object ...................................................................................                             38-19
           Built-In Transformations..............................................................................................................                38-20




xxiv
39 Developing a Transport Provider
   Development Road Map ......................................................................................................................                  39-1
       Planning............................................................................................................................................     39-1
       Developing .......................................................................................................................................       39-2
       Packaging and Deploying..............................................................................................................                    39-2
   Before You Begin ...................................................................................................................................         39-2
   Basic Development Steps ....................................................................................................................                 39-2
       1. Review the Transport Framework Components ....................................................................                                        39-3
       2. Create a Directory Structure for Your Transport Project ......................................................                                        39-4
       3. Create an XML Schema File for Transport-Specific Artifacts ...............................................                                            39-4
       4. Define Transport-Specific Artifacts .........................................................................................                         39-4
            EndPointConfiguration ..........................................................................................................                    39-5
            RequestMetaDataXML ............................................................................................................                     39-5
            RequestHeadersXML...............................................................................................................                    39-6
            ResponseMetaDataXML .........................................................................................................                       39-7
            ResponseHeadersXML............................................................................................................                      39-7
       5. Define the XMLBean TransportProviderConfiguration........................................................                                             39-7
       6. Implement the Transport Provider User Interface.................................................................                                      39-8
       7. Implement the Runtime Interfaces ...........................................................................................                          39-9
       8. Deploy the Transport Provider ...............................................................................................                        39-10
   Important Development Topics........................................................................................................                        39-10
   Handling Messages.............................................................................................................................              39-10
       Overview ........................................................................................................................................       39-11
       Sending and Receiving Message Data .......................................................................................                              39-11
       Request and Response Metadata Handling ..............................................................................                                   39-12
       Character Set Encoding ................................................................................................................                 39-12
       Co-Located Calls ...........................................................................................................................            39-13
       Returning Outbound Responses to Oracle Service Bus Runtime ..........................................                                                   39-13
   Transforming Messages ....................................................................................................................                  39-13
   Working with TransportOptions ......................................................................................................                        39-14
       Inbound Processing ......................................................................................................................               39-15
       Outbound Processing ...................................................................................................................                 39-15
       Request Mode ...............................................................................................................................            39-15
   Handling Errors ...................................................................................................................................         39-16
       Case 1 ..............................................................................................................................................   39-16
       Case 2 ..............................................................................................................................................   39-17
       Case 3 ..............................................................................................................................................   39-17
       Catching Application Errors........................................................................................................                     39-18
            Identifying Application Errors.............................................................................................                        39-18
            Configuring Application Error Retries ...............................................................................                              39-18
       Catching Connection Errors ........................................................................................................                     39-19
            Identifying Connection Errors .............................................................................................                        39-19
   Defining Custom Environment Value Types.................................................................................                                    39-20
   Publishing Proxy Services to a UDDI Registry .............................................................................                                  39-21
   When to Implement TransportWLSArtifactDeployer..................................................................                                            39-22
   Creating Help for Custom Transports .............................................................................................                           39-23
       Custom Transport Help Overview.............................................................................................                             39-23


                                                                                                                                                                 xxv
Eclipse Help ............................................................................................................................           39-23
                     Context-Sensitive Help (F1) ..........................................................................................                         39-23
                     Eclipse Help Table of Contents.....................................................................................                            39-24
                Oracle Service Bus Administration Console Help ............................................................                                         39-25
             Providing Custom Transport Help in Eclipse...........................................................................                                  39-26
                Providing Context-Sensitive Help in Eclipse.....................................................................                                    39-26
                Providing Help in the Eclipse Help System.......................................................................                                    39-27
                Help Implementation Reference..........................................................................................                             39-27
                     plugin.xml........................................................................................................................             39-28
                     toc.xml ..............................................................................................................................         39-29
                     context.xml.......................................................................................................................             39-29
                     Help Content and Resources.........................................................................................                            39-30
                Packaging Help for the Transport Plug-in .........................................................................                                  39-30
                Related Topics ........................................................................................................................             39-31
             Providing Custom Transport Help in the Oracle Service Bus Administration Console ....                                                                  39-31
                Implementing the CustomHelpProvider Interface ...........................................................                                           39-32
                Creating an HTML File to Launch.......................................................................................                              39-33
                Creating a Simple Web Application to Display Expanded Help (Optional) ................                                                              39-34
                     META-INF/application.xml .........................................................................................                             39-34
                     WEB-INF/web.xml.........................................................................................................                       39-35
                     Help Content and Resources.........................................................................................                            39-35
                Packaging Transport Help for the Oracle Service Bus Administration Console..........                                                                39-35

40 Developing Oracle Service Bus Transports for Eclipse
       Introduction............................................................................................................................................      40-1
       Services Runtime and Services Configuration................................................................................                                   40-1
           Offline Methods...............................................................................................................................            40-2
           Restrictions when Working Offline..............................................................................................                           40-4
           Working Offline with a Remote Server........................................................................................                              40-4
           Bootstrapping Transports in Offline Mode ................................................................................                                 40-5
           Packaging Transports in Offline Mode........................................................................................                              40-5
       Packaging Transports as Eclipse Plug-Ins ........................................................................................                             40-6
           Transport Plug-in Resources .........................................................................................................                     40-6
           Transport Plug-in Packaging.........................................................................................................                      40-7
       Reference.................................................................................................................................................    40-7
           Working in Different Modes ........................................................................................................                       40-8
           TransportProviderFactory .............................................................................................................                    40-9
           Extension Point Schema ...............................................................................................................                   40-10
           plugin.xml ......................................................................................................................................        40-10
           MANIFEST.MF..............................................................................................................................                40-11
           Build.xml ........................................................................................................................................       40-11
           TransportManagerHelper Methods ...........................................................................................                               40-12

41 Transport SDK Interfaces and Classes
       Introduction............................................................................................................................................ 41-1
       Schema-Generated Interfaces ............................................................................................................. 41-1
       General Classes and Interfaces........................................................................................................... 41-2

xxvi
Summary of General Classes.........................................................................................................                     41-2
       Summary of General Interfaces.....................................................................................................                      41-3
    Source and Transformer Classes and Interfaces..............................................................................                                41-4
       Summary of Source and Transformer Interfaces........................................................................                                    41-4
       Summary of Source and Transformer Classes ...........................................................................                                   41-4
    Metadata and Header Representation for Request and Response Messages............................                                                           41-6
       Runtime Representation of Message Contents ...........................................................................                                  41-6
       Interfaces ..........................................................................................................................................   41-7
    User Interface Configuration ..............................................................................................................                41-7
       Overview ..........................................................................................................................................     41-7
       Summary of UI Interfaces ..............................................................................................................                 41-7
       Summary of UI Classes ..................................................................................................................                41-8

42 Sample Socket Transport Provider
    Sample Socket Transport Provider Design ......................................................................................                             42-1
        Concepts Illustrated by the Sample..............................................................................................                       42-1
        Basic Architecture of the Sample ..................................................................................................                    42-2
        Configuration Properties ...............................................................................................................               42-2
    Sample Location and Directory Structure .......................................................................................                            42-3
    Building and Deploying the Sample ................................................................................................                         42-4
        Setting Up the Environment ..........................................................................................................                  42-4
        Building the Transport ...................................................................................................................             42-4
        Deploying the Sample Transport Provider .................................................................................                              42-5
    Start and Test the Socket Server ........................................................................................................                  42-5
        Start the Socket Server ...................................................................................................................            42-5
        Test the Socket Transport...............................................................................................................               42-6
    Configuring the Socket Transport Sample .......................................................................................                            42-6
        Create a New Project ......................................................................................................................            42-6
        Create a Business Service ...............................................................................................................              42-7
        Create a Proxy Service ....................................................................................................................            42-7
        Edit the Pipeline ..............................................................................................................................       42-7
    Testing the Socket Transport Provider .............................................................................................                        42-9

43 Deploying a Transport Provider
    Packaging the Transport Provider .....................................................................................................                     43-1
    Deploying the Transport Provider .....................................................................................................                     43-1
       Transport Registration....................................................................................................................              43-2
    Undeploying a Transport Provider ....................................................................................................                      43-3
    Deploying to a Cluster .........................................................................................................................           43-3

Part VII      Security

44 Introduction
    Document Audience ............................................................................................................................. 44-1
    Related Information.............................................................................................................................. 44-2



                                                                                                                                                               xxvii
45 Understanding Oracle Service Bus Security
         Inbound Security...................................................................................................................................     45-1
         Outbound Security................................................................................................................................       45-3
         Options for Identity Propagation.......................................................................................................                 45-3
             Example: Authentication with a User Name Token ................................................................                                    45-10
         Administrative Security .....................................................................................................................          45-11
         Access Control Policies ......................................................................................................................         45-11
             Configuring Proxy Service Access Control ...............................................................................                           45-12
             Access Control Policy Management...........................................................................................                        45-12
                 Deleting a Proxy Service .......................................................................................................               45-13
                 Deleting the Access Control Policy Assigned to a Proxy Service ...................................                                             45-13
                 Moving or Renaming a Proxy Service ................................................................................                            45-13
                 Renaming a Proxy Service Operation .................................................................................                           45-13
         Preserving Security Configuration During Import ......................................................................                                 45-14
             Preserve Security and Policy Configuration Check Box .........................................................                                     45-14
             Preserve Credentials Check Box .................................................................................................                   45-15
             Preserve Access Control Check Box ...........................................................................................                      45-15
         Configuring the Oracle WebLogic Security Framework: Main Steps.......................................                                                  45-15
         Context Properties Are Passed to Security Providers...................................................................                                 45-19
             Context Properties for HTTP Transport-Level Authentication..............................................                                           45-19
             ContextHandler Properties for Access Control and Message-Level Custom
             Authentication                                                                                                                                     45-20
             Additional Transport-Specific Context Properties...................................................................                                45-20
             Administrator-Supplied Context Properties for Message-Level Authentication................                                                         45-21
             Security Provider Must Have Knowledge of the Property Name .........................................                                               45-21
             Oracle WebLogic Server Administrative Channel is Supported ...........................................                                             45-22
         Using Security Providers ...................................................................................................................           45-23
             Configuring Authentication Providers ......................................................................................                        45-23
             Using a Custom Authorization Provider to Protect Oracle Service Bus Resources ............                                                         45-24
                 WebLogic Authorization Provider Usage Information....................................................                                          45-24
                 Oracle Service BusProxyServiceResource Object ..............................................................                                   45-25
                     ALSBProxyServiceResource Examples .......................................................................                                  45-26
                 ProjectResourceV2 Object .....................................................................................................                 45-27
                 ConsoleResource Object........................................................................................................                 45-27
             About Errors When Using Security Provider Policies.............................................................                                    45-27

46 Oracle Service Bus Security FAQ
         How are Oracle Service Bus and Oracle WebLogic Server Security related?............................                                                     46-1
         What is Transport-Level Security? .....................................................................................................                 46-2
         What is Web Services Security?..........................................................................................................                46-2
         What is Web Service Policy? ...............................................................................................................             46-2
         What are Web Service Policy assertions?..........................................................................................                       46-2
         Are Access Control Policy and Web Service Policy the same? .....................................................                                        46-2
         What is Web Services Security Pass-Through?................................................................................                             46-3
         What is a Web Services Security Active Intermediary? .................................................................                                  46-3
         What is outbound Web Services Security?.......................................................................................                          46-3
         What is SAML? ......................................................................................................................................    46-3


xxviii
Is it possible to customize the format of the subject identity in a SAML assertion? ..............                                                       46-3
   What is the Certificate Lookup And Validation Framework? ......................................................                                          46-3
   Does Oracle Service Bus support identity propagation in a proxy service?..............................                                                   46-4
   If both transport-level authentication and message-level authentication exist on inbound
   messages to the proxy service, which identity is propagated? .....................................................                                       46-4
   Is single sign-on supported in Oracle Service Bus? .......................................................................                               46-4
   Are security errors monitored? ..........................................................................................................                46-5
   Can I configure security for MBeans? ..............................................................................................                      46-5

47 Configuring Administrative Security
   Administrative Security Roles and Privileges.................................................................................                            47-1
      Role-Based Access in the Oracle Service Bus Administration Console ..................................                                                 47-2
   Administrative Security Groups ........................................................................................................                  47-8
   Configuring Administrative Security: Main Steps.........................................................................                                 47-8

48 Securing Oracle Service Bus in a Production Environment
   Undeploying the Service Bus (SB) Resource ................................................................................... 48-1
   Protection of Temporary Files With Streaming body Content ..................................................... 48-2
   Protecting Against Denial of Service Attacks on the Oracle Service Bus Administration
   Console .................................................................................................................................................... 48-2

49 Configuring Transport-Level Security
   Configuring Transport-Level Security for HTTPS .........................................................................                                49-2
      HTTPS Authentication Levels .......................................................................................................                  49-2
      Configuring Inbound HTTPS Security: Main Steps...................................................................                                    49-3
      Configuring Outbound HTTPS Security: Main Steps................................................................                                      49-4
   Configuring Transport-Level Security for HTTP............................................................................                               49-4
      Configuring Inbound HTTP Security: Main Steps.....................................................................                                   49-5
      Configuring Outbound HTTP Security: Main Steps..................................................................                                     49-5
   Configuring Transport-Level Security for JMS...............................................................................                             49-6
      Configuring Inbound JMS Transport-Level Security: Main Steps...........................................                                              49-6
      Configuring Outbound JMS Transport-Level Security: Main Steps........................................                                                49-7
   Configuring Transport-Level Security for SFTP Transport...........................................................                                      49-7
      How Two-Way Authentication is Performed .............................................................................                                49-7
      Use of the known_hosts File..........................................................................................................                49-8
      SFTP Transport Authentication Process ......................................................................................                         49-9
      Configuring Inbound SFTP Transport-Level Security: Main Steps.......................................                                                49-10
      Configuring Outbound SFTP Transport-Level Security: Main Steps....................................                                                  49-12
      SFTP Security Attributes Preserved During Import ................................................................                                   49-13
      SFTP Credential Life Cycle ..........................................................................................................               49-14
   Email, FTP, and File Transport-Level Security ...............................................................................                          49-14
      Email and FTP Transport-Level Security ..................................................................................                           49-14
      File Transport Security .................................................................................................................           49-14
   Configuring Transport-Level Security for SB Transport .............................................................                                    49-14
      Configuring SAML Authentication With Service Bus (SB) Transport ..................................                                                  49-15
   Configuring Transport-Level Security for WS Transport............................................................                                      49-15



                                                                                                                                                              xxix
Reliable Web Services Messaging Defined................................................................................                                49-16
          WS Transport Resources Visible in WLS Console....................................................................                                      49-16
          Use of WS-Policy Files for Web Service Reliable Messaging Configuration .......................                                                        49-16
              Preconfigured WS-RM Policy Files .....................................................................................                             49-16
          RM WS-Policy Required Prior to Activation.............................................................................                                 49-17
          Async Responses ...........................................................................................................................            49-17
          Proxy Service Authentication .....................................................................................................                     49-17
          Preserving Security Configuration on Import ..........................................................................                                 49-19
          Configuring Inbound and Outbound WS Transport-Level Security ....................................                                                      49-19
      Configuring Transport-Level Security for WebSphere Message Queue Transport ...............                                                                 49-19
          Configuring Inbound MQ Transport-Level Security: Main Steps .........................................                                                  49-20
          Configuring Outbound MQ Transport-Level Security: Main Steps......................................                                                     49-20
      Transport-Level Security Elements in the Message Context ......................................................                                            49-21

50 Securing Oracle Service Bus with Oracle Web Services Manager
      About Oracle Web Services Manager Integration with Oracle Service Bus..............................                                                         50-1
          Security Providers ...........................................................................................................................          50-2
              JPS Providers ............................................................................................................................          50-2
              CSS Providers ...........................................................................................................................           50-3
      Setting Up and Using Oracle Web Services Manager with Oracle Service Bus .......................                                                            50-3
          Adding Oracle Web Services Manager and Oracle Enterprise Manager to an
          Oracle Service Bus Domain............................................................................................................                   50-3
          Attaching Oracle Web Services Manager Policies to Oracle Service Bus Services ................                                                          50-5
              Policy Overrides.......................................................................................................................             50-5
          Configuring SAML .........................................................................................................................              50-6
          Advertising WSDLs to Support WS Standards ..........................................................................                                    50-6
              WSDL Query Parameter Reference for WS Policies ...........................................................                                          50-7
          Deployment Considerations..........................................................................................................                     50-7
          Auditing............................................................................................................................................    50-8
          Monitoring Statistics .......................................................................................................................           50-8
          Supported Seed Policies and Unsupported Assertions.............................................................                                         50-8
              Supported Seed Policies ..........................................................................................................                  50-8
                  wss_http_token_*_policy Guidelines...........................................................................                                  50-11
                  OWSM Authentication Policy Guidelines ..................................................................                                       50-12
              Unsupported Assertions .......................................................................................................                     50-12
      Use Cases: Oracle Service Bus and WLS 9 Policies with Oracle Web Services Manager .....                                                                    50-13
          Message Protection .......................................................................................................................             50-13
              Message Protection with Client Agent ...............................................................................                               50-13
              Message Protection with Server Agent...............................................................................                                50-14
              Message Protection with Client and Server Agents..........................................................                                         50-14
              Message Protection with Gateway ......................................................................................                             50-15
          Authentication ...............................................................................................................................         50-15
          Perimeter Security .........................................................................................................................           50-16
          Identity Propagation.....................................................................................................................              50-16

51 Using WS-Policy in Oracle Service Bus Proxy and Business Services
      About Web Services Policy.................................................................................................................. 51-1


xxx
Relationship Between WS-Security and WS-Policy ...................................................................                      51-2
       WS-Policies Can be Bound Directly to Service ...........................................................................                51-2
       Abstract and Concrete WS-Policy Statements ............................................................................                 51-3
   Oracle Service Bus WS-Policy Files...................................................................................................       51-3
       Predefined Oracle Proprietary Policy Files .................................................................................            51-4
       Predefined Reliable Messaging Policy Files ................................................................................             51-5
       When to Use the Predefined Policy Files.....................................................................................            51-5
   Creating and Using Custom WS-Policy Statements.......................................................................                       51-5
   Attaching WS-Policy Statements to WSDL Documents................................................................                            51-6
       Determining the URI of a WS-Policy Statement.........................................................................                   51-7
       Specifying the URI of a WS-Policy Statement in a WSDL Document .....................................                                    51-7
       Best Practices: Attaching WS-Policy Statements ........................................................................                 51-8
       Example: Requiring X.509 Credentials for Identity and Confidentiality................................                                   51-8
       Example: Attaching Custom Inline WS-Policy Statements to a WSDL Document ...............                                                51-9
   Oracle-Proprietary Security Policy Best Practices.........................................................................                 51-10
   Policy Subjects and Effective Policy................................................................................................       51-11

52 Configuring Message-Level Security for Web Services
   About Message-Level Security ...........................................................................................................    52-2
      Sample Sequence of Actions in Message-Level Security...........................................................                          52-2
   Message-Level Access Control Policies for Proxy Services ..........................................................                         52-3
   Configuring Proxy Service Message-Level Security ......................................................................                     52-3
      Creating an Active Intermediary Proxy Service: Main Steps ...................................................                            52-3
      Creating a Pass-Through Proxy Service: Main Steps.................................................................                       52-5
   Configuring Business Service Message-Level Security: Main Steps..........................................                                   52-6
   Examples of Custom WS-Policy Statements ....................................................................................                52-7
      Example: Encrypting Part of the SOAP Body and Header .......................................................                             52-7
      Example: Encryption Policy for a Business Service ...................................................................                    52-9
      Example: Encrypting a Custom SOAP Header ........................................................................                       52-11
      Example: Signing the Message Body and Headers ..................................................................                        52-11
      Example: Signing a SOAP Body with SAML Holder-of-Key .................................................                                  52-12
      Example: Authenticating, Signing, and Encrypting a SOAP Body and Headers
      with SAML Sender Vouches........................................................................................................        52-14
   Disabling Outbound WS-Security...................................................................................................          52-17

53 Using SAML with Oracle Service Bus
   Mapping Identity to a SAML Token .................................................................................................          53-1
   Configuring SAML Pass-Through Identity Propagation ..............................................................                           53-2
   Authenticating SAML Tokens in Proxy Service Requests ............................................................                           53-2
   Configuring SAML Authentication with Service Bus (SB) Transport........................................                                     53-3
   Using SAML Identity Switching........................................................................................................       53-3
      Protecting the Identity-Switching Resource................................................................................               53-3
   Troubleshooting SAML with Oracle Service Bus ...........................................................................                    53-4

54 Configuring Custom Authentication
   What Are Custom Authentication Tokens?...................................................................................... 54-2


                                                                                                                                               xxxi
Custom Authentication Token Use and Deployment ...............................................................                                         54-2
        Understanding Transport-Level Custom Authentication..............................................................                                         54-3
           Importing and Exporting and Transport-Level Custom Token Authentication ...................                                                            54-3
        Understanding Message-Level Custom Authentication ...............................................................                                         54-4
        Format of XPath Expressions...............................................................................................................                54-4
        Configuring Identity Assertion Providers for Custom Tokens....................................................                                            54-5
           Object Type of Custom Tokens .....................................................................................................                     54-6
           Configuring a Custom Token Type in an Identity Assertion Provider ..................................                                                   54-6
               Steps for Configuring a Custom Token Type in an Identity Assertion Provider...........                                                             54-7
               Setting the Supported and Active Types in the MBean .....................................................                                          54-7
        Configuring Custom Authentication Transport-Level Security ..................................................                                             54-8
           Steps for Configuring Custom Authentication Transport-Level Security..............................                                                     54-8
        Configuring Custom Authentication Message-Level Security ....................................................                                             54-9
           Steps for Configuring Custom Authentication Message-Level Security ................................                                                    54-9
        Propagating the Identity Obtained From Custom Authentication Tokens .............................                                                        54-10
        Combining WS-Security with Custom Username/Password and Tokens ...............................                                                           54-10

55 Message-Level Security with .Net 2.0
        Message-Level Security Between .NET 2.0 and Oracle Service Bus ...........................................                                                55-1
        What is .NET?.........................................................................................................................................    55-1
        Message-Level Security Configuration in .NET For Oracle Service Bus Interoperability .....                                                                55-1
        Oracle Service Bus Configuration for Message-Level Security with .NET ...............................                                                     55-3
           Sample WSDL File ..........................................................................................................................            55-5

Part VIII Appendix

A Transport SDK UML Sequence Diagrams
        Oracle Service Bus Runtime Inbound Messages ............................................................................. A-1
        Oracle Service Bus Runtime Outbound Messages ........................................................................... A-2
        Design Time Service Registration........................................................................................................ A-3




xxxii
List of Examples
    6–1   XML Data with Optional Element......................................................................................... 6-17
    6–2   XML Schema with Global and Local Elements ................................................................... 6-24
    7–1   calculateTotalPrice Function ..................................................................................................... 7-7
    7–2   Where Clause............................................................................................................................ 7-10
    7–3   If-Then Expression ................................................................................................................... 7-19
    7–4   Nested If-Then-Else Expression............................................................................................. 7-20
    7–5   Nested If-Then-Else Expression............................................................................................. 7-21
    7–6   Code for FLWOR Expression ................................................................................................. 7-23
    7–7   Example of Recursive Schema ............................................................................................... 7-23
    7–8   Example Input XML Document............................................................................................. 7-25
    7–9   Example Output XML Document.......................................................................................... 7-25
    7–10  XQuery Code for Group-By Expression ............................................................................... 7-26
    23–1  Syntax for Invoking a Custom Function with the Xalan Engine ...................................... 23-5
    30–1  Sample WSDL Definitions ...................................................................................................... 30-5
    30–2  Sample SOAP............................................................................................................................ 30-5
    39–1  Sample SocketEndPointConfiguration Definition ............................................................. 39-5
    39–2  Sample SocketRequestMetaDataXML Definition ............................................................... 39-6
    39–3  Sample SocketRequestHeadersXML Definition .................................................................. 39-6
    39–4  Sample SocketResponseMetaDataXML Definition............................................................. 39-7
    39–5  Sample SocketResponseHeadersXML Definition ............................................................... 39-7
    39–6  Example tModel ..................................................................................................................... 39-21
    39–7  Sample transport plugin.xml................................................................................................ 39-28
    39–8  Sample Socket Transport toc.xml for a Top-Level Entry in the Eclipse Help System . 39-29
    39–9  Sample context.xml (contexts_socketTransport.xml) for the sample socket transport 39-29
    39–10 Implementing CustomHelpProvider to provide help for your transport in the
          Oracle Service Bus Administration Console ...................................................................... 39-33
    39–11 JavaScript function that provides a redirect ...................................................................... 39-34
    39–12 application.xml for the sample socket transport Web application ................................. 39-34
    39–13 web.xml for the sample socket transport Web application ............................................. 39-35
    40–1 Connection to the Remote Server .......................................................................................... 40-8
    40–2 The TransportProviderFactory Class .................................................................................... 40-9
    40–3 Example of the Socket Transport Implementing the Interface........................................ 40-10
    40–4 Part of the Extension Point Schema..................................................................................... 40-10
    40–5 Plugin.xml File........................................................................................................................ 40-11
    40–6 Sample MANIFEST.MF File ................................................................................................. 40-11
    40–7 TransportManagerHelper Methods .................................................................................... 40-12
    43–1 Application Deployment Entry.............................................................................................. 43-2
    45–1 Getting the HttpServletRequest Property .......................................................................... 45-21
    49–1 LongRunningReliability.xml File ........................................................................................ 49-17
    49–2 Wssp1.2-Https.xml File (Partial).......................................................................................... 49-18
    51–1 WSDL with Policy References to Oracle Service Bus WS-Policies ................................... 51-9
    51–2 WSDL with Policy References to a Custom Inline Policy .................................................. 51-9
    52–1 Encrypting Part of the SOAP Body and Header ................................................................. 52-8
    52–2 Encrypting the Body with a Concrete Policy, Embedding the Policy in the WSDL
          Document .................................................................................................................................. 52-9
    52–3 Encrypting a Custom SOAP Header................................................................................... 52-11
    52–4 Requiring a Signature for SOAP Headers and Body ........................................................ 52-12
    52–5 Signing a SOAP Body with SAML Holder-of-Key Method ............................................ 52-13
    52–6 Signing a SOAP Body and Headers with SAML Sender-Vouches Method.................. 52-15
    54–1 SampleIdentityAsserter MDF: SupportedTypes Attribute ............................................... 54-7
    54–2 SampleIdentityAsserter MDF: ActiveTypes Attribute with Default ............................... 54-8
    55–1 Configuring WS-Policy for Message-Level Security .......................................................... 55-5




                                                                                                                                                   xxxiii
List of Figures
        2–1    New Split-Join .......................................................................................................................... 2-43
        2–2    Parallel Node ............................................................................................................................ 2-44
        2–3    Completed Split-Join Ready for Testing............................................................................... 2-45
        2–4    New Split-Join With Edited Labels ....................................................................................... 2-46
        2–5    For Each Node Labeled "Iterate Through Orders".............................................................. 2-47
        2–6    Error Handler ........................................................................................................................... 2-48
        2–7    Completed Split-Join Ready for Testing............................................................................... 2-49
        2–8    Add Scope Button .................................................................................................................... 2-57
        2–9    Add Else If Button.................................................................................................................... 2-58
        2–10   Add Else If Button.................................................................................................................... 2-59
        2–11   Debugging a Proxy Service .................................................................................................... 2-68
        4–1    Branch Node With "Submit" Operation From WSDL and "Default" Branch .................. 4-58
        4–2    Publish Table Action ............................................................................................................... 4-60
        4–3    Routing Table Action............................................................................................................... 4-68
        5–1    Data Transformation from Multiple Sources to One Target ................................................ 5-2
        6–1    New XQuery Transformation ................................................................................................... 6-4
        6–2    Selecting Source Types ............................................................................................................... 6-7
        6–3    Element-to-Element Links ......................................................................................................... 6-8
        6–4    Attribute-to-Element Link ......................................................................................................... 6-9
        6–5    Repeating-Group–to–Repeating-Group Link ...................................................................... 6-10
        6–6    Example of If-Then-Else Expression ..................................................................................... 6-12
        6–7    If-Then-Else Expression in Target Expression View........................................................... 6-12
        6–8    FLWOR Expression.................................................................................................................. 6-13
        6–9    Typeswitch Expression ........................................................................................................... 6-15
        6–10   Remove Empty Node .............................................................................................................. 6-18
        6–11   Retain Empty Node ................................................................................................................. 6-18
        6–12   Test View................................................................................................................................... 6-19
        7–1    Combining Data From Different Schemas .............................................................................. 7-2
        7–2    Design View of XQuery Transformation................................................................................. 7-3
        7–3    Data Transformation in Design View ...................................................................................... 7-4
        7–4    Data Transformation in Design View ...................................................................................... 7-5
        7–5    Adding a Constraint ................................................................................................................... 7-6
        7–6    Adding Data in the QuoteResponse Element ......................................................................... 7-7
        7–7    totalCost Calculation in Design View ...................................................................................... 7-9
        7–8    Creating a Union ...................................................................................................................... 7-11
        7–9    Creating Implied Links ........................................................................................................... 7-12
        7–10   Repeating-Source–to–Nonrepeating Target Transformation ............................................ 7-12
        7–11   Repeating-Source–to–Nonrepeating-Target Data Transformation .................................. 7-13
        7–12   Repeating-Source–to–Nonrepeating-Target Data Transformation .................................. 7-14
        7–13   Nonrepeating-Source–to–Repeating-Target Transformation............................................ 7-15
        7–14   Creating a Union for Structural Links .................................................................................. 7-16
        7–15   XQuery Transformation for If-Then-Else Example............................................................. 7-19
        7–16   XQuery Example - FLWOR Expression................................................................................ 7-22
        7–17   Mapping Recursive Elements ................................................................................................ 7-24
        19–1   Select Reference Fields ............................................................................................................ 19-6
        19–2   Reference Field ......................................................................................................................... 19-7
        19–3   Data Delimiter .......................................................................................................................... 19-7
        19–4   Escape Character ...................................................................................................................... 19-8
        22–1   The Derby Database for a Domain ........................................................................................ 22-2
        24–1   Client Invoking a SOA Binding Service Synchronously .................................................... 24-4
        24–2   SOA Binding Service Invoking an External Service Synchronously................................ 24-5
        24–3   Client Invoking a SOA Binding Service Asynchronously ................................................. 24-7
        24–4   SOA Binding Service Invoking an External Service Asynchronously ............................. 24-9
        24–5   Operations in a Synchronous Exchange Through Oracle Service Bus........................... 24-15

xxxiv
24–6   SOA Composite Invoking an SOA Composite Through Oracle Service Bus................                                                                   24-20
25–1   Oracle Service Bus Services Interacting With an EIS ..........................................................                                        25-2
25–2   A Client Invoking an EIS Service Through Oracle Service Bus ......................................                                                   25-13
25–3   An EIS Invoking an External Service Through Oracle Service Bus ................................                                                      25-14
29–1   An EJB Invokes an External Service ......................................................................................                             29-6
29–2   A Non-EJB Client Invokes an EJB..........................................................................................                             29-7
29–3   An EJB Invokes an EJB ............................................................................................................                    29-8
30–1   MQ Service Uses a JMS Message ID to Correlate the Request/Response Message ....                                                                      30-13
30–2   JAX-RPC Client with Oracle Service Bus Proxy Service ..................................................                                              30-13
30–3   Oracle Service Bus as a Client of an Oracle WebLogic Server JAX-RPC
       Request/Response Service ...................................................................................................                         30-14
31–1   Using Local Transport to Implement Convergence ...........................................................                                            31-3
31–2   Using Local Transport to Access Multiple Business Services ...........................................                                                31-3
31–3   Front-end Proxy as Security Pass-through to Local Proxies..............................................                                               31-5
31–4   Front-end Proxy Processes All Security Headers Before Forwarding to Local Proxies                                                                     31-6
32–1   Conflicts – When no RM policy assertions are specified for the WSDL ..........................                                                        32-5
32–2   Security tab for a Proxy Service .............................................................................................                        32-9
32–3   Transport-Level Policy ............................................................................................................                   32-9
32–4   List of Predicates ....................................................................................................................              32-10
33–1   Oracle Service Bus Front End...............................................................................................                          33-20
33–2   Messages Sent Through Oracle Service Bus.......................................................................                                      33-20
34–1   Invoking Oracle BPEL Processes Synchronously Through Oracle Service Bus .............                                                                 34-3
34–2   Oracle BPEL Processes Invoking a Service Synchronously Through Oracle Service
       Bus ..............................................................................................................................................    34-4
34–3   Invoking Oracle BPEL Processes Asynchronously Through Oracle Service Bus...........                                                                   34-5
34–4   Oracle BPEL Processes Invoking a Service Asynchronously Through Oracle Service
       Bus ..............................................................................................................................................    34-7
34–5   Operations in a Synchronous Exchange Through Oracle Service Bus...........................                                                           34-14
34–6   One BPEL Process Invoking Another BPEL Process Through Oracle Service Bus ......                                                                     34-19
35–1   WTC Message Handling .........................................................................................................                        35-2
36–1   From Data Source to Web Service Client..............................................................................                                  36-2
36–2   Request and Response from the Oracle Service Bus Test Console ...................................                                                     36-5
38–1   Message Flow Through Oracle Service Bus .........................................................................                                     38-2
38–2   Design Time UML Diagram ...................................................................................................                           38-7
38–3   EndPointConfiguration Properties........................................................................................                              38-8
38–4   Runtime UML Diagram ..........................................................................................................                        38-9
38–5   Sample Oracle Service Bus Threading Model....................................................................                                        38-16
38–6   Flow of Attachments .............................................................................................................                    38-20
39–1   Transport Subsystem Overview ............................................................................................                             39-3
39–2   Error Case 1.............................................................................................................................            39-16
39–3   Error Case 2.............................................................................................................................            39-17
39–4   Error Case 3.............................................................................................................................            39-18
39–5   Custom Transport Help in the Development and Run-Time Environments ...............                                                                   39-23
39–6   Pressing F1 on a Transport Configuration Page to Display Help for the Transport ...                                                                  39-24
39–7   Custom Transport Help in Eclipse ......................................................................................                              39-25
39–8   Custom Transport Help from the Oracle Service Bus Administration Console...........                                                                  39-26
39–9   Oracle Service Bus Administration Console Help Framework.......................................                                                      39-32
40–1   Transport Configuration Page in Eclipse .............................................................................                                 40-6
40–2   Plug-In Packaging ....................................................................................................................                40-7
42–1   Sample Socket Transport Architecture ................................................................................                                 42-2
42–2   SocketEndpointConfiguration Properties ............................................................................                                   42-3
42–3   Request/Response Header and Metadata Configurations ...............................................                                                   42-3
42–4   Selecting the Message Flow Icon ...........................................................................................                           42-8
42–5   Editing the Message Flow.......................................................................................................                       42-8
42–6   Adding an Action.....................................................................................................................                 42-8



                                                                                                                                                             xxxv
42–7   Starting the Test Console ........................................................................................................ 42-9
        42–8   Test Console.............................................................................................................................. 42-9
        42–9   Successful Test........................................................................................................................ 42-10
        45–1   Inbound and Outbound Security........................................................................................... 45-2
        45–2   How Service Accounts Are Used......................................................................................... 45-10
        50–1   Message Protection With an Oracle Web Services Manager Client Agent ................... 50-14
        50–2   Message Protection With an Oracle Web Services Manager Server Agent................... 50-14
        50–3   Message Protection With an Oracle Web Services Manager Client and Server
               Agents ...................................................................................................................................... 50-15
        50–4   Message Protection With an Oracle Web Services Manager Gateway .......................... 50-15
        50–5   Authentication with an Oracle Web Services Manager Client Agent............................ 50-16
        50–6   Perimeter Security with Oracle Web Services Manager Gateway.................................. 50-16
        50–7   Identity Propagation with Oracle Web Services Manager Gateway.............................. 50-17
        52–1   Binding a Certificate to an Abstract Policy .......................................................................... 52-8
        54–1   Identity Assertion and Custom Tokens ................................................................................ 54-6
        A–1    Inbound Messages at Runtime................................................................................................. A-2
        A–2    Outbound Messages at Runtime ............................................................................................. A-3
        A–3    Service Registration .................................................................................................................. A-4




xxxvi
List of Tables
    2–1    Differences in Harvesting Scenarios .................................................................................... 2-36
    3–1    BPEL-10g Transport Configuration Options for Business Services.................................... 3-2
    3–2    DSP Transport Configuration Options for Business Services ............................................. 3-3
    3–3    EJB Transport Configuration Options for Business Services............................................... 3-4
    3–4    E-Mail Transport Configuration Options for Business Services ......................................... 3-6
    3–5    E-Mail Transport Configuration Options for Proxy Services.............................................. 3-6
    3–6    File Transport Configuration Options for Business Services .............................................. 3-7
    3–7    File Transport Configuration Options for Proxy Services ................................................... 3-7
    3–8    FTP Transport Configuration Options for Business Services.............................................. 3-8
    3–9    FTP Transport Configuration Options for Proxy Services................................................... 3-9
    3–10   HTTP Transport Configuration Options for Business Services ....................................... 3-10
    3–11   HTTP Transport Configuration Options for Proxy Services ............................................ 3-13
    3–12   JCA Transport Configuration Options ................................................................................ 3-15
    3–13   JEJB Transport Configuration for Business Services ......................................................... 3-18
    3–14   JEJB Transport Configuration for Proxy Services .............................................................. 3-19
    3–15   JMS Transport Configuration Options for Business Services........................................... 3-20
    3–16   JMS Transport Configuration Options for Proxy Services ............................................... 3-24
    3–17   MQ Transport Configuration Options for Business Services........................................... 3-28
    3–18   MQ Transport Configuration Options for Proxy Services................................................ 3-31
    3–19   SB Transport Configuration Options for Business Services ............................................. 3-33
    3–20   SB Transport Configuration Options for Proxy Services .................................................. 3-33
    3–21   SFTP Transport Configuration Options for Business Services......................................... 3-34
    3–22   SFTP Transport Configuration Options for Proxy Services.............................................. 3-35
    3–23   SOA-DIRECT Transport Configuration .............................................................................. 3-36
    3–24   Tuxedo Transport Configuration Options for Business Services .................................... 3-38
    3–25   Tuxedo Transport Configuration Options for Proxy Services ......................................... 3-40
    3–26   WS Transport Configuration Options for Business Services............................................ 3-42
    3–27   WS Transport Configuration Options for Proxy Services................................................. 3-43
    4–1    Alert Destination Editor Options............................................................................................. 4-2
    4–2    E-mail Recipient Options .......................................................................................................... 4-2
    4–3    JMS Destination Options........................................................................................................... 4-3
    4–4    Business Service Editor Options .............................................................................................. 4-4
    4–5    Message Type Business Service Options ................................................................................ 4-5
    4–6    Business Service Transport Configuration Options.............................................................. 4-7
    4–7    Business Service Message Handling Options ..................................................................... 4-11
    4–8    Business Service Service Policy Configuration Options ................................................... 4-14
    4–9    Business Service Security Configuration Options.............................................................. 4-15
    4–10   Proxy Service Editor Options ................................................................................................ 4-15
    4–11   Proxy Service Message Type Options.................................................................................. 4-17
    4–12   Proxy Service Operation Selection Options ........................................................................ 4-19
    4–13   Proxy Service Message Handling Options.......................................................................... 4-21
    4–14   Proxy Service SOAP Binding Options ................................................................................. 4-25
    4–15   Proxy Service Transport Configuration Options ............................................................... 4-25
    4–16   Proxy Service Service Policy Options .................................................................................. 4-28
    4–17   Proxy Service Message-Level Security Options ................................................................. 4-29
    4–18   Oracle Service Bus Configuration Options ......................................................................... 4-31
    4–19   New Oracle Service Bus Project Options............................................................................. 4-32
    4–20   MQ Resource Options ............................................................................................................ 4-33
    4–21   Configuration JAR Export Options ...................................................................................... 4-35
    4–22   Resource Export Options ....................................................................................................... 4-35
    4–23   Resource Export Options ....................................................................................................... 4-36
    4–24   Configuration JAR Import ..................................................................................................... 4-36
    4–25   Configuration JAR Import Options...................................................................................... 4-37



                                                                                                                                          xxxvii
4–26   Configuration ZIP Import......................................................................................................             4-37
          4–27   Configuration ZIP Import Options ......................................................................................                    4-37
          4–28   URL Import Options...............................................................................................................          4-38
          4–29   URL Import Options...............................................................................................................          4-38
          4–30   New JNDI Provider Resource Options................................................................................                         4-39
          4–31   Proxy Server Configuration Options ...................................................................................                     4-39
          4–32   Message Flow Nodes..............................................................................................................           4-41
          4–33   Message Flow Route Node Communication Actions........................................................                                      4-41
          4–34   Message Flow Route Node Flow Control Actions .............................................................                                 4-42
          4–35   Message Flow Stage Node Communication Actions.........................................................                                     4-42
          4–36   Message Flow Stage Node Flow Control Actions..............................................................                                 4-43
          4–37   Message Flow Stage Node Message Processing Actions ..................................................                                      4-43
          4–38   Message Flow Stage Node Reporting Actions....................................................................                              4-44
          4–39   Alert Action Options ..............................................................................................................        4-46
          4–40   Assign Action Options ...........................................................................................................          4-47
          4–41   Flow Options ...........................................................................................................................   4-47
          4–42   Conditional Branch Options..................................................................................................               4-48
          4–43   Branch Options........................................................................................................................     4-48
          4–44   Delete Action Options ............................................................................................................         4-48
          4–45   Dynamic Publish Action Options.........................................................................................                    4-49
          4–46   Dynamic Routing Action Properties ....................................................................................                     4-50
          4–47   For-Each Action Properties....................................................................................................             4-51
          4–48   If and Else-If Action Options.................................................................................................             4-52
          4–49   Insert Action Options .............................................................................................................        4-53
          4–50   Java Callout Action Options..................................................................................................              4-54
          4–51   Log Action Options.................................................................................................................        4-55
          4–52   MFL Transform Action Options ...........................................................................................                   4-57
          4–53   Pipeline Pair Node Options...................................................................................................              4-58
          4–54   Publish Action Options ..........................................................................................................          4-59
          4–55   Publish Table Options ............................................................................................................         4-60
          4–56   Case Action Options ...............................................................................................................        4-61
          4–57   Raise Error Action Options....................................................................................................             4-61
          4–58   Rename Action Options .........................................................................................................            4-62
          4–59   Replace Action Options..........................................................................................................           4-63
          4–60   Reply Action Options .............................................................................................................         4-64
          4–61   Report Action Options ...........................................................................................................          4-64
          4–62   Report Action Execution Results ..........................................................................................                 4-65
          4–63   Route Node Options...............................................................................................................          4-65
          4–64   Routing Action Options .........................................................................................................           4-66
          4–65   Routing Options Action Properties ......................................................................................                   4-67
          4–66   Routing Table Options ...........................................................................................................          4-68
          4–67   Case Action Options ...............................................................................................................        4-69
          4–68   Service Callout Action Options.............................................................................................                4-69
          4–69   SOAP Body, Payload Parameters, and Payload Document Options ..............................                                                 4-70
          4–70   SOAP Body, Payload Parameters, and Payload Document Option Descriptions ........                                                           4-70
          4–71   Start Node Options .................................................................................................................       4-72
          4–72   Transport Header Action Options........................................................................................                    4-73
          4–73   Validate Action Options.........................................................................................................           4-75
          4–74   Modify JAR Dependencies Properties .................................................................................                       4-75
          4–75   New SMTP Server Options....................................................................................................                4-76
          4–76   UDDI Registry Options..........................................................................................................            4-76
          4–77   Type Association Properties..................................................................................................              4-77
          4–78   Reference Dependency Properties........................................................................................                    4-78
          4–79   Clone Project Options.............................................................................................................         4-78
          4–80   New Service Key Provider Options .....................................................................................                     4-78


xxxviii
4–81    New WS-Policy Options ........................................................................................................ 4-79
4–82    New Service Account Options .............................................................................................. 4-80
4–83    Service Account General Options......................................................................................... 4-80
4–84    Service Account Static User Options.................................................................................... 4-81
4–85    Service Account User Mappings Options ........................................................................... 4-81
4–86    XQuery Resource Options ..................................................................................................... 4-84
4–87    XSLT Resource Options ......................................................................................................... 4-84
4–88    Dynamic XQuery Options ..................................................................................................... 4-85
4–89    Variable Structure Options .................................................................................................... 4-86
4–90    New XSL Transformation Options....................................................................................... 4-87
4–91    Split-Join Communication Operations................................................................................. 4-88
4–92    Split-Join Flow Control Operations...................................................................................... 4-88
4–93    Split-Join Assign Operations ................................................................................................. 4-89
4–94    Split-Join Start Node Options - Imports Tab....................................................................... 4-90
4–95    Split-Join Start Node Options - General Tab....................................................................... 4-90
4–96    Split-Join Variable Options.................................................................................................... 4-90
4–97    Split-Join Error Handler Options - Catch Tab .................................................................... 4-91
4–98    Split-Join Error Handler Options - CatchAll Tab ............................................................... 4-91
4–99    Split-Join Invoke Service Options - Operation Tab............................................................ 4-91
4–100   Split-Join Invoke Service Options - Input Variable Tab .................................................... 4-92
4–101   Split-Join Invoke Service Options - Output Variable Tab................................................. 4-92
4–102   Split-Join Reply Options - Operation Tab ........................................................................... 4-93
4–103   Split-Join Reply Options - Variable Tab .............................................................................. 4-93
4–104   Split-Join For Each Options - Counter Variables Tab ........................................................ 4-94
4–105   Split-Join For Each Options - Completion Condition ........................................................ 4-94
4–106   Split-Join If and Else If Options ............................................................................................ 4-95
4–107   Split-Join Raise Error Options ............................................................................................... 4-95
4–108   Split-Join Repeat Until Options ............................................................................................ 4-95
4–109   Split-Join While Options ........................................................................................................ 4-96
4–110   Split-Join Wait Options .......................................................................................................... 4-96
4–111   Split-Join Assign Operation Options.................................................................................... 4-97
4–112   Split-Join Copy Options ......................................................................................................... 4-98
4–113   Split-Join Delete Options ....................................................................................................... 4-99
4–114   Split-Join Insert Options......................................................................................................... 4-99
4–115   Split-Join Java Callout Options ........................................................................................... 4-100
4–116   Split-Join Log Options .......................................................................................................... 4-101
4–117   Split-Join Replace Options ................................................................................................... 4-101
4–118   Split-Join Receive Options - Operation Tab ...................................................................... 4-102
4–119   Split-Join Receive Options - Variable Tab ......................................................................... 4-102
4–120   Split-Join Counter Variable Options .................................................................................. 4-102
4–121   Split-Join Variable Options.................................................................................................. 4-103
4–122   Split-Join New Message Variable Options ........................................................................ 4-103
4–123   Split-Join SOAP Fault Variable Options ............................................................................ 4-104
4–124   New Split-Join Options ........................................................................................................ 4-104
4–125   New Split-Join Options - Selecting an Operation............................................................. 4-104
5–1     Restrictions Applicable to the XQuery Test View................................................................. 5-2
6–1     Clauses of FLWOR Expressions............................................................................................ 6-13
6–2     Clauses of Typeswitch Expressions ..................................................................................... 6-15
6–3     Right-Click Menu Options..................................................................................................... 6-21
6–4     Link Patterns............................................................................................................................ 6-22
6–5     Graphical Representation of XML Components ................................................................ 6-25
9–1     List of Toolbar Buttons.............................................................................................................. 9-1
9–2     Tree Icon Descriptions............................................................................................................... 9-3
10–1    Message Format ...................................................................................................................... 10-1
11–1    Fields in Message Format – Field Description.................................................................... 11-1



                                                                                                                                              xxxix
11–2    Fields in Message Format – Field Occurrence ....................................................................                             11-2
     11–3    Fields in Message Format – Field Data Options.................................................................                               11-2
     11–4    Fields in Message Format – Field Attributes ......................................................................                           11-2
     11–5    Fields in Message Format – Termination ............................................................................                          11-3
     11–6    Fields in Message Format – Literal.......................................................................................                    11-4
     11–7    Fields in Message Format – Field Update Buttons.............................................................                                 11-4
     12–1    Groups in Message Format – Group Description ..............................................................                                  12-1
     12–2    Groups in Message Format – Group Occurrence...............................................................                                   12-1
     12–3    Groups in Message Format – Group Attributes .................................................................                                12-2
     12–4    Groups in Message Format – Group Delimiter ..................................................................                                12-2
     12–5    Groups in Message Format – Group Update Buttons .......................................................                                      12-2
     13–1    Reference Detail Window – Reference Description ...........................................................                                  13-1
     13–2    Reference Detail Window – Field Occurrence....................................................................                               13-1
     13–3    Reference Detail Window – Field Update Buttons ............................................................                                  13-2
     14–1    Comments about Message Format .......................................................................................                        14-1
     15–1    Format Builder Options .........................................................................................................             15-1
     15–2    Format Builder Options – Character Encoding Options...................................................                                       15-1
     15–3    Format Builder Options – XML Formatting Options ........................................................                                     15-1
     15–4    Format Builder Options – XML Content Model Options .................................................                                         15-1
     16–1    EDI Importer Options.............................................................................................................            16-1
     16–2    XML Schema Importer Options............................................................................................                      16-2
     16–3    COBOL Copybook Importer Options ..................................................................................                           16-2
     16–4    COBOL Copybook Importer Options – Byte Order ..........................................................                                      16-2
     16–5    COBOL Copybook Importer Options – Character Set ......................................................                                       16-3
     16–6    COBOL Copybook Importer Options – Action Buttons ...................................................                                         16-3
     16–7    C Structure Importer Options – Input .................................................................................                       16-4
     16–8    C Structure Importer Options – Output ..............................................................................                         16-4
     16–9    FML Field Table Class Sample Files.....................................................................................                      16-6
     16–10   FML Field Table Class Importer Options ............................................................................                          16-7
     16–11   FML Field Table Class Importer Options – FML Field Selector.......................................                                           16-7
     16–12   FML Field Table Class Importer Options – Action Buttons .............................................                                        16-7
     17–1    File Menu Commands ............................................................................................................              17-2
     17–2    Edit Menu Commands ...........................................................................................................               17-2
     17–3    Display Menu Commands.....................................................................................................                   17-2
     17–4    Generate Menu Commands ..................................................................................................                    17-3
     17–5    Translate Menu Command....................................................................................................                   17-3
     17–6    Shortcut Menu Commands ...................................................................................................                   17-3
     17–7    Find Options ............................................................................................................................    17-5
     17–8    Goto Options............................................................................................................................     17-5
     18–1    File Menu Commands ............................................................................................................              18-1
     18–2    Edit Menu Commands ...........................................................................................................               18-2
     18–3    Insert Menu Commands ........................................................................................................                18-2
     18–4    View Menu Commands .........................................................................................................                 18-3
     18–5    Tools Menu Commands.........................................................................................................                 18-3
     18–6    Help Menu Commands..........................................................................................................                 18-3
     18–7    Shortcut Menu Commands ...................................................................................................                   18-4
     19–1    Character Delimiters...............................................................................................................          19-5
     20–1    File Menu Commands ............................................................................................................              20-2
     20–2    Shortcut Menu Commands ...................................................................................................                   20-2
     21–1    Supported MFL Data Types ..................................................................................................                  21-1
     21–2    COBOL Data Types ................................................................................................................            21-5
     23–1    Supported Java Method Types for Custom Functions ......................................................                                      23-3
     24–1    SOA-DIRECT Transport Configuration ............................................................................                             24-12
     25–1    JCA Transport Configuration Options ..............................................................................                          25-16
     26–1     Parameters for Configuring HTTP Transport for Proxy Service ....................................                                            26-2


xl
26–2    Parameters for Configuring HTTP Transport for Business Service ................................                                                  26-4
26–3    Response code handling for HTTP business services .......................................................                                        26-9
26–4     Parameters for Configuring E-mail Transport for Proxy Services................................                                                 26-10
26–5    Parameters for Configuring E-mail Transport for Business Services............................                                                   26-11
26–6    Parameters for Configuring File Transport for Proxy Services......................................                                              26-12
26–7    Parameters for Configuring File Transport for Business Services.................................                                                26-13
26–8     Parameters for Configuring FTP Transport for Business Services ...............................                                                 26-14
26–9    Parameters for Configuring FTP Transport for Business Service..................................                                                 26-16
26–10   Environment Values .............................................................................................................                26-17
26–11   Configuring SFTP Proxy Service ........................................................................................                         26-22
26–12   Transport Headers and Metadata.......................................................................................                           26-24
26–13   Configuring SFTP Business Service ...................................................................................                           26-26
26–14   Properties Imported from UDDI Registry.........................................................................                                 26-28
27–1    Environment Values ...............................................................................................................               27-2
27–2    Fields for Configuring SB Transport for Proxy Services ...................................................                                       27-3
27–3     Fields for Configuring SB Transport for Business Services .............................................                                         27-4
28–1    EJB Transport Configuration Options for Business Services............................................                                            28-4
29–1    JEJB Transport Configuration for Proxy Services ............................................................                                    29-10
29–2    JEJB Transport Configuration for Business Services .......................................................                                      29-11
30–1    Differences Between Message ID and Correlation ID Patterns......................................                                                30-10
30–2    JMS Transport Headers........................................................................................................                   30-15
32–1    Fields Required to Configure a Proxy Service to Use the WS Transport .......................                                                     32-7
32–2    Fields Required to Configure WS Transport for a Proxy Service ....................................                                               32-7
32–3    Configuring a Business Service to use WS Transport .....................................................                                        32-16
32–4    Configuring WS Transport for Business Service..............................................................                                     32-16
33–1    MQ Proxy Service Configuration .........................................................................................                         33-7
33–2    MQ Business Service Configuration ..................................................................................                            33-10
33–3    Transport Headers ................................................................................................................              33-13
34–1    BPEL transport environment variables................................................................................                             34-3
34–2    Specifying an Endpoint URI..................................................................................................                     34-9
34–3    BPEL transport configuration .............................................................................................                      34-10
35–1    Tuxedo Exceptions..................................................................................................................              35-9
35–2    Buffer Transformation for Any XML Service ...................................................................                                   35-14
35–3    Buffer Transformation for Messaging Service ..................................................................                                  35-15
38–1    Built-In Transformations......................................................................................................                  38-21
39–1    Context IDs for Transport Configuration Pages ..............................................................                                    39-30
42–1    Key Sample Transport Provider Directories.......................................................................                                 42-4
45–1    Options for Identity Propagation .........................................................................................                       45-4
45–2    Combinations of Transport-Level Security Requirements ...............................................                                            45-5
45–3    Combinations of Message-Level Security Requirements..................................................                                            45-7
45–4    Authentication Providers.....................................................................................................                   45-16
45–5    ContextHandler Properties for HTTP Transport Authentication..................................                                                   45-19
45–6    ContextHandler Properties for Message-Level Custom Authentication and Access
        Control....................................................................................................................................     45-20
45–7    Additional Message-Level Security ContextHandler Properties for HTTP Proxy
        Services ...................................................................................................................................    45-21
47–1    Oracle Service Bus Administrative Security Roles.............................................................                                    47-1
47–2    Oracle WebLogic Server Security Roles...............................................................................                             47-2
47–3    Role-Based Operations Access in Oracle Service Bus Administration Console ............                                                           47-3
47–4    Role-Based Resource Browser Access in Oracle Service Bus Administration Console                                                                  47-3
47–5    Role-Based Project Explorer Access in Oracle Service Bus Administration Console ...                                                              47-5
47–6    Role-Based Security Configuration Access in Oracle Service Bus Administration
        Console .....................................................................................................................................    47-6
47–7    Role-Based System Administration Access in Oracle Service Bus Administration
        Console .....................................................................................................................................    47-6



                                                                                                                                                           xli
47–8   Role-Based Change Center Access in Oracle Service Bus Administration Console .....                                                47-7
       47–9   Oracle Service Bus Groups ....................................................................................................    47-8
       49–1   WS Transport Authentication Matrix ................................................................................              49-18
       50–1   Valid and Invalid Combinations of the &wsp and &wssp Query Parameters..............                                               50-7
       50–2   Supported OWSM Seed Policies...........................................................................................           50-9
       50–3   Unsupported assertions .......................................................................................................   50-12
       51–1   WSDL Elements That Can Be Protected in Oracle Service Bus........................................                                 51-8




xlii
Preface

           This preface describes the document accessibility features and conventions of this
           guide--Oracle Fusion Middleware Developer's Guide for Oracle Service Bus.


Documentation Accessibility
           For information about Oracle's commitment to accessibility, visit the Oracle
           Accessibility Program website at
           http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

           Access to Oracle Support
           Oracle customers have access to electronic support through My Oracle Support. For
           information, visit
           http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit
           http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are
           hearing impaired.


Conventions
           The following text conventions are used in this document:

           Convention           Meaning
           boldface             Boldface type indicates graphical user interface elements associated
                                with an action, or terms defined in text or the glossary.
           italic               Italic type indicates book titles, emphasis, or placeholder variables for
                                which you supply particular values.
           monospace            Monospace type indicates commands within a paragraph, URLs, code
                                in examples, text that appears on the screen, or text that you enter.




                                                                                                            xliii
xliv
What's New in This Guide for Release
                                              11.1.1.6.x

                   For Release 11.1.1.6.x, this guide has been updated in several ways. The following
                   table lists the sections that have been added or changed. If a feature was not available
                   in the first release of 11.1.1.6.x, the last columns denote which documentation release
                   contains the update.
                   For a list of known issues (release notes), see the "Known Issues for Oracle SOA
                   Products and Oracle AIA Foundation Pack" at
                   http://www.oracle.com/technetwork/middleware/docs/soa-aiafp-know
                   nissuesindex-364630.html.

Sections                        Changes Made                        11.1.1.6.0 11.1.1.6.1 11.1.1.6.2 11.1.1.6.3
Chapter 22 Development
Environment Setup
Section 22.1, "Running       Section revised to include support     X
Multiple Development Servers for multiple development domains
with Derby"                  using Derby.
Chapter 25 JCA Transport
Section 25.2.8, "Using Custom   Section added to describe how to use X
JCA Adapters"                   custom JCA adapters with Oracle
                                Service Bus.
Chapter 26 HTTP and Poller
Transports
Section 26.1.3.2.1, "Response   Section revised to document the     X
Codes and Error Handling for    improved HTTP Response status
HTTP Business Services"         code handling.
Chapter 31 Local Transport
Section 31.5, "Using OWSM       Section added to describe how       X
Security with Local Proxies"    Oracle Service Bus handles Oracle
                                Web Service Manager (OWSM)
                                policies on proxy-to-proxy
                                invocations.
Chapter 50 Securing Oracle
Service Bus with Oracle Web
Services Manager
Section 50.2.8, "Supported      Section revised to include added    X
Seed Policies and               support for OWSM transport
Unsupported Assertions"         policies.




                                                                                                            xlv
xlvi
Part I
       Part I   IDE Help for Oracle Service Bus

This part contains the Oracle Service Bus IDE help, which includes the following
chapters:
■   Chapter 1, "Introduction to Oracle Service Bus"
■   Chapter 2, "Tasks"
■   Chapter 3, "Transport Configuration"
■   Chapter 4, "User Interface Reference"
Osb developer's guide
1
      1Introduction to Oracle Service Bus

This part tells how to use the Oracle Service Bus plug-ins for Eclipse to configure
services and other service bus resources. These are design-time activities that, except
where noted, do not require a running Oracle WebLogic Server instance. The
Web-based Oracle Service Bus Administration Console, also provided with Oracle
Service Bus, provides the same design tools as the Oracle Service Bus plug-ins, and it
also provides run-time activities such as monitoring. You need a running Oracle
WebLogic Server instance to use the Oracle Service Bus Administration Console.
Oracle Service Bus is a configuration-based, policy-driven enterprise service bus. It
provides highly scalable and reliable service-oriented integration, service
management, and traditional message brokering across heterogeneous IT
environments. It combines intelligent message brokering with routing and
transformation of messages, along with service monitoring and administration in a
unified software product. For more information, see the Oracle Fusion Middleware
Concepts and Architecture for Oracle Service Bus at
http://www.oracle.com/pls/as1111/lookup?id=OSBCA.




                                                    Introduction to Oracle Service Bus 1-1
1-2 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
2
                                                                                      Tasks
                                                                                      2




            This chapter describes how to perform tasks in the Oracle Service Bus IDE, such as
            working with projects and resources, business and proxy services, Split-Joins, message
            flows, and global resources.
            This chapter includes the following sections:
            ■   Section 2.1, "Working with Projects, Folders, Resources, and Configurations"
            ■   Section 2.2, "Working with Business Services"
            ■   Section 2.3, "Working with Proxy Services"
            ■   Section 2.4, "Working with Proxy Service Message Flows"
            ■   Section 2.5, "Working with Alert Destinations"
            ■   Section 2.6, "Working with MQ Connections"
            ■   Section 2.7, "Working with Oracle Enterprise Repository and Harvester."
            ■   Section 2.8, "Working with UDDI Registries"
            ■   Section 2.9, "Working with Split-Join"
            ■   Section 2.10, "Using the Oracle Service Bus Debugger"


2.1 Working with Projects, Folders, Resources, and Configurations
            This section tells how to perform the following tasks:
            ■   Section 2.1.1, "Resource Naming Restrictions"
            ■   Section 2.1.2, "Editing Resources"
            ■   Section 2.1.3, "Cloning Oracle Service Bus Projects and Folders"
            ■   Section 2.1.4, "Creating Oracle Service Bus Configuration Projects"
            ■   Section 2.1.5, "Creating Oracle Service Bus Projects"
            ■   Section 2.1.6, "Creating Servers"
            ■   Section 2.1.7, "Creating Custom Resources"
            ■   Section 2.1.8, "Creating and Editing JNDI Provider Resources"
            ■   Section 2.1.9, "Creating Proxy Server Resources"
            ■   Section 2.1.10, "Creating Message Format Files"
            ■   Section 2.1.11, "Exporting Resources"
            ■   Section 2.1.12, "Generating an Effective WSDL"


                                                                                          Tasks   2-1
Working with Projects, Folders, Resources, and Configurations


                    ■    Section 2.1.13, "Modifying JAR Dependencies"
                    ■    Section 2.1.14, "Importing Resources"
                    ■    Section 2.1.15, "Creating Service Account Resources"
                    ■    Section 2.1.16, "Creating Service Key Provider Resources"
                    ■    Section 2.1.17, "Creating SMTP Server Resources"
                    ■    Section 2.1.18, "Creating XQuery Transformations"
                    ■    Section 2.1.19, "Creating XSL Transformations"


2.1.1 Resource Naming Restrictions
                    When naming any directory or resource in an Oracle Service Bus configuration, the
                    following characters are allowed:
                    ■    All Java identifier characters, including Java keywords, as described in the
                         "Identifiers" and "Keywords" sections of the Java Language Specification at
                         http://java.sun.com/docs/books/jls/third_
                         edition/html/lexical.html#3.8
                    ■    Blanks, periods, and hyphens within the names (not leading or trailing)
                    Characters such as /  * : " < > ? | are not allowed.


2.1.2 Editing Resources
                    Edit resources using the built-in editors. For example, edit a proxy service by
                    double-clicking its name in the Project Explorer.
                    Do not manually edit resource files as text or XML files. This can result in
                    unpredictable behavior. Do not manually edit these resource types:
                    ■    Alert Destination
                    ■    Business Service
                    ■    Custom Resources
                    ■    Proxy Service
                    ■    Service Account
                    ■    Service Key Provider
                    ■    Split-Join
                    ■    JNDI Provider
                    ■    SMTP Server
                    ■    Proxy Server
                    ■    UDDI Registry


2.1.3 Cloning Oracle Service Bus Projects and Folders
                    To clone Oracle Service Bus projects and folders:
                    1.   In the Project Explorer, right-click the Oracle Service Bus project or folder you
                         want to clone.
                    2.   From the menu, select Oracle Service Bus > Clone to display the Select Clone
                         Target Dialog.


2-2 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Projects, Folders, Resources, and Configurations



2.1.4 Creating Oracle Service Bus Configuration Projects
              In the Oracle Service Bus perspective, select File > New > Oracle Service Bus
              Configuration Project to display the New Oracle Service Bus Configuration Project
              Wizard.
              See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.
              For configuration details, see Section 4.4.3, "Oracle Service Bus Configuration Page."


2.1.5 Creating Oracle Service Bus Projects
              In the Oracle Service Bus perspective, select File > New > Oracle Service Bus Project
              to display the New Oracle Service Bus Project Wizard.
              See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.


                       Note:   You can create an Oracle Service Bus project in an Oracle
                       Service Bus configuration project only.


              For configuration details, see Section 4.4.4, "New Oracle Service Bus Project."


2.1.6 Creating Servers
              You can deploy (publish) and test your Oracle Service Bus configuration on a running
              server in Eclipse. When connected to a running server in development, you can also
              connect to resources in the run-time environment such as JNDI resources and remote
              EJBs.
              If you have an existing Oracle WebLogic Server you want to connect to, the server
              creation process simply involves you pointing at the existing server domain. If you
              want to create a new server, the new server wizard lets you create one using the Oracle
              Fusion Middleware Configuration Wizard.
              To Create a Server in Eclipse
              1.   In the Oracle Service Bus perspective, select File > New > Server. The New Server
                   wizard appears.
              2.   Select the server type/version you want to create or connect to.
              3.   For Server’s host name, enter localhost for a local server or enter the name or IP
                   address of the remote machine hosting an existing server.
              4.   The Server name is for display purposes in Eclipse.
              5.   Click Next.
              6.   For WebLogic home, click Browse and select the WL_HOME in the Oracle Fusion
                   Middleware installation where the server domain is to reside (or already resides).
                   For example, if you are creating a new server in MW_HOME_1, select the MW_
                   HOME_1/WL_HOME; or if you are connecting to an existing server domain in
                   MW_HOME_2, select the MW_HOME_2/WL_HOME.


                       Note:   You cannot reference a WL_HOME that is outside of the
                       server’s installation MW_HOME, even if the external MW_HOME is
                       the same product version.




                                                                                                   Tasks    2-3
Working with Projects, Folders, Resources, and Configurations


                    7.   The Java home should be populated automatically. If you want to use a different
                         JRE, such as the default Oracle JRockit JRE, click Browse and select the JRE under
                         the same MW_HOME as the server.
                    8.   Click Next.
                    9.   Select whether the server is Local or Remote. Remote implies an existing remote
                         server.
                         ■    If Local, either select an existing server in the Domain Directory field or click
                              the link to create a new domain. After creating a new domain, select it in the
                              Domain Directory field.
                              Set other options as desired, such as automatic publishing and debug mode.
                              For information on creating a new Oracle Service Bus domain, see "Installing
                              and Configuring Oracle Service Bus 11g" in the Oracle Fusion Middleware
                              Installation Guide for Oracle Service Bus Installation Guide at
                              http://www.oracle.com/pls/as1111/lookup?id=OSBIN1255.
                         ■    If Remote, enter the connection settings to an existing remote server.
                    10. Click Next.

                    11. Move any Oracle Service Bus configuration(s) you want to publish on the server to
                         the Configured pane. You can modify this targeting after you create the server by
                         right-clicking the server and selecting Add and Remove.
                    12. Click Finish. The new server appears in the Servers view in Eclipse, where you
                         can start, stop, and publish to the server.
                    For information on running a server in debug mode, for which the Oracle Service Bus
                    plug-ins for Eclipse provide special functionality, see Section 2.10, "Using the Oracle
                    Service Bus Debugger."


2.1.7 Creating Custom Resources
                    In the Oracle Service Bus perspective, select File > New > Custom Resource to display
                    New Custom Resource Wizard.
                    See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.


                              Note: You can create a custom resource in an Oracle Service Bus
                              project only.


                    For configuration details, see Section 4.5, "Custom Resources."


2.1.8 Creating and Editing JNDI Provider Resources
                    In the Oracle Service Bus perspective, select File > New > JNDI Provider to display
                    the New JNDI Provider Resource Wizard.
                    See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.


                              Note:  You can create a JNDI provider resource in an Oracle Service
                              Bus configuration project only.


                    To edit JNDI provider resources:



2-4 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Projects, Folders, Resources, and Configurations


             1.   In the Project Explorer, find the Oracle Service Bus configuration project
                  containing the JNDI provider resource you want to edit.
             2.   Double-click the name of the JNDI provider to display the JNDI Provider Editor.
             For configuration details, see Section 4.8, "JNDI Providers."


2.1.9 Creating Proxy Server Resources
             In the Oracle Service Bus perspective, select File > New > Proxy Server to display the
             New Proxy Server Resource wizard.
             See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.


                      Note:  You can create a proxy server resource in an Oracle Service Bus
                      configuration project only.


             To edit proxy server resources:
             1.   In the Project Explorer, find the Oracle Service Bus configuration project
                  containing the proxy server resource you want to edit.
             2.   Double-click the name of the proxy server to display the Proxy Server Editor.
             For configuration details, see Section 4.9, "Proxy Servers."


2.1.10 Creating Message Format Files
             In the Oracle Service Bus perspective, select File > New > MFL to display the New
             Message Format File wizard.
             See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.


                      Note:   You can create a message format file in an Oracle Service Bus
                      project only.


             For configuration details, see Section 4.11.16, "MFL Transform Action Properties."


2.1.11 Exporting Resources
             This section describes different ways to export Oracle Service Bus resources from
             Eclipse.
             Since these procedures require an Eclipse installation, you can only perform these
             procedures on platforms that support the Oracle Service Bus plug-ins for Oracle
             Enterprise Pack for Eclipse. For unsupported platforms, export using the Oracle
             Service Bus Administration Console. See "Import/Export" in the Oracle Fusion
             Middleware Administrator's Guide for Oracle Service Bus at
             http://www.oracle.com/pls/as1111/lookup?id=OSBAG1311.
             This section includes the following topics:
             ■    Section 2.1.11.1, "Using the Export Wizard"
             ■    Section 2.1.11.2, "Using the Command Line or a Script to Export an Oracle Service
                  Bus Configuration"




                                                                                                  Tasks    2-5
Working with Projects, Folders, Resources, and Configurations



                              Note:   XML files, which are a type of Oracle Service Bus resource, are
                              automatically exported from Eclipse when you use any of the
                              following export procedures. If you do not want to export XML files,
                              exclude them using the Eclipse Resource Filter feature on a project or
                              folder. The Export Wizard also lets you exclude files and resources
                              from export.


                    2.1.11.1 Using the Export Wizard
                    In the Oracle Service Bus perspective, select File > Export to display the Export
                    wizard. See the following topics for more information:
                    ■    Section 4.6.1, "Export Wizard - Oracle Service Bus Configuration JAR Export Page"
                    ■    Section 4.6.2, "Export Wizard - Export to Server - Select Resources Page"

                    2.1.11.2 Using the Command Line or a Script to Export an Oracle Service Bus
                    Configuration
                    This section describes scripting and command-line options for exporting an Oracle
                    Service Bus configuration:
                    ■    Section 2.1.11.2.1, "Before You Begin"
                    ■    Section 2.1.11.2.2, "Exporting a Configuration Using the Command Line"
                    ■    Section 2.1.11.2.3, "Exporting a Configuration Using Ant"
                    ■    Section 2.1.11.2.4, "Exporting a Configuration Using WLST"

                    2.1.11.2.1 Before You Begin Refer to the following prerequisites and guidance before
                    you begin.
                    ■    Be sure OSB_ORACLE_HOME/lib/sb-kernel-api.jar is in your classpath.
                    ■    Be sure the resource JAR names in your scripts contain the correct version
                         numbers.
                    ■    Java 1.6 is required.
                    ■    Oracle Service Bus 10gR3 MP1 or later and Eclipse must be installed.
                    ■    You may see exception stack traces in the output or the workspace log file if
                         workspace files are read-only.
                    ■    An exit value of 0 means the export succeeded.
                    ■    See Section 2.1.1, "Resource Naming Restrictions" for JAR naming guidance.

                    2.1.11.2.2 Exporting a Configuration Using the Command Line Oracle Service Bus provides
                    a ConfigExport class that you can configure and launch using the following command
                    line arguments. Command line export is for more advanced users who need more
                    flexibility.
                    Exporting from the command line generates an Oracle Service Bus configuration JAR
                    from the Eclipse workspace.
                    java -Xms384m -Xmx768m
                    -Dosgi.bundlefile.limit=500
                    -Dosgi.nl=en_US
                    -Dosb.home=OSB_ORACLE_HOME
                    -Dweblogic.home=WEBLOGIC_HOME
                    -Dharvester.home=${osb.home}/HARVESTER_HOME


2-6 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Projects, Folders, Resources, and Configurations


-Dsun.lang.ClassLoader.allowArraySyntax=true
-jar ECLIPSE_HOME/eclipse/plugins/org.eclipse.equinox.launcher_launcher_
version.jar
-data WORKSPACE_DIR
-application com.bea.alsb.core.ConfigExport
-configProject PROJECT_NAME
-configJar config_filename.jar
-configSubProjects projects_to_export
-includeDependencies true/false


where
■   OSB_ORACLE_HOME is the top-level Oracle Service Bus directory in the Oracle
    Fusion Middleware home.
■   WEBLOGIC_HOME is the location of the installed Oracle WebLogic Server.
■   HARVESTER_HOME is the location of Harvester, an Oracle Enterprise Repository
    tool that lets you harvest enterprise artifacts into Oracle Enterprise Repository
    from multiple sources, including Oracle Service Bus. An Oracle Service Bus
    installation includes Harvester.
■   ECLIPSE_HOME is the location of the installed Eclipse that is linked to the Oracle
    Service Bus IDE plug-ins.
■   launcher_version is the version of the Eclipse launcher JAR.
■   WORKSPACE_DIR is the location that contains Oracle Service Bus artifacts to be
    exported. For example, c:/oracle/user_projects/workspaces/default. If this
    location contains an Eclipse workspace, the workspace is used and the
    configuration jar is exported from the workspace projects. If this location does not
    contain a workspace, but instead contains only Eclipse Oracle Service Bus projects,
    the utility imports the projects into a temporary workspace for the configuration
    JAR export.
■   PROJECT_NAME is the name of the Oracle Service Bus Configuration project to be
    exported. For example, "OSB Configuration." If you do not specify this argument,
    the first Oracle Service Bus Configuration Project found in the workspace is
    exported.
■   config_filename.jar is the name and location of the Oracle Service Bus Configuration
    JAR to be exported. For example, c:/sbconfig.jar.
■   configSubProjects projects_to_export is one or more specific projects within a
    configuration to export. If you do not specify configSubProjects, all projects in the
    configuration are exported.
■   includeDependencies true/false determines whether configuration-level
    dependencies such as JNDI Providers and Proxy Servers are included in the
    export.
Following is an example of exporting an Oracle Service Bus Configuration from the
command line.


        Note:    Following is a sample command line operation. If you use this
        sample, be sure to check paths and file names against your current
        installation for accuracy.


java -Xms384m -Xmx768m
-Dosgi.bundlefile.limit=500


                                                                                    Tasks    2-7
Working with Projects, Folders, Resources, and Configurations


                    -Dosgi.nl=en_US
                    -Dosb.home=D:/oracle/Oracle_OSB1
                    -Dweblogic.home=D:/oracle/wlserver_10.3
                    -Dharvester.home=${osb.home}/harvester
                    -Dsun.lang.ClassLoader.allowArraySyntax=true
                    -jar D:/oracle/oepe_11gR1PS1/eclipse/plugins/org.eclipse.equinox.launcher_
                    1.0.201.R35x_v20090715.jar
                    -data D:/oracle/user_projects/myWorkspace
                    -application com.bea.alsb.core.ConfigExport
                    -configProject config
                    -configJar sbconfig.jar
                    -configSubProjects OSB Project 1,OSB Project 2
                    -includeDependencies true

                    2.1.11.2.3 Exporting a Configuration Using Ant You can export an Oracle Service Bus
                    configuration using an Apache Ant buildfile. Exporting with Ant generates an Oracle
                    Service Bus configuration JAR from the Eclipse workspace.
                    Following is a sample Ant buildfile with an accompanying properties file.


                              Note:   Following is a sample script. If you use this sample script, be
                              sure to check paths and file names against your current installation for
                              accuracy.


                    Ant Buildfile Example
                    <project name="ConfigExport">
                        <property file="./build.properties"/>
                        <property name="eclipse.home" value="${oracle.home}/oepe_11gR1PS2"/>
                        <property name="weblogic.home" value= "${oracle.home}/wlserver_10.3"/>
                        <property name="metadata.dir" value="${workspace.dir}/.metadata"/>
                        <target name="export">
                            <available file="${metadata.dir}" type="dir"
                             property="metadata.dir.exists"/>
                            <java dir="${eclipse.home}"
                    jar="${eclipse.home}/plugins/org.eclipse.equinox.launcher_1.0.201.R35x_
                    v20090715.jar"
                              fork="true"
                              failonerror="true"
                              maxmemory="768m">
                               <arg line="-data ${workspace.dir}"/>
                               <arg line="-application com.bea.alsb.core.ConfigExport"/>
                               <arg line="-configProject ${config.project}"/>
                               <arg line="-configJar ${config.jar}"/>
                               <arg line="-configSubProjects ${config.subprojects}"/>
                               <arg line="-includeDependencies ${config.includeDependencies}"/>
                               <sysproperty key="weblogic.home" value="${weblogic.home}"/>
                               <sysproperty key="osb.home" value="${osb.home}"/>
                               <sysproperty key="osgi.bundlefile.limit" value="500"/>
                               <sysproperty key="harvester.home" value="${osb.home}/harvester"/>
                               <sysproperty key="osgi.nl" value="en_US"/>
                               <sysproperty key="sun.lang.ClassLoader.allowArraySyntax" value="true"/>
                            </java>
                    <antcall target="deleteMetadata"/>
                        </target>
                    <target name="deleteMetadata" unless="metadata.dir.exists">
                             <delete failonerror="false" includeemptydirs="true"
                              dir="${metadata.dir}"/>
                    </target>


2-8 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Projects, Folders, Resources, and Configurations


             </project>

             build.properties Example
             oracle.home=c:/oracle
             workspace.dir=c:/oracle/user_projects/workspaces/default
             config.project="OSB Configuration"
             config.jar=c:/sbconfig.jar
             config.subprojects="OSB Project 1,OSB Project 2"
             config.includeDependencies=true

             Running "ant export" (after you run the setDomainEnv script) results in exporting the
             project "OSB Configuration" from the default workspace to c:sbconfig.jar.

             2.1.11.2.4 Exporting a Configuration Using WLST You can export an Oracle Service Bus
             configuration using the WebLogic Scripting Tool (WLST). Exporting with WLST
             generates an Oracle Service Bus configuration JAR from a running Oracle Service Bus
             server.
             For more information, see "WLST scripts to import/export and customize OSB
             configuration jar" on the Oracle Service Bus Samples page at
             http://www.oracle.com/technetwork/middleware/service-bus/learnmo
             re/index.html.


2.1.12 Generating an Effective WSDL
             To generate an effective WSDL:
             1.   In the Project Explorer, find the proxy service or business service from which you
                  want to generate the effective WSDL.
             2.   Right-click the name of the service and select Oracle Service Bus > Generate
                  Effective WSDL from the menu.
             3.   Select a location and save the file.
                  See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.


2.1.13 Modifying JAR Dependencies
             To modify JAR dependencies:
             1.   In the Project Explorer, find the JAR file whose dependencies you want to modify.
             2.   Right-click the name of the file and select Oracle Service Bus > Modify JAR
                  Dependencies from the menu.
             3.   Make modifications in the Modify JAR Dependencies Dialog.


2.1.14 Importing Resources
             This section describes different ways to import resources into Oracle Service Bus.
             Since these procedures require an Eclipse installation, you can only perform these
             procedures on platforms that support the Oracle Service Bus plug-ins for Oracle
             Enterprise Pack for Eclipse. For unsupported platforms, import using the Oracle
             Service Bus Administration Console. See "Import/Export" in the Oracle Fusion
             Middleware Administrator's Guide for Oracle Service Bus at
             http://www.oracle.com/pls/as1111/lookup?id=OSBAG1311.
             This section includes the following topics:



                                                                                                   Tasks    2-9
Working with Projects, Folders, Resources, and Configurations


                    ■    Section 2.1.14.1, "Using the Import Wizard"
                    ■    Section 2.1.14.2, "Using the Command Line or a Script to Import an Oracle Service
                         Bus Configuration"

                    2.1.14.1 Using the Import Wizard
                    In the Oracle Service Bus perspective, select File > Import to display the Import
                    wizard. See:
                    ■    Section 4.7.1, "Import Wizard - Config JAR Import - Load Resources Page"
                    ■    Section 4.7.2, "Import Wizard - Config JAR Import - Review Resources Page"
                    ■    Section 4.7.3, "Import Wizard - Config ZIP Import - Load Resources Page"
                    ■    Section 4.7.4, "Import Wizard - Config ZIP Import - Review Resources Page"
                    ■    Section 4.7.5, "Import Wizard - URL Import - Load Resources Page"
                    ■    Section 4.7.6, "Import Wizard - URL Import - Review Resources Page"

                    2.1.14.2 Using the Command Line or a Script to Import an Oracle Service Bus
                    Configuration
                    You can use scripting or the command line to importing an Oracle Service Bus
                    configuration. Importing from the command line or with an Ant script imports an
                    Oracle Service Bus configuration JAR into an Eclipse workspace. Use the examples in
                    Section 2.1.11.2.3, "Exporting a Configuration Using Ant" and Section 2.1.11.2.2,
                    "Exporting a Configuration Using the Command Line" for guidance on importing.
                    You can also import an Oracle Service Bus configuration using the WebLogic Scripting
                    Tool (WLST). Importing with WLST imports an Oracle Service Bus configuration JAR
                    into the Oracle Service Bus run-time environment. For more information, see "WLST
                    scripts to import/export and customize OSB configuration jar" on the Oracle Service
                    Bus Samples page at
                    http://www.oracle.com/technetwork/middleware/service-bus/learnmo
                    re/index.html.


2.1.15 Creating Service Account Resources
                    In the Oracle Service Bus perspective, select File > New > Service Account to display
                    the New Service Account Resource Wizard.
                    See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.


                              Note:  You can create a service account resource in an Oracle Service
                              Bus project only.


                    For configuration details, see Section 4.19, "Service Accounts."


2.1.16 Creating Service Key Provider Resources
                    In the Oracle Service Bus perspective, select File > New > Service Key Provider to
                    display the New Service Key Provider Resource Wizard.
                    See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.




2-10 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Business Services



                     Note:   You can create a service key provider resource in an Oracle
                     Service Bus project only.


             For configuration details, see Section 4.17, "New Service Key Provider Resource."


2.1.17 Creating SMTP Server Resources
             In the Oracle Service Bus perspective, select File > New > SMTP Server to display the
             New SMTP Server Resource Wizard.
             See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.


                     Note:  You can create an SMTP server resource in an Oracle Service
                     Bus configuration project only.


             For configuration details, see Section 4.13, "SMTP Servers."


2.1.18 Creating XQuery Transformations
             In the Oracle Service Bus perspective, select File > New > XQuery Transformation to
             display the XQuery/XSLT Expression Editor. For more information, see Part II,
             "XQuery Mapper".
             See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.


                     Note:  You can create an XQuery transformation resource in an
                     Oracle Service Bus project only.


2.1.19 Creating XSL Transformations
             In the Oracle Service Bus perspective, select File > New > XSL Transformation to
             display the XPath Expression Editor.
             See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.


                     Note:   You can create an XSL transformation resource in an Oracle
                     Service Bus project only.


             For configuration details, see Section 4.20, "Expression Editors."


2.2 Working with Business Services
             The following topics describe how to create and work with business services in the
             Oracle Service Bus plug-ins.
             ■   Section 2.2.1, "Creating Business Services"
             ■   Appendix 2.2.2, "Generating a JCA Business Service from an Outbound JCA File"
             ■   Section 2.2.3, "Generating a Business Service from Oracle Enterprise Repository"
             ■   Section 2.2.4, "Editing Business Services"




                                                                                             Tasks 2-11
Working with Business Services



2.2.1 Creating Business Services
                    In the Oracle Service Bus perspective, select File > New > Business Service to display
                    the New Business Service wizard.
                    See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.
                    For information on business service configuration, see:
                    ■    Section 4.2.1, "Business Service General Configuration Page"
                    ■    Section 4.2.2, "Business Service Message Type Configuration Page"
                    ■    Section 4.2.6, "Business Service - Service Policy Configuration Page"
                    ■    Section 4.2.3, "Business Service SOAP Binding Configuration Page"
                    ■    Section 4.2.4, "Business Service Transport Configuration Page"


                             Note:   You can create a business service in an Oracle Service Bus
                             project only.


                    2.2.1.1 Generating a Business Service from an Existing Service
                    To generate a business service from an existing proxy or business service:
                    1.   In the Project Explorer, right-click the existing service and select Oracle Service
                         Bus > Generate Business Service.
                    2.   Name and configure the service.


2.2.2 Generating a JCA Business Service from an Outbound JCA File
                    Oracle Service Bus lets you generate business services from outbound JCA files. JCA
                    services, which use the Oracle Service Bus JCA transport, communicate with back-end
                    Enterprise Information Systems (EIS) through a JCA adapter framework and
                    JCA-compliant adapters. For example, you could update back-end database records
                    using an Oracle Service Bus JCA business service that communicates with the Oracle
                    Database Adapter.
                    To create a JCA business service in Oracle Service Bus:
                    1.   In Oracle JDeveloper, create a JCA file, its associated abstract WSDL, and any
                         other required resources, such as a TopLink mapping file. For more information,
                         see the Oracle Fusion Middleware User's Guide for Technology Adapters.
                    2.   Import the JCA resource files into an Oracle Service Bus project so that all
                         references to dependencies are maintained. For more information, see
                         Section 2.1.14, "Importing Resources."
                    3.   In Eclipse, right-click the outbound JCA file and choose Oracle Service Bus >
                         Generate Service.
                    4.   In the JCA Generate Business Service window, select the folder location for the
                         new service, and, if desired, change the default service name.
                         See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.
                    5.   Click OK. Oracle Service Bus generates the business service and the concrete
                         WSDL that is used by the business service.
                    For more information on the Oracle Service Bus JCA transport, see "JCA Transport" in
                    the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at
                    http://www.oracle.com/pls/as1111/lookup?id=OSBDV910.


2-12 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Proxy Services



2.2.3 Generating a Business Service from Oracle Enterprise Repository
              You can generate business services from service artifacts in Oracle Enterprise
              Repository. For more information, see Section 2.7.1, "Generating Business Services
              from Oracle Enterprise Repository."
              You can also upload Oracle Service Bus projects to Oracle Enterprise Repository with
              Harvester, described in Section 2.7, "Working with Oracle Enterprise Repository and
              Harvester."

              2.2.3.1 Re-generating an Existing Business Service from Oracle Enterprise
              Repository
              You can re-generate a business service you previously generated from Oracle
              Enterprise Repository by following the same process described in Section 2.2.3,
              "Generating a Business Service from Oracle Enterprise Repository." Re-generating lets
              you pick up service updates in your development environment.
              When you re-generate a service, Oracle Service Bus merges the service definitions,
              updating the existing service with changes in the Oracle Enterprise Repository but
              retaining service account and large message support configurations you have made in
              the development environment.


2.2.4 Editing Business Services
              To edit business services:
              1.   In the Project Explorer, find the business service you want to edit.
              2.   Double-click the name of the service.
              3.   Select the page containing the options you want to edit. See:
                   ■   Section 4.2.1, "Business Service General Configuration Page"
                   ■   Section 4.2.2, "Business Service Message Type Configuration Page"
                   ■   Section 4.2.6, "Business Service - Service Policy Configuration Page"
                   ■   Section 4.2.3, "Business Service SOAP Binding Configuration Page"
                   ■   Section 4.2.4, "Business Service Transport Configuration Page"
                   ■   Section 4.2.5, "Business Service Message Handling Configuration Page"


2.3 Working with Proxy Services
              The following topics describe how to create and work with proxy services in the
              Oracle Service Bus plug-ins.
              ■    Section 2.3.1, "Creating Proxy Services"
              ■    Section 2.3.2, "Generating a JCA Proxy Service from an Inbound JCA File"
              ■    Section 2.3.3, "Consuming Oracle Service Bus Proxy Services in Oracle JDeveloper
                   with WSIL"
              ■    Section 2.3.4, "Editing Proxy Services"


2.3.1 Creating Proxy Services
              In the Oracle Service Bus perspective, select File > New > Proxy Service to display the
              New Proxy Service wizard.


                                                                                              Tasks 2-13
Working with Proxy Services


                    See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.
                    Do not use the following characters in your service names: leading space, trailing
                    space, /  * : " < > ? |
                    For information on proxy service configuration, see:
                    ■    Section 4.3.1, "Proxy Service General Configuration Page"
                    ■    Section 4.3.8, "Proxy Service Security Configuration Page"
                    ■    Section 4.3.2, "Proxy Service Message Type Configuration Page"
                    ■    Section 4.3.3, "Proxy Service Operation Selection Configuration Page"
                    ■    Section 4.3.4, "Proxy Service Message Handling Configuration Page"
                    ■    Section 4.3.7, "Proxy Service - Service Policy Configuration Page"
                    ■    Section 4.3.5, "Proxy Service SOAP Binding Configuration Page"
                    ■    Section 4.3.6, "Proxy Service Transport Configuration Page"


                              Note:   You can create a proxy service in an Oracle Service Bus project
                              only.


                    2.3.1.1 Generating a Proxy Service from an Existing Service
                    To generate a proxy service from an existing business or proxy service:
                    1.   In the Project Explorer, right-click the existing service and select Oracle Service
                         Bus > Generate Proxy Service.
                    2.   Name and configure the service.
                    For a proxy services generated from a business service, the message flow
                    automatically includes a route node to the business service.


2.3.2 Generating a JCA Proxy Service from an Inbound JCA File
                    Oracle Service Bus lets you generate proxy services from inbound JCA files. JCA
                    services, which use the Oracle Service Bus JCA transport, communicate with
                    Enterprise Information Systems (EIS) through a JCA adapter framework and
                    JCA-compliant adapters. For example, you could invoke an external service from an
                    EIS application through Oracle Service Bus using JCA.
                    To create a JCA proxy service in Oracle Service Bus:
                    1.   In Oracle JDeveloper, create a JCA file, its associated abstract WSDL, and any
                         other required resources, such as a TopLink mapping file. For more information,
                         see the Oracle Fusion Middleware User's Guide for Technology Adapters.
                    2.   Import the JCA resource files into an Oracle Service Bus project so that all
                         references to dependencies are maintained. For more information, see
                         Section 2.1.14, "Importing Resources."
                    3.   In Eclipse, right-click the inbound JCA file and choose Oracle Service Bus >
                         Generate Service.
                    4.   In the JCA Generate Proxy Service window, select the folder location for the new
                         service, and, if desired, change the default service name.
                         See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.



2-14 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Proxy Services


             5.   Click OK. Oracle Service Bus generates the proxy service and the concrete WSDL
                  that is used by the proxy service.
             For more information on the Oracle Service Bus JCA transport, see "JCA Transport" in
             the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at
             http://www.oracle.com/pls/as1111/lookup?id=OSBDV910.


2.3.3 Consuming Oracle Service Bus Proxy Services in Oracle JDeveloper with WSIL
             Oracle Service Bus makes its WSDL-based proxy services available through the Web
             Services Inspection Language (WSIL), letting you consume Oracle Service Bus WSDL
             proxy services in Oracle JDeveloper for service orchestration in Oracle SOA Suite.
             The Oracle Service Bus WSIL servlet automatically registers WSDL-based proxy
             services deployed in the Oracle Service Bus run-time environment. By creating a WSIL
             connection in JDeveloper, you can access those proxy services through different URL
             patterns that map to different hierarchy levels, such as project, folder, and individual
             service. For example, when you connect to the Oracle Service Bus WSIL servlet with a
             project-level URL, you can see all the child folders and WSDL-based proxy services in
             that project in Oracle JDeveloper.
             The following procedure guides you through the process of creating a WSIL
             connection in JDeveloper and generating Web service references out of Oracle Service
             Bus WSDL proxy services for use in SOA applications.
             1.   In Oracle JDeveloper, open or create a SOA application.
             2.   Create a new WSIL connection.
                  In the Resource Palette, click the New icon and choose New Connection > WSIL.
                  In the Create WSIL Connection window:
                  ■   Enter the connection name.
                      See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.
                  ■   Enter the credentials for one of the following Oracle Service Bus roles:
                      IntegrationAdmin, IntegrationDeployer, IntegrationOperator, or
                      IntegrationMonitor.
                  ■   Enter the URL to the Oracle Service Bus WSIL in one of the following formats:
                      –   Domain (gets all projects, folders, and WSDL proxy services) –
                          http://host:port/sbinspection.wsil
                      –   Project (gets all child folders and WSDL proxy services) –
                          http://host:port/sbinspection.wsil?refpath=project_name
                      –   Folder (in a project, gets the folder, all child folders, and WSDL proxy
                          services) – http://host:port/sbinspection.wsil?refpath=project_name/folder_
                          path. For example:
                          http://localhost:7021/sbinspection.wsil?refpath=MortgageBroker/ProxyS
                          ervices
                      –   Proxy Service (gets an individual WSDL proxy service) –
                          http://host:port/sbinspection.wsil?refpath=project_name/folder_path/wsdl_
                          proxy_service. For example:
                          http://localhost:7021/sbinspection.wsil?refpath=MortgageBroker/ProxyS
                          ervices/loanGateway1
                      In a cluster, the WSIL servlet is deployed on Managed Servers and not the
                      Admin Server. Use a Managed Server host name and port in the URL.


                                                                                             Tasks 2-15
Working with Proxy Service Message Flows


                        When finished, click OK. The WSIL connection is displayed in the Resource
                        Palette in the hierarchy determined by the URL you entered.
                   3.   To use an Oracle Service Bus WSDL proxy service in your SOA application, create
                        a Web service reference to it.
                        In the Component Palette, create a new Web service. In the Create Web Service
                        window, click the WSDL URL browse icon.
                        In the SOA Resource Browser, select Resource Palette, and select the Oracle
                        Service Bus WSDL proxy service in the WSIL connection created in the previous
                        step.
                        When you create the Web service reference to an Oracle Service Bus WSDL proxy
                        service, you can use it as an external reference in your SOA application.
                   The Oracle Service Bus WSIL servlet leverages the SBResource servlet. If the
                   SBResource is undeployed, the WSIL connection is not available.


2.3.4 Editing Proxy Services
                   To edit proxy services:
                   1.   In the Project Explorer, find the proxy service you want to edit.
                   2.   Double-click the name of the service.
                   3.   Select the page containing the options you want to edit. See:
                        ■   Section 4.3.1, "Proxy Service General Configuration Page"
                        ■   Section 4.3.8, "Proxy Service Security Configuration Page"
                        ■   Section 4.3.2, "Proxy Service Message Type Configuration Page"
                        ■   Section 4.3.3, "Proxy Service Operation Selection Configuration Page"
                        ■   Section 4.3.4, "Proxy Service Message Handling Configuration Page"
                        ■   Section 4.3.7, "Proxy Service - Service Policy Configuration Page"
                        ■   Section 4.3.5, "Proxy Service SOAP Binding Configuration Page"
                        ■   Section 4.3.6, "Proxy Service Transport Configuration Page"


2.4 Working with Proxy Service Message Flows
                   The following topics describe how to add and configure nodes and actions to proxy
                   service message flows.
                   ■    Section 2.4.1, "Constructing Proxy Service Message Flows"
                   ■    Section 2.4.2, "Adding and Configuring Alert Actions in Message Flows"
                   ■    Section 2.4.3, "Adding and Configuring Assign Actions in Message Flows"
                   ■    Section 2.4.4, "Adding and Configuring Conditional Branch Nodes in Message
                        Flows"
                   ■    Section 2.4.6, "Adding and Configuring Dynamic Publish Actions in Message
                        Flows"
                   ■    Section 2.4.7, "Adding and Configuring Dynamic Routing Actions in Message
                        Flows"
                   ■    Section 2.4.8, "Adding and Configuring Error Handlers in Message Flows"


2-16 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Proxy Service Message Flows


             ■    Section 2.4.9, "Adding and Configuring For-Each Actions in Message Flows"
             ■    Section 2.4.10, "Adding and Configuring If-Then Actions in Message Flows"
             ■    Section 2.4.11, "Adding and Configuring Insert Actions in Message Flows"
             ■    Section 2.4.12, "Adding and Configuring Java Callout Actions in Message Flows"
             ■    Section 2.4.13, "Adding and Configuring Log Actions in Message Flows"
             ■    Section 2.4.14, "Adding and Configuring MFL Transform Actions in Message
                  Flows"
             ■    Section 2.4.15, "Adding and Configuring Operational Branch Nodes in Message
                  Flows"
             ■    Section 2.4.16, "Adding and Configuring Pipeline Pair Nodes in Message Flows"
             ■    Section 2.4.17, "Adding and Configuring Publish Actions in Message Flows"
             ■    Section 2.4.18, "Adding and Configuring Publish Table Actions in Message Flows"
             ■    Section 2.4.19, "Adding and Configuring Raise Error Actions in Message Flows"
             ■    Section 2.4.20, "Adding and Configuring Rename Actions in Message Flows"
             ■    Section 2.4.21, "Adding and Configuring Replace Actions in Message Flows"
             ■    Section 2.4.23, "Adding and Configuring Report Actions in Message Flows"
             ■    Section 2.4.21, "Adding and Configuring Replace Actions in Message Flows"
             ■    Section 2.4.22, "Adding and Configuring Reply Actions in Message Flows"
             ■    Section 2.4.24, "Adding and Configuring Resume Actions in Message Flows"
             ■    Section 2.4.25, "Adding and Configuring Route Nodes in Message Flows"
             ■    Section 2.4.26, "Adding and Configuring Routing Actions in Message Flows"
             ■    Section 2.4.27, "Adding and Configuring Routing Options Actions in Message
                  Flows"
             ■    Section 2.4.28, "Adding and Configuring Routing Table Actions in Message Flows"
             ■    Section 2.4.29, "Adding and Configuring Service Callout Actions in Message
                  Flows"
             ■    Section 2.4.30, "Adding and Configuring Skip Actions in Message Flows"
             ■    Section 2.4.31, "Adding and Configuring Stages in Message Flows"
             ■    Section 2.4.32, "Adding and Configuring Transport Headers Actions in Message
                  Flows"
             ■    Section 2.4.33, "Adding and Configuring Validate Actions in Message Flows"


2.4.1 Constructing Proxy Service Message Flows
             When you create a proxy service, a message flow is created by default, with an empty
             starting node. The process for constructing the message flow follows this general
             pattern:
             1.   Open the Message Flow Editor for the proxy service. To open the proxy service,
                  double-click its name in Project Explorer. The Message Flow Editor appears as a
                  tab in the proxy service view.
             2.   Open the Message Flow Design Palette. To open the palette, in the Oracle Service
                  Bus perspective, select Window > Show View > Design Palette.


                                                                                           Tasks 2-17
Working with Proxy Service Message Flows


                   3.   Open the Properties view, if it is not already open:
                        a.   In the Oracle Service Bus perspective, select Window > Show View > Other.
                        b.   In the Show View dialog, select General > Properties.
                   4.   Drag nodes and actions from the Message Flow Design Palette to the Message
                        Flow Editor.
                        Alternatively, you can right-click a node or action in the Message Flow Editor to
                        display menus of nodes and actions that can be inserted in that location. The menu
                        contains one or more the following:
                        ■    Insert > (list of nodes and actions)
                        ■    Insert Into > (list of nodes and actions)
                        ■    Insert After > (list of nodes and actions)
                        ■    Add Error Handler
                   5.   Configure nodes and actions:
                        a.   In the Proxy Service Editor, select the node or action by clicking it.
                             Alternatively, you can select a node or an action from the Outline view. To
                             open the Outline view, in the Oracle Service Bus perspective, select Window >
                             Show View > Outline.
                        b.   In the Properties view, set the properties for the selected node or action. For
                             instructions on how to configure the nodes and actions, click the Properties
                             view for a node or action, and press F1 for help.


2.4.2 Adding and Configuring Alert Actions in Message Flows
                   Use the alert action to generate alerts based on message context in a pipeline, to send
                   to an alert destination.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add an alert action
                   1.   In the Message Flow Design Palette, open the Stage Actions > Reporting list, if it
                        is not already open.
                   2.   Drag the alert action to the desired location in the message flow.
                   To configure the alert action
                   1.   In the Message Flow Editor, click the alert action, if it is not already selected.
                   2.   On the Alert Action Properties page, edit properties.
                        For configuration details, see Section 4.11.1, "Alert Action Properties."


2.4.3 Adding and Configuring Assign Actions in Message Flows
                   Use an assign action to assign the result of an XQuery expression to a context variable.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows".



2-18 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Proxy Service Message Flows


             To add an assign action
             1.   In the Message Flow Design Palette, open the Stage Actions > Message
                  Processing list, if it is not already open.
             2.   Drag the assign action to the desired location in the message flow.
             To configure the assign action
             1.   In the Message Flow Editor, click the assign action, if it is not already selected.
             2.   On the Assign Action Properties page, edit the desired properties.
                  For configuration details, see Section 4.11.2, "Assign Action Properties."


2.4.4 Adding and Configuring Conditional Branch Nodes in Message Flows
             Use a conditional branch node to specify that message processing is to proceed along
             exactly one of several possible paths, based on a result returned by an XPath condition.
             Before you begin
             Display the message flow for the desired proxy service. See Section 2.4.1,
             "Constructing Proxy Service Message Flows."
             To add a conditional branch node
             1.   In the Message Flow Design Palette, open the Oracle Service Bus Message Flow >
                  Nodes list, if it is not already open.
             2.   Drag the conditional branch node to the desired location in the message flow.
             To configure the conditional branch node
             1.   In the Message Flow Editor, click the conditional branch node, if it is not already
                  selected.
             2.   On the Conditional Branch Node Properties page, edit the desired properties.
                  For configuration details, see Section 4.11.3, "Conditional Branch Node Properties."


2.4.5 Adding and Configuring Delete Actions in Message Flows
             Use a delete action to delete a context variable or a set of nodes specified by an XPath
             expression.
             Before you begin
             Display the message flow for the desired proxy service. See Section 2.4.1,
             "Constructing Proxy Service Message Flows."
             To add a delete action
             1.   In the Message Flow Design Palette, open the Stage Actions > Message
                  Processing list, if it is not already open.
             2.   Drag the delete action to the desired location in a stage action in the message flow.
             To configure the delete action
             1.   In the Message Flow Editor, click the delete action, if it is not already selected.
             2.   On the Delete Action Properties page, edit the desired properties.
                  For configuration details, see Section 4.11.4, "Delete Action Properties."




                                                                                               Tasks 2-19
Working with Proxy Service Message Flows



2.4.6 Adding and Configuring Dynamic Publish Actions in Message Flows
                   Use a dynamic publish action to publish a message to a service specified by an XQuery
                   expression.
                   For more information on publish behavior, see "Performing Transformations in
                   Message Flows" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service
                   Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG205.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add a dynamic publish action
                   1.   In the Message Flow Design Palette, open the Stage Actions > Communication
                        list, if it is not already open.
                   2.   Drag the dynamic publish action to the desired location in the message flow.
                   To configure the dynamic publish action
                   1.   In the Message Flow Editor, click the dynamic publish action, if it is not already
                        selected.
                   2.   On the Dynamic Publish Action Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.5, "Dynamic Publish Action Properties."


2.4.7 Adding and Configuring Dynamic Routing Actions in Message Flows
                   Use a dynamic routing action to assign a route for a message based on routing
                   information available in an XQuery resource.
                   For more information on routing, see "Modeling Message Flow in Oracle Service Bus"
                   in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at
                   http://www.oracle.com/pls/as1111/lookup?id=OSBAG181.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add a dynamic routing action
                   1.   In the Message Flow Design Palette, open the Route Actions > Communication
                        list, if it is not already open.
                   2.   Drag the dynamic routing action to the route action in the message flow.
                   To configure the dynamic routing action
                   1.   In the Message Flow Editor, click the dynamic routing action, if it is not already
                        selected.
                   2.   On the Dynamic Routing Action Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.6, "Dynamic Routing Action Properties."


2.4.8 Adding and Configuring Error Handlers in Message Flows
                   Use an error handler to specify what should happen if an error occurs in a specific
                   location in the message flow.
                   Before you begin


2-20 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Proxy Service Message Flows


              Display the message flow for the desired proxy service. See Section 2.4.1,
              "Constructing Proxy Service Message Flows."
              To add an error handler
              1.   In the Message Flow Design Palette, open the Oracle Service Bus Message Flow >
                   Nodes list, if it is not already open.
              2.   Drag the error handler to the desired location in the message flow.
              3.   Drag a stage node to the error handler.
              4.   Add actions to the stage to define the error handler.
              To configure the error handler
              1.   In the Message Flow Editor, click the error handler, if it is not already selected.
              2.   On the Error Handler Node Properties page, edit the properties.
              3.   Click the stage node, if it is not already selected.
              4.   On the Stage Node Properties page, edit the properties.
              5.   Select and edit any desired actions contained by the stage.
                   For configuration details, see Section 4.11.7, "Error Handler Node Properties."


2.4.9 Adding and Configuring For-Each Actions in Message Flows
              Use the for-each action to iterate over a sequence of values and execute a block of
              actions.
              Before you begin
              Display the message flow for the desired proxy service. See Section 2.4.1,
              "Constructing Proxy Service Message Flows."
              To add a for-each action
              1.   In the Message Flow Design Palette, open the Stage Actions > Flow Control list, if
                   it is not already open.
              2.   Drag the for-each action to the desired stage action in the message flow.
              To configure the for-each action
              1.   In the Message Flow Editor, click the for-each action, if it is not already selected.
              2.   On the For-Each Action Properties page, edit the desired properties.
                   For configuration details, see Section 4.11.8, "For-Each Action Properties."


2.4.10 Adding and Configuring If-Then Actions in Message Flows
              Use an if-then action to perform an action or a set of actions conditionally, based on the
              Boolean result of an XQuery expression.
              Before you begin
              Display the message flow for the desired proxy service. See Section 2.4.1,
              "Constructing Proxy Service Message Flows."
              To add an if-then action
              1.   In the Message Flow Design Palette, do one of the following:




                                                                                                Tasks 2-21
Working with Proxy Service Message Flows


                        ■   For an if-then action in a route node, open the Route Actions > Flow Control
                            list, if it is not already open.
                        ■   For an if-then action in a stage node, open the Stage Actions > Flow Control
                            list, if it is not already open.
                   2.   Drag the if-then action to the route node or to the desired stage action in the
                        message flow.
                   To configure the if-then action
                   In the Message Flow Editor, click each if condition and else-if condition contained by
                   the if-then action, and define the conditions in the Condition Editor, as described in
                   Section 4.11.9, "If-Then Action Properties."


2.4.11 Adding and Configuring Insert Actions in Message Flows
                   Use an insert action to insert the result of an XQuery expression at an identified place
                   relative to nodes selected by an XPath expression.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add an insert action
                   1.   In the Message Flow Design Palette, open the Stage Actions > Message
                        Processing list, if it is not already open.
                   2.   Drag the insert action to the desired location in the message flow.
                   To configure the insert action
                   1.   In the Message Flow Editor, click the insert action, if it is not already selected.
                   2.   On the Insert Action Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.10, "Insert Action Properties."


2.4.12 Adding and Configuring Java Callout Actions in Message Flows
                   Use a Java callout action to invoke a Java method or an EJB business service from
                   within the message flow.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add an Java callout action
                   1.   In the Message Flow Design Palette, open the Stage Actions > Message
                        Processing list, if it is not already open.
                   2.   Drag the Java callout action to the desired location in the message flow.
                   To configure the Java callout action
                   1.   In the Message Flow Editor, click the Java callout action, if it is not already
                        selected.
                   2.   On the Java Callout Action Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.11, "Java Callout Action Properties."




2-22 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Proxy Service Message Flows



2.4.13 Adding and Configuring Log Actions in Message Flows
             Use the log action to construct a message to be logged and to define a set of attributes
             with which it will be logged.
             Before you begin
             Display the message flow for the desired proxy service. See Section 2.4.1,
             "Constructing Proxy Service Message Flows."
             To add a log action
             1.   In the Message Flow Design Palette, open the Stage Actions > Reporting list, if it
                  is not already open.
             2.   Drag the log action to the desired location in the message flow.
             To configure the log action
             1.   In the Message Flow Editor, click the log action, if it is not already selected.
             2.   On the Log Action Properties page, edit the desired properties.
                  For configuration details, see Section 4.11.12, "Log Action Properties."


2.4.14 Adding and Configuring MFL Transform Actions in Message Flows
             Use a MFL (Message Format Language) transform action to convert message content
             from XML to non-XML, or vice versa, in the message pipeline.
             Before you begin
             Display the message flow for the desired proxy service. See Section 2.4.1,
             "Constructing Proxy Service Message Flows."
             To add a MFL transform action
             1.   In the Message Flow Design Palette, open the Stage Actions > Message
                  Processing list, if it is not already open.
             2.   Drag the MFL transform action to the desired location in the message flow.
             To configure the MFL transform action
             1.   In the Message Flow Editor, click the MFL transform action, if it is not already
                  selected.
             2.   On the MFL Transform Action Properties page, edit the desired properties.
                  For configuration details, see Section 4.11.16, "MFL Transform Action Properties."


2.4.15 Adding and Configuring Operational Branch Nodes in Message Flows
             Use an operational branch node to configure branching based on operations defined in
             a WSDL.
             Before you begin
             Display the message flow for the desired proxy service. See Section 2.4.1,
             "Constructing Proxy Service Message Flows."
             To add an operational branch node
             1.   In the Message Flow Design Palette, open the Oracle Service Bus Message Flow >
                  Nodes list, if it is not already open.
             2.   Drag the operational branch node to the desired location in the message flow.


                                                                                               Tasks 2-23
Working with Proxy Service Message Flows


                   To configure the operational branch node
                   1.   In the Message Flow Editor, click the operational branch node, if it is not already
                        selected.
                   2.   On the Operational Branch Node Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.17, "Operational Branch Node
                        Properties."


2.4.16 Adding and Configuring Pipeline Pair Nodes in Message Flows
                   Use a pipeline pair node to define request and response processing.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add a pipeline pair node
                   1.   In the Message Flow Design Palette, open the Oracle Service Bus Message Flow >
                        Nodes list, if it is not already open.
                   2.   Drag the pipeline pair node to the desired location in the message flow.
                   To configure the pipeline pair node
                   1.   In the Message Flow Editor, click the pipeline pair node, if it is not already
                        selected.
                   2.   On the Pipeline Pair Node Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.18, "Pipeline Pair Node Properties."


2.4.17 Adding and Configuring Publish Actions in Message Flows
                   Use a publish action to identify a statically specified target service for a message and
                   to configure how the message is packaged and sent to that service.
                   For more information on publish behavior, see "Performing Transformations in
                   Message Flows" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service
                   Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG205.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add a publish action
                   1.   In the Message Flow Design Palette, open the Stage Actions > Communication
                        list, if it is not already open.
                   2.   Drag the publish action to the desired location in the message flow.
                   To configure the publish action
                   1.   In the Message Flow Editor, click the publish action, if it is not already selected.
                   2.   On the Publish Action Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.19, "Publish Action Properties."




2-24 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Proxy Service Message Flows



2.4.18 Adding and Configuring Publish Table Actions in Message Flows
              Use a publish table action to publish a message to zero or more statically specified
              services.
              For more information on publish behavior, see "Performing Transformations in
              Message Flows" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service
              Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG205.
              Before you begin
              Display the message flow for the desired proxy service. See Section 2.4.1,
              "Constructing Proxy Service Message Flows."
              To add a publish table action
              1.   In the Message Flow Design Palette, open the Stage Actions > Communication
                   list, if it is not already open.
              2.   Drag the publish table action to the desired location in the message flow.
              To configure the publish table action
              1.   In the Message Flow Editor, click the publish table action, if it is not already
                   selected.
              2.   On the Publish Table Action Properties page, click <Expression> to display the
                   XQuery/XSLT Expression Editor. Create an XQuery expression, which at run time
                   returns the value upon which the routing decision will be made.
              3.   In the Message Flow Editor, select a case action.
              4.   From the Operator list on the Publish Table Action Properties page, select a
                   comparison operator. Then, in the Value field, enter a value against which the
                   value returned from the XQuery expression will be evaluated.
              5.   In the Message Flow Editor, click one of the publish table’s publish actions to
                   select it.
              6.   On the Publish Action Properties page, click Browse to select a service. Select the
                   service to which messages are to be published if the expression evaluates true for
                   the value you specified. The Select a Service Resource dialog is displayed.
              7.   Select a service from the list, then click OK. This is the target service for the
                   message.
              8.   If the service has operations defined, you can specify the operation to be invoked
                   by selecting it from the invoking list.
              9.   If you want the outbound operation to be the same as the inbound operation,
                   select the Use inbound operation for outbound check box.
              10. In the Request Actions field, to configure how the message is packaged and sent
                   to the service, click Add an Action, then select one or more actions that you want
                   to associate with the service.


                       Note:    There is a nesting limit of four cumulative levels in the stage
                       editor. If you attempt to add a fifth level, nesting action is not
                       displayed. Cumulative levels include all branching actions: if... then...
                       conditions, publish tables, and route tables. For example, you can
                       have 2 levels of conditionals, then a publish table with a route table
                       inside of it, bringing the total to 4 levels. If you attempt to add another
                       conditional (to the last publish table), the conditional is not displayed.



                                                                                                Tasks 2-25
Working with Proxy Service Message Flows


                   11. To insert a new case, click the Case icon, then select Insert New Case.
                   12. Repeat steps 4-8 for the new case.

                   13. Add additional cases as dictated by your business logic.

                   14. Click the Case icon of the last case you define in the sequence, then select Insert
                        Default Case to add a default case at the end.
                   15. Configure the default case—the configuration of this case specifies the routing
                        behavior in the event that none of the preceding cases is satisfied.
                        For more information, see Section 4.11.20, "Publish Table Action Properties."


2.4.19 Adding and Configuring Raise Error Actions in Message Flows
                   Use the raise error action to raise an exception with a specified error code (a string)
                   and description.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add a raise error action
                   1.   In the Message Flow Design Palette, open the Stage Actions > Flow Control list, if
                        it is not already open.
                   2.   Drag the raise error action to the desired location in the message flow.
                   To configure the raise error action
                   1.   In the Message Flow Editor, click the raise error action, if it is not already selected.
                   2.   On the Raise Error Action Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.21, "Raise Error Action Properties."


2.4.20 Adding and Configuring Rename Actions in Message Flows
                   Use the rename action to rename elements selected by an XPath expression without
                   modifying the contents of the element.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add an rename action
                   1.   In the Message Flow Design Palette, open the Stage Actions > Message
                        Processing list, if it is not already open.
                   2.   Drag the rename action to the desired location in the message flow.
                   To configure the rename action
                   1.   In the Message Flow Editor, click the rename action, if it is not already selected.
                   2.   On the Rename Action Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.22, "Rename Action Properties."




2-26 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Proxy Service Message Flows



2.4.21 Adding and Configuring Replace Actions in Message Flows
             Use a replace action to replace a node or the contents of a node specified by an XPath
             expression. The node or its contents are replaced with the value returned by an
             XQuery expression.
             Before you begin
             Display the message flow for the desired proxy service. See Section 2.4.1,
             "Constructing Proxy Service Message Flows."
             To add a replace action
             1.   In the Message Flow Design Palette, open the Stage Actions > Message
                  Processing list, if it is not already open.
             2.   Drag the replace action to the desired location in the message flow.
             To configure the replace action
             1.   In the Message Flow Editor, click the replace action, if it is not already selected.
             2.   On the Replace Action Properties page, edit the desired properties.
                  For configuration details, see Section 4.11.23, "Replace Action Properties."


2.4.22 Adding and Configuring Reply Actions in Message Flows
             Use the reply action to specify that an immediate reply be sent to the invoker.
             Before you begin
             Display the message flow for the desired proxy service. See Section 2.4.1,
             "Constructing Proxy Service Message Flows."
             To add a reply action
             1.   In the Message Flow Design Palette, open the Stage Actions > Flow Control list, if
                  it is not already open.
             2.   Drag the reply action to the desired location in the message flow.
             To configure the reply action
             1.   In the Message Flow Editor, click the reply action, if it is not already selected.
             2.   On the Reply Action Properties page, edit the desired properties.
                  For configuration details, see Section 4.11.24, "Reply Action Properties."


2.4.23 Adding and Configuring Report Actions in Message Flows
             Use the report action to enable message reporting for a proxy service.
             Before you begin
             Display the message flow for the desired proxy service. See Section 2.4.1,
             "Constructing Proxy Service Message Flows."
             To add a report action
             1.   In the Message Flow Design Palette, open the Stage Actions > Reporting list, if it
                  is not already open.
             2.   Drag the report action to the desired location in the message flow.
             To configure the report action



                                                                                               Tasks 2-27
Working with Proxy Service Message Flows


                   1.   In the Message Flow Editor, click the report action, if it is not already selected.
                   2.   On the Report Action Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.25, "Report Action Properties."


2.4.24 Adding and Configuring Resume Actions in Message Flows
                   Use the resume action to resume message flow after an error is handled by an error
                   handler. This action has no parameters and can only be used in error pipelines.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add a resume action
                   1.   In the Message Flow Design Palette, open the Stage Actions > Flow Control list, if
                        it is not already open.
                   2.   Drag the resume action to the desired location in the message flow.
                   To configure the resume action
                   1.   In the Message Flow Editor, click the resume action, if it is not already selected.
                   2.   On the Resume Action Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.26, "Resume Action Properties."


2.4.25 Adding and Configuring Route Nodes in Message Flows
                   Use the route node to handle request and response dispatching of messages to and
                   from business services.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add a route node
                   1.   In the Message Flow Design Palette, open the Oracle Service Bus Message Flow >
                        Nodes list, if it is not already open.
                   2.   Drag the route node to the desired location in the message flow.
                   To configure the route node
                   1.   In the Message Flow Editor, click the route node action, if it is not already selected.
                   2.   On the Route Node Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.27, "Route Node Properties."


2.4.26 Adding and Configuring Routing Actions in Message Flows
                   Use a routing action to identify a target service for the message and configure how the
                   message is routed to that service.
                   For more information on routing, see "Modeling Message Flow in Oracle Service Bus"
                   in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at
                   http://www.oracle.com/pls/as1111/lookup?id=OSBAG181.
                   Before you begin


2-28 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Proxy Service Message Flows


             Display the message flow for the desired proxy service. See Section 2.4.1,
             "Constructing Proxy Service Message Flows."
             To add a routing action
             1.   In the Message Flow Design Palette, open the Route Actions > Communication
                  list, if it is not already open.
             2.   Drag the routing action to the desired location in the message flow.
             To configure the routing action
             1.   In the Message Flow Editor, click the routing action, if it is not already selected.
             2.   On the Routing Action Properties page, edit the desired properties.
                  For configuration details, see Section 4.11.28, "Routing Action Properties."


2.4.27 Adding and Configuring Routing Options Actions in Message Flows
             Use a routing options action to modify any or all of the following properties in the
             outbound request: URI, Quality of Service, Mode, Retry parameters, message Priority.
             For more information on routing, see "Modeling Message Flow in Oracle Service Bus"
             in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at
             http://www.oracle.com/pls/as1111/lookup?id=OSBAG181.
             Before you begin
             Display the message flow for the desired proxy service. See Section 2.4.1,
             "Constructing Proxy Service Message Flows."
             To add a routing options action
             1.   In the Message Flow Design Palette, open the Stage Actions > Communication
                  list, if it is not already open.
             2.   Drag the routing options action to the desired location in the message flow.
             To configure the routing options action
             1.   In the Message Flow Editor, click the routing options action, if it is not already
                  selected.
             2.   On the Routing Options Action Properties page, edit the desired properties.
                  For configuration details, see Section 4.11.29, "Routing Options Action Properties."


2.4.28 Adding and Configuring Routing Table Actions in Message Flows
             Use a routing table to select different routes based upon the results of a single XQuery
             expression. A routing table action contains a set of routes wrapped in a switch-style
             condition table.
             For more information on routing, see "Modeling Message Flow in Oracle Service Bus"
             in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at
             http://www.oracle.com/pls/as1111/lookup?id=OSBAG181.
             Before you begin
             Display the message flow for the desired proxy service. See Section 2.4.1,
             "Constructing Proxy Service Message Flows."
             To add a routing table action




                                                                                              Tasks 2-29
Working with Proxy Service Message Flows


                   1.   In the Message Flow Design Palette, open the Route Actions > Communication
                        list, if it is not already open.
                   2.   Drag the routing table action to the desired location in the message flow.
                   To configure the routing table action
                   1.   In the Message Flow Editor, click the routing table action, if it is not already
                        selected.
                   2.   On the Routing Table Action Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.30, "Routing Table Action Properties."


2.4.29 Adding and Configuring Service Callout Actions in Message Flows
                   Use a service callout action to configure a synchronous (blocking) callout to an Oracle
                   Service Bus-registered proxy or business service.
                   For more information on service callout actions, see "Constructing Service Callout
                   Messages" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at
                   http://www.oracle.com/pls/as1111/lookup?id=OSBAG1124.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add a service callout action
                   1.   In the Message Flow Design Palette, open the Stage Actions > Communication
                        list, if it is not already open.
                   2.   Drag the service callout action to the desired location in the message flow.
                   To configure the service callout action
                   1.   In the Message Flow Editor, click the service callout action, if it is not already
                        selected.
                   2.   On the Service Callout Action Properties page, edit the desired properties.
                        For configuration details, see Section 4.11.31, "Service Callout Action Properties."


2.4.30 Adding and Configuring Skip Actions in Message Flows
                   Use the skip action to specify that at run time, the execution of the current stage is
                   skipped and the processing proceeds to the next stage in the message flow.
                   Before you begin
                   Display the message flow for the desired proxy service. See Section 2.4.1,
                   "Constructing Proxy Service Message Flows."
                   To add a skip action
                   1.   In the Message Flow Design Palette, open the Stage Actions > Flow Control list, if
                        it is not already open.
                   2.   Drag the skip action to the desired location in the message flow.
                   To configure the skip action
                   1.   In the Message Flow Editor, click the skip action, if it is not already selected.
                   2.   On the Skip Action Properties page, edit the desired properties.



2-30 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Proxy Service Message Flows


                   For configuration details, see Section 4.11.32, "Skip Action Properties."


2.4.31 Adding and Configuring Stages in Message Flows
              Use a stage node as a container for actions in a message flow.
              Before you begin
              Display the message flow for the desired proxy service. See Section 2.4.1,
              "Constructing Proxy Service Message Flows."
              To add a stage
              1.   In the Message Flow Design Palette, open the Oracle Service Bus Message Flow >
                   Nodes list, if it is not already open.
              2.   Drag the stage to the desired location in the message flow.
              3.   Add actions to the stage for your configuration.
              To configure the stage
              1.   In the Message Flow Editor, click the stage, if it is not already selected.
              2.   On the Stage Node Properties page, edit the desired properties.
                   For configuration details, see Section 4.11.33, "Stage Node Properties."


2.4.32 Adding and Configuring Transport Headers Actions in Message Flows
              Use a transport header action to set header values in messages.
              Before you begin
              Display the message flow for the desired proxy service. See Section 2.4.1,
              "Constructing Proxy Service Message Flows."
              To add a transport headers action
              1.   In the Message Flow Design Palette, open the Stage Actions > Communication
                   list, if it is not already open.
              2.   Drag the transport headers action to the desired location in the message flow.
              To configure the transport headers action
              1.   In the Message Flow Editor, click the transport headers action, if it is not already
                   selected.
              2.   On the Transport Headers Action Properties page, edit the desired properties.
                   For configuration details, see Section 4.11.34, "Transport Headers Action
                   Properties."


2.4.33 Adding and Configuring Validate Actions in Message Flows
              Use a validate action to validate elements selected by an XPath expression against an
              XML schema element or a WSDL resource.
              Before you begin
              Display the message flow for the desired proxy service. See Section 2.4.1,
              "Constructing Proxy Service Message Flows."
              To add a validate action




                                                                                                 Tasks 2-31
Working with Alert Destinations


                     1.   In the Message Flow Design Palette, open the Stage Actions > Message
                          Processing list, if it is not already open.
                     2.   Drag the validate action to the desired location in the message flow.
                     To configure the validate action
                     1.   In the Message Flow Editor, click the validate action, if it is not already selected.
                     2.   On the Validate Action Properties page, edit the desired properties.
                          For configuration details, see Section 4.11.35, "Validate Action Properties."


2.5 Working with Alert Destinations
                     The following topics describe how to create and work with alert destinations in the
                     Oracle Service Bus plug-ins.
                     ■    Section 2.5.1, "Creating and Editing Alert Destinations"
                     ■    Section 2.5.2, "Adding E-mail Recipients to Alert Destinations"
                     ■    Section 2.5.3, "Adding JMS Destinations to Alert Destinations"


2.5.1 Creating and Editing Alert Destinations
                     To create alert destinations:
                     1.   In the Project Explorer in the Oracle Service Bus perspective, right-click a project
                          or folder in which you want to create an alert destination.
                     2.   From the menu, select File > New > Alert Destination to display the New Alert
                          Destination Resource wizard.
                          See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.


                              Note:   You can create an alert destination in an Oracle Service Bus
                              project only.


                     To edit alert destinations:
                     1.   In the Project Explorer, find the project folder containing the alert destination you
                          want to edit.
                     2.   Double-click the name of the alert destination to display the Alert Destination
                          Editor. Edit information, as desired.
                     For configuration details, see Section 4.1.1, "Alert Destination Editor."


2.5.2 Adding E-mail Recipients to Alert Destinations
                     To add e-mail recipients to alert destinations:
                     1.   Create or edit an alert destination, as described in Section 2.5.1, "Creating and
                          Editing Alert Destinations."
                     2.   In the E-mail Recipients field of the Alert Destination Editor, click Add to display
                          the Edit E-mail Recipient Page.


2.5.3 Adding JMS Destinations to Alert Destinations
                     To add JMS destinations to alert destinations:


2-32 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with MQ Connections


             1.   Create or edit an alert destination, as described in Section 2.5.1, "Creating and
                  Editing Alert Destinations."
             2.   In the JMS Destinations field of the Alert Destination Editor, click Add to display
                  the Edit JMS Destination Page.


2.6 Working with MQ Connections
             MQ connections are sharable resources that can be reused across multiple MQ proxy
             and business services. MQ proxy and business services must connect to a MQ queue
             manager before accessing an MQ queue. MQ Connection resources provide the
             connection required for connecting to an MQ queue manager.
             Each MQ Connection resource has a connection pool. Every business or proxy service
             using a given MQ Connection resource to get a connection to a given queue manager
             uses the same connection pool that was created for that resource. Thus, multiple
             business services and proxy services using the same queue manager share a
             connection pool.
             To learn more about Oracle Service Bus MQ Connection resources and the native MQ
             transport, see "MQ Transport" in the Oracle Fusion Middleware Developer's Guide for
             Oracle Service Bus at
             http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117.
             To learn more about WebSphere MQ Fundamentals, see
             http://www.redbooks.ibm.com/redbooks/SG247128/wwhelp/wwhimpl/jav
             a/html/wwhelp.htm.


2.6.1 Adding and Editing MQ Connections
             In Oracle Service Bus, MQ connections are created as custom resources. Therefore, to
             add an MQ connection, you must create it as a custom resource, as follows:
             1.   In the Oracle Service Bus perspective, select File > New > Custom Resource to
                  display New Custom Resource Wizard.
                  See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.
             2.   On the Create a New Custom Resource page, in the Resource Type field, select
                  MQ Connection.
             3.   Enter configuration information, on the Custom MQ Resource Configuration Page.


                      Note:   Do not include spaces in the MQ Connection resource name.


             To edit MQ connections:
             1.   In the Project Explorer, find the Oracle Service Bus configuration folder containing
                  the MQ connection resource you want to edit.
             2.   Double-click the name of the MQ connection to display the Custom MQ Resource
                  Configuration Page.
             For configuration details, see Section 4.5.4, "Custom MQ Resource Configuration
             Page."




                                                                                            Tasks 2-33
Working with Oracle Enterprise Repository and Harvester



2.7 Working with Oracle Enterprise Repository and Harvester
                    Oracle Enterprise Repository is an enterprise metadata repository for application
                    resources and services. Using Oracle Enterprise Repository in conjunction with Oracle
                    Service Registry, Oracle’s UDDI solution, is a best-practice approach to locating, using,
                    synchronizing, and governing enterprise-wide services through Oracle Service Bus.
                    Harvester is an Oracle Enterprise Repository tool that lets you harvest enterprise
                    artifacts into Oracle Enterprise Repository from multiple sources, including Oracle
                    Service Bus.
                    Oracle Service Bus provides native connectivity to Oracle Enterprise Repository and
                    Harvester in the development environment, letting you both generate business
                    services from the repository and harvest Oracle Service Bus projects to the repository.
                    Harvester also provides command-line scripting for harvesting Oracle Service Bus
                    projects in the run-time environment.
                    For more information on Oracle Enterprise Repository, see the Oracle Fusion
                    Middleware Quick Start Guide for Oracle Enterprise Repository at
                    http://www.oracle.com/pls/as1111/lookup?id=OERQS.
                    This section includes the following topics:
                    ■    Section 2.7.1, "Generating Business Services from Oracle Enterprise Repository"
                    ■    Section 2.7.2, "Using Harvester"
                    ■    Section 2.7.3, "Performing Queries in Oracle Enterprise Repository from Eclipse"


2.7.1 Generating Business Services from Oracle Enterprise Repository
                    You can generate business services in the Oracle Service Bus development
                    environment from service assets in Oracle Enterprise Repository.
                    In a best-practices deployment scenario, service assets in Oracle Enterprise Repository
                    have associated services stored in Oracle Service Registry. When you generate business
                    services from Oracle Enterprise Repository assets, those services can be synchronized
                    with the associated services stored in the registry through Oracle Service Bus UDDI
                    resources.
                    This section provides instructions on using the development environment to generate
                    business services from service assets in Oracle Enterprise Repository.


                             Note:   To generate business services in Oracle Service Bus, Oracle
                             Enterprise Repository assets must be SOAP/XML WSDL-based
                             services using HTTP.


                    1.   Perform a query in Oracle Enterprise Repository to locate the service from which
                         you want to generate a business service. See Section 2.7.3, "Performing Queries in
                         Oracle Enterprise Repository from Eclipse."
                    2.   Right-click the service asset from which you want to generate the new business
                         service, and choose Oracle Service Bus > Generate Business Service.
                    3.   In the Generate Business Service window, select a location in Eclipse for the new
                         business service, and select an endpoint.
                         See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.




2-34 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Oracle Enterprise Repository and Harvester



                       Note:  Service assets must have an endpoint in order to generate
                       business services in Oracle Service Bus.


              4.   If the Oracle Enterprise Repository asset is associated with Oracle Service Registry,
                   you can click Next to configure an Oracle Service Bus UDDI Registry resource that
                   at run time connects to Oracle Service Registry (otherwise, skip to the next step).
                   The Oracle Enterprise Repository asset automatically provides the Inquiry URL to
                   Oracle Service Registry.
                   The Configure UDDI Registry window provides the following options: Select a
                   matching UDDI Registry Resource, select a non-matching UDDI Registry resource
                   or create a new one, or not use UDDI.
                   If you select the option to create a new UDDI Registry resource, see Section 4.14,
                   "UDDI Registry Configuration Page" for guidance.
              5.   Click Finish to generate the business service.
                   A new HTTP business service and its associated WSDL and XSD are added to
                   your development environment.
                   If the Oracle Enterprise Repository asset endpoint is associated with a service in
                   Oracle Service Registry, the business service configuration contains UDDI
                   connection details to the Oracle Service Registry instance.
              6.   If the Oracle Enterprise Repository asset references an Oracle Web Services
                   Manager policy or a WS-Policy, the generated business services does not
                   automatically include the policy. You must manually add Oracle Web Services
                   Manager policies and WS-Policies. WSDL-based policies, however, are
                   automatically included.
              In the development environment, you do not establish a subscription to Oracle Service
              Registry. The subscription and service synchronization to Oracle Service Registry
              occurs when you deploy the business service to the Oracle Service Bus run-time
              environment. Service synchronization is determined by the UDDI Registry resource’s
              Auto-Import setting.
              For more information on UDDI, see "UDDI" in the Oracle Fusion Middleware
              Administrator's Guide for Oracle Service Bus at
              http://www.oracle.com/pls/as1111/lookup?id=OSBAG392.


2.7.2 Using Harvester
              Harvester lets you submit Oracle Service Bus projects to Oracle Enterprise Repository
              from Eclipse, the command line, with an Ant task, or with a WSLT script).
              Two concepts in harvesting are local harvesting and remote harvesting. Local
              harvesting, performed from Eclipse and from specific command-line scripts, submits
              projects from the file system to the repository. Remote harvesting, performed from
              command-line scripts, submits projects from a run-time environment.
              When you harvest resources, the dependency relationships are maintained in Oracle
              Enterprise Repository.
              Table 2–1 describes differences between harvesting scenarios to help you decide which
              scenario is appropriate.




                                                                                                Tasks 2-35
Working with Oracle Enterprise Repository and Harvester



                    Table 2–1     Differences in Harvesting Scenarios
                    Eclipse Harvests                  Local Harvests                    Remote Harvests
                    You can harvest a single          You can use the                   You can use the
                    project or an Oracle Service      command-line scripts to           command-line scripts to
                    Bus configuration containing      harvest Oracle Service Bus        harvest Oracle Service Bus
                    multiple projects.                artifacts from a configuration    artifacts from a configuration
                                                      JAR on the file system. You       JAR in the run-time
                                                      can harvest all the projects in   environment. You can harvest
                                                      the configuration jar or          all the projects in the
                                                      selected projects.                configuration jar or selected
                                                                                        projects.
                    Proxy service endpoint assets     Proxy service endpoint assets     Proxy service endpoint assets
                    are not created in the            are not created in the            are created in the repository.
                    repository.                       repository.
                                                                                        If you perform a remote
                                                                                        harvest on the same services
                                                                                        you harvested from Eclipse or
                                                                                        a local harvest, the newly
                                                                                        created service endpoints are
                                                                                        added to the same services
                                                                                        that were harvested locally.
                    Service WSDLs (effective          Service WSDLs (effective          Service WSDLs (effective
                    WSDLs) are generated in the       WSDLs) are generated in the       WSDLs) are generated in the
                    repository with a local           repository with a local           repository with the server
                    addresses, such as                addresses, such as                run-time address.
                    localhost:7001.                   localhost:7001.


                    Before using Oracle Service Bus with Harvester, be sure to install the Harvester
                    Solution Pack, as described in "Configuring and Using Automated Harvesting in
                    Design-time and Runtime Environments" in the Oracle Fusion Middleware Configuration
                    Guide for Oracle Enterprise Repository at
                    http://www.oracle.com/pls/as1111/lookup?id=OERCG.
                    The following sections describe Eclipse, local, and remote harvesting.

                    2.7.2.1 Using Harvester from Eclipse
                    The Oracle Service Bus plug-ins for Eclipse provide built-in functionality for
                    Harvesting projects to Oracle Enterprise Repository.
                    For information on how the assets are harvested from Eclipse, see Table 2–1.
                    To Harvest an Oracle Service Bus project from Eclipse:
                    1.   In Project Explorer view, right-click the project you want to harvest and select
                         Submit Project to Enterprise Repository.
                         You can also right-click an Oracle Service Bus configuration project to harvest all
                         projects in the configuration.
                    2.   In the Submit window, enter the connection details to the repository, including the
                         repository URI and login credentials.
                         If you have previously configured a connection to Oracle Enterprise Repository, as
                         described in Section 2.7.3, "Performing Queries in Oracle Enterprise Repository
                         from Eclipse," those connection details appear by default.
                         Optionally:
                         ■   Enter a namespace for the project and its artifacts. The namespace prepends
                             the name of service assets in Oracle Enterprise Repository query results.



2-36 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Oracle Enterprise Repository and Harvester


     ■   Select a Registration Status for the artifacts. For example, if you are harvesting
         the artifacts for testing, select an appropriate status, such as Unsubmitted.
     ■   Modify the default connection timeout in milliseconds.
     ■   Modify the default description of the project(s).
3.   Click Submit. An activity bar scrolls while the upload proceeds. When the upload
     finishes, click Close.
4.   To see your harvested resources, perform a query in Oracle Enterprise Repository,
     described in Section 2.7.3, "Performing Queries in Oracle Enterprise Repository
     from Eclipse."

2.7.2.2 Using Harvester from the Command Line or a Script
Oracle Service Bus provides built-in Harvester resources necessary to harvest Oracle
Service Bus projects from the command line, using Ant tasks, or using WSLT scripts.
These resources are located at:
OSB_ORACLE_HOME/harvester
The main configuration file in the directory is HarvesterSettings.xml, which contains
placeholder configurations for the connection to Oracle Enterprise Repository, local
harvest settings, and remote harvest settings. Command-line Harvester uses the
configuration details in that file to perform harvests in conjunction with any override
configuration switches you provide.
Following are basic descriptions of local and remote harvesting:
■    Local Harvesting – A local harvest involves generating an Oracle Service Bus
     configuration JAR on the file system and targeting that JAR for harvest. All
     projects in the JAR are harvested.
     For information on generating an Oracle Service Bus configuration JAR, see
     Section 2.1.11, "Exporting Resources" or "Exporting Resources" in the Oracle Fusion
     Middleware Administrator's Guide for Oracle Service Bus at
     http://www.oracle.com/pls/as1111/lookup?id=OSBAG1320.
■    Remote Harvesting – A remote harvest involves pointing the script at a running
     Oracle Service Bus instance and targeting a single project or a full Oracle Service
     Bus configuration for harvest.
To help you decide which harvesting option you want to use, see Table 2–1.
Oracle Service Bus provides guidance and resource files for command-line, Ant, and
WSLT harvesting. For details, see the OSB_ORACLE_
HOME/harvester/README.TXT file.
The README.TXT file provides Oracle Service Bus-specific guidance. Use that
information and the Oracle Service Bus Harvester resources in conjunction with the
full set of command-line and scripting instructions in "Configuring and Using
Automated Harvesting in Design-time and Runtime Environments" in the Oracle
Fusion Middleware Configuration Guide for Oracle Enterprise Repository at
http://www.oracle.com/pls/as1111/lookup?id=OERCG. Use only the options
mentioned in the README.TXT file, as those are the only supported options with
Oracle Service Bus.
After you harvest projects, you can query Oracle Enterprise Repository in Eclipse to
view the harvested resources. See Section 2.7.3, "Performing Queries in Oracle
Enterprise Repository from Eclipse."




                                                                                   Tasks 2-37
Working with UDDI Registries



                               Note:   Besides the Oracle Service Bus harvester, which harvests full
                               projects, the command-line framework also supports built-in
                               harvesters for individual resources such as WSDLs, XSDs, XSLTs, and
                               WS-Policies. However, Oracle Service Bus does not support the use of
                               those harvesters for Oracle Service Bus 11g and later resources.
                               For harvesting individual resources, such as those in Oracle SOA
                               Suite, Oracle WebLogic Server, or plain WSDLs, download and use the
                               Harvester Base Data Pack.


2.7.3 Performing Queries in Oracle Enterprise Repository from Eclipse
                    The following steps show you how to connect to and query Oracle Enterprise
                    Repository in Eclipse. Querying lets you locate service assets from which you can
                    generate business services, browse assets in the repository, and view asset details and
                    relationships.
                    1.   In Eclipse, choose Window > Show View > Other, then choose Oracle Enterprise
                         Repository > Enterprise Repository Access.
                    2.   In Enterprise Repository Access view, click the Connect to enterprise repository
                         icon.
                    3.   In the Enterprise Repository Connection window, enter the repository URL and
                         login credentials, and click Establish Connection.
                    4.   On successful connection, click Finish.
                    5.   When connected to Oracle Enterprise Repository, you can query the repository to
                         locate the services and assets you want. For example, if you want to find service
                         assets, select Service in the All Types field of the Query screen, then click the
                         Perform query icon.
                         The Enterprise Repository Access view switches to the Results screen to display
                         query results.
                    You can also open the Enterprise Repository Asset Relationships view in Eclipse to see
                    graphical relationships among selected assets: Window > Show View > Other, then
                    choose Oracle Enterprise Repository > Enterprise Repository Asset Relationships.
                    For more information on working with Oracle Enterprise Repository in Eclipse, see the
                    Oracle Fusion Middleware Integration Guide for Oracle Enterprise Repository at
                    http://www.oracle.com/pls/as1111/lookup?id=OERIN.


2.8 Working with UDDI Registries
                    Universal Description, Discovery and Integration (UDDI) registries are used in an
                    enterprise to share Web Services. UDDI provides a framework in which to classify
                    your business, its services, and the technical details about the services you want to
                    expose.
                    Publishing a service to a registry requires knowledge of the service type and the data
                    structure representing that service in the registry. A registry entry has certain
                    properties associated with it and these property types are defined when the registry is
                    created. You can publish your service to a registry and make it available for other
                    organizations to discover and use. Proxy services developed in Oracle Service Bus can
                    be published to a UDDI registry. Oracle Service Bus can interact with any UDDI
                    version 3.0-compliant registry.



2-38 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


              See also "UDDI" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service
              Bus.


2.8.1 Adding and Configuring UDDI Registries
              To add UDDI registries:
              1.   In the Oracle Service Bus perspective, select File > New > UDDI Registry to
                   display the New UDDI Resource wizard.
                   See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.


                       Note:  You can add a UDDI registry only to an Oracle Service Bus
                       configuration project only.


              2.   After choosing a location and entering a name, configure the registry on the UDDI
                   Registry Configuration Page.


                       Note:  You can add a UDDI registry in an Oracle Service Bus
                       configuration project only.


              To configure UDDI registries:
              1.   In the Project Explorer, find the UDDI registry you want to configure.
              2.   Double-click the name of the registry.
              3.   Set configure options on the UDDI Registry Configuration Page.
              For configuration details, see Section 4.14, "UDDI Registry Configuration Page."


2.8.2 Importing Business Services From a UDDI Registry

                       Note:  In addition to importing business services directly from a
                       UDDI registry, you can generate business services from Oracle
                       Enterprise Repository. For more information see Section 2.2.3,
                       "Generating a Business Service from Oracle Enterprise Repository."


              To import business services from a UDDI registry:
              1.   Create a business service, as described in Section 2.2.1, "Creating Business
                   Services."
              2.   In the New Business Service wizard Business Service General Configuration Page,
                   select WSDL Web Service. then click Browse.
              3.   In the Select a WSDL dialog, click Consume.
              4.   In the Service Consumption dialog, select UDDI.


2.9 Working with Split-Join
              This section provides instructions for creating and configuring Split-Joins. Following
              are the primary topics in this section:
              ■    Section 2.9.1, "Introduction to Split-Join"


                                                                                              Tasks 2-39
Working with Split-Join


                     ■    Section 2.9.2, "Designing a Split-Join"
                     ■    Section 2.9.3, "Designing a Static Split-Join"
                     ■    Section 2.9.4, "Designing a Dynamic Split-Join"
                     For specific configuration details, see Section 4.22, "Split-Join User Interface
                     Reference."


2.9.1 Introduction to Split-Join
                     The Split-Join is a mediation pattern that can be used by a transport typed business
                     service in an Oracle Service Bus message flow. Split-Join allows you to send message
                     requests to multiple services concurrently, thus enhancing performance in comparison
                     to sending them sequentially. Split-Join achieves this task by splitting an input
                     message into individual messages, routing them concurrently to their destinations,
                     and then aggregating the responses into one overall message.
                     You design a Split-Join in the Eclipse Split-Join editor, then export it to the Oracle
                     Service Bus Administration Console for testing and production.


                              Note:   In the Oracle Service Bus Administration Console, a Split-Join
                              is associated with a business service using the Flow transport
                              protocol. Therefore, the Split-Join has a .flow file name extension in
                              Eclipse even though it is always referred to simply as a "Split-Join" in
                              this document.


                     There are two types of Split-Join pattern: static Split-Join and dynamic Split-Join, as
                     described in Section 2.9.2, "Designing a Split-Join."
                     For more information on invoking a business service from an Oracle Service Bus
                     message flow, see "Proxy Services: Message Flow" in the Oracle Fusion Middleware
                     Administrator's Guide for Oracle Service Bus at
                     http://www.oracle.com/pls/as1111/lookup?id=OSBAG1102.

                     2.9.1.1 Using Split-Join with Content in SOAP Headers
                     You can use Split-Join to enhance the performance of services that put message content
                     in the SOAP header. Proxy services can pass SOAP headers into Split-Joins, and
                     Split-Joins can pass SOAP headers to proxy and business services as an invocation or
                     response.
                     To enable this capability, you must declare the header parts along with the body parts
                     in a single request/response message in the Split-Join WSDL and in the WSDL of the
                     proxy or business services invoked by the Split-Join. With the message parts declared
                     in the WSDLs, SOAP header content is available to Split-Joins in the request/response
                     message variables.
                     Following is an example of the message and binding definitions in the WSDL.
                     Message
                     <wsdl:message name="retrieveCustomerOverviewByIdRequestMessage">
                         <wsdl:part name="retrieveCustomerOverviewByIdRequest"
                          element="co:retrieveCustomerOverviewByIdRequest"/>
                         <wsdl:part name="serviceContext" element="sc:serviceContext"/>
                     </wsdl:message>

                     Binding



2-40 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


              <wsdl:input>
              <soap:body use="literal" parts="retrieveCustomerOverviewByIdRequest"/>
                  <soap:header message="tns:retrieveCustomerOverviewByIdRequestMessage"
                   part="serviceContext" use="literal"/>
              </wsdl:input>


              2.9.1.2 Transaction Support
              Split-Joins provide support for propagating transactions. Many Split-Join operations
              provide an option for setting a specific quality of service (QoS) values, which control
              transaction support. The QoS value of Exactly Once on a Split-Join operation ensures
              the operation executes in the context of a transaction if one exists.
              Setting QoS on individual operations gives you the flexibility to execute multiple
              operations in the context of a transaction and execute other operations outside of a
              transaction in a single Split-Join. Operations set with a QoS of Exactly Once are
              executed in the transaction. Operations set with a QoS of Best Effort do not execute in
              the context of a transaction.
              Split-Joins do not handle transaction rollback in the case of exceptions. It is the
              responsibility service component that called the Split-Join to handle transaction
              exceptions and rollback.
              The following Split-Join operations support transaction propagation:
              ■   Invoke Service
              ■   Assign
              ■   Delete
              ■   Insert
              ■   Java Callout
              ■   Replace

              2.9.1.3 Security with Split-Joins
              Split-Joins do not enforce security policies, which means you cannot create a Split-Join
              with a WSDL that includes policies, and from a Split-Join you cannot call a
              WSDL-based business service that contains WSDL policies.
              To ensure security enforcement when using Split-Joins, use proxy services to handle
              security enforcement in the following ways:
              ■   Use the inbound proxy, which invokes the Split-Join, to enforce policies.
              ■   If the Split-Join needs to invoke a WSDL business service that contains policies,
                  have the Split-Join call a local proxy (configured without the security policies),
                  which in turn invokes the business service with the required policies.


2.9.2 Designing a Split-Join
              There are two Split-Join patterns, the Static Split-Join and the Dynamic Split Join.
              The Static Split-Join can be used to create a fixed number of message requests (as
              opposed to an unknown number). For instance, a customer places an order for a cable
              package that includes three separate services: internet service, TV service, and
              telephone service. In the Static use case, you could execute all three requests in
              separate parallel branches to improve performance time over the standard sequential
              execution.



                                                                                              Tasks 2-41
Working with Split-Join


                     The Dynamic Split-Join can be used to create a variable number of message requests.
                     For instance, a retailer places a batch order containing a variable number of individual
                     purchase orders. In the Dynamic use case, you could parse the batch order and create a
                     separate message request for each purchase. Like the Static use case, these messages
                     can then be executed in parallel for improved performance.

                     2.9.2.1 Initial Setup
                     Split-Joins potentially include the following tasks as part of their initial setup:

                     2.9.2.1.1 Creating/Importing a WSDL Containing the Base Operation Every Split-Join is based
                     upon a WSDL operation. When you first create a Split-Join, you will be asked to
                     browse to the appropriate WSDL file and to select this operation as part of the creation
                     process. You can create this WSDL file in Eclipse.

                     2.9.2.1.2 Creating/Importing a Business Service to Use the Split-Join Every Split-Join will be
                     used by a transport typed business service, which, in turn, is invoked by a proxy
                     service. You cannot export or test your Split-Join until you have created this business
                     service. If it already exists, you can import it into Eclipse, or, if it does not exist, you
                     can create it in Eclipse or the Oracle Service Bus Administration Console. If you want
                     to get started on your Split-Join before you create the business service, you can
                     generate the business service automatically after you create the Split-Join.


2.9.3 Designing a Static Split-Join
                     Suppose you want to design a new Split-Join called Service Availability that handles
                     orders for a telco’s cable service package including TV, phone, and internet service.
                     The idea is for the Split-Join to receive an incoming package order and to reply with an
                     order acknowledgement for each type of service. In this case, Service Availability is
                     designed as a Static Split-Join because there are three message requests per order, one
                     for each type of service. In this particular example the customer requests only TV and
                     DSL service.
                     Creating the Service Availability Split-Join may include the following tasks:
                     Section 2.9.3.1, "1. Creating a New Split-Join"
                     Section 2.9.3.2, "2. Adding an Assign"
                     Section 2.9.3.3, "3. Adding a Parallel Node"
                     Section 2.9.3.4, "4. Adding an Assign for Each Branch"
                     Section 2.9.3.5, "5. Adding an Invoke Service"
                     Section 2.9.3.6, "6. Adding an Assign for Each Branch"
                     Section 2.9.3.7, "7. Exporting and Testing the Split-Join"

                     2.9.3.1 1. Creating a New Split-Join
                     Create a new Split Join based on the WSDL operation you want to use for placing the
                     order. In this case the WSDL operation we want is called "telecom."
                     See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.
                     After you select the WSDL operation, a skeleton of the newly created Split-Join
                     appears in the Split-Join editor, as shown in the following figure. It consists of a Start
                     Node, a Receive, a Reply. The labels are then edited in the general properties tab to
                     better reflect the specific function of each node in this particular Split-Join.



2-42 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


Figure 2–1 New Split-Join




The Start Node contains both a Request Variable and a Response Variable that have
been determined by the WSDL operation initially selected. The Receive receives the
incoming request message (in this case for the three or fewer different kinds of cable
service), and the Reply generates a response message and sends it back to the client.


        Note: The Receive node requires no further configuration. Similarly
        the Reply requires no further configuration, unless to generate an
        error fault, which is not the case in this scenario (see Section 2.9.15,
        "Configuring a Reply"for more information on generating faults).


2.9.3.2 2. Adding an Assign
The first Assign, Prepare Output Message, contains an Assign operation that prepares
the Response Variable in a form such that the later nodes can work on the data within
it (that is, Copy/Insert/Assign/Replace/Delete/Java Callout/Log the data). This
output message is relayed to the final Reply node in the Split-Join and, in turn,
returned to the original client.

2.9.3.3 3. Adding a Parallel Node
The Parallel Node contains two main branches, one to check cable TV availability and
one to check DSL availability. Each branch is composed of a number of actions, the
sequence and general configuration being the same for both branches.




                                                                               Tasks 2-43
Working with Split-Join


                     Figure 2–2 Parallel Node




                     2.9.3.4 4. Adding an Assign for Each Branch
                     The first Assign in each Parallel Branch, Prepare Input Address, copies the incoming
                     customer address data into a Variable that is referenced to check the availability of the
                     service at that location. The Assigns are the same for each branch and would be for
                     additional branches as well.

                     2.9.3.5 5. Adding an Invoke Service
                     An External Service is then invoked to check whether the requested service type is
                     available at the customer’s location. Each branch contains one Invoke Service, Check
                     Cable TV Availability and Check DSL Availability. Each invocation calls an External
                     Service, which compares the customer’s address (stored in the Variable initialized in
                     the previous step) to the availability of the service at that location. The result is then
                     stored in an output Variable that is passed on to the final Assign in the Branch below.

                     2.9.3.6 6. Adding an Assign for Each Branch
                     The final two Assigns, Update Cable TV Status in Output Message and Update DSL Status
                     in Output Message, take the results of the external service invocations and put them
                     into the output message using a Replace operation. The aggregated response are then
                     sent to the original client in the final Reply node, which requires no further
                     configuration.

                     2.9.3.7 7. Exporting and Testing the Split-Join
                     After you design the Split-Join, you can export it to the Oracle Service Bus
                     Administration Console for testing and production.




2-44 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


              Figure 2–3 Completed Split-Join Ready for Testing




              Related Topics
              ■   Section 2.9.5, "Creating a New Split-Join"
              ■   Section 2.9.6, "Configuring the Start Node"
              ■   Section 2.9.8, "Creating an Assign"
              ■   Section 2.9.9, "Invoking a Service"
              ■   Section 2.9.10, "Creating a Parallel"
              ■   Section 2.9.17, "Exporting and Testing a Split-Join"


2.9.4 Designing a Dynamic Split-Join
              Suppose that you want to design a Split-Join that handles a batch order from a retailer
              containing a variable number of individual purchase orders (as opposed to a fixed
              number of orders). The idea is for the Split-Join to receive the batch order and to reply
              with an order acknowledgement for each order within. This would be a Dynamic
              Split-Join because the number of individual purchase order requests is variable and
              unknown at design time.
              Creating this Split-Join may include the following tasks:
              Section 2.9.4.1, "1. Creating a New Split-Join"
              Section 2.9.4.2, "2. Adding an Assign"



                                                                                             Tasks 2-45
Working with Split-Join


                     Section 2.9.4.3, "3. Adding a For Each"
                     Section 2.9.4.4, "4. Adding an Assign"
                     Section 2.9.4.5, "5. Adding an Invoke Service"
                     Section 2.9.4.6, "6. Adding an Assign"
                     Section 2.9.4.7, "7. Adding an Error Handler"
                     Section 2.9.4.8, "8. Exporting and Testing the Split-Join"

                     2.9.4.1 1. Creating a New Split-Join
                     Create a new Split Join based off of the WSDL operation you want to use for placing
                     the order. In this case the WSDL operation we want is called "batchOrders."
                     See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.
                     After the operation is selected, a skeleton of the newly created Split-Join appears in the
                     Split-Join editor consisting of a Start Node, a Receive, a Reply. The labels are then
                     edited in the general properties tab to better reflect the specific function of each node
                     in this particular Split-Join.

                     Figure 2–4 New Split-Join With Edited Labels




                     The Start Node, Order Placement, contains both a request variable, inputVar, and an
                     response variable, outputVar. The Receive, Receive Batch Order Request, will initialize
                     the contents of the Request Variable (in this case purchase orders), and the Reply, Reply
                     Order Placement, will send a response, based on the order acknowledgements
                     aggregated into the Response Variable, back to the client. In this example Order
                     Placement also contains a callout to an External Service, "Order" that will be invoked to
                     approve individual orders.


                             Note: The Receive node requires no further configuration. Similarly,
                             the Reply requires no further configuration, unless you would like to
                             generate an error fault—which is not the case in this scenario (see
                             Section 2.9.15, "Configuring a Reply"for more information on
                             generating faults).




2-46 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


2.9.4.2 2. Adding an Assign
The first Assign, Prepare Output Message, contains an Assign operation that prepares
the response variable (here labeled an "Output Message" for readability) in a form such
that the later nodes can work on the data captured within it (that is,
Copy/Insert/Assign/Replace/Delete into the Variable). In this case, that data would
consist of order acknowledgments and/or errors.This Output Message is relayed to
the final Reply node in the Split-Join and, in turn, returned to the original client.

2.9.4.3 3. Adding a For Each
The For Each, Iterate Through Orders, contains logic that will parse through each order
in the batch, send it to an external proxy for approval, and capture an order
acknowledgment in response. If there is a problem with an order, an error is sent from
the invoked proxy and captured in the Error Handler. The following figure depicts the
entire scope of the For Each logic.

Figure 2–5 For Each Node Labeled "Iterate Through Orders"




2.9.4.4 4. Adding an Assign
The Assign, Prepare Purchase Order, copies the incoming purchase order requests into a
variable that is referenced to check approval of the order in the next step.

2.9.4.5 5. Adding an Invoke Service
An external service, Check Order Availability, is then invoked to approve each
individual purchase order. If the order is accepted, the service responds with an order
acknowledgment. If the order is not accepted, the service responds with an error.The



                                                                              Tasks 2-47
Working with Split-Join


                     result is then stored in an output variable that is passed on to the final Assign in the
                     next step.

                     2.9.4.6 6. Adding an Assign
                     The final Assign, Update Order Status in Output Message, takes the results of the
                     external service invocation and copies them into the output message using an Insert
                     operation. The aggregated response is then sent to the original client in the final Reply
                     node, which requires no further configuration.

                     2.9.4.7 7. Adding an Error Handler
                     The Error Handler captures any Errors returned by the invoked service. It takes these
                     errors and inserts them into the output message using an Assign operation.

                     Figure 2–6 Error Handler




                     2.9.4.8 8. Exporting and Testing the Split-Join
                     After you design the Split-Join, you can export it to the Oracle Service Bus
                     Administration Console for testing and production.




2-48 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


              Figure 2–7 Completed Split-Join Ready for Testing




              Related Topics
              ■    Section 2.9.5, "Creating a New Split-Join"
              ■    Section 2.9.6, "Configuring the Start Node"
              ■    Section 2.9.13, "Creating an Error Handler"
              ■    Section 2.9.10, "Creating a Parallel"
              ■    Section 2.9.15, "Configuring a Reply"
              ■    Section 2.9.17, "Exporting and Testing a Split-Join"


2.9.5 Creating a New Split-Join
              In order to create a new Split/Join, you must have access to a WSDL containing the
              operation upon which to base the Split-Join. The Split Join must be created in an
              existing Oracle Service Bus project within an existing Oracle Service Bus configuration
              project.
              To create a new Split-Join:
              1.   In the Oracle Service Bus perspective, select File > New > Split-Join. This opens
                   the New Split-Join Wizard.
                   See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.




                                                                                            Tasks 2-49
Working with Split-Join


                     2.   In the New Split-Join Wizard, type or select an Oracle Service Bus project location
                          and enter a file name for the new Split-Join. When you have finished, click Next.
                     3.   In the next screen, you must select a binding and then an operation on which to
                          implement the Split-Join. There are two ways to make your selection:
                          a.   Choose your operation from one of the WSDLs displayed in the Select
                               Operation tree. All of the WSDLs in your current Oracle Service Bus
                               configuration project are available.
                          b.   Import your WSDL into the Oracle Service Bus configuration project using the
                               Consume button. Consumption imports a new WSDL into your configuration
                               from an outside source, as described in the following step.
                     4.   If you choose to consume the base WSDL, go through the following steps:
                          a.   Click Consume.
                          b.   Browse for the location, or "Artifact Folder," wherein you wish to generate the
                               consumed WSDL. The default artifact folder is your current Oracle Service Bus
                               project.
                          c.   If you want to overwrite existing local files, select the checkbox.
                          d.   Choose the service resource in which the WSDL to be consumed resides:
                               Enterprise Repository, File System, UDDI, URI, or Workspace.
                          e.   Select The WSDL that you want to consume from that Service Resource. After
                               you have made your selection the workspace will rebuild momentarily and
                               the Service Consumption Status dialog will appear depicting the status of
                               your consume. If it was successful, click OK to close the dialog.
                          f.   The consumed WSDL is now in your Oracle Service Bus configuration project,
                               and you can select an operation from it upon which to base your Split-Join.
                     5.   Click Finish.
                     A basic Split-Join is created and visually represented as a diagram in the Design View.
                     By default, it consists of a Start Node, a Receive, and a Reply. The Start Node contains
                     the Request and Response Variables introspected from the WSDL operation. The
                     Receive is used to receive incoming request messages. The Reply is used to send
                     response messages.
                     Related Topics
                     ■    Section 2.9.6, "Configuring the Start Node"
                     ■    Section 2.9.7, "Configuring a Receive"
                     ■    Section 2.9.10, "Creating a Parallel"
                     ■    Section 4.22.31, "Split-Join Wizard - New Split-Join"


2.9.6 Configuring the Start Node
                     The Start Node is generated automatically whenever you create a new Split-Join. It is
                     the starting point from which all the other nodes proceed. Configuring a Start Node
                     can include the following tasks:
                     ■    Add General Information
                     ■    Define Global Variables
                     ■    View External Services
                     Related Topics


2-50 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


■    Section 2.9.9, "Invoking a Service"
■    Section 4.22.2, "Global / Start Node Properties"

2.9.6.1 Adding General Information
General information is useful for making a node more legible. It includes the ability to
add a unique identifier, or Label, to the node and to supplement it with notes, or
Documentation. General information is optional.
1.   To add a Label to a node, select the General tab in the Properties view and enter a
     unique, identifying string in the Label field. The Label that you enter appears
     underneath the node in the Split-Join editor.
2.   In the Documentation field enter any notes that you think are important.

2.9.6.2 Defining Global Variables
Variables in the Start Node store data that can be referenced globally, that is by any
node in the Split-Join. By default, every Start Node is assigned both a request and a
response variable when the Split-Join is initially created. From the Start Node, you can
either create a new global variable or edit an existing global variable.
For information on the relationship between global and local variables, see
Section 2.9.16.1, "Scope and Variables."
To create a new global variable
1.   Right-click the Start Node and select Create Variable to open the Create Variable
     Dialog.
2.   Enter a name for the variable.
3.   Select the Variable Type (Builtin, Schema, or Message).
4.   Choose a Variable.


         Note: You may need to drill down into the hierarchy to select a
         Schema or Message Type variable.


5.   Click OK.
If it is not already open, expand the content area to the left by clicking the arrow to the
left of the Start Node icon. The newly created variable appears in the Variables field
along with any other global variables. To view the details of any variable, simply select
it and its structure will appear in the Properties view.
To edit an existing global Variable
1.   Open the Edit Variable Dialog in one of the following ways:
     ■   Right-click the selected variable and select Edit Variable from the context
         menu.
     ■   Select a variable and click Edit in the variable Properties view.
2.   Enter a name for the Variable.
3.   Select the Variable Type: Builtin, Schema, or Message.
4.   Choose a variable.




                                                                                Tasks 2-51
Working with Split-Join



                              Note: You may need to drill down into the hierarchy to select a
                              Schema or Message Type variable.


                     5.   Click OK.
                     If it is not already open, expand the content area to the left of the Start Node icon. The
                     newly created variable appears in the Variables field along with any other global
                     variables. To view the details of any variable, simply select it and its structure will
                     appear in the Properties view.

                     2.9.6.3 Viewing External Services
                     The External Services listed in the Start Node are those invoked outside of the context
                     of the Split-Join. They are specified in an Invoke Service but listed here for
                     convenience.
                     To view External Services, expand the content area to the left of the Start Node by
                     clicking the arrow to the left of the Start Node icon. When an External Service is
                     selected, a dashed blue arrow appears pointing to the Invoke Service associated with
                     the service, and the service’s location appears in the Properties view.


2.9.7 Configuring a Receive
                     A Receive is generated automatically whenever you create a new Split-Join. The
                     purpose of the Receive is to place incoming request data in a variable and make the
                     contents available for later nodes to use. Configuring a Receive can include the
                     following tasks:
                     ■    View the Operation
                     ■    Define the Receive Variable
                     ■    Add General Information
                     Related Topics
                     Section 4.22.24, "Receive Properties"

                     2.9.7.1 Viewing the Operation
                     The Operation is based upon the initial WSDL selection for the overall Split-Join. It is
                     displayed in the Properties View for reference.

                     2.9.7.2 Defining the Receive Variable
                     You must define the Incoming Message Variable the Receive will initialize.
                     1.   Select the Receive operation.
                     2.   Create a new Message Variable (following steps).


                              Note:  If there are no available Message Variables associated with the
                              previously chosen Operation, you must create a new Message
                              Variable.


                          To create a new Message Variable, select Create Message Variable from the
                          Message Variable menu, enter a variable name in the Create Variable dialog, and
                          click OK.


2-52 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


              Note that Message Type Namespace and Message Type are displayed automatically on
              the Properties page once the variable is defined.

              2.9.7.3 Adding General Information
              General information is useful for making a node more legible. It includes the ability to
              add a unique identifier, or Label, to the node and to supplement it with notes, or
              Documentation. General information is optional.
              1.   To add a Label to a node, select the General tab in the Properties view and enter a
                   unique, identifying string in the Label field. The Label that you enter appears
                   underneath the node in the Split-Join editor.
              2.   In the Documentation field enter any notes that you think are important.


2.9.8 Creating an Assign
              The Assign is used for data-manipulation including initializing and updating a
              variable. It is composed of a set of one or more operations that can be added from the
              Assign toolbar. Configuring an Assign can include the following tasks:
              ■    Add and Configure Assign Operations
              ■    Add General Information
              Related Topics
              Section 4.22.17, "Assign Properties"

              2.9.8.1 Adding and Configuring Assign Operations
              Assign operations include Assign, Copy, Delete, Insert, Java Callout, Log, and Replace.
              Every Assign is composed of one or more of these operations, which you can add to
              the Assign using the Design Palette view.


                       Note:   The Assign operations in the Split-Join editor are essentially
                       the same as the corresponding actions in the Eclipse Message Flow
                       editor. However, one important difference is that when you are using
                       the XQueryXSLT or XPath Editors to edit expressions in the
                       Split-Join context, only variables and namespaces internal to the
                       Split-Join are available.


              A brief explanation of each operation follows:
              ■    Assign the result of an XQuery Expression to a Variable.
                   For more information on configuring the Assign, see Section 4.22.17, "Assign
                   Properties".
              ■    Copy the information specified by an XPath expression from a source document to
                   a destination document. (This operation is unique to Split-Join and has no
                   corresponding Action in the Eclipse Message Flow editor, as described in
                   Section 2.9.8.1.2, "Adding a Copy Operation").
              ■    Delete a set of nodes specified by an XPath expression.




                                                                                             Tasks 2-53
Working with Split-Join



                              Note:  Unlike the Oracle Service Bus delete, only an XPath expression
                              may be deleted in a Split-Join, not the entire variable.
                              For more information on configuring the Delete operation, see
                              Section 4.22.19, "Delete Properties."


                     ■    Insert the result of an XQuery Expression at an identified place relative to nodes
                          selected by an XPath expression.
                          For more information on configuring the Insert operation, see Section 4.22.20,
                          "Insert Properties."
                     ■    Java Callout lets you invoke a Java method for processing such as validation,
                          transformation, and logging.
                          For more information on configuring the Java Callout operation, see
                          Section 4.22.21, "Java Callout Properties."
                     ■    Log lets you log Split-Join data at a specified severity to the server log file.
                          For more information on configuring the Log operation, see Section 4.22.22, "Log
                          Properties."
                     ■    Replace a node or the contents of a node specified by an XPath expression.
                          For more information on configuring the Replace operation, see Section 4.22.23,
                          "Replace Properties."

                     2.9.8.1.1 Adding an Operation to an Assign Adding an operation to the Assign involves
                     the following steps:
                     1.   Drag the operation from the Design Palette into the Assign node in the Split-Join
                          editor.
                     2.   Configure the operation in the Properties view.
                     3.   Save the Split-Join.
                     You can edit an operation by selecting it and modifying the properties in the
                     Properties view.

                     2.9.8.1.2 Adding a Copy Operation The Copy operation lets you copy the information
                     specified by an XPath expression from a source document to a destination document.
                     It is an operation unique to the Split-Join editor. Adding a Copy operation to the
                     Assign involves the following steps:
                     1.   Add a Copy to the Assign from the Design Palette.
                     2.   In the Properties view, select a Copy From type and a Copy To type.
                     3.   If the type is an expression, enter the expression manually or click Browse to
                          launch the XQuery Expression Builder.
                     4.   In the type is a variable, drill down to and select the desired element. The resulting
                          query will be displayed in the Query field below.
                     5.   If the Copy From type is a Literal, enter the literal in the text field.
                     6.   If the Copy From type is an XML fragment, enter [or paste] the fragment in the
                          text field.




2-54 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


              2.9.8.2 Adding General Information
              General information is useful for making a node more legible. It includes the ability to
              add a unique identifier, or Label, to the node and to supplement it with notes, or
              Documentation. General information is optional.
              1.   To add a Label to a node, select the General tab in the Properties view and enter a
                   unique, identifying string in the Label field. The Label that you enter appears
                   underneath the node in the Split-Join editor.
              2.   In the Documentation field enter any notes that you think are important.


2.9.9 Invoking a Service
              The Invoke Service is used to invoke external, WSDL-based business services,
              WSDL-based proxy services, and Split-Joins. Configuring an Invoke Service can
              include the following tasks:
              ■    Select an Operation
              ■    Define Input and Output Variables
              ■    Add General Information
              Related Topics
              ■    Section 2.9.6, "Configuring the Start Node"
              ■    Section 2.9.16, "About Scope"
              ■    Section 4.22.5, "Invoke Service Properties"

              2.9.9.1 Selecting an Operation
              An operation must be selected upon which to base the Invoke Service. You must select
              this operation before you can configure Input and Output variables. To select an
              operation:
              1.   Add an Invoke Service operation to the Split-Join from the Design Palette.
              2.   From the Operations tab in the Properties view, click Browse to launch the Service
                   Browser.
              3.   In the Service Browser, drill down to the desired service and select a Binding, then
                   an operation.
              4.   Click OK. The selected operation and its Service Location appear in the Properties
                   view.


                       Note:   Clicking a Service Location in the Properties view will open
                       the external service file.


              2.9.9.2 Defining Input and Output Variables
              An Invoke Service requires both an Input Variable and an Output Variable, unless it is
              a one-way invocation. The procedure to configure these variables is essentially the
              same. Either type of variable can be global (that is, available within the entire
              Split-Join) or local (that is, available within a particular context Scope.) To define either
              an Input or Output variable:
              In the Input Variable and Output Variable tabs in the Properties view, define the
              Message Variable for each. This can be done in two ways:



                                                                                                Tasks 2-55
Working with Split-Join


                     ■    Select a pre-existing variable from the Message Variable menu.
                     ■    Create a new Message Variable (following steps).


                              Note:  If there are no available Message Variables associated with the
                              previously chosen operation, you must create a new Message Variable.


                     To create a new Message Variable
                     1.   Select Create Message Variable from the Message Variable menu. The Create
                          Message Variable Dialog appears.
                     2.   Provide a name for the variable.
                     3.   Make the variable either global or local. Global variables are accessible within the
                          entire Split-Join, whereas local variables are restricted to the current Scope.
                     Message Type Namespace and Message Type are displayed automatically on the
                     Properties view once a variable is defined.

                     2.9.9.3 Adding General Information
                     General information is useful for making a node more legible. It includes the ability to
                     add a unique identifier, or Label, to the node and to supplement it with notes, or
                     Documentation. General information is optional.
                     1.   To add a Label to a node, select the General tab in the Properties view and enter a
                          unique, identifying string in the Label field. The Label that you enter appears
                          underneath the node in the Split-Join editor.
                     2.   In the Documentation field enter any notes that you think are important.


2.9.10 Creating a Parallel
                     The Parallel creates a fixed number of configured parallel branches. Each branch has
                     its own Scope which in turn can contain any number of nodes. Configuring a Parallel
                     can include the following tasks:
                     ■    Add Nodes
                     ■    Add General Information
                     Related Topics
                     ■    Section 2.9.16, "About Scope"
                     ■    Section 4.22.10, "Parallel Properties"

                     2.9.10.1 Adding Nodes
                     The Parallel is essentially a placeholder for a fixed number of processing branches,
                     each with its own scope. Two branches are automatically generated by default. An
                     individual scope may contain unique processing logic according to your construction;
                     simply drag the appropriate nodes into the Scope. You may add additional branches
                     with the Add Scope button.




2-56 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


              Figure 2–8 Add Scope Button




              2.9.10.2 Adding General Information
              General information is useful for making a node more legible. It includes the ability to
              add a unique identifier, or Label, to the node and to supplement it with notes, or
              Documentation. General information is optional.
              1.   To add a Label to a node, select the General tab in the Properties view and enter a
                   unique, identifying string in the Label field. The Label that you enter appears
                   underneath the node in the Split-Join editor.
              2.   In the Documentation field enter any notes that you think are important.


2.9.11 Creating a For Each
              The For Each is used to create conditional logic for iterating through a variable number
              of requests. It is primarily used to create dynamic Split-Joins. Configuring a For Each
              can include the following tasks:
              ■    Define the For Each Logic
              ■    Add General Information
              Related Topics
              ■    Section 2.9.9, "Invoking a Service"
              ■    Section 4.22.7, "For Each Properties"

              2.9.11.1 Defining the For Each Logic
              To define the For Each logic:
              1.   Add a For Each node to the Split-Join, and select it.
              2.   In the Properties view, select the Counter Variables tab, and set the Parallel
                   property to yes or no. If you choose yes, individual branches will be processed in
                   parallel. If you select no, they are processed sequentially.
              3.   Define the Counter Variable Name by clicking the Counter Name link.
              4.   Enter the Start Counter Value. If necessary, use the browse button to create a new
                   value in the XPath Expression Builder.


                       Note:   The lowest possible starting counter value is "1."


              5.   Enter the Final Counter Value. If necessary, use the browse button to create a new
                   value in the XPath Expression Builder.




                                                                                             Tasks 2-57
Working with Split-Join



                              Note:   The lowest possible starting counter value is "1."


                     2.9.11.2 Adding General Information
                     General information is useful for making a node more legible. It includes the ability to
                     add a unique identifier, or Label, to the node and to supplement it with notes, or
                     Documentation. General information is optional.
                     1.   To add a Label to a node, select the General tab in the Properties view and enter a
                          unique, identifying string in the Label field. The Label that you enter appears
                          underneath the node in the Split-Join editor.
                     2.   In the Documentation field enter any notes that you think are important.


2.9.12 Creating an If Activity
                     The If Activity is used to provide conditional logic within a Split-Join. It is composed
                     of a number of nodes that determine the behavior for the overall If activity. Each node
                     must be individually configured. When you create an If activity, an If and an Else are
                     automatically generated within it. You can add an unlimited number of Else If nodes
                     with the Add Else If button.

                     Figure 2–9 Add Else If Button




                     Configuring an If Activity can include the following tasks:
                     ■    Configure the If
                     ■    Add and Configure Else If
                     ■    Configure the Else
                     Related Topics
                     ■    Section 2.9.16, "About Scope"
                     ■    Section 2.9.4, "Designing a Dynamic Split-Join"
                     ■    Section 4.22.8, "If Properties"
                     ■    Section 4.22.12, "Repeat Until Properties"
                     ■    Section 4.22.15, "While Properties"

                     2.9.12.1 Configuring the If
                     The If provides a unit of conditional logic within the overall If activity. It is
                     automatically generated when you create an If activity. Configuring an If can include
                     the following tasks:
                     ■    Write the logic of the condition
                     ■    Add resulting nodes


2-58 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


■    Add General Information
Related Topics
■    Section 4.22.9, "If and Else If Properties"
■    Section 4.22.12, "Repeat Until Properties"
■    Section 4.22.15, "While Properties"

2.9.12.1.1 Writing the logic of the condition The If Activity executes conditional logic
defined by an XPath expression. Enter this condition in the Condition text field of the
Condition tab, or click the browse button to launch and write the expression in the
expression builder.

2.9.12.1.2 Adding resulting nodes If the condition in the If logic is met, a subsequent
node or string of nodes will result. Add and configure any resulting nodes by
dragging them in sequential order to a drop point beneath the If icon.

2.9.12.1.3 Adding General Information General information is useful for making a node
more legible. It includes the ability to add a unique identifier, or Label, to the node and
to supplement it with notes, or Documentation. General information is optional.
1.   To add a Label to a node, select the General tab in the Properties view and enter a
     unique, identifying string in the Label field. The Label that you enter appears
     underneath the node in the Split-Join editor.
2.   In the Documentation field enter any notes that you think are important.

2.9.12.2 Adding and Configuring Else If
The Else If is used to provide additional logic within the context of an overall If. You
can add an Else If every time you press the "Add Else If" button.

Figure 2–10 Add Else If Button




Configuring an Else If can include the following tasks:
■    Write the Logic of the Condition
■    Add Resulting Nodes
■    Add General Information
Related Topics
■    Section 4.22.9, "If and Else If Properties"
■    Section 4.22.12, "Repeat Until Properties"
■    Section 4.22.15, "While Properties"

2.9.12.2.1 Writing the Logic of the Condition The Else If uses conditional logic defined by
an XPath expression. Enter this condition in the Condition text field of the Condition

                                                                                 Tasks 2-59
Working with Split-Join


                     tab or click the browse button to launch and write the expression in the expression
                     builder.

                     2.9.12.2.2 Adding Resulting Nodes If the condition in the Else If logic is met, a
                     subsequent node or string of nodes will result. Add and configure any resulting nodes
                     by dragging them in sequential order to a drop point beneath the Else If icon.

                     2.9.12.2.3 Adding General Information General information is useful for making a node
                     more legible. It includes the ability to add a unique identifier, or Label, to the node and
                     to supplement it with notes, or Documentation. General information is optional.
                     1.   To add a Label to a node, select the General tab in the Properties view and enter a
                          unique, identifying string in the Label field. The Label that you enter appears
                          underneath the node in the Split-Join editor.
                     2.   In the Documentation field enter any notes that you think are important.

                     2.9.12.3 Configuring the Else
                     The Else provides a final case of logic within the context of an overall If. It is
                     automatically generated when an If is created. Configuring an Else can include the
                     following tasks:
                     ■    Add Resulting Nodes
                     ■    Add General Information
                     Related Topics
                     ■    Section 4.22.9, "If and Else If Properties"
                     ■    Section 4.22.12, "Repeat Until Properties"
                     ■    Section 4.22.15, "While Properties"

                     2.9.12.3.1 Adding Resulting Nodes As the final case in the If’s logic, the Else requires no
                     conditions to be met in order to execute. It will automatically execute resulting
                     activities when invoked. Add and configure any resulting nodes by dragging them in
                     sequential order to a drop point beneath the Else icon.

                     2.9.12.4 Adding General Information
                     General information is useful for making a node more legible. It includes the ability to
                     add a unique identifier, or Label, to the node and to supplement it with notes, or
                     Documentation. General information is optional.
                     1.   To add a Label to a node, select the General tab in the Properties view and enter a
                          unique, identifying string in the Label field. The Label that you enter appears
                          underneath the node in the Split-Join editor.
                     2.   In the Documentation field enter any notes that you think are important.


2.9.13 Creating an Error Handler
                     The Error Handler receives and handles errors. If it is attached to a Start Node, it is a
                     "global" Error Handler and serves as a catch-all for the output of all local Raise Error
                     nodes. If it is attached to a Scope, it only handles errors raised locally. To create an
                     Error Handler:
                     1.   Select the start node or Scope node to which the Error Handler will be added.
                     2.   Right-click the selected icon and select Add Catch or Add CatchAll.


2-60 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


              3.   If you are invoking a SOAP Fault, in the Catch All tab of the Properties View,
                   select SOAP Fault Variable Name to define a SOAP Fault variable associated with
                   the Error Handler.
              The basic Error Handler is now configured, but you may need to add additional
              Assign, If, and/or Reply nodes to it depending on whether you wish to execute logic
              upon the received faults before sending a response.
              Related Topics
              ■    Section 2.9.8, "Creating an Assign"
              ■    Section 2.9.12, "Creating an If Activity"
              ■    Section 2.9.10, "Creating a Parallel"
              ■    Section 2.9.16, "About Scope"
              ■    Section 4.22.4, "Error Handler Properties"


2.9.14 Creating a Raise Error
              The Raise Error generates an error that causes the Split-Join to stop normal processing.
              If the error is not handled using an Error Handler, the Split-Join will terminate and a
              Fault will be sent to the Oracle Service Bus message flow. Configuring a Raise Error
              can optionally include documenting the nature of the error in the General Information
              tab.
              You can also add a Re-Raise Error operation to an Error Handler. Configuration
              involves modifying Label and adding Documentation.
              Related Topics
              Section 4.22.11, "Raise Error Properties"
              General information is useful for making a node more legible. It includes the ability to
              add a unique identifier, or Label, to the node and to supplement it with developer
              notes, or Documentation. General information is optional.
              1.   To add a Label to an node, open the Properties view and enter a unique,
                   identifying string in the Label field. The Label that you enter appears underneath
                   the node Icon in the Canvas area.
              2.   In the Documentation field enter any notes that you think are important.


2.9.15 Configuring a Reply
              A global Reply is generated automatically whenever you create a new Split-Join. The
              purpose of the global Reply is to send a response back to the invoking Oracle Service
              Bus message flow. However, you may also create a Reply elsewhere in the Split-Join,
              including within Error Handlers. Configuring the Reply can include the following
              tasks:
              ■    View the Operation
              ■    Define the Reply Variable
              ■    Add General Information
              Related Topics
              Section 4.22.6, "Reply Properties"




                                                                                            Tasks 2-61
Working with Split-Join


                     2.9.15.1 Viewing the Operation
                     The operation is based upon the initial WSDL selection for the overall Split-Join. It is
                     displayed in the Properties view for reference.

                     2.9.15.2 Defining the Reply Variable
                     The Reply can either send a Response or a Fault back to the client depending on how
                     you configure the variable. The Fault options available vary depending upon whether
                     the Reply is global or local.
                     ■    A global Reply (that is, a Reply in a Split-Join outside of an Error Handler) can
                          never have a SOAP Fault but can have a WSDL Fault. This is why the SOAP Fault
                          option is always disabled.
                     ■    A local Reply (that is, a Reply attached to an Error Handler) can have either a
                          WSDL Fault or a SOAP Fault. WSDL Faults will be available only if they were
                          defined in the WSDL upon which the Split-Join is based. The SOAP Fault option
                          will always be available provided one has been previously defined in the Error
                          Handler.


                              Note:  Switching back and forth between the Response and Fault
                              buttons will clear either configuration. For instance, if you have
                              previously selected "Propagate SOAP Fault" for Fault configuration
                              and you then switch to the "Response" configuration, "Propagate
                              SOAP Fault" will be deselected.


                     Given the available options as outlined above, select either a Response or a Fault for
                     your Reply Variable.
                     If you select Response, you must define the Message Variable the Response will be
                     assigned to. This can be done in two ways:
                     1.   Select the Reply, and in the Properties view, select the Variable tab.
                     2.   Select a pre-existing variable from the Message Variable menu.
                     3.   Create a new Message Variable (following steps).


                              Note:  If there are no available Message Variables associated with the
                              previously chosen operation, you must create a new Message Variable.


                     To create a new Message Variable, select Create Message Variable from the Message
                     Variable menu. The Create Message Variable Dialog appears:
                     1.   Provide a name for the variable.
                     2.   Click OK.
                     Note that Message Type Namespace and Message Type are displayed automatically in
                     the Properties view once the variable is defined.
                     If you select Fault, you must specify either a WSDL Fault or propagate a SOAP Fault.


                              Note:   In some circumstances, no Faults or only a SOAP Fault will be
                              available. See previous notes.




2-62 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


             If you select a WSDL Fault, you must specify the Fault by name and define the
             Message Variable that it will be assigned to.
             1.   Select WSDL Fault Name and choose a name from those available.


                       Note:   There may only be one name available in which case no choice
                       is necessary.


             2.   Define a Message Variable. This can be done in two ways:
                  a.   Select a pre-existing variable from the Message Variable menu.
                  b.   Create a new Message Variable (following steps).


                       Note:  If there are no available Message Variables associated with the
                       previously chosen operation, you must create a new Message Variable.


             To create a new Message Variable, select Create Message Variable from the Message
             Variable menu. The Create Message Variable Dialog opens:
             1.   Provide a name for the variable.
             2.   Click OK.
             Message Type Namespace and Message Type are displayed automatically on the
             properties page once a variable is defined.
             If you select Propagate SOAP Fault, the SOAP Fault specified in the parent Error
             Handler will automatically be propagated in the Reply. There is nothing else to
             configure.

             2.9.15.3 Adding General Information
             General information is useful for making a node more legible. It includes the ability to
             add a unique identifier, or Label, to the node and to supplement it with notes, or
             Documentation. General information is optional.
             1.   To add a Label to a node, select the General tab in the Properties view and enter a
                  unique, identifying string in the Label field. The Label that you enter appears
                  underneath the node in the Split-Join editor.
             2.   In the Documentation field enter any notes that you think are important.


2.9.16 About Scope
             A Scope is a container that groups various elements together. The container creates a
             context that influences the behavior of its enclosed elements. Local Variables and the
             Error Handler defined within the Scope are restricted to this context. However, some
             nodes within the scope may operate both locally (that is, within the Scope) and
             globally (that is, outside of the Scope.) For instance, an Invoke Service within a certain
             Scope might call upon an service external to the Scope’s context.

             2.9.16.1 Scope and Variables
             Although variables are visible in the scope in which they are defined and in all scopes
             nested within that scope, a variable declared in an outer scope is hidden when you
             declare a variable with an identical name in an inner scope. For example, if you define
             variable myVar in an outer scope (So) and then define variable myVar again in an


                                                                                             Tasks 2-63
Working with Split-Join


                     inner scope (Si) which is contained by scope So, then you can only access the myVar
                     you defined in the inner scope Si. This myVar overrides the myVar you defined in
                     scope So.
                     Related Topics
                     Section 4.22.14, "Scope Properties"


2.9.17 Exporting and Testing a Split-Join
                     You can export and test a Split-Join on an Oracle Service Bus server provided that it is
                     associated with a transport typed business service. Exporting and testing a Split-Join
                     can include the following tasks:
                     ■    Creating a Transport Typed Business Service
                     ■    Exporting the Split-Join Files
                     ■    Testing the Split-Join in the Test Console

                     2.9.17.1 Creating a Transport Typed Business Service
                     A Split-Join is used by a particular transport typed business service. If you do not have
                     an appropriate business service, you must create one before you can export or test
                     your Split-Join. There are two ways to create a business service:
                     1.   Create the business service manually in Eclipse or the Oracle Service Bus
                          Administration Console.
                     2.   Generate the business service automatically from the Split-Join (.flow) menu:
                          a.   Right click on the Split-Join (.flow) file in the Project Explorer to open the
                               Split-Join menu.
                          b.   Select Oracle Service Bus.
                          c.   Select Generate Business Service.
                          d.   Name and save the new service in a project.
                               See Section 2.1.1, "Resource Naming Restrictions" for naming guidance.
                     After you create the business service, you can export the Split-Join provided that it has
                     no errors.


                               Note:   It is a helpful practice to place the associated business service
                               in the same Oracle Service Bus project as the Split-Join. It can also be
                               useful to give the business service the same name as the Split-Join so
                               that they are easily correlated.


                     2.9.17.2 Exporting the Split-Join Files
                     Split-Joins without errors can be exported to an Oracle Service Bus server.


                               Note:   Errors appear in the Problems view of the Split-Join editor. If
                               you try to export a Split-Join with errors, the export fails.


                     There are three ways to export a Split-Join:
                     1.   Export from the Business Service Menu



2-64 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Working with Split-Join


2.   Auto-export
3.   Manual export

2.9.17.2.1 Exporting from the Business Service Menu It is possible to export a Split-Join
directly from the Business Service menu. However, because exporting by this method
automatically launches the Oracle Service Bus Test Console, it is useful if you want to
both export and test. Exporting from the Business Service menu involves the following
steps:
1.   In the Project Explorer, right click on the Business Service (.biz file) to be
     exported/tested.
2.   Select Run as.
3.   Select Run on server. The Run on Server Dialog opens.
4.   Select an existing server or define a new one and go to the next step.
5.   In the Add and Remove Projects window, the Oracle Service Bus project
     containing the business service and any other dependent files have been
     pre-selected for configuration/export. They can not be removed because the
     business service can not be tested without its dependent files. The entire Split-Join
     will therefore be exported.
6.   Select Finish, and the Oracle Service Bus Test Console will launch. You can now
     test the business service.

2.9.17.2.2 Auto-export A Split-Join can be auto-exported to an Oracle Service Bus
server. If you use this method, you must manually launch the Oracle Service Bus
Administration Console in order to test the exported files. Auto-exporting involves the
following steps:
1.   Select File > Export.
2.   Select Oracle Service Bus.
3.   Select Resources to Oracle Service Bus Server. This will export the resources to
     the Oracle Service Bus server, but it will not launch the Oracle Service Bus Test
     Console. You must launch the Test Console manually within the Oracle Service
     Bus Administration Console application.

2.9.17.2.3 Manual export A Split-Join can be manually exported to an Oracle Service
Bus server. If you use this method, you must manually launch the Oracle Service Bus
Administration Console to test the exported files. Manually exporting involves the
following steps:
1.   Select File > Export.
2.   Select Oracle Service Bus.
3.   Select Resources as Configuration JAR and go to the next step.
4.   In the Oracle Service Bus Configuration JAR Export window, configure the
     following options:
     a.   Select the Oracle Service Bus Configuration file containing the files to be
          exported.
     b.   Set the Export Level to Project or Resource depending upon whether you
          wish to export entire projects or individual files. The selection available in the
          tree below will change based upon the Export Level.
     c.   Select the projects and/or resources to be exported in the configuration JAR.


                                                                                   Tasks 2-65
Using the Oracle Service Bus Debugger


                        d.   Select Include Dependencies if you want to export any file dependencies
                             associated with the selected files.
                        e.   Browse to a destination for the exported JAR file.
                        f.   Click Finish to export the JAR file.
                   5.   Import the JAR file via the Oracle Service Bus Administration Console.


                             Note:  A quick way to access the Oracle Service Bus Administration
                             Console from Eclipse is to right-click the server and select Launch
                             Service Bus Console.


                   2.9.17.3 Testing the Split-Join in the Test Console
                   You can test a Split-Join by executing the business service that uses it in the Oracle
                   Service Bus Test Console. This can either be done within the Split-Join editor or by
                   exporting the Split-Join to an Oracle Service Bus server. To test the Split-Join within the
                   IDE, you need to export the files using the menu for the business service that uses the
                   Split-Join.

                   2.9.17.3.1 Exporting from the Business Service Menu You can export and test a Split-Join
                   directly from the Business Service menu. If you use this method, the export happens in
                   the background while the Oracle Service Bus Test Console launches. Exporting from
                   the Business Service menu involves the following steps:
                   1.   In the Project Explorer, right click on the Business Service (.biz file) to be
                        exported/tested.
                   2.   Select Run as.
                   3.   Select Run on server. The Run on Server Dialog appears.
                   4.   Select an existing server or define a new one and go to the next step.
                   5.   In the Add and Remove Projects window, the Oracle Service Bus project
                        containing the business service and any other dependent files have been
                        pre-selected for configuration/export. The dependent files cannot be removed
                        because the business service cannot be tested without its dependent files.
                   Click Finish, and the Oracle Service Bus Test Console will launch. You can now test the
                   business service.


                             Note:  Although only the Oracle Service Bus Test Console is
                             displayed at this point, the entire Split-Join has been exported to the
                             Oracle Service Bus server.


2.10 Using the Oracle Service Bus Debugger
                   Oracle Service Bus extends the Eclipse debugging framework to provide debugging
                   functionality for proxy service message flows and Split-Joins.
                   The Oracle Service Bus Debugger can handle Java callouts and supports
                   multi-threaded debugging on Split-Joins that use parallel processing. You can also
                   perform debugging on remote servers.
                   You can use the Oracle Service Bus Debugger in two different ways:
                   ■    Section 2.10.2, "Using Standard Debugging" – Provides automated service
                        debugging features for debugging on a local machine.

2-66 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Using the Oracle Service Bus Debugger


             ■    Section 2.10.3, "Using the Oracle Service Bus Debugger Launch Configuration" –
                  Provides more manual control of the Oracle Service Bus Debugger environment.


2.10.1 Enabling Debugging
             Oracle Service Bus debugging is enabled automatically on a server running in
             development mode. When you create a new domain, the following entries are
             included in the <domain>/bin/setDomainEnv script:
             set ALSB_DEBUG_FLAG=true
             set ALSB_DEBUG_PORT=7453
             If you want to turn Oracle Service Bus debugging functionality off, set ALSB_DEBUG_
             FLAG=false.
             If you start the server in production mode, Oracle Service Bus debugging is
             automatically disabled.


2.10.2 Using Standard Debugging
             To debug a proxy service or a Split-Join, you must execute it while in debug mode
             (unless you are using the debugger launch configuration described in Section 2.10.3,
             "Using the Oracle Service Bus Debugger Launch Configuration".)
             To debug a proxy service or Split-Join:
             1.   Set breakpoints in your message flow or Split-Join to automatically pause the test
                  execution at those points. Right-click an action in the flow editor and choose
                  Toggle Breakpoint.
             2.   Start the server in debug mode. On server startup, Eclipse automatically switches
                  to the Debug perspective, shown in Figure 2–11.
             3.   With the proxy or business service file open and active, select Run > Debug As >
                  Debug on Server in Eclipse.
                  In the Debug on Server window, select the server on which your Oracle Service
                  Bus configuration is deployed, or is to be deployed, and complete the steps in the
                  wizard.
                  The Debug As option automatically enables the Java debugger in order to handle
                  Java callouts in services.
             4.   The Oracle Service Bus Test Console appears. Execute your test, looking at and
                  interacting with the execution threads in the Debug view. As you move through
                  the test, the debugger highlights the current stage of the test in the service’s flow
                  view, as shown in Figure 2–11.
             You are not required to use the Test Console to execute a service test and use the
             debugger. You can also execute your service in other ways, such as posting a JMS
             message or dropping a file in the directory of a file proxy service.
             For debugging on remote servers, execute the service on the remote server and step
             through the test in Debug view. If the remote server is running in normal mode rather
             than debug mode, use the debugger launch configuration, as described in
             Section 2.10.3, "Using the Oracle Service Bus Debugger Launch Configuration."
             See the Section 2.10.2.1, "Debug Views" section for descriptions of different debug
             views for Oracle Service Bus Debugger.




                                                                                              Tasks 2-67
Using the Oracle Service Bus Debugger


                   2.10.2.1 Debug Views
                   This section describes the different views you can use while debugging a service,
                   illustrated in Figure 2–11.

Figure 2–11 Debugging a Proxy Service




                   The Debug perspective provides the following key views for debugging a service:
                   ■    Debug view – The Debug view shows the Oracle Service Bus call stack, displaying
                        the current execution thread. The Debug view also provides a toolbar that lets you
                        resume the test from its current location or perform step actions (Step Into, Step
                        Over, Step Return). As you step through a test, if you are testing a local service, the
                        current operation is highlighted in the service’s flow view. Errors appear in the
                        Console view.
                   ■    Console view – The Console view, which displays server messages, shows any
                        run-time errors that occur as your service runs.
                   ■    Variables view – The Variables view shows the variable names and values in your
                        service at each stage of the test. Variables are read-only while debugging. Select
                        the call stack at a specific breakpoint to see the current variables and values.
                   ■    Breakpoints view – The Breakpoints view lists the breakpoints you have manually
                        inserted into your service’s flow. The test stops at each breakpoint, letting you
                        view the state of the service at that point. You can enable and disable breakpoints



2-68 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Using the Oracle Service Bus Debugger


                  in the Breakpoints view. Disabling a breakpoint by deselecting it keeps the
                  breakpoint in place, but the debugger ignores it.
             ■    Service editor, flow view – As the test runs, if you are testing a local service, the
                  test progress is graphically highlighted in the service’s flow view. The flow view
                  also shows the breakpoints you have set (by right-clicking actions in the service’s
                  flow view editor and choosing Toggle Breakpoint).
             ■    Oracle Service Bus Test Console – The Test Console lets you execute local proxy
                  and business services. For more detailed information on using the Test Console,
                  see "Using the Test Console" in the Oracle Fusion Middleware Administrator's Guide
                  for Oracle Service Bus at
                  http://www.oracle.com/pls/as1111/lookup?id=OSBAG357.

             2.10.2.2 Step Actions and Breakpoints
             The Eclipse debugging framework lets you debug incrementally by performing step
             actions to debug code. See "Execution Control Commands" in the Eclipse help system
             (Java Development User Guide).
             If you use step actions to debug, the Oracle Service Bus Debugger still stops at each
             breakpoint you have set, ignoring the current step action being performed.


2.10.3 Using the Oracle Service Bus Debugger Launch Configuration
             If you want more manual control of the Oracle Service Bus Debugger environment,
             use the Oracle Service Bus Debugger launch configuration. Launch configurations are
             an Eclipse feature. The Oracle Service Bus Debugger launch configuration removes the
             automation of running the debugger with the Debug As option (Debug perspective
             launching, server restarting in debug mode, Java debugger starting), letting you
             connect and disconnect the debugger as needed on a server running in either normal
             or debug mode.
             If you want to use the Java debugger in conjunction with the Oracle Service Bus
             Debugger to handle Java callouts, the server must be running in debug mode.
             To use the Oracle Service Bus Debugger launch configuration:
             1.   Set breakpoints in your proxy service message flow or Split-Join.
             2.   Start the server in normal or debug mode. However, if you want to use the Java
                  debugger to handle Java callouts from your flow, start the server in debug mode.
             3.   In the Eclipse menu, select Run > Debug Configurations.
             4.   Double-click Oracle Service Bus Debugger. A "New_configuration" sub-item
                  appears. You need only perform this step once for each debug configuration you
                  want to create.
                  The right pane displays the default server and port. Make sure the port matches
                  the value of the ALSB_DEBUG_PORT in your domain’s setDomainEnv script.
                  You can also rename the launch configuration in the right pane, as well as add the
                  debug configuration to the Debug toolbar item as a shortcut.
                  If your services use Java callouts, enable the Java debugger by double-clicking
                  Remote Java Application and configuring the "New_configuration."
             5.   With your launch configuration selected, click Debug in the Debug dialog. The
                  debugger is connected. If you are using the Java debugger as well, select it and
                  click Debug.



                                                                                              Tasks 2-69
Using the Oracle Service Bus Debugger


                   6.   Open the Debug perspective or the debug views you want, such as Debug,
                        Breakpoints, and Variables.
                   7.   Run the service.
                        ■   To execute the service in the Test Console, use Run As > Run on Server.
                        ■   You can also execute your service in other ways, such as through a custom test
                            client.
                   8.   Step through the test.
                   To disconnect the debugger, click the Disconnect icon in the Debug view. Reconnect
                   the debugger in the Debug dialog by selecting the launch configuration and clicking
                   Debug, or by creating a shortcut in the Debug toolbar item as described in the
                   previous steps.

                   2.10.3.1 Remote Debugging
                   If you are debugging remote services, you can select a remote server in the server
                   configuration window (for Debug As) or set the remote server and port in the launch
                   configuration. After you connect the debugger to the remote server, execute the
                   services on the remote server and step through the test in your local Debug
                   perspective.

                   2.10.3.2 Debugging Oracle Service Bus Running Stand-Alone on a Managed Server
                   If you want to debug on an Oracle Service Bus instance that is running stand-alone on
                   a Managed Server in a non-clustered environment, follow these steps:
                   1.   In Eclipse, in Servers view, add a server for the domain to which the Oracle Service
                        Bus Managed Server belongs.
                   2.   Make sure that both the domain’s Admin Server and the Oracle Service Bus
                        Managed Server are running.
                        The Admin Server must be running in normal mode, not debug mode.
                   3.   Follow the debug configuration and debug steps Section 2.10.3, "Using the Oracle
                        Service Bus Debugger Launch Configuration."
                        If you set up a Remove Java Application configuration to test Java callouts, be sure
                        to target the configuration to the Managed Server.

                   2.10.3.3 Server Sharing
                   If multiple users share a single server instance for debugging, only one user at a time
                   can have the debugger connected. Other users trying to connect a debugger will get a
                   connection refused error.




2-70 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
3
                                           Transport Configuration
                                           3




            This chapter describes how to configure transports on business and proxy services in
            the Oracle Service Bus IDE.
            When you configure a business service or a proxy service, you must configure the
            transport used by the service. Each transport is configured on its own configuration
            page.


3.1 Protocol-Specific Transport Configuration Pages
            Each transport available for business services and proxy services has its own
            configuration page. Oracle Service Bus provides the following transports:
            ■   Section 3.1.1, "BPEL-10g Transport Configuration Page (Business Services)"
            ■   Section 3.1.2, "DSP Transport Configuration Page (Business Services)"
            ■   Section 3.1.3, "EJB Transport Configuration Page (Business Services)"
            ■   Section 3.1.4, "E-Mail Transport Configuration Page (Business Services)"
            ■   Section 3.1.5, "E-Mail Transport Configuration Page (Proxy Services)"
            ■   Section 3.1.6, "File Transport Configuration Page (Business Services)"
            ■   Section 3.1.7, "File Transport Configuration Page (Proxy Services)"
            ■   Section 3.1.8, "FTP Transport Configuration Page (Business Services)"
            ■   Section 3.1.9, "FTP Transport Configuration Page (Proxy Services)"
            ■   Section 3.1.10, "HTTP Transport Configuration Page (Business Services)"
            ■   Section 3.1.11, "HTTP Transport Configuration Page (Proxy Services)"
            ■   Section 3.1.12, "JCA Transport Configuration Page (Proxy and Business Services)"
            ■   Section 3.1.13, "JEJB Transport Configuration Page (Business Services)"
            ■   Section 3.1.14, "JEJB Transport Configuration Page (Proxy Services)"
            ■   Section 3.1.15, "JMS Transport Configuration Page (Business Services)"
            ■   Section 3.1.16, "JMS Transport Configuration Page (Proxy Services)"
            ■   Section 3.1.17, "MQ Transport Configuration Page (Business Services)"
            ■   Section 3.1.18, "MQ Transport Configuration Page (Proxy Services)"
            ■   Section 3.1.19, "SB Transport Configuration Page (Business Services)"
            ■   Section 3.1.20, "SB Transport Configuration Page (Proxy Services)"



                                                                         Transport Configuration 3-1
Protocol-Specific Transport Configuration Pages


                    ■      Section 3.1.21, "SFTP Transport Configuration Page (Business Services)"
                    ■      Section 3.1.22, "SFTP Transport Configuration Page (Proxy Services)"
                    ■      Section 3.1.23, "SOA-DIRECT Transport Configuration Page (Business Services)"
                    ■      Section 3.1.24, "Tuxedo Transport Configuration Page (Business Services)"
                    ■      Section 3.1.25, "Tuxedo Transport Configuration Page (Proxy Services)"
                    ■      Section 3.1.26, "WS Transport Configuration Page (Business Services)"
                    ■      Section 3.1.27, "WS Transport Configuration Page (Proxy Services)"


3.1.1 BPEL-10g Transport Configuration Page (Business Services)
                    Use this page to configure transport settings for a business service using the BPEL-10g
                    (Oracle BPEL Process Manager) transport protocol. For more information on using
                    Oracle Service Bus with Oracle BPEL Process Manager, see the "Oracle BPEL Process
                    Manager Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service
                    Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1147.

                    Table 3–1     BPEL-10g Transport Configuration Options for Business Services
                    Property             Description
                    Role                 The BPEL transport is used to send request messages from Oracle Service
                                         Bus to Oracle BPEL Process Manager. The business service can serve one of
                                         the following roles:
                                         ■    Synchronous Client
                                              For synchronous communication with an Oracle Service Bus client, the
                                              only location information that is required is the BPEL address. This
                                              address is captured statically as the endpoint URI and/or dynamically
                                              through URI rewriting.
                                         ■    Asynchronous Client
                                              For asynchronous communication with an Oracle Service Bus client, a
                                              callback from Oracle BPEL Process Manager to Oracle Service Bus is
                                              sent on a different connection than the request, and you must
                                              configure Oracle Service Bus to provide the correct callback address.
                                         ■    Service Callback
                                              If the business service is designed to be a service callback to Oracle
                                              BPEL Process Manager (where Oracle BPEL Process Manager is calling
                                              an external service through Oracle Service Bus), the callback address is
                                              known only at run time. Use an Endpoint URI of bpel://callback.
                                              If you configure the business service with the marker URI, configure
                                              your pipeline logic to dynamically set the URI on $outbound; for
                                              example, using the TransportHeader action.
                                         Note: A Service Callback business service does not support load balancing
                                         or failover.
                    Callback Proxy       This optional field is available only for the Asynchronous Client role. This
                                         field lets you select the proxy service (must be either an SB or HTTP proxy
                                         of type Any SOAP) that will be used to route callbacks to the Oracle Service
                                         Bus client that made the request.
                    Service Account      For JNDI context security, used to access the Oracle BPEL Process Manager
                                         delivery service. Click Browse and select a service account. If no service
                                         account is specified, an anonymous subject is used.
                                         There is no restriction on the type of service account that can be configured,
                                         such as static or pass-through, but the run time must be able to access a
                                         user name and password.



3-2 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


              Table 3–1 (Cont.) BPEL-10g Transport Configuration Options for Business Services
              Property           Description
              Suspend            Selecting Suspend Transaction makes the business service
              Transaction        non-transactional even if the business service is invoked by a transaction.
                                 If you do not select Suspend Transaction:
                                 ■   If the protocol indicates an Oracle WebLogic Server-supported
                                     protocol (t3, iiop, http), the transaction is propagated.
                                 ■   If the protocol indicates an OC4J server (ormi, opmn), the BPEL
                                     transport throws an exception, since OC4J does not support
                                     transaction propagation.
                                 The BPEL transport ignores the Suspend Transaction option in the
                                 following situations:
                                 ■   The business service is called with quality of service (QoS)
                                     "best-effort." The BPEL transport automatically suspends any
                                     transaction that does not support QoS.
                                 ■   The business service is called with QoS set to "exactly-once" and there
                                     is no transaction.
              Dispatch Policy    Select the instance of Oracle WebLogic Server Work Manager that you want
                                 to use for the dispatch policy for this endpoint. The default Work Manager
                                 is used if no other Work Manager exists.
                                 For information about Work Managers, see:
                                 ■   "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion
                                     Middleware Configuring Server Environments for Oracle WebLogic Server at
                                     http://www.oracle.com/pls/as1111/lookup?id=CNFGD112
                                 ■   "Using Work Managers with Oracle Service Bus" in the Oracle Fusion
                                     Middleware Administrator's Guide for Oracle Service Bus at
                                     http://www.oracle.com/pls/as1111/lookup?id=OSBAG1428


3.1.2 DSP Transport Configuration Page (Business Services)
              Use this page to configure transport settings for a business service using the DSP
              (Oracle Data Service Integrator) transport protocol. For more information on accessing
              Oracle Data Service Integrator from Oracle Service Bus, see "DSP and Oracle Data
              Service Integrator Transport" in the Oracle Fusion Middleware Developer's Guide for
              Oracle Service Bus at
              http://www.oracle.com/pls/as1111/lookup?id=OSBDV1229.

              Table 3–2     DSP Transport Configuration Options for Business Services
              Option             To create or edit...
              Debug Level        Specify one of the following
                                 ■   0 - for no debug information
                                 ■   1 - to output information on the request message
                                 ■   3 - to output information on the request and the response message
              Service Account    Click Browse and select a service account from the list displayed. If no
                                 service account is specified, an anonymous subject is used.




                                                                                   Transport Configuration 3-3
Protocol-Specific Transport Configuration Pages


                    Table 3–2 (Cont.) DSP Transport Configuration Options for Business Services
                    Option               To create or edit...
                    Dispatch Policy      Select the instance of Oracle WebLogic Server Work Manager that you
                                         want to use for the dispatch policy for this endpoint. The default Work
                                         Manager is used if no other Work Manager exists.
                                         The Work Manager is used to post the reply message for response
                                         processing.
                                         For information about Work Managers, see:
                                         ■    "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion
                                              Middleware Configuring Server Environments for Oracle WebLogic Server
                                              at
                                              http://www.oracle.com/pls/as1111/lookup?id=CNFGD112
                                         ■    "Using Work Managers with Oracle Service Bus" in the Oracle Fusion
                                              Middleware Administrator's Guide for Oracle Service Bus at
                                              http://www.oracle.com/pls/as1111/lookup?id=OSBAG142
                                              8


3.1.3 EJB Transport Configuration Page (Business Services)
                    Use this page to configure transport settings for a business service using the EJB
                    transport protocol.
                    For more information on the EJB transport, see "EJB Transport" in the Oracle Fusion
                    Middleware Developer's Guide for Oracle Service Bus at
                    http://www.oracle.com/pls/as1111/lookup?id=OSBDV1009.

                    Table 3–3       EJB Transport Configuration Options for Business Services
                    Option               To create or edit...
                    Pass Caller’s        Select this check box to have Oracle Service Bus pass the authenticated
                    Subject              subject from the proxy service when invoking the EJB and no service
                                         accounts are configured. Note that the Service Account field is disabled
                                         when this option is selected.
                    Service Account      Click Browse and select a service account from the list displayed. If no
                                         service account is specified, an anonymous subject is used. This option is
                                         not available if you use the Pass Caller’s Subject option.
                    Supports             Select this check box to specify transaction support.
                    Transaction
                    Client Jar           Click Browse and select an EJB client JAR resource from the list displayed.
                    Converter Jar        Click Browse and select an EJB converter class JAR resource from the list
                                         displayed.
                    Home Interface       EJB 2.1 only – Select the required EJBHome interface from the options
                                         populated by the JAR. The JNDI name in this URI sample must be
                                         associated with the EJBHome interface you select here. If the EJB is not of
                                         the required type or an EJBHome interface is not specified in the client-jar,
                                         Oracle Service Bus displays a warning.
                    Remote Interface     EJB 2.1 only – This field is automatically populated depending on the
                                         configuration of the Home Interface.
                    Business             EJB 3.0 only – Select the business interface in the client JAR that you want
                    Interface            to invoke.
                    Target               This field is populated by information picked up from the JAR.
                    Namespace




3-4 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


              Table 3–3 (Cont.) EJB Transport Configuration Options for Business Services
              Option           To create or edit...
              Style            Select Document Wrapped or RPC according to your requirements. If two
                               or more methods of your stateless session EJB have the same number and
                               data type of parameters, and you want the operations to be
                               document-oriented, you must specify that they be document-wrapped.
                               The style is important because when routing or publishing to the EJB,
                               $body must have content that matches the style. Also when calling out to
                               an EJB, the style affects the parameter contents, especially for document
                               wrapped. Secondly one usage pattern is to define an EJB business service
                               and then create a proxy service with the same WSDL that routes to the
                               EJB. In this case care must be taken on the style of the WSDL because the
                               client tool used to invoke the proxy might have limitations on the style of
                               the WSDL.
              Encoding         Select Encoded or Literal.
              Methods          The methods displayed are those of the EJB remote or business interface
                               you selected. Select the required methods (you can select multiple
                               methods). Click + to expand the method. Edit the default parameter
                               values and select a converter if provided (or required).
                               You must exclude the methods with parameters or return types that are
                               not supported by the JAX-RPC stack or you must associate such
                               arguments with converter classes.
                               You can change the default operation name for a given method. (By
                               default, the operation name is the method name.) If an EJB contains
                               methods with same name, you must change the operation names so that
                               they are unique—WSDLs require unique operation names.
                               Note: If the credentials or transaction settings are different between the
                               methods for a given EJB, you can customize the methods for a given
                               business service, and create a business service per method. This gives you
                               fine-grained control over transactions and credentials.
              Exceptions       This field appears if a method throws a business exception. If an EJB
                               method throws an exception that has data types not supported by Java
                               Web Services (JWS), such as an ArrayList, use the Exceptions field to select
                               a converter class that converts the exception to a type supported by JWS.
                               Your converter class must implement
                               com.bea.wli.sb.transports.ejb.ITypeConverter. Converter classes can only
                               be configured for checked exceptions and not for run-time exceptions.
                               Package the converter class and the converted exception class in the client
                               or converter JAR.
                               For more information, see "EJB Transport" in the Oracle Fusion Middleware
                               Developer's Guide for Oracle Service Bus at
                               http://www.oracle.com/pls/as1111/lookup?id=OSBDV1009.


3.1.4 E-Mail Transport Configuration Page (Business Services)
              Use this page to configure transport settings for a business service using the e-mail
              transport protocol.




                                                                                Transport Configuration 3-5
Protocol-Specific Transport Configuration Pages



                    Table 3–4      E-Mail Transport Configuration Options for Business Services
                    Option               To create or edit...
                    SMTP Server          Select the default SMTP Server to use for endpoint URI entries of
                                         name@domain_name.com. If you provide SMTP server parameters in the
                                         endpoint URI, as described in Table 4–6, those server resources are used
                                         instead of this SMTP Server setting.
                                         Do not select an SMTP server if you use the Mail Session option.
                                         You must first create the SMTP Server resource. For more information, see
                                         Section 2.1.17, "Creating SMTP Server Resources."
                    Mail Session         Enter the JNDI name of the configured mail session to use for endpoint
                                         URI entries of name@domain_name.com. If you provide JNDI mail session
                                         parameters in the endpoint URI, as described in Table 4–6, those mail
                                         sessions are used instead of this Mail Session setting.
                                         Do not enter a Mail Session if you use the SMTP Server option.
                    From Name            Enter a display name for the originating e-mail account for this service.
                    From Address         Enter the originating e-mail account for this service.
                    Reply To Name        Enter a display name for the reply to e-mail account.
                    Reply To Address Enter an e-mail address to reply to.
                    Connection           Enter the timeout interval, in seconds, before the connection is dropped. If
                    Timeout              you enter 0, there is no timeout.
                    Request              Accept the default ISO-8859-1 as the character set encoding for requests
                    Encoding             in e-mail transports, or enter a different character set encoding.


3.1.5 E-Mail Transport Configuration Page (Proxy Services)
                    Use this page to configure transport settings for a proxy service using the e-mail
                    transport protocol.

                    Table 3–5      E-Mail Transport Configuration Options for Proxy Services
                    Option               To create or edit...
                    Service Account      Enter a service account name, or click Browse to select service accounts
                                         from a browser.
                    Managed Server       Select the Managed Server for polling in a clustered domain.
                                         This field is available only in a clustered domain.
                    Polling Interval     Enter a polling interval, in seconds.
                    E-Mail Protocol      Select POP3 or IMAP as the server type for the e-mail account.
                    Read Limit           Specify the maximum number of messages to read per polling sweep.
                                         Enter 0 to specify no limit.
                    Pass By              Select this check box to stage the file in the archive directory and pass it as
                    Reference            a reference in the headers.
                                         By default when you create a new service, the Pass By Reference option is
                                         selected and you must specify the archive directory location.
                    Pass Attachments Select this check box to stage the attachments in the archive directory and
                    by Reference     pass them as a reference in the headers.
                                         By default, when the Pass By Reference option is selected, the Pass
                                         Attachments By Reference option is implicitly true and you must specify
                                         the archive directory location.




3-6 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


              Table 3–5 (Cont.) E-Mail Transport Configuration Options for Proxy Services
              Option             To create or edit...
              Post Read Action Select what happens to a message after it has been read:
                                 ■   Archive - The message is archived.
                                 ■   Delete - The message is deleted.
                                 ■   Move - The message is moved. Move is only available with the IMAP
                                     protocol.
              Attachments        Select how attachments are handled:
                                 ■   Archive - Attachments are saved to the archive directory.
                                 ■   Ignore - Attachments are ignored.
              IMAP Move          Enter the folder to which the message is moved if the Post Read Action
              Folder             field is set to Move.
              Download           Enter a temporary location for downloading e-mails.
              Directory
              Archive            Specify the path to the archive location if the Post Read Action field is set
              Directory          to Archive.
                                 This field is required if the Pass By Reference or Pass Attachments By
                                 Reference option is selected.
              Error Directory    Enter the file system directory path to write the message and any
                                 attachments if there is a problem.
              Request            Accept the default ISO-8859-1 as the character set encoding for requests
              Encoding           in E-mail transports, or enter a different character set encoding.


3.1.6 File Transport Configuration Page (Business Services)
              Use this page to configure transport settings for a business service using the file
              transport protocol.

              Table 3–6     File Transport Configuration Options for Business Services
              Option             To create or edit...
              Prefix             Enter a prefix to be prepended to the file name.
                                 Do not enter * in this field. This character causes a run-time exception.
              Suffix             Enter a suffix to be appended to the file name. This is a required field.
                                 Do not enter * in this field. This character causes a run-time exception.
              Request            Accept the default utf-8 as the character set encoding for requests in File
              Encoding           transports, or enter a different character set encoding.


3.1.7 File Transport Configuration Page (Proxy Services)
              Use this page to configure transport settings for a proxy service using the file transport
              protocol.

              Table 3–7     File Transport Configuration Options for Proxy Services
              Option             To create or edit...
              File Mask          Specify the files that the proxy service should poll. If the URI is a directory
                                 and you specify *.*, the service polls for all the files in the directory. Only
                                 the wildcard characters * and ? are allowed in the File Mask. Regular
                                 expressions are not supported.




                                                                                    Transport Configuration 3-7
Protocol-Specific Transport Configuration Pages


                    Table 3–7 (Cont.) File Transport Configuration Options for Proxy Services
                    Option                 To create or edit...
                    Managed Server         Select the Managed Server for polling in a clustered domain.
                                           This field is available only in a clustered domain.
                    Polling Interval       Enter a polling interval, in seconds. The default is 60.
                    Read Limit             Specify the maximum number of messages to read per polling sweep.
                                           Enter 0 to specify no limit. The default is 10.
                    Sort By Arrival        Select this check box to specify that events are delivered in the order of
                                           arrival.
                                           Note that when this option is selected for a proxy service that is executed in
                                           a clustered environment, messages are always sent to the same server. In
                                           other words, load balancing across servers is ignored when this option is
                                           selected.
                    Scan                   Select this check box to recursively scan all the directories.
                    Subdirectories
                    Pass By                Select this check box to stage the file in the archive directory and pass it as
                    Reference              a reference in the headers.
                    Post Read Action Select what happens to a message after it has been read:
                                           ■   Archive - The message is archived.
                                           ■   Delete - The message is deleted.
                    Stage Directory        Enter an intermediate directory to temporarily stage the files while
                                           processing them.
                                           Do not put the stage directory inside of the polling directory (the directory
                                           identified in the URL of the file transport proxy service; for example,
                                           file:///c:/dir1/dir2).
                    Archive                Specify the path to the archive location if the Post Read Action option is set
                    Directory              to Archive. The Archive Directory field is also a required field if you have
                                           selected the Pass By Reference field.
                                           Do not put the archive directory inside of the polling directory.
                    Error Directory        Enter the location where messages and attachments are posted if there is a
                                           problem.
                                           Do not put the error directory inside of the polling directory.
                    Request                Accept the default UTF-8 as the character set encoding for requests in file
                    Encoding               transports, or enter a different character set encoding.


3.1.8 FTP Transport Configuration Page (Business Services)
                    Use this page to configure transport settings for a business service using the ftp
                    transport protocol.

                    Table 3–8     FTP Transport Configuration Options for Business Services
                    Option                     To create or edit...
                    User Authentication        Select anonymous if the user of the FTP server is anonymous, or select
                                               external user if the user of the FTP server is an externally configured
                                               account.
                    Identity (E-mail id)       This field is available only if the User Authentication option is set to
                                               anonymous.
                                               Enter the mail ID for the anonymous user.




3-8 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


              Table 3–8 (Cont.) FTP Transport Configuration Options for Business Services
              Option                   To create or edit...
              Service Account          This field is available only if the User Authentication option is set to
                                       external user.
                                       Enter the service account for the external user.
              Timeout                  Enter the socket timeout interval, in seconds, before the connection is
                                       dropped. The default is 60 seconds.
              Prefix for destination   Enter an optional prefix that the transport prepends to the file name on
              File Name                the remote server.
                                       Do not enter * in this field. This character causes a run-time exception.
              Suffix for the        Enter an optional suffix that the transport appends to the file name on
              destination File Name the remote server.
                                       Do not enter * in this field. This character causes a run-time exception.
              Transfer Mode            Select ASCII or binary as the transfer mode.
              Request Encoding         Accept the default UTF-8 as the character set encoding for requests in
                                       ftp transports, or enter a different character set encoding.


3.1.9 FTP Transport Configuration Page (Proxy Services)
              Use this page to configure transport settings for a proxy service using the ftp transport
              protocol.

              Table 3–9    FTP Transport Configuration Options for Proxy Services
              Option                   To create or edit...
              User Authentication      Select anonymous if the user of the FTP server is anonymous, or select
                                       external user if the user of the FTP server is an externally configured
                                       account.
              Identity (E-Mail ID)     This field is available only if the User Authentication option is set to
                                       anonymous.
                                       Enter the mail ID for the anonymous user.
              Service Account          This field is available only if the User Authentication option is set to
                                       external user.
                                       Enter the service account for the user. This is a required field when the
                                       User Authentication option is set to external user.
              Pass By Reference        Select this check box to stage the file in the archive directory and pass
                                       it as a reference in the headers.
              Remote Streaming         Select this check box to stream the FTP files directly from the remote
                                       server at the time of processing. When you select this option, the
                                       archive directory is the remote directory on the remote FTP server
                                       machine. Therefore, you should specify the archive directory as
                                       relative to the FTP user directory.
              File Mask                Enter the regular expression for the files to be picked. The default is
                                       *.*.
              Managed Server           Select the Managed Server for polling in a clustered domain.
                                       This field is available only in a clustered domain.
              Polling Interval         Enter a polling interval, in seconds. The default is 60.
              Read Limit               Specify the maximum number of messages to read per polling sweep.
                                       Enter 0 to specify no limit. The default is 10.




                                                                                     Transport Configuration 3-9
Protocol-Specific Transport Configuration Pages


                    Table 3–9 (Cont.) FTP Transport Configuration Options for Proxy Services
                    Option                    To create or edit...
                    Post Read Action          Select what happens to a message after it has been read.
                                              ■   Archive - The message is archived.
                                              ■   Delete - The message is deleted.
                    Transfer Mode             Select ASCII or binary as the transfer mode.
                    Archive Directory         Specify the path to the archive location if the Post Read Action option
                                              is set to Archive. This field is required if the Pass By Reference option
                                              is selected.
                                              Note: The Archive, Download, and Error directories are absolute
                                              paths, and they are automatically created. If you specify a relative
                                              path, the files are created relative to the Java process that starts the
                                              Oracle WebLogic Server.
                    Download Directory        Enter the directory on your local machine where files are downloaded
                                              during the file transfer.
                                              Note: The Archive, Download, and Error directories are absolute
                                              paths, and they are automatically created. If you specify a relative
                                              path, the files are created relative to the Java process that starts the
                                              Oracle WebLogic Server.
                    Error Directory           Enter the location where messages are posted if there is a problem.
                                              Note: The Archive, Download, and Error directories are absolute
                                              paths, and they are automatically created. If you specify a relative
                                              path, the files are created relative to the Java process that starts the
                                              Oracle WebLogic Server.
                    Request Encoding          Accept the default UTF-8 as the character set encoding for requests in
                                              FTP transports.
                    Scan Subdirectories       Select this check box to recursively scan all directories
                    Sort By Arrival           Select this check box to deliver events in the order of arrival.
                    Timeout                   Enter the socket timeout interval, in seconds, before the connection is
                                              dropped. If you enter 0, there is no timeout.
                    Retry Count               Specify the number of retries for FTP connection failures.


3.1.10 HTTP Transport Configuration Page (Business Services)
                    Use this page to configure transport settings for a business service using the HTTP
                    transport protocol. The HTTP transport supports both HTTP and HTTPS endpoints.

                    Table 3–10      HTTP Transport Configuration Options for Business Services
                    Option               To create or edit...
                    Read Timeout         Enter the read timeout interval in seconds.
                                         A zero (0) value indicates no timeout.
                    Connection           Enter the connection timeout interval in seconds. If the timeout expires
                    Timeout              before the connection can be established, Oracle Service Bus raises a
                                         connection error.
                                         A zero (0) value indicates no timeout.




3-10 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


Table 3–10 (Cont.) HTTP Transport Configuration Options for Business Services
Option          To create or edit...
HTTP Request    This parameter lets you to use one of the following HTTP methods in a
Method          request:
                ■   POST – Passes all its data, of unlimited length, directly over the
                    socket connection as part of its HTTP request body. The exchange is
                    invisible to the client, and the URL does not change. For REST-based
                    requests, POST tells the transport to perform a create/replace
                    operation or perform an action with the request.
                ■   GET – You can include as part of the request some of its own
                    information that better describes what to get. This information is
                    passed as a sequence of characters appended to the request URL in a
                    query string. You can use GET in a business service with a Service
                    Type of "Any XML Service," or with a Service Type of "Messaging
                    Service" when the Request Message Type is set to "None." For
                    REST-based requests, GET retrieves a representation of a remote
                    resource.
                ■   PUT – You can use PUT in a business service with a Service Type of
                    "Any XML Service" or "Messaging Service." PUT tells the transport to
                    perform a create/replace operation with a REST-based request, such
                    as uploading a file to a known location.
                ■   HEAD – You can use HEAD in a business service with a Service Type
                    of "Any XML Service," or with a Service Type of "Messaging Service"
                    when the Response Message Type is set to "None." HEAD tells the
                    transport to get header information for a remote resource rather than
                    getting a full representation of the resource in a REST-based request.
                ■   DELETE – You can use PUT in a business service with a Service Type
                    of "Any XML Service" or "Messaging Service." DELETE tells the
                    transport to perform a delete operation with a REST-based request.
                Note: If a method is already set in the
                $outbound/transport/request/http:http-method variable, that value takes
                precedence over any method you select for HTTP Request Method.




                                                               Transport Configuration 3-11
Protocol-Specific Transport Configuration Pages


                    Table 3–10 (Cont.) HTTP Transport Configuration Options for Business Services
                    Option               To create or edit...
                    Authentication       Select one of the following:
                                         ■    None - Specifies that authentication is not required to access this
                                              service.
                                         ■    Basic - Specifies that basic authentication is required to access this
                                              service.
                                              Basic authentication instructs Oracle WebLogic Server to authenticate
                                              the client using a user name and password against the authentication
                                              providers configured in the security realm, such as a Lightweight
                                              Directory Access Protocol (LDAP) directory service and Windows
                                              Active Directory. The client must send its user name and password on
                                              the HTTP request header.
                                              Basic authentication is strongly discouraged over HTTP because the
                                              password is sent in clear text. However, it is safe to send passwords
                                              over HTTPS because HTTPS provides an encrypted channel.
                                              Warning: By default, all users (authorized and anonymous) can
                                              access a business service. To limit the users who can access a business
                                              service, create a transport-level authorization policy. See "Editing
                                              Transport-Level Access Policies" in the Oracle Fusion Middleware
                                              Administrator's Guide for Oracle Service Bus at
                                              http://www.oracle.com/pls/as1111/lookup?id=OSBAG120
                                              8.
                                              Client Certificate - Specifies encrypted communication and strong
                                              client authentication (two-way SSL). To use this option, all endpoint
                                              URIs in the service definition must be HTTPS. To learn more, see
                                              "Configuring Transport-Level Security" in the Oracle Fusion
                                              Middleware Developer's Guide for Oracle Service Bus at
                                              http://www.oracle.com/pls/as1111/lookup?id=OSBDV155
                                              7.
                    Service Account      Enter a service account. A service account is an alias resource for a user
                                         name and password. This is a required field if you selected the Basic
                                         Authentication Required field.
                    Dispatch Policy      Select the instance of Oracle WebLogic Server Work Manager that you
                                         want to use for the dispatch policy for this endpoint. The default Work
                                         Manager is used if no other Work Manager exists.
                                         For information about Work Managers, see:
                                         ■    "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion
                                              Middleware Configuring Server Environments for Oracle WebLogic Server
                                              at
                                              http://www.oracle.com/pls/as1111/lookup?id=CNFGD112
                                         ■    "Using Work Managers with Oracle Service Bus" in the Oracle Fusion
                                              Middleware Administrator's Guide for Oracle Service Bus at
                                              http://www.oracle.com/pls/as1111/lookup?id=OSBAG142
                                              8
                    Request              Accept the default iso-8859-1 as the character set encoding for requests
                    Encoding             in HTTP transports, or enter a different character set encoding.
                    Response             Accept the default iso-8859-1 as the character set encoding for
                    Encoding             responses in HTTP transports, or enter a different character set encoding.
                    Proxy Server         Enter a proxy server resource or click Browse to choose an entry from the
                                         list of configured proxy server resources.




3-12 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


              Table 3–10 (Cont.) HTTP Transport Configuration Options for Business Services
              Option            To create or edit...
              Follow HTTP       Select this check box to specify that HTTP redirects (which are requests
              redirects         with a response code 3xx) should be automatically followed. A redirect
                                occurs when you send an outbound request to the URL of a business
                                service, and that service returns a response code (for example, 302) that
                                says the URL is no longer valid and this request needs to be sent to
                                another URL. If you select the Follow HTTP Redirects check box, Oracle
                                Service Bus automatically re-sends the request to the new URL without
                                any action on your part. Deselect this check box if you do not want the
                                HTTP redirects to be automatically followed.
              Use Chunked       Select this option if you want to use HTTP chunked transfer encoding to
              Streaming Mode    send messages.
                                Note: Do not use chunked streaming with if you use the Follow HTTP
                                Redirects option. Redirection and authentication cannot be handled
                                automatically in chunked mode.


3.1.11 HTTP Transport Configuration Page (Proxy Services)
              Use this page to configure transport settings for a proxy service using the HTTP
              transport protocol. The HTTP transport supports both HTTP and HTTPS endpoints.

              Table 3–11    HTTP Transport Configuration Options for Proxy Services
              Option            To create or edit...
              HTTPS required    Select this check box for inbound HTTPS endpoints.
                                To learn more, see "Configuring Transport-Level Security" in the Oracle
                                Fusion Middleware Developer's Guide for Oracle Service Bus at
                                http://www.oracle.com/pls/as1111/lookup?id=OSBDV1557.




                                                                               Transport Configuration 3-13
Protocol-Specific Transport Configuration Pages


                    Table 3–11 (Cont.) HTTP Transport Configuration Options for Proxy Services
                    Option               To create or edit...
                    Authentication       Select one of the following:
                                         ■    None - Specifies that authentication is not required.
                                         ■    Basic - Specifies that basic authentication is required to access this
                                              service.
                                              Basic authentication instructs Oracle WebLogic Server to authenticate
                                              the client using a user name and password against the authentication
                                              providers configured in the security realm, such as a Lightweight
                                              Directory Access Protocol (LDAP) directory service and Windows
                                              Active Directory. The client must send its user name and password on
                                              the HTTP request header.
                                              Basic authentication is strongly discouraged over HTTP because the
                                              password is sent in clear text. However, it is safe to send passwords
                                              over HTTPS because HTTPS provides an encrypted channel.
                                              Caution: By default, all users (authorized and anonymous) can access
                                              a proxy service. To limit the users who can access a proxy service,
                                              create a transport-level authorization policy. See "Editing
                                              Transport-Level Access Policies" under "Security Configuration" in
                                              the Oracle Fusion Middleware Administrator's Guide for Oracle Service
                                              Bus at
                                              http://www.oracle.com/pls/as1111/lookup?id=OSBAG117
                                              6.
                                         ■    Client Certificate - Specifies encrypted communication and strong
                                              client authentication (two-way SSL). To learn more, see "Configuring
                                              Transport-Level Security" in the Oracle Fusion Middleware Developer's
                                              Guide for Oracle Service Bus at
                                              http://www.oracle.com/pls/as1111/lookup?id=OSBDV155
                                              7.
                                         ■    Custom Authentication - Specifies that an authentication token is
                                              contained in an HTTP header. The client's identity is established
                                              through the use of this client-supplied token. You must configure an
                                              Identity Assertion provider that maps the token to an Oracle Service
                                              Bus user.
                                              The custom authentication token can be of any active token type
                                              supported by a configured Oracle WebLogic Server Identity Assertion
                                              provider.
                    Dispatch Policy      Select the instance of Oracle WebLogic Server Work Manager that you
                                         want to use for the dispatch policy for this endpoint. The default Work
                                         Manager is used if no other Work Manager exists.
                                         For information about Work Managers, see:
                                         ■    "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion
                                              Middleware Configuring Server Environments for Oracle WebLogic Server
                                              at
                                              http://www.oracle.com/pls/as1111/lookup?id=CNFGD112
                                         ■    "Using Work Managers with Oracle Service Bus" in the Oracle Fusion
                                              Middleware Administrator's Guide for Oracle Service Bus at
                                              http://www.oracle.com/pls/as1111/lookup?id=OSBAG142
                                              8




3-14 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


              Table 3–11 (Cont.) HTTP Transport Configuration Options for Proxy Services
              Option             To create or edit...
              Request            ■   For HTTP inbound transports:
              Encoding
                                     If the character set encoding parameter of the Content-Type header
                                     is not specified in Client Request, enter a character set encoding
                                     parameter. If you do not enter a value, the field defaults to
                                     ISO-8859-1.
                                 ■   For HTTP outbound transports:
                                     If you have not configured a request encoding, the Oracle Service Bus
                                     run time decides the most appropriate encoding while it makes a
                                     request to the business service. In the case of a non-passthrough
                                     scenario, the default character encoding is UTF-8 at run time.
                                     However if it is a passthrough scenario, the run time will pass
                                     through the encoding received with the outbound response.
              Response           Accept the default ISO-8859-1 as the character set encoding for
              Encoding           responses in HTTP transports, or enter a different character set encoding.
              Authentication     Enter the HTTP header (any except Authorization) from which Oracle
              Header             Service Bus is to extract the token. This field is available only if you
                                 selected the Custom Authentication check box.
                                 For example, client-xyz-token.
              Authentication     Select an authentication token type. Only the active token types
              Token Type         configured for an Identity Assertion provider are available. This field is
                                 available only if you selected the Custom Authentication check box.


3.1.12 JCA Transport Configuration Page (Proxy and Business Services)
              Use this page to configure transport settings using the JCA transport protocol. For
              more information on using the JCA transport, see "JCA Transport" in the Oracle Fusion
              Middleware Developer's Guide for Oracle Service Bus at
              http://www.oracle.com/pls/as1111/lookup?id=OSBDV910.

              Table 3–12     JCA Transport Configuration Options
              Option                   Description
              JCA File                 Click Browse to select a JCA resource. The JCA resource defines
                                       different aspects of the service, such as details about the adapter
                                       used, a binding to the WSDL and TopLink or EclipseLink mapping
                                       file, and the activation/interaction spec properties required by the
                                       service.
                                       Once you select a valid JCA resource, the remaining transport
                                       configuration fields become available.
              Adapter Name             A read-only value showing the name of the adapter that the JCA
                                       service will use.
              Adapter Type             A read-only value showing the adapter type.




                                                                                 Transport Configuration 3-15
Protocol-Specific Transport Configuration Pages


                    Table 3–12 (Cont.) JCA Transport Configuration Options
                    Option                        Description
                    Dispatch Policy               Select the instance of Oracle WebLogic Server Work Manager that
                                                  you want to use for the dispatch policy for this endpoint. The default
                                                  Work Manager is used if no other Work Manager exists.
                                                  For information about Work Managers, see:
                                                  ■   "Using Work Managers to Optimize Scheduled Work" in Oracle
                                                      Fusion Middleware Configuring Server Environments for Oracle
                                                      WebLogic Server at
                                                      http://www.oracle.com/pls/as1111/lookup?id=CNFGD
                                                      112
                                                  ■   "Using Work Managers with Oracle Service Bus" in the Oracle
                                                      Fusion Middleware Administrator's Guide for Oracle Service Bus at
                                                      http://www.oracle.com/pls/as1111/lookup?id=OSBAG
                                                      1428
                    JNDI Service Account          JNDI Service Account is for JNDI context security, used to access the
                                                  EIS adapter managed connection factory. Click Browse and select a
                                                  service account. If no service account is specified, an anonymous
                                                  subject is used.
                                                  For JCA business services, there is no restriction on the type of JNDI
                                                  service account that can be configured, such as static or pass-through,
                                                  but the run time must be able to access a user name and password.
                                                  JCA proxy services can use only static JNDI service accounts.
                                                  For more information on JNDI service accounts, see “Security” in the
                                                  “JCA Transport” chapter of the Oracle Fusion Middleware Developer's
                                                  Guide for Oracle Service Bus at
                                                  http://www.oracle.com/pls/as1111/lookup?id=OSBDV916
                                                  .
                    EndPoint Properties           This field lets you assign values to endpoint properties such as retries
                                                  for the type of adapter the service uses.
                                                  For a list of supported endpoint properties, see "Endpoint Properties
                                                  in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
                                                  at
                                                  http://www.oracle.com/pls/as1111/lookup?id=OSBDV184
                                                  1.
                    Dynamic EndPoint              This option lets you pass request parameters to JCA-compliant
                    Properties                    services. For example, you can use a dynamic endpoint property to
                                                  pass database query parameters to the Oracle JCA Adapter for
                                                  Database.
                                                  For more information on querying with parameters, see “Oracle JCA
                                                  Adapter for Database” in the Oracle Fusion Middleware User's Guide for
                                                  Technology Adapters at
                                                  http://www.oracle.com/pls/as1111/lookup?id=TKADP211
                                                  7.
                                                  Enter a name/value pair for each dynamic endpoint property you
                                                  want to provide. The endpoint property key matches the query
                                                  parameter name.
                                                  Use this section to add and configure endpoint properties for custom
                                                  adapters.




3-16 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


              Table 3–12 (Cont.) JCA Transport Configuration Options
              Option                   Description
              Always use             This option determines whether or not Activation Spec Properties
              configuration from JCA (proxy services) and Interaction Spec Properties (business services)
              file                   are always used from the JCA file.
                                       If this option is selected (default), the JCA transport interacts with the
                                       JCA framework using the activation/interaction spec properties in
                                       the JCA file.
                                       If this option is deselected, you can override the
                                       Activation/Interaction Spec Properties.
                                       For the redeployment impact of using this option, see “Endpoint
                                       Redeployment” in the “JCA Transport” chapter of the Oracle Fusion
                                       Middleware Developer's Guide for Oracle Service Bus at
                                       http://www.oracle.com/pls/as1111/lookup?id=OSBDV940
                                       .
              Operation Name           Displays a read-only name of the selected WSDL operation. An
                                       operation can have its own activation/interaction spec properties,
                                       shown in the Activation/Interaction Spec Properties field.
              Activation/Interaction   Activation Spec Properties is the field name for proxy services;
              Spec Properties          Interaction Spec Properties is the field name for business services.
                                       If this service is an inbound service invoked by an EIS application,
                                       this field displays the activation spec properties for the JCA inbound
                                       operation shown in Operation Name field.
                                       You can override the activation/interaction spec properties if you
                                       deselect Always use configuration from JCA file.
                                       Note: For Oracle Adapter Suite adapters, activation/interaction spec
                                       properties are displayed as read-only. The Oracle Adapter Suite
                                       adapters store their own configurations, which you must change in
                                       the Oracle Adapter Suite management tools.
              Connection properties    For legacy JCA services that use non-managed mode connection
              (legacy)                 properties (deprecated in this release), see the connection
                                       configuration options at
                                       http://download.oracle.com/docs/cd/E13159_
                                       01/osb/docs10gr3/jcatransport/transport.html#wp1105
                                       451.


              For more information on endpoint and activation/interaction spec properties, see the
              Oracle Fusion Middleware User's Guide for Technology Adapters at
              http://www.oracle.com/pls/as1111/lookup?id=TKADP.


3.1.13 JEJB Transport Configuration Page (Business Services)
              Use this page to configure transport settings for a business service using the JEJB
              transport protocol.




                                                                                  Transport Configuration 3-17
Protocol-Specific Transport Configuration Pages



                    Table 3–13      JEJB Transport Configuration for Business Services
                    Option                        Description
                    Dispatch Policy               Select the instance of the Oracle WebLogic Server Work Manager
                                                  that you want to use for the dispatch policy for this endpoint.
                                                  The default Work Manager is used if no other Work Manager
                                                  exists.
                                                  For information about Work Managers, see:
                                                  ■   "Using Work Managers to Optimize Scheduled Work" in
                                                      Oracle Fusion Middleware Configuring Server Environments for
                                                      Oracle WebLogic Server at
                                                      http://www.oracle.com/pls/as1111/lookup?id=C
                                                      NFGD112
                                                  ■   "Using Work Managers with Oracle Service Bus" in the
                                                      Oracle Fusion Middleware Administrator's Guide for Oracle
                                                      Service Bus at
                                                      http://www.oracle.com/pls/as1111/lookup?id=O
                                                      SBAG1428
                    EJB Spec Version              Select the EJB version of the remote EJB interface.
                    Pass XMLBeans by value        Select this option if you want the transport to generate an
                                                  "inlined" XML representation of POJO arguments (an
                                                  XMLObject) whose parameters you can access and manipulate
                                                  with XQuery expressions.
                                                  Note: Type information is not available inline for XMLObjects
                                                  passed by value. If you use this option, you cannot pass the
                                                  typed XMLObject as the argument in a Java Callout in a proxy
                                                  service pipeline.
                                                  Do not select this option if you want to pass the POJO by
                                                  reference, which also results in better performance.
                    Pass Caller’s Subject         As an alternative to selecting a Service Account, select this
                                                  option to have Oracle Service Bus pass the authenticated subject
                                                  from the proxy service when invoking the EJB.
                    Service Account               Click Browse and select a JNDI service account from the list
                                                  displayed. If no service account is specified, an anonymous
                                                  subject is used.
                                                  For more information, see Section 4.19, "Service Accounts."
                    Client JAR                    Click Browse and select an EJB client JAR resource from the list
                                                  displayed. The client JAR contains the remote or business
                                                  interface for the remote service. The Client JAR is registered as a
                                                  generic Archive Resource.
                    Home Interface                EJB 2.1 only – Select the required EJBHome interface from the
                                                  options populated by the JAR.
                    Remote Interface              EJB 2.1 only – This field is automatically populated based on the
                                                  configuration of the Home Interface.
                    Business Interface            EJB 3.0 only – Select the business interface from the client JAR
                                                  that you want to invoke.
                    Target Namespace              This field is populated by information picked up from the JAR.
                    Methods                       Select the required methods. Click + to expand the method,
                                                  which lets you edit the default parameter values.
                                                  You can change the default operation name for a given method.
                                                  By default, the operation name is the method name. If an EJB
                                                  contains methods with same name (overloaded), you must
                                                  change the operation names so that they are unique. WSDLs
                                                  require unique operation names.



3-18 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages



3.1.14 JEJB Transport Configuration Page (Proxy Services)
              Use this page to configure transport settings for a proxy service using the JEJB
              transport protocol.

              Table 3–14    JEJB Transport Configuration for Proxy Services
              Option                      Description
              Dispatch Policy             Select the instance of the Oracle WebLogic Server Work Manager
                                          that you want to use for the dispatch policy for this endpoint.
                                          The default Work Manager is used if no other Work Manager
                                          exists.
                                          For information about Work Managers, see:
                                          ■   "Using Work Managers to Optimize Scheduled Work" in
                                              Oracle Fusion Middleware Configuring Server Environments for
                                              Oracle WebLogic Server at
                                              http://www.oracle.com/pls/as1111/lookup?id=C
                                              NFGD112
                                          ■   "Using Work Managers with Oracle Service Bus" in the
                                              Oracle Fusion Middleware Administrator's Guide for Oracle
                                              Service Bus at
                                              http://www.oracle.com/pls/as1111/lookup?id=O
                                              SBAG1428
              EJB Spec Version            Select the EJB version of the remote EJB interface.
              Pass XMLBeans by value      Select this option if you want the transport to generate an
                                          "inlined" XML representation of POJO arguments (an
                                          XMLObject) whose parameters you can access and manipulate
                                          with XQuery expressions.
                                          Note: Type information is not available inline for XMLObjects
                                          passed by value. If you use this option, you cannot pass the
                                          typed XMLObject as the argument in a Java Callout in a proxy
                                          service pipeline.
                                          Do not select this option if you want to pass the POJO by
                                          reference, which also results in better performance.
              Transaction Attribute       Select one of the following options for handling transactions:
                                          ■   Supports – The transport accepts an incoming transaction.
                                              Quality of service is exactly-once if the operation is invoked
                                              in a transaction and best-effort if the operation is invoked
                                              outside of a transaction.
                                          ■   Required – The transport accepts an incoming transaction.
                                              If no ongoing transaction exists, the transport starts one.
                                              Quality of service is exactly-once.
                                          ■   RequiresNew – The transport always starts a new
                                              transaction, suspending an ongoing transaction. Quality of
                                              service is exactly-once.
                                          ■   Mandatory – The transport invokes the method in the
                                              existing transaction. Quality of service is exactly-once.
                                          ■   NotSupported – The transport suspends an existing
                                              transaction and resumes it on invocation. Quality of service
                                              is best-effort.
                                          ■   Never – The transport does not invoke the method in a
                                              transaction. Quality of service is best-effort.
              Client JAR                  Click Browse and select an EJB client JAR resource from the list
                                          displayed. The client JAR contains the remote or business
                                          interface for the remote EJB. The Client JAR is registered as a
                                          generic Archive Resource.



                                                                               Transport Configuration 3-19
Protocol-Specific Transport Configuration Pages


                    Table 3–14 (Cont.) JEJB Transport Configuration for Proxy Services
                    Option                            Description
                    Home Interface                    EJB 2.1 only – Select the required EJBHome interface from the
                                                      options populated by the client JAR.
                    Remote Interface                  EJB 2.1 only – This field is automatically populated based on the
                                                      configuration of the Home Interface.
                    Business Interface                EJB 3.0 only – Select the business interface from the client JAR
                                                      that you want to invoke.
                    Target Namespace                  This field is populated by information picked up from the JAR.
                    Methods                           Select the required methods. Click + to expand the method,
                                                      which lets you edit the default parameter values.
                                                      You can change the default operation name for a given method.
                                                      By default, the operation name is the method name. If an EJB
                                                      contains methods with same name (overloaded), you must
                                                      change the operation names so that they are unique. WSDLs
                                                      require unique operation names.


3.1.15 JMS Transport Configuration Page (Business Services)
                    Use this page to configure transport settings for a business service using the JMS
                    transport protocol. For more information, see "JMS Transport" in the Oracle Fusion
                    Middleware Developer's Guide for Oracle Service Bus at
                    http://www.oracle.com/pls/as1111/lookup?id=OSBDV1037.

                    Table 3–15      JMS Transport Configuration Options for Business Services
                    Option                        To create or edit...
                    Destination Type              Select a type for the JMS bridge destination:
                                                  ■    Queue (for point-to-point)
                                                  ■    Topic (for publish/subscribe)
                    Message Type                  Select one of the following:
                                                  ■    Bytes (for a stream of uninterpreted bytes)
                                                  ■    Text (for text messages)
                                                  This option is disabled if you select a Message Type of Java for the
                                                  response.
                    Response Queues               This option is available only when Queue is selected for the
                                                  Destination Type.
                                                  Select one of the following response options:
                                                  ■    None – No response is expected. Set this option for one-way
                                                       operations.
                                                  ■    One for all Request URIs – Lets you enter a single URI to
                                                       handle the response, as well as set other response configuration
                                                       details such as encoding and timeout, and optionally select a
                                                       JMS Service Account for passing JMS/JNDI credentials.
                                                  ■    One per Request URI – This option provides response failover,
                                                       letting you enter a response URI or destination for each request
                                                       URI. You can optionally select a service account for JMS/JNDI
                                                       credentials on each request/response pairing.




3-20 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


Table 3–15 (Cont.) JMS Transport Configuration Options for Business Services
Option                 To create or edit...
Response Pattern       This option is available only when you select a response option in
                       the Response Queue field.
                       Select one of the following:
                       ■   Select JMSCorrelationID for all services other than JAX-RPC
                           services running on Oracle WebLogic Server.
                       ■   Select JMSMessageID for JAX-RPC services running on Oracle
                           WebLogic Server.
                       For more information, see "Message ID and Correlation ID Patterns
                       for JMS Request/Response" in the Oracle Fusion Middleware
                       Developer's Guide for Oracle Service Bus at
                       http://www.oracle.com/pls/as1111/lookup?id=OSBDV10
                       51.
Dispatch Policy        Select the instance of Oracle WebLogic Server Work Manager that
                       you want to use for the dispatch policy for this endpoint. The
                       default Work Manager is used if no other Work Manager exists.
                       For example, if the business service has a JMS transport protocol,
                       the business service endpoint is an MDB (message-driven bean) JAR
                       file that you can associate with the specific dispatch policy.
                       For information about Work Managers, see:
                       ■   "Using Work Managers to Optimize Scheduled Work" in Oracle
                           Fusion Middleware Configuring Server Environments for Oracle
                           WebLogic Server at
                           http://www.oracle.com/pls/as1111/lookup?id=CNFG
                           D112
                       ■   "Using Work Managers with Oracle Service Bus" in the Oracle
                           Fusion Middleware Administrator's Guide for Oracle Service Bus at
                           http://www.oracle.com/pls/as1111/lookup?id=OSBA
                           G1428
Request Encoding       Enter the character set for encoding requests. The default is UTF-8.
Response Encoding      This option is available only when one of the response options is
                       selected in the Response Queues field.
                       Enter the character set for encoding responses. The default is UTF-8.
Response Timeout       This option is available only when one of the response options is
                       selected in the Response Queues field.
                       Enter the amount of time, in seconds, to wait for the response before
                       dropping the connection. The default, zero (0), means the response
                       never times out.
Client Jar             This option is available when the service is a Messaging Service
                       with a response type of Java. Select the client JAR to be used for
                       dequeueing messages that contain Java Objects. Selecting the client
                       JAR ensures it is on the classpath.
                       For more information, see "Sending and Receiving Java Objects in
                       Messages" in the Oracle Fusion Middleware Developer's Guide for
                       Oracle Service Bus at
                       http://www.oracle.com/pls/as1111/lookup?id=OSBDV18
                       74.




                                                               Transport Configuration 3-21
Protocol-Specific Transport Configuration Pages


                    Table 3–15 (Cont.) JMS Transport Configuration Options for Business Services
                    Option                        To create or edit...
                    Response URI                  This option is available when you select the One for all Request
                                                  URIs response option and the JMSCorrelationID response pattern.
                                                  Enter a response URI in the format:
                                                  jms://host:port/connection_factory/jndi_destination
                                                  To target multiple servers, use the following format:
                                                  jms://host1:port,host2:port/connection_factory/jndi_destination
                                                  You can also omit the host and port in the response URI. For
                                                  example:
                                                  jms:///connection_factory/jndi_destination
                                                  When you omit host and port, the connection factory/destination
                                                  lookup occurs on the local server. This is useful, for example, if the
                                                  request URI goes to a foreign connection factory/destination, but
                                                  you want the response sent to the local server.
                                                  Note: While Oracle WebLogic Server allows forward slashes in JNDI
                                                  names, such as "myqueues/myqueue", JNDI names with forward
                                                  slashes interfere with the URI format required by Oracle Service
                                                  Bus, and you cannot use those names. To work around this issue,
                                                  define a JMS foreign server and reference that foreign server in the
                                                  URI. For more information, see "Configure foreign servers" in the
                                                  Oracle Fusion Middleware Oracle WebLogic Server Administration
                                                  Console Online Help at
                                                  http://www.oracle.com/pls/as1111/lookup?id=WLACH.
                    Request Responses             This option is available when you select the One per Request URI
                                                  response option for the JMSCorrelationID pattern to provide
                                                  response failover.
                                                  For each request URI entered on the generic Transport page, enter a
                                                  Response URI, as described in the previous Response URI field.
                                                  You can select an optional Service Account for JMS/JNDI
                                                  credentials that the service uses for both the request and response
                                                  queues.
                    Target - Responses            This option is available when you select the One for all Request
                                                  URIs response option for the JMSMessageID pattern.
                                                  Enter the name of the Target server that is to receive responses, and
                                                  enter a Response URI, as described in the Response URI field.
                    Request Connections           This option is available when you select the One per Request URI
                                                  response option for the JMSMessageID pattern to provide response
                                                  failover.
                                                  For each request URI, identified sequentially by number in the
                                                  Seq.No field, optionally enter a JMS Connection Factory name. If
                                                  you do not enter a name, the JMS transport uses the connection
                                                  factory from the request URI.
                                                  You can select an optional Service Account for JMS/JNDI
                                                  credentials that the service uses for both the request and response
                                                  queues.




3-22 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


Table 3–15 (Cont.) JMS Transport Configuration Options for Business Services
Option                  To create or edit...
Target - Destinations   This option is available when you select the One per Request URI
                        response option for the JMSMessageID pattern to provide response
                        failover. Use this field in conjunction with Request Connections.
                        Each Target server listed (determined by the servers in the current
                        domain), such as Managed Servers in a cluster, lists the request URIs
                        by Seq.No, which correspond to those in the Request Connections
                        field. For each request URI on each target, enter the Destination
                        queue on that target server that receives responses.
                        Note: Because the Oracle Service Bus development environment
                        supports only a one-server environment, only one Target is listed. To
                        configure this field in a multi-server environment, deploy this
                        service to the run-time environment and complete the service
                        configuration in the Oracle Service Bus Administration Console.
JMS Service Account     This option is available when you use the None or One for all
                        Request URIs option in the Response Queues field.
                        Select a service account to use for the JMS resource managed by the
                        JMS server. A service account is an alias resource for a user ID and
                        password, used for both the request and response. The same service
                        account is used for both JMS and JNDI purposes.
                        This field is mutually exclusive with the Pass Caller’s Subject
                        option. Use one or the other for JMS/JNDI authentication.
                        For more information, see Section 2.1.15, "Creating Service Account
                        Resources."
Use SSL                 Select this option only if the requests are made over a TLS/SSL
                        connection.
                        TLS/SSL (Secure Sockets Layer) provides secure connections by
                        allowing two applications connecting over a network to
                        authenticate the other's identity and by encrypting the data
                        exchanged between the applications. Authentication allows a server,
                        and optionally a client, to verify the identity of the application on
                        the other end of a network connection. Additionally, if the
                        administrator has restricted access to individual JMS destinations
                        (queues or topics) by setting access control on the JNDI entry for the
                        destination, the service must authenticate when looking up the
                        entry in the JNDI tree. Authenticate using a Service Account or the
                        Pass Caller’s Subject option.
                        Note: The JMS transport does not support two-way SSL.
Expiration              The time interval in milliseconds after which the message expires.
                        Default value is 0, which means that the message never expires.
Enable Message          The JMS delivery mode the service uses, which lets you balance
Persistence             reliability with throughput. Select this option (default) for
                        guaranteed message delivery. Deselect this option to improve
                        throughput if an occasional lost message is tolerable.
Unit of Order           Enter a message unit-of-order. Message unit-of-order enables
                        message producers to group messages into a single unit with respect
                        to the processing order. This single unit-of-order requires that all
                        messages in that unit be processed sequentially in the order they
                        were created.




                                                                Transport Configuration 3-23
Protocol-Specific Transport Configuration Pages


                    Table 3–15 (Cont.) JMS Transport Configuration Options for Business Services
                    Option                        To create or edit...
                    Pass Caller’s Subject         Select this check box to have Oracle Service Bus pass the
                                                  authenticated subject when sending a message.
                                                  When you enable this field and the business service targets JMS
                                                  resources in a different domain, enable global trust on both
                                                  domains. See "Configuring Security for a WebLogic Domain" in
                                                  Oracle Fusion Middleware Securing Oracle WebLogic Server at
                                                  http://www.oracle.com/pls/as1111/lookup?id=SECMG40
                                                  2.
                                                  This field is mutually exclusive with the Service Account option.
                                                  Use one or the other for JMS/JNDI authentication.
                    JNDI Timeout                  The JNDI connection timeout (in seconds) used while looking up
                                                  the destination or connection factory in the JNDI tree.
                                                  The default, zero (0), means the connection never times out.


3.1.16 JMS Transport Configuration Page (Proxy Services)
                    Use this page to configure transport settings for a proxy service using the JMS
                    transport protocol. For more information, see "JMS Transport" in the Oracle Fusion
                    Middleware Developer's Guide for Oracle Service Bus at
                    http://www.oracle.com/pls/as1111/lookup?id=OSBDV1037.

                    Table 3–16      JMS Transport Configuration Options for Proxy Services
                    Option                        To create or edit...
                    Destination Type              Select one of the following:
                                                  ■   Queue (for a point-to-point destination type)
                                                  ■   Topic (for a publish/subscribe destination)
                    Is Response Required          This option is available only when Queue is selected for the
                                                  Destination Type.
                                                  Select this option to specify that a response is expected after an
                                                  outbound message is sent.
                    Response Pattern              This option is available only when the Is Response Required check
                                                  box is selected.
                                                  Select one of the following:
                                                  ■   Select JMSMessageID for JAX-RPC services running on Oracle
                                                      WebLogic Server.
                                                  ■   Select JMSCorrelationID for all other services. When you
                                                      select this option, you must also enter a Response URI.
                    Response Message Type         This option is available only when the Is Response Required check
                                                  box is selected.
                                                  Select one of the following:
                                                  ■   Bytes (for a stream of uninterpreted bytes)
                                                  ■   Text (for text messages)
                                                  This option is disabled if you select a Message Type of Java for the
                                                  response.




3-24 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


Table 3–16 (Cont.) JMS Transport Configuration Options for Proxy Services
Option                   To create or edit...
Client Jar               This option is available when the service is a Messaging Service
                         with a request type of Java. Select the client JAR to be used for
                         dequeueing messages that contain Java Objects. Selecting the client
                         JAR ensures it is on the classpath.
                         For more information, see "Sending and Receiving Java Objects in
                         Messages" in the Oracle Fusion Middleware Developer's Guide for
                         Oracle Service Bus at
                         http://www.oracle.com/pls/as1111/lookup?id=OSBDV1
                         874.
Dispatch Policy          Select the instance of Oracle WebLogic Server Work Manager that
                         you want to use for the dispatch policy for this endpoint. The
                         default Work Manager is used if no other Work Manager exists.
                         For example, if the business service has a JMS transport protocol,
                         the business service endpoint is an MDB (message-driven bean)
                         JAR file that you can associate with the specific dispatch policy.
                         For information about Work Managers, see:
                         ■    "Using Work Managers to Optimize Scheduled Work" in Oracle
                              Fusion Middleware Configuring Server Environments for Oracle
                              WebLogic Server at
                              http://www.oracle.com/pls/as1111/lookup?id=CNF
                              GD112
                         ■    "Using Work Managers with Oracle Service Bus" in the Oracle
                              Fusion Middleware Administrator's Guide for Oracle Service Bus at
                              http://www.oracle.com/pls/as1111/lookup?id=OSB
                              AG1428
Request Encoding         Enter the character set for encoding requests. The default is UTF-8.
Response Encoding        This option is available only when the Is Response Required check
                         box is selected.
                         Enter the character set for encoding responses. The default is
                         UTF-8.
Client Response Timeout This option is available only when the Is Response Required check
                        box is selected.
                         Enter the number of seconds to wait for a server response before
                         dropping the connection. This only applies if the client is another
                         proxy service in the same domain.




                                                                 Transport Configuration 3-25
Protocol-Specific Transport Configuration Pages


                    Table 3–16 (Cont.) JMS Transport Configuration Options for Proxy Services
                    Option                        To create or edit...
                    Response URI                  This option is available only when JMSCorrelationID is selected for
                                                  the Response Correlation Pattern.
                                                  Enter a response URI in the format:
                                                  jms://host:port/connection_factory/jndi_destination
                                                  To target multiple servers, use the following format:
                                                  jms://host1:port,host2:port/connection_factory/jndi_destination
                                                  You can also omit the host and port in the response URI. For
                                                  example:
                                                  jms:///connection_factory/jndi_destination
                                                  When you omit host and port, the connection factory/destination
                                                  lookup occurs on the local server. This is useful, for example, if the
                                                  request URI goes to a foreign connection factory/destination, but
                                                  you want the response sent to the local server.
                                                  Note: While Oracle WebLogic Server allows forward slashes in
                                                  JNDI names, such as "myqueues/myqueue", JNDI names with
                                                  forward slashes interfere with the URI format required by Oracle
                                                  Service Bus, and you cannot use those names. To work around this
                                                  issue, define a JMS foreign server and reference that foreign server
                                                  in the URI. For more information, see "Configure foreign servers" in
                                                  the Oracle Fusion Middleware Oracle WebLogic Server Administration
                                                  Console Online Help at
                                                  http://www.oracle.com/pls/as1111/lookup?id=WLACH.
                    Response Connection           This option is available only when JMSMessageID is selected for
                    Factory                       the Response Correlation Pattern.
                                                  Enter a response connection factory URI.
                                                  If a connection factory is not specified, the connection factory for
                                                  the request is used for the response.
                    JMS Service Account           Select a service account to use for the JMS resource managed by the
                                                  JMS server. A service account is an alias resource for a user ID and
                                                  password, used for both the request and response. The same
                                                  service account is used for both JMS and JNDI purposes.
                                                  For more information, see Section 2.1.15, "Creating Service Account
                                                  Resources."
                    Use SSL                       Select this option only if the requests are made over a TLS/SSL
                                                  connection.
                                                  TLS/SSL (Secure Sockets Layer) provides secure connections by
                                                  allowing two applications connecting over a network to
                                                  authenticate the other's identity and by encrypting the data
                                                  exchanged between the applications. Authentication allows a
                                                  server, and optionally a client, to verify the identity of the
                                                  application on the other end of a network connection. Additionally,
                                                  if the administrator has restricted access to individual JMS
                                                  destinations (queues or topics) by setting access control on the JNDI
                                                  entry for the destination, the service must authenticate when
                                                  looking up the entry in the JNDI tree.
                                                  Note: The JMS transport does not support two-way SSL.
                    Message Selector              Enter a message selector expression.
                                                  Only messages with properties matching the expression are
                                                  processed




3-26 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


Table 3–16 (Cont.) JMS Transport Configuration Options for Proxy Services
Option                 To create or edit...
Durable Subscription   This option is available only if Topic is selected for the Destination
                       Type.
                       Select this check box if the subscription is durable or leave it blank
                       if the subscription is not durable
Retry Count            Enter the number of delivery retries a message can have before it is
                       moved to the error destination. This field only applies to Oracle
                       WebLogic Server JMS destinations.
Retry Interval         Enter the amount of time, in milliseconds, before rolled back or
                       recovered messages are redelivered. This field only applies to
                       Oracle WebLogic Server JMS destinations.
Error Destination      Enter the name of the target destination for messages that have
                       reached their redelivery limit. This field only applies to Oracle
                       WebLogic Server JMS destinations.
Expiration Policy      Select an Expiration Policy to use when an expired message is
                       encountered on a destination. This field only applies to Oracle
                       WebLogic Server JMS destinations.
Is XA Required         Select this check box if your connection factory is XA.
                       This value is into account when the remote connection factory is
                       unavailable. If your connection factory is available and this value is
                       true, make sure that the connection factory is defined as
                       transactional.
Topic Messages         This option is available when you select Topic for the Destination
Distribution           Type.
                       Topic Messages Distribution provides different options for
                       handling inbound JMS messages and providing high availability
                       and failover.
                       Select one of the following properties to determine how
                       message-driven beans handle incoming JMS messages:
                       ■   One Copy Per Application (default) – If the JMS proxy service
                           is deployed to a cluster, this option provides high availability
                           and scalability by ensuring that an inbound JMS message is
                           processed on only one of the available servers in a cluster.
                       ■   One Copy Per Server – Select this option if you want inbound
                           JMS messages published to a topic to be received by the proxy
                           service on every member of the cluster.
                       ■   Compatibility – Select this option if you want inbound JMS
                           messages to be processed on a specific Managed Server or all
                           Managed Servers in a cluster. If you select this property, select
                           a Target server.
                       Note: For topic destinations deployed on Oracle WebLogic Server
                       prior to version 10.3.4, the only valid option is Compatibility.
                       The "One Copy" options you select for Topic Messages Distribution
                       override the Subscription Sharing Policy and/or Client ID Policy
                       configured on the JMS Connection Factory.
Target                 This option is available only in an Oracle Service Bus cluster when
                       you select Compatibility for the Topic Messages Distribution
                       option. Select the target server that will handle incoming JMS
                       messages. If you select one of the "One Copy" options for Topic
                       Messages Distribution, this field displays the name of the cluster.
                       If you do not set a target, the JMS proxy service instance (reading
                       messages off the Topic) on each Managed Server in the cluster gets
                       a copy of the message.



                                                                Transport Configuration 3-27
Protocol-Specific Transport Configuration Pages


                    Table 3–16 (Cont.) JMS Transport Configuration Options for Proxy Services
                    Option                        To create or edit...
                    JNDI Timeout                  The JNDI connection timeout (in seconds) used while looking up
                                                  the destination or connection factory in the JNDI tree.


3.1.17 MQ Transport Configuration Page (Business Services)
                    Before you use the MQ transport, you must configure a MQ Connection resource. See
                    Section 2.6, "Working with MQ Connections." For more information about the MQ
                    transport, see "MQ Transport" in the Oracle Fusion Middleware Developer's Guide for
                    Oracle Service Bus at
                    http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117.
                    Use this page to configure transport settings for a proxy service using the native MQ
                    transport protocol.

                    Table 3–17      MQ Transport Configuration Options for Business Services
                    Option                        To create or edit...
                    Message Type                  Select one of the following:
                                                  ■   Bytes (for a stream of uninterpreted bytes)
                                                  ■   Text (for text messages)
                    Is Response Required          Select this option to specify that a response is expected after an
                                                  outbound message is sent.
                    Polling Interval              This option is available only when the Is Response Required check
                                                  box is selected.
                                                  Enter a polling interval, in milliseconds. The default is 1000.
                    Response Correlation          This option is available only when the Is Response Required check
                    Pattern                       box is selected.
                                                  Specify whether the response correlation pattern should be based
                                                  on:
                                                  ■   MessageID
                                                  ■   CorrelationID
                                                  ■   Dynamic Queue – Select this option if your WebSphere MQ
                                                      implementation uses dynamic queues for response correlation.
                                                      The MQ transport supports only temporary dynamic queues.
                    Auto-generate                 This option is available only when the Is Response Required check
                    Correlation Value             box is selected.
                                                  Select this check box to automatically generate a CorrelationID or
                                                  MessageID.
                    Model Queue                   For Dynamic Queue Response Correlation Pattern only. Enter the
                                                  name of the model queue used to generate the dynamic queue.




3-28 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


Table 3–17 (Cont.) MQ Transport Configuration Options for Business Services
Option                  To create or edit...
MQ Response URI         This option is available only when the Is Response Required option
                        is selected.
                        The destination to which the response should be published. Enter a
                        response URI in the same format as the endpoint URI:
                        mq://local_queue_name?conn=mq_connection_resource
                        or, if you are using dynamic queues:
                        mq://dynamic_queue_prefix?conn=mq_connection_resource
                        The dynamic_queue_prefix, which is limited to 32 characters, is used
                        to create the dynamic queue on the MQ server. The queue name
                        becomes the prefix plus a unique ID. For example, if the dynamic_
                        queue_prefix is example, the dynamic queue would be named
                        something like example123129083821.
                        You can also use an asterisk (*) as a wildcard in the dynamic queue
                        response URI. For example:
                        mq://dynamic_queue_prefix*?conn=mq_connection_resource
                        mq://dynamic_queue_prefix*
                        mq://*
                        If you do not provide a dynamic_queue_name in the URI, the
                        transport uses the dynamic queue name generated by the MQ
                        server. If you do not provide an explicit mq_connection_resource in
                        the URI (best practice), the transport uses the mq_connection_resource
                        from the endpoint URI.
                        For more detailed information, see "MQ Transport" in the Oracle
                        Fusion Middleware Developer's Guide for Oracle Service Bus at
                        http://www.oracle.com/pls/as1111/lookup?id=OSBDV11
                        17.
Response Timeout        This option is available only when the Is Response Required check
                        box is selected.
                        Enter the number of seconds to wait for a response before dropping
                        the connection.
Dispatch Policy         Select the instance of Oracle WebLogic Server Work Manager that
                        you want to use for the dispatch policy for this endpoint. The
                        default Work Manager is used if no other Work Manager exists.
                        For information about Work Managers, see:
                        ■    "Using Work Managers to Optimize Scheduled Work" in Oracle
                             Fusion Middleware Configuring Server Environments for Oracle
                             WebLogic Server at
                             http://www.oracle.com/pls/as1111/lookup?id=CNFG
                             D112
                        ■    "Using Work Managers with Oracle Service Bus" in the Oracle
                             Fusion Middleware Administrator's Guide for Oracle Service Bus at
                             http://www.oracle.com/pls/as1111/lookup?id=OSBA
                             G1428
Dynamic Queue Pooling For Dynamic Queue Response Correlation Pattern only. Select this
                      option if you want the service to use pooled connections to dynamic
                      queues.
                        If you want to use a separate connection pool for dynamic queues,
                        consider configuring a dedicated MQ Connection resource for the
                        dynamic queues.
                        Do not select this option if you want to create a new dynamic queue
                        instance on each request (and destroy the queue after the response).




                                                                 Transport Configuration 3-29
Protocol-Specific Transport Configuration Pages


                    Table 3–17 (Cont.) MQ Transport Configuration Options for Business Services
                    Option                        To create or edit...
                    Endpoint URI ‘PUT’            Enter the MQ PUT message options from among the following:
                    options
                                                  ■   MQC.MQPMO_ALTERNATE_USER_AUTHORITY
                                                  ■   MQC.MQPMO_DEFAULT_CONTEXT
                                                  ■   MQC.MQPMO_FAIL_IF_QUIESCING
                                                  ■   MQC.MQPMO_LOGICAL_ORDER
                                                  ■   MQC.MQPMO_NEW_CORREL_ID
                                                  ■   MQC.MQPMO_NEW_MSG_ID
                                                  ■   MQC.MQPMO_NO_CONTEXT
                                                  ■   MQC.MQPMO_NO_SYNCPOINT
                                                  ■   MQC.MQPMO_NONE
                                                  ■   MQC.MQPMO_PASS_ALL_CONTEXT
                                                  ■   MQC.MQPMO_PASS_IDENTITY_CONTEXT
                                                  ■   MQC.MQPMO_RESOLVE_LOCAL_Q
                                                  ■   MQC.MQPMO_SET_ALL_CONTEXT
                                                  ■   MQC.MQPMO_SET_IDENTITY_CONTEXT
                                                  ■   MQC.MQPMO_SYNCPOINT
                                                  ■   MQC.MQPMO_VERSION_1
                                                  ■   MQC.MQPMO_VERSION_2
                                                  You can use either "|" or "+" to separate multiple options. For
                                                  example, you can specify the following:
                                                  MQC.MQPMO_LOGICAL_ORDER | MQC.MQPMO_NEW_MSG_
                                                  ID
                                                  The MQ PUT message options are applied when the message is
                                                  placed in the outbound queue.
                    MQ Unrecognized               Enter the URI representing the queue to which unrecognized
                    Response URI                  response messages should be sent. Note that this setting is enabled
                                                  only when the Auto-generate Correlation Value check box is
                                                  selected.
                                                  If you do not specify a value for this field, unrecognized response
                                                  messages are deleted.
                    Process RFH2 Headers          Select this option to parse WebSphere MQ RFH2 headers from a
                                                  message payload and automatically generate an RFH2Headers
                                                  transport header containing the RFH2 data.
                                                  If you do not select this option, the payload is passed through as
                                                  received.
                                                  For information about how the MQ transport handles RFH2
                                                  headers, see "About RFH2 Headers" in the Oracle Fusion Middleware
                                                  Developer's Guide for Oracle Service Bus at
                                                  http://www.oracle.com/pls/as1111/lookup?id=OSBDV11
                                                  36.


3.1.18 MQ Transport Configuration Page (Proxy Services)
                    Before you use the MQ transport, you must configure a MQ Connection resource. See
                    Section 2.6, "Working with MQ Connections." For more information about the MQ
                    transport, see "MQ Transport" in the Oracle Fusion Middleware Developer's Guide for
                    Oracle Service Bus at
                    http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117.


3-30 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


Use this page to configure transport settings for a proxy service using the native MQ
transport protocol.

Table 3–18    MQ Transport Configuration Options for Proxy Services
Option                   To create or edit...
Polling Interval         Enter a polling interval, in milliseconds. The default is 1000.
Is Response Required     Select this option to specify that a response is expected after an
                         outbound message is sent.
Response Correlation     This option is available only when the Is Response Required check
Pattern                  box is selected.
                         Specify whether the response correlation pattern should be based
                         on MessageID or CorrelationID.
MQ Response URI          This option is available only when the Is Response Required check
                         box is selected.
                         The destination to which the response should be published. Enter a
                         response URI in the same format as the endpoint URI:
                         mq://<local-queue-name>?conn=<mq-connection-resou
                         rce-ref>
Response Message Type    This option is available only when the Is Response Required check
                         box is selected.
                         Select one of the following:
                         ■   Bytes (for a stream of uninterpreted bytes)
                         ■   Text (for text messages)
Client Response Timeout This option is available only when the Is Response Required check
                        box is selected.
                         Enter the number of seconds to wait for a response before dropping
                         the connection.
Dispatch Policy          Select the instance of Oracle WebLogic Server Work Manager that
                         you want to use for the dispatch policy for this endpoint. The
                         default Work Manager is used if no other Work Manager exists.
                         For information about Work Managers, see:
                         ■   "Using Work Managers to Optimize Scheduled Work" in Oracle
                             Fusion Middleware Configuring Server Environments for Oracle
                             WebLogic Server at
                             http://www.oracle.com/pls/as1111/lookup?id=CNF
                             GD112
                         ■   "Using Work Managers with Oracle Service Bus" in the Oracle
                             Fusion Middleware Administrator's Guide for Oracle Service Bus at
                             http://www.oracle.com/pls/as1111/lookup?id=OSB
                             AG1428
Backout Threshold        Enter a value representing the number of times the pipeline should
                         retry a message before redirecting the message to the queue
                         specified in the Dead Letter URI field.
                         If you do not specify a value for this field, the message is redirected
                         to the dead letter queue without attempting any retries.
MQ Dead Letter URI       Enter the URI of the dead letter queue to which request messages
                         should be redirected after attempting the number of retries
                         specified in the Backout Threshold field.
                         If you do not specify a value for this field, the message is discarded
                         after retrying the number of times specified in the Backout
                         Threshold field. The Dead Letter URI uses the same format as the
                         EndPoint URI.



                                                                  Transport Configuration 3-31
Protocol-Specific Transport Configuration Pages


                    Table 3–18 (Cont.) MQ Transport Configuration Options for Proxy Services
                    Option                        To create or edit...
                    Endpoint URI ‘GET’            Enter the MQ GET message options from among the following:
                    options
                                                  ■   MQC.MQGMO_ACCEPT_TRUNCATED_MSG
                                                  ■   MQC.MQGMO_ALL_MSGS_AVAILABLE
                                                  ■   MQC.MQGMO_BROWSE_FIRST
                                                  ■   MQC.MQGMO_BROWSE_NEXT
                                                  ■   MQC.MQGMO_COMPLETE_MSG
                                                  ■   MQC.MQGMO_CONVERT
                                                  ■   MQC.MQGMO_FAIL_IF_QUIESCING
                                                  ■   MQC.MQGMO_LOCK
                                                  ■   MQC.MQGMO_LOGICAL_ORDER
                                                  ■   MQC.MQGMO_MARK_BROWSE_CO_OP
                                                  ■   MQC.MQGMO_MARK_SKIP_BACKOUT
                                                  ■   MQC.MQGMO_NO_SYNCPOINT
                                                  ■   MQC.MQGMO_NONE
                                                  ■   MQC.MQGMO_NO_WAIT
                                                  ■   MQC.MQGMO_SYNCPOINT
                                                  ■   MQC.MQGMO_SYNCPOINT_IF_PERSISTENT
                                                  ■   MQC.MQGMO_UNLOCK
                                                  ■   MQC.MQGMO_UNMARK_BROWSE_CO_OP
                                                  ■   MQC.MQGMO_UNMARK_BROWSE_HANDLE
                                                  ■   MQC.MQGMO_UNMARKED_BROWSE_MSG
                                                  ■   MQC.MQGMO_VERSION_1
                                                  ■   MQC.MQGMO_VERSION_2
                                                  ■   MQC.MQGMO_VERSION_3
                                                  ■   MQC.MQGMO_WAIT
                                                  You can use either "|" or "+" to separate multiple options. For
                                                  example, you can specify the following:
                                                  MQC.MQGMO_ACCEPT_TRUNCATED_MSG | MQC.MQGMO_
                                                  LOCK
                                                  The MQ GET message options are applied when reading a message
                                                  from the inbound queue.
                    Process RFH2 Headers          Select this option to parse WebSphere MQ RFH2 headers from a
                                                  message payload and automatically generate an RFH2Headers
                                                  transport header containing the RFH2 data.
                                                  If you do not select this option, the payload is passed through as
                                                  received.
                                                  For information about how the MQ transport handles RFH2
                                                  headers, see "About RFH2 Headers" in the Oracle Fusion Middleware
                                                  Developer's Guide for Oracle Service Bus at
                                                  http://www.oracle.com/pls/as1111/lookup?id=OSBDV1
                                                  136.


3.1.19 SB Transport Configuration Page (Business Services)
                    Use this page to configure transport settings for a proxy service using the SB (Service
                    Bus) transport protocol. For more information about the SB transport, see "SB


3-32 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


              Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at
              http://www.oracle.com/pls/as1111/lookup?id=OSBDV997.

              Table 3–19   SB Transport Configuration Options for Business Services
              Option                   To create or edit...
              Dispatch policy          Select the instance of Oracle WebLogic Server Work Manager that
                                       you want to use for the dispatch policy for this endpoint. The
                                       default Work Manager is used if no other Work Manager exists.
                                       For information about Work Managers, see:
                                       ■    "Using Work Managers to Optimize Scheduled Work" in
                                            Oracle Fusion Middleware Configuring Server Environments for
                                            Oracle WebLogic Server at
                                            http://www.oracle.com/pls/as1111/lookup?id=CN
                                            FGD112
                                       ■    "Using Work Managers with Oracle Service Bus" in the Oracle
                                            Fusion Middleware Administrator's Guide for Oracle Service Bus
                                            at
                                            http://www.oracle.com/pls/as1111/lookup?id=OS
                                            BAG1428
              Timeout                  The amount of time in seconds it takes the service to time out.
                                       Note: The timeout will be ignored when the quality of service is
                                       Exactly-Once.
              Service Account          Click Browse and select a service account from the list displayed.
                                       If no service account is specified, an anonymous subject is used.


3.1.20 SB Transport Configuration Page (Proxy Services)
              Use this page to configure transport settings for a proxy service using the SB (Service
              Bus) transport protocol. For more information about the SB transport, see "SB
              Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at
              http://www.oracle.com/pls/as1111/lookup?id=OSBDV997.

              Table 3–20   SB Transport Configuration Options for Proxy Services
              Option               To create or edit...
              Dispatch Policy      Select the instance of Oracle WebLogic Server Work Manager that you
                                   want to use for the dispatch policy for this endpoint. The default Work
                                   Manager is used if no other Work Manager exists.
                                   For information about Work Managers, see:
                                   ■   "Using Work Managers to Optimize Scheduled Work" in Oracle
                                       Fusion Middleware Configuring Server Environments for Oracle
                                       WebLogic Server at
                                       http://www.oracle.com/pls/as1111/lookup?id=CNFGD11
                                       2
                                   ■   "Using Work Managers with Oracle Service Bus" in the Oracle
                                       Fusion Middleware Administrator's Guide for Oracle Service Bus at
                                       http://www.oracle.com/pls/as1111/lookup?id=OSBAG14
                                       28
              Use SSL              When specified, requests must be sent over an SSL connection.
                                   However, unsecured connections are not forbidden. The administrator
                                   must close all unsecured protocols on the server (for example, t3 or http)
                                   to strictly enforce secured client connections.




                                                                               Transport Configuration 3-33
Protocol-Specific Transport Configuration Pages



3.1.21 SFTP Transport Configuration Page (Business Services)
                    Use this page to configure transport settings for a proxy service using the sftp
                    transport protocol. For more information about the SFTP transport, see "SFTP
                    Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at
                    http://www.oracle.com/pls/as1111/lookup?id=OSBDV975.

                    Table 3–21      SFTP Transport Configuration Options for Business Services
                    Option                        To create or edit...
                    User Authentication           Select one of the following:
                                                  ■   Username Password Authentication - Specifies that a static
                                                      service account is associated with this authentication method and
                                                      the client is authenticated using the provided credentials.
                                                  ■   Host Based Authentication - Specifies that a user name and
                                                      service key provider is required to use this authentication
                                                      method. Any user connecting from a known host is authenticated
                                                      using the private key of the host.
                                                  ■   Public Key Authentication - Specifies that a user name and
                                                      service key provider is required to use this authentication
                                                      method. Every user has their own private key.
                                                  Note: The Oracle Service Bus service does not use the service key
                                                  provider to authenticate any credentials from the SFTP server. It uses
                                                  only the known_hosts file to authenticate the SFTP server, as
                                                  described in "Configuring Transport-Level Security for SFTP
                                                  Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle
                                                  Service Bus.
                    Service Account               Enter the service account for the user, or click Browse to select service
                                                  accounts from a browser.
                    Service Key Provider          This option is available only when Host Based or Public Key
                                                  Authentication is selected.
                                                  Enter a service key provider in the Service Key Provider field. You
                                                  can click Browse to select service key providers from a browser. This
                                                  is a required field.
                    Username                      This option is available only when Host Based or Public Key
                                                  Authentication is selected.
                                                  Enter the user name.
                    Timeout                       Enter the socket timeout interval, in seconds, before the connection is
                                                  dropped. If you enter 0, there is no timeout. The default value is 60.
                    Prefix for destination        Enter an optional prefix that the transport prepends to the file name
                    File Name                     on the remote server.
                                                  Do not enter * in this field. This character causes a run-time exception.
                    Suffix for the                Enter an optional suffix that the transport appends to the file name on
                    destination File Name         the remote server.
                                                  Do not enter * in this field. This character causes a run-time exception.
                    Request Encoding              Accept the default UTF-8 as the character set encoding for requests in
                                                  SFTP transports.


3.1.22 SFTP Transport Configuration Page (Proxy Services)
                    Use this page to configure transport settings for a proxy service using the sftp
                    transport protocol. For more information about the SFTP transport, see "SFTP
                    Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at
                    http://www.oracle.com/pls/as1111/lookup?id=OSBDV975.



3-34 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages



Table 3–22    SFTP Transport Configuration Options for Proxy Services
Option                 To create or edit...
User Authentication    Select one of the following:
                       ■   Username Password Authentication - Specifies that a static
                           service account is associated with this authentication method and
                           the client is authenticated using the provided credentials.
                       ■   Host Based Authentication - Specifies that a user name and
                           service key provider is required to use this authentication
                           method. Any user connecting from a known host is authenticated
                           using the private key of the host.
                       ■   Public Key Authentication - Specifies that a user name and
                           service key provider is required to use this authentication
                           method. Every user has their own private key.
                       Note: The Oracle Service Bus service does not use the service key
                       provider to authenticate any credentials from the SFTP server. It uses
                       only the known_hosts file to authenticate the SFTP server, as
                       described in "Configuring Transport-Level Security for SFTP
                       Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle
                       Service Bus.
Service Account        Enter the service account for the user, or click Browse to select service
                       accounts from a browser.
Service Key Provider   This option is available only when Host Based or Public Key
                       Authentication is selected.
                       Enter a service key provider in the Service Key Provider field. You
                       can click Browse to select service key providers from a browser. This
                       is a required field.
Username               This option is available only when Host Based or Public Key
                       Authentication is selected.
                       Enter the user name.
Pass By Reference      Select this check box to stage the file in the archive directory and pass
                       it as a reference in the headers.
Remote Streaming       Select this check box to stream the SFTP files directly from the remote
                       server at the time of processing. When you select this option, the
                       archive directory is the remote directory on the remote SFTP server
                       machine. Therefore, you should specify the archive directory as
                       relative to the SFTP user directory.
File Mask              Enter the regular expression for the files to be picked. The default is
                       *.*.
Managed Server         This field is available only in a clustered domain.
                       Select the Managed Server to act as the polling server. All of the
                       Managed Servers can process the message, but only one can poll for
                       the message.
Polling Interval       Enter the interval in seconds at which the file is polled from the
                       specified location. The default is 60.
Read Limit             Specify the maximum number of messages to read per polling sweep.
                       Enter 0 to specify no limit. The default is 10.
Post Read Action       Select what happens to a message after it has been read.
                       ■   Archive - The message is archived.
                       ■   Delete - The message is deleted.




                                                                    Transport Configuration 3-35
Protocol-Specific Transport Configuration Pages


                    Table 3–22 (Cont.) SFTP Transport Configuration Options for Proxy Services
                    Option                        To create or edit...
                    Archive Directory             Specify the path to the archive location if the Post Read Action option
                                                  is set to Archive. This field is required if the Pass By Reference option
                                                  is selected.
                                                  Note: The Archive, Download, and Error directories are absolute
                                                  paths, and they are automatically created. If you specify a relative
                                                  path, the files are created relative to the Java process that starts the
                                                  Oracle WebLogic Server.
                    Download Directory            Enter the directory on your local machine where files are downloaded
                                                  during the file transfer.
                                                  Note: The Archive, Download, and Error directories are absolute
                                                  paths, and they are automatically created. If you specify a relative
                                                  path, the files are created relative to the Java process that starts the
                                                  Oracle WebLogic Server.
                    Error Directory               Enter the location where messages are posted if there is a problem.
                                                  Note: The Archive, Download, and Error directories are absolute
                                                  paths, and they are automatically created. If you specify a relative
                                                  path, the files are created relative to the Java process that starts the
                                                  Oracle WebLogic Server.
                    Request Encoding              Accept the default UTF-8 as the character set encoding for requests in
                                                  SFTP transports.
                    Scan Subdirectories           Select this check box to recursively scan all directories
                    Sort By Arrival               Select this check box to deliver events in the order of arrival.
                    Timeout                       Enter the socket timeout interval, in seconds, before the connection is
                                                  dropped. If you enter 0, there is no timeout. The default value is 60.
                    Retry Count                   Specify the number of retries for SFTP connection failures.


3.1.23 SOA-DIRECT Transport Configuration Page (Business Services)
                    Table 3–23 describes the transport-specific configuration options for the SOA-DIRECT
                    transport.

                    Table 3–23      SOA-DIRECT Transport Configuration
                    Property                           Description
                    JNDI Service Account               Optional. Specifies the security credentials for the JNDI lookup
                                                       of the target SOA service. The service account must be static.
                                                       Click Browse and select a service account. If you do not specify a
                                                       service account, an anonymous subject is used.




3-36 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


Table 3–23 (Cont.) SOA-DIRECT Transport Configuration
Property                 Description
Role                     Required. Identifies the communication pattern the service uses.
                         Select one of the following options:
                         ■   Synchronous Client (default) – In this role, because there is
                             no asynchronous callback, the Callback Proxy option is
                             disabled. The WS-Addressing Version option is also
                             disabled.
                         ■   Asynchronous Client – In this role, because asynchronous
                             callback is usually required, you can identify a Callback
                             Proxy, and you must select a WS-Addressing Version. The
                             asynchronous option is enabled only when the WSDL
                             service is of type SOAP.
                         ■   Service Callback – This role is for returning the
                             asynchronous callback to an SOA service after an external
                             service invocation.
                         There is no load balancing or failover for Callback services.
Callback Proxy           Optional. Enabled only for the Asynchronous Client role.
                         This option lets you specify the proxy service that receives
                         callbacks. When you select a callback proxy, if no
                         WS-Addressing is provided by the request or the proxy service
                         pipeline, Oracle Service Bus automatically populates the
                         ReplyTo property in the SOAP header. You must select a WSDL
                         proxy service that uses the SB transport (for RMI), and the
                         callback proxy service must understand WS-Addressing.
                         WS-Addressing properties that are sent in the request or set in
                         the proxy service pipeline are used instead of the callback proxy
                         you set in this option.
                         If you do not specify a Callback Proxy, and the request does not
                         contain ReplyTo properties, you must provide ReplyTo
                         properties in the SOAP header through the proxy service
                         pipeline.
Fault Proxy              This option is not currently supported. You must configure your
                         callback services to handle faults in an asynchronous pattern.
WS-Addressing Version    Required. Enabled only for the Asynchronous Client role.
                         Specify the default WS-Addressing version to use when no
                         WS-Addressing is provided in the request or the proxy service
                         pipeline. WS-Addressing properties that are sent in the request
                         or set in the proxy service pipeline are used instead of the
                         WS-Addressing version you set in this option.
                         For WS-Addressing version mismatches between environments,
                         perform any necessary transformations in the proxy service
                         pipeline.




                                                              Transport Configuration 3-37
Protocol-Specific Transport Configuration Pages


                    Table 3–23 (Cont.) SOA-DIRECT Transport Configuration
                    Property                        Description
                    Dispatch Policy                 Select the instance of Oracle WebLogic Server Work Manager
                                                    that you want to use for the dispatch policy for this endpoint.
                                                    The default Work Manager is used if no other Work Manager
                                                    exists.
                                                    For information about Work Managers, see:
                                                    ■   "Using Work Managers to Optimize Scheduled Work" in
                                                        Oracle Fusion Middleware Configuring Server Environments for
                                                        Oracle WebLogic Server at
                                                        http://www.oracle.com/pls/as1111/lookup?id=C
                                                        NFGD112
                                                    ■   "Using Work Managers with Oracle Service Bus" in the
                                                        Oracle Fusion Middleware Administrator's Guide for Oracle
                                                        Service Bus at
                                                        http://www.oracle.com/pls/as1111/lookup?id=O
                                                        SBAG1428
                    Pass Caller’s Subject           Optional. Select this option to have Oracle Service Bus pass the
                                                    authenticated subject from the proxy service when invoking the
                                                    SOA service. The Invocation Service Account option, an
                                                    alternative to Pass Caller’s Subject, is disabled when you select
                                                    this option.
                                                    Note: Make sure that domain trust is enabled between client and
                                                    target server if they are in different domains. For more
                                                    information, see "Important Information Regarding
                                                    Cross-Domain Security Support" in Oracle Fusion Middleware
                                                    Securing Oracle WebLogic Server at
                                                    http://www.oracle.com/pls/as1111/lookup?id=SECM
                                                    G403.
                    Invocation Service Account      Optional. Alternative to Pass Caller’s Subject, which lets you
                                                    specify custom security credentials by selecting a service account
                                                    for RMI invocation. You can specify any type of service account
                                                    (Pass Through, Static, Mapping).
                                                    Click Browse and select a service account. If you do not specify a
                                                    service account, an anonymous subject is used.


3.1.24 Tuxedo Transport Configuration Page (Business Services)
                    Use this page to configure transport settings for a proxy service using the Tuxedo
                    transport protocol. For more information about the Tuxedo transport, see "Tuxedo
                    Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at
                    http://www.oracle.com/pls/as1111/lookup?id=OSBDV1200.

                    Table 3–24      Tuxedo Transport Configuration Options for Business Services
                    Option               To create or edit...
                    Field Table          Enter the name of the class or classes describing the FML/FML32 buffer
                    Classes              received. These are used for the FML/FML32-to-XML conversion routines
                                         to map field names to element names. This is a space separated list of fully
                                         qualified class names.
                    View Classes         Enter the name of the class or classes describing the VIEW/VIEW32 buffer
                                         received or sent. These are used for the VIEW-to-XML or VIEW32-to-XML
                                         conversion routines to map field names to element names. This is a space
                                         separated list of fully qualified class names.
                    Classes Jar          Select a JAR Resource that contains a JAR file with the FML/FML32 or
                                         VIEW/VIEW32 classes necessary for this endpoint operation.




3-38 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


Table 3–24 (Cont.) Tuxedo Transport Configuration Options for Business Services
Option            To create or edit...
Remote Access     Select a remote access point from the drop down list that is associated with
Point(s)          the Import. The list contains remote access points configured in WTC. A
                  business service cannot be created if there is no associated remote access
                  point.
                  If no remote access points exist or to create a new one, select New. Enter the
                  corresponding Access Point Name and Network Address in the adjacent
                  fields. Upon validation of the endpoint, the access point is added to the
                  WTC configuration for each WTC server. If no WTC server exists, one is
                  created.
                  If more than one URI has been specified, there will be one remote access
                  point field per URI and the URI displays for informative purposes. If more
                  than one URI exists, each requires a different remote access point. If the URI
                  specified already corresponds to an existing WTC resource, the
                  corresponding remote access point displays, but cannot be modified.
Local Access      This field appears only when you select New in the Remote Access Point
Point(s)          field.
                  From the list, select a local access point to be associated with the newly
                  created remote access point. If none exist or to create a new one, select
                  New. Enter the corresponding Local Access Point Name and Local
                  Network Address in the adjacent fields.
Request Buffer    Select the type of buffer that the remote Tuxedo service will receive.
Type
Request Buffer    This option is enabled if the previous Request Buffer Type value is VIEW
Subtype           or VIEW32. Enter the buffer subtype with which to associate the request
                  buffer.
Response          Select this check box to indicate a bidirectional call. If not checked, the
Required?         underlying tpcall is invoked with TPNOREPLY flag, and a null response
                  is posted asynchronously.
Suspend           Select this check box to suspend the transaction, if it exists. This is useful
Transaction?      when the remote service does not support transactions.
Dispatch Policy   Select the instance of Oracle WebLogic Server Work Manager that you want
                  to use for the dispatch policy for this endpoint. The default Work Manager
                  is used if no other Work Manager exists.
                  This Work Manager is used to asynchronously post a null reply in the case
                  of a one-way invocation.
                  For information about Work Managers, see:
                  ■   "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion
                      Middleware Configuring Server Environments for Oracle WebLogic Server at
                      http://www.oracle.com/pls/as1111/lookup?id=CNFGD112
                  ■   "Using Work Managers with Oracle Service Bus" in the Oracle Fusion
                      Middleware Administrator's Guide for Oracle Service Bus at
                      http://www.oracle.com/pls/as1111/lookup?id=OSBAG1428
Request           Specify a character set encoding for requests in Tuxedo transports.
Encoding
Response          Specify a character set encoding for responses in Tuxedo transports.
Encoding
Timeout           Specify the maximum amount of time (in seconds) that the transport run
                  time waits for replies; an integer value that is greater than or equal to 0. If
                  not specified or set to zero (default), replies will time out at BLOCKTIME,
                  the maximum number of seconds that the local WTC access point allows
                  for a blocking call.




                                                                    Transport Configuration 3-39
Protocol-Specific Transport Configuration Pages


                    Table 3–24 (Cont.) Tuxedo Transport Configuration Options for Business Services
                    Option               To create or edit...
                    Transformation       Select one of the following:
                    Style
                                         ■    None - (default) The order of fields may not be respected.
                                         ■    Ordered - The fields are presented with all their occurrences in the
                                              correct order.
                                         ■    Ordered and Grouped - If the fields are logically structured as records,
                                              the fields are ordered by occurrence and grouped by record.


3.1.25 Tuxedo Transport Configuration Page (Proxy Services)
                    Use this page to configure transport settings for a proxy service using the Tuxedo
                    transport protocol. For more information about the Tuxedo transport, see "Tuxedo
                    Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at
                    http://www.oracle.com/pls/as1111/lookup?id=OSBDV1200.

                    Table 3–25      Tuxedo Transport Configuration Options for Proxy Services
                    Option               To create or edit...
                    Field Table          Enter the name of the class or classes describing the FML/FML32 buffer
                    Classes              received. These are used for the FML/FML32-to-XML conversion routines
                                         to map field names to element names. This is a space separated list of fully
                                         qualified class names.
                    View Classes         Enter the name of the class or classes describing the VIEW/VIEW32 buffer
                                         received or sent. These are used for the VIEW-to-XML or VIEW32-to-XML
                                         conversion routines to map field names to element names. This is a space
                                         separated list of fully qualified class names.
                                         X_C_TYPE and X_COMMON Tuxedo buffer types are handled in the same
                                         manner as VIEW/VIEW32 buffers.
                                         If an incoming request contains a VIEW, then the corresponding VIEW class
                                         should be specified in the Oracle Service Bus CLASSPATH.
                    Classes Jar          Select a JAR resource that contains a JAR file with the FML/FML32 or
                                         VIEW/VIEW32 classes necessary for this endpoint operation.
                    Local Access         Select a local access point from the list that is associated with the export.
                    Point                The list contains local access points configured in WTC. A proxy service
                                         cannot be created if there is not an associated local access point.
                                         If no local access points exist or to create a new one, select New. Enter the
                                         corresponding Local Access Point Name and Local Network Address in
                                         the adjacent fields. Upon validation of the endpoint, the access point is
                                         added to the WTC configuration for each WTC server. If no WTC server
                                         exists, one is created.
                                         You can enter an existing access point name after selecting the New option.
                                         This causes the existing information to be updated with the new
                                         parameters. You can change only the host name and port number.




3-40 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages


              Table 3–25 (Cont.) Tuxedo Transport Configuration Options for Proxy Services
              Option           To create or edit...
              Remote Access    This field appears only when you select New in the Local Access Point
              Point            field.
                               From the list, select a remote access point to be associated with the newly
                               created local access point. If none exist or to create a new one, select New.
                               Enter the corresponding Access Point Name and Network Address in the
                               adjacent fields.
                               You can enter an existing access point name after selecting the New option.
                               This causes the existing information to be updated with the new
                               parameters. You can change only the host name and port number.
                               The remote access point will also be the authentication principal for the
                               WTC connection for inbound requests. Optionally, you can create a user
                               with the same access point ID in the default security realm to allow
                               incoming calls. To do so, select Yes from the Create User? list. The
                               password will be randomly generated using a temporary variable to avoid
                               security issues.
              Reply Buffer     This option is available only if the Response Required? field is selected.
              Type
                               Select the type of buffer that the remote Tuxedo client will receive.
              Reply Buffer     This option is available only when the Response Required? option is
              Subtype          selected and the Reply Buffer Type value is VIEW or VIEW32.
                               Enter the buffer subtype with which to associate the reply buffer.
              Response         Select this check box if this service is expected to send a response.
              Required?
                               The default status is that this option is selected.
                               This option is cleared and the unavailable if the service type is Messaging
                               Service and the response message type is None.
              Request          Specify a character set encoding for requests in Tuxedo transports.
              Encoding
              Response         Specify a character set encoding for responses in Tuxedo transports.
              Encoding
              Transformation   Select one of the following:
              Style
                               ■   None - (default) The order of fields may not be respected.
                               ■   Ordered - The fields are presented with all their occurrences in the
                                   correct order.
                               ■   Ordered and Grouped - If the fields are logically structured as records,
                                   the fields are ordered by occurrence and grouped by record.


3.1.26 WS Transport Configuration Page (Business Services)
              Use this page to configure transport settings for a proxy service using the WS
              transport protocol. For more information about the WS transport, see "WS Transport"
              in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at
              http://www.oracle.com/pls/as1111/lookup?id=OSBDV1083.




                                                                                 Transport Configuration 3-41
Protocol-Specific Transport Configuration Pages



                    Table 3–26      WS Transport Configuration Options for Business Services
                    Option                        To create or edit...
                    Response Timeout              Enter the number of seconds to wait for a response.
                                                  Leaving this field blank indicates that there is no response timeout.
                                                  The business service will wait for the duration of the sequence
                                                  timeout configured in the RM policy.
                                                  If you enter a zero (0) value, there is no timeout; as such, it will
                                                  never time out.
                    Service Account               Enter a service account or click Browse to select one from the list
                                                  displayed.
                                                  The service account specifies the credentials to use when there is an
                                                  HTTP basic authentication policy on this service.
                    Queue Error Messages          Select the check box to enable sending error messages to the
                                                  configured error queue.
                    Error Queue URI               This option is available only when the Queue Error Messages check
                                                  box is selected.
                                                  Enter the URI of JMS queue for storing error messages, in the
                                                  following format:
                                                  jms://host:port/connFactoryJndiName/queueJndiName
                                                  Note: While Oracle WebLogic Server allows forward slashes in JNDI
                                                  names, such as "myqueues/myqueue", JNDI names with forward
                                                  slashes interfere with the URI format required by Oracle Service
                                                  Bus, and you cannot use those names. To work around this issue,
                                                  define a JMS foreign server and reference that foreign server in the
                                                  URI. For more information, see "Configure foreign servers" in the
                                                  Oracle Fusion Middleware Oracle WebLogic Server Administration
                                                  Console Online Help at
                                                  http://www.oracle.com/pls/as1111/lookup?id=WLACH.
                    JMS Error Queue Service This option is available only when the Queue Error Messages check
                    Account                 box is selected.
                                                  Enter a service account or click Browse to select one from the list
                                                  displayed.
                                                  The service account specifies the credentials to use for JNDI lookups
                                                  and sending error messages to the error queue.
                    Use SSL for Error Queue This option is available only when the Queue Error Messages check
                                            box is selected.
                                                  Select the check box to use SSL for connecting to the error queue.


3.1.27 WS Transport Configuration Page (Proxy Services)
                    Use this page to configure transport settings for a proxy service using the WS
                    transport protocol. For more information about the WS transport, see "WS Transport"
                    in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at
                    http://www.oracle.com/pls/as1111/lookup?id=OSBDV1083.




3-42 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Protocol-Specific Transport Configuration Pages



Table 3–27    WS Transport Configuration Options for Proxy Services
Option                  To create or edit...
Dispatch Policy         Select the instance of Oracle WebLogic Server Work Manager that
                        you want to use for the dispatch policy for this endpoint. The
                        default Work Manager is used if no other Work Manager exists.
                        For information about Work Managers, see:
                        ■   "Using Work Managers to Optimize Scheduled Work" in Oracle
                            Fusion Middleware Configuring Server Environments for Oracle
                            WebLogic Server at
                            http://www.oracle.com/pls/as1111/lookup?id=CNFG
                            D112
                        ■   "Using Work Managers with Oracle Service Bus" in the Oracle
                            Fusion Middleware Administrator's Guide for Oracle Service Bus at
                            http://www.oracle.com/pls/as1111/lookup?id=OSBA
                            G1428
Retry Count             The number of times to retry delivery of a message to the pipeline.
                        If an unhandled exception occurs in the request pipeline of a proxy
                        service, the incoming WS transport message will be redelivered to
                        the pipeline up to the number of times specified by the retry count.
                        This value is important for reliably processing WS transport
                        messages.
Retry Delay             The number of seconds the system pauses before retrying to send a
                        message to the pipeline after an error.




                                                                Transport Configuration 3-43
Protocol-Specific Transport Configuration Pages




3-44 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
4
                                           User Interface Reference
                                           4




             This chapter describes all the views, dialogs, wizards, and other user interface objects
             in the Oracle Service Bus IDE.
             This chapter includes the following sections:
             ■   Section 4.1, "Alerts"
             ■   Section 4.2, "Business Service Configuration"
             ■   Section 4.3, "Proxy Service Configuration"
             ■   Section 4.4, "Oracle Service Bus Configurations and Projects"
             ■   Section 4.5, "Custom Resources"
             ■   Section 4.6, "Export Wizard"
             ■   Section 4.7, "Import Wizard"
             ■   Section 4.8, "JNDI Providers"
             ■   Section 4.9, "Proxy Servers"
             ■   Section 4.10, "Message Flow Design Palette"
             ■   Section 4.11, "Message Flow Editor"
             ■   Section 4.12, "Modify JAR Dependencies Dialog"
             ■   Section 4.13, "SMTP Servers"
             ■   Section 4.14, "UDDI Registry Configuration Page"
             ■   Section 4.15, "Outline view - Oracle Service Bus"
             ■   Section 4.16, "Resource Management"
             ■   Section 4.17, "New Service Key Provider Resource"
             ■   Section 4.18, "New WS-Policy"
             ■   Section 4.19, "Service Accounts"
             ■   Section 4.20, "Expression Editors"
             ■   Section 4.21, "New XSL Transformation"
             ■   Section 4.22, "Split-Join User Interface Reference"


4.1 Alerts
             The following pages are provided for managing alerts:



                                                                          User Interface Reference 4-1
Alerts


                  ■   Section 4.1.1, "Alert Destination Editor"
                  ■   Section 4.1.2, "Edit E-mail Recipient Page"
                  ■   Section 4.1.3, "Edit JMS Destination Page"


4.1.1 Alert Destination Editor
                  An alert destination is a destination address for alert notifications in Oracle Service
                  Bus. Use this page to configure an alert destination resource.

                  Table 4–1      Alert Destination Editor Options
                  Option                      Description
                  Description                 Enter a description for this alert destination.
                  SNMP Trap                   If you specify SNMP Trap, alerts are sent as SNMP traps, and can
                                              be processed by any third-party enterprise monitoring systems
                                              (ESM).
                  Reporting                   If you specify Reporting, alerts are sent to the Oracle Service Bus
                                              Reporting module and can be captured using a custom reporting
                                              provider that can developed using the reporting APIs provider by
                                              Oracle Service Bus. This allows third-parties to receive and process
                                              alerts in custom Java code.
                  Alert Logging               If you select Yes, alerts sent to this alert destination are logged to
                                              the alert log.


                  Continue in the Edit Alert Destination page. Click Add to add e-mail and JMS
                  recipients to an alert destination. See:
                  ■   Section 4.1.2, "Edit E-mail Recipient Page"
                  ■   Section 4.1.3, "Edit JMS Destination Page"


4.1.2 Edit E-mail Recipient Page
                  Use this page to configure the destination target for an alert sent via e-mail (that is,
                  using the e-mail transport).

                  Table 4–2      E-mail Recipient Options
                  Option                      Description
                  Mail Recipients             Enter an e-mail recipient in the format:
                                              mailto:username@hostname
                                              You can specify multiple e-mail recipients by entering the user
                                              names and hostnames in a comma-separated list. For example,
                                              mailto:username@hostname
                                              [,username_1@hostname_1]...[,username_n@hostname_n]

                                              Only the first mail recipient needs to be prefixed with the text
                                              "mailto:". However doing so is optional; the code will add it if it
                                              is missing.
                  SMTP Server                 Select the name of the SMTP server for the outgoing e-mail. This
                                              field is not required if Mail Session is selected in the next field.
                                              These fields are mutually exclusive; it is an error to configure both.
                  Mail Session                Select an available mail session. This field is not required if an
                                              SMTP Server is selected in the previous field. These fields are
                                              mutually exclusive; it is an error to configure both.



4-2 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Business Service Configuration


              Table 4–2 (Cont.) E-mail Recipient Options
              Option                   Description
              From Name                Provide a sender’s name for the alert notification. This field is
                                       optional.
              From Address             Provide a valid e-mail address. This field is required if a value for
                                       the From Name field is specified.
              Reply To Name            Provide a name to which a reply may be addressed. This field is
                                       optional.
              Reply To Address         Provide an e-mail address to which a reply may be sent. This field
                                       is required if a value for the Reply To Name field is specified.
              Connection Timeout       Enter the number of seconds a connection must wait for a response
                                       from the server before timing out. The default value is 0.
              Request Encoding         Enter a character set encoding value. The default encoding value is
                                       iso-8859-1.


4.1.3 Edit JMS Destination Page
              Use this page to configure the destination target for an alert sent via JMS (that is, using
              the JMS transport).

              Table 4–3   JMS Destination Options
              Option                   Description
              Destination URI          Enter a JMS destination URI in the format:
                                        jms://host:port/connection_factory/jndi_destination
                                       Note: While Oracle WebLogic Server allows forward slashes in
                                       JNDI names, such as "myqueues/myqueue", JNDI names with
                                       forward slashes interfere with the URI format required by Oracle
                                       Service Bus, and you cannot use those names. To work around this
                                       issue, define a JMS foreign server and reference that foreign server
                                       in the URI. For more information, see "Configure foreign servers"
                                       in the Oracle Fusion Middleware Oracle WebLogic Server
                                       Administration Console Online Help at
                                       http://www.oracle.com/pls/as1111/lookup?id=WLACH.
              Destination Type         Select Queue or Topic.
              Message Type             Select Bytes or Text.
              Request Encoding         Enter a character set encoding value. The default encoding value is
                                       iso-8859-1.


4.2 Business Service Configuration
              You configure business services in the business service editor after you create the
              business service. You can view and modify those settings in the Business Service
              editor: The business service configuration pages are:
              ■   Section 4.2.1, "Business Service General Configuration Page"
              ■   Section 4.2.2, "Business Service Message Type Configuration Page"
              ■   Section 4.2.3, "Business Service SOAP Binding Configuration Page"
              ■   Section 4.2.4, "Business Service Transport Configuration Page"
              ■   Section 4.2.5, "Business Service Message Handling Configuration Page"
              ■   Section 4.2.6, "Business Service - Service Policy Configuration Page"


                                                                               User Interface Reference 4-3
Business Service Configuration


                    ■    Section 4.2.7, "Business Service Security Configuration Page"


4.2.1 Business Service General Configuration Page
                    Use the Business Service General Configuration page to specify general configuration
                    settings for a business service.

                    4.2.1.1 Business Service Editor Options
                    The following table describes the options in the editor:

                    Table 4–4     Business Service Editor Options
                    Option                    Description
                    Description               Enter or modify a description for this service.
                    Service Type (editor      This option shows the service type of the business service. You can
                    only)                     change only some of the properties of some of the service types:
                                              ■   WSDL Web Service - Select this option to create a business
                                                  service based on a WSDL. Then, enter the WSDL name,
                                                  qualified by its path (for example,
                                                  myProject/myFolder/myWSDL). Alternatively, click Browse
                                                  to select a WSDL resource. You can also specify a different
                                                  WSDL, but by doing so, you are effectively creating a new
                                                  service and you will have to configure it as if it were a new
                                                  service.
                                                  (port or binding) - Enter the name of a port (defined in the
                                                  WSDL) to describe an actual transport address, or enter the
                                                  name of a binding (defined in the WSDL) to map to a
                                                  transport address. If you use Browse to select a WSDL, as
                                                  described above, the Select a WSDL Definition dialog lists
                                                  any ports and bindings defined in the WSDL. When you
                                                  choose a port or a binding on that page, the (port or binding)
                                                  field is filled with the selected name.
                                              ■   Transport Typed Service - Select this option to create a service
                                                  that uses the EJB, JEJB, or Flow (Split-Join) transport.
                                              ■   Messaging Service - Select this option to create a service that
                                                  exchanges messages of different content-types. These
                                                  exchanges can be either request/response or one-way. They
                                                  can also have a response with no request when used with the
                                                  HTTP ‘GET’ option for the HTTP transport. Unlike Web
                                                  Services, the content-type of the request and response need
                                                  not be the same.
                                              ■   Any SOAP Service - Select this option to create a SOAP
                                                  service that does not have an explicitly defined, concrete
                                                  interface. You can change the SOAP version (SOAP 1.1 or
                                                  SOAP 1.2)
                                              ■   Any XML Service - Select this option to create an XML service
                                                  that does not have an explicitly defined, concrete interface.
                                                  HTTP GET is only supported for messaging services and this
                                                  service type.


4.2.2 Business Service Message Type Configuration Page
                    Use the Business Service Message Type Configuration page to configure message types
                    for a business service whose type is Messaging Service.
                    The binding definition for messaging services consists of configuring the content-types
                    of the messages that are exchanged. The content-type for the response does not need to
                    be the same as for the request; therefore, the response is configured separately (for


4-4 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Business Service Configuration


example, the service could accept an MFL message and return an XML
acknowledgment receipt).


         Note:   E-mail, File, FTP, or SFTP transport business services whose
         type is Messaging Service support one-way messaging only; the
         Response Message Type should be None. If you select an option
         other than None, the file, ftp, or sftp protocol will not be available on
         the Transport Configuration page.


Table 4–5   Message Type Business Service Options
Option                    Description
Request Message Type      Select a message type for the request message:
                          ■   None - Select this option if there is no request message (HTTP
                              GET example)
                          ■   Binary - Select this option if the content-type of the message is
                              unknown or not important.
                          ■   Text - Select this option if the message can be restricted to text.
                          ■   MFL - Select this option if the message is a binary document
                              conforming to an MFL definition. Enter the MFL file name
                              (qualified by its path), or click Browse to select a file.
                              You can configure only one MFL file.
                              Note: To support multiple MFL files, define the content as
                              binary or text and use the MFL action in the message flow to
                              convert to XML.
                          ■   XML - Select this option if the message is an XML document.
                              Enter the XML file name (qualified by its path), or click Browse
                              to select a file.
                              Optionally provide some type information by declaring (in the
                              element or type field) the XML schema type of the XML
                              document exchanged.
                          ■   Java - Select this option if a Java Object is being sent in the
                              request. The JMS transport is used for Java Object messages.
                              For more information, see "Sending and Receiving Java Objects
                              in Messages" in the Oracle Fusion Middleware Developer's Guide
                              for Oracle Service Bus at
                              http://www.oracle.com/pls/as1111/lookup?id=OSB
                              DV1874.




                                                                  User Interface Reference 4-5
Business Service Configuration


                    Table 4–5 (Cont.) Message Type Business Service Options
                    Option                  Description
                    Response Message Type   Select a message type for the response message:
                                            ■   None - Select this option if there is no response message.
                                            ■   Binary - Select this option if the content-type of the message is
                                                unknown or not important.
                                            ■   Text - Select this option if the message can be restricted to text.
                                            ■   MFL - Select this option if the message is a binary document
                                                conforming to an MFL definition. Enter the MFL file name
                                                (qualified by its path), or click Browse to select a file.
                                                You can configure only one MFL file.
                                                Note: To support multiple MFL files, define the content as
                                                binary or text and use the MFL action in the message flow to
                                                convert to XML.
                                            ■   XML - Select this option if the message is an XML document.
                                                Enter the XML file name (qualified by its path), or click Browse
                                                to select a file.
                                                Optionally provide some type information by declaring (in the
                                                element or type field) the XML schema type of the XML
                                                document exchanged.
                                            ■   Java - Select this option if a Java Object is being received in the
                                                response. The JMS transport is used for Java Object messages.
                                                For more information, see "Sending and Receiving Java Objects
                                                in Messages" in the Oracle Fusion Middleware Developer's Guide
                                                for Oracle Service Bus at
                                                http://www.oracle.com/pls/as1111/lookup?id=OSB
                                                DV1874.


4.2.3 Business Service SOAP Binding Configuration Page
                    Use Business Service SOAP Binding Configuration page to configure the SOAP
                    Binding for a business service based on a WSDL.
                    Select or deselect Enforce WS-I Compliance to specify whether or not the service is to
                    conform to the Basic Profile defined by the Web Services Interoperability Organization.
                    This option is available for or SOAP 1.1 services only
                    When a service is marked WS-I compliant, checks are performed against the messages
                    sent to and from that service.


4.2.4 Business Service Transport Configuration Page
                    Use the Business Service Transport Configuration page to select, review, or change the
                    service’s transport protocol and to set, review, or change general transport
                    configuration settings.
                    Outbound transport-level security applies to the connections between Oracle Service
                    Bus proxy services and business services. For more information about transport-level
                    security, see "Configuring Transport-Level Security" in the Oracle Fusion Middleware
                    Developer's Guide for Oracle Service Bus at
                    http://www.oracle.com/pls/as1111/lookup?id=OSBDV1557.




4-6 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Business Service Configuration



Table 4–6   Business Service Transport Configuration Options
Option        Description
Protocol      Select a transport protocol from the list. The protocols available differ, depending on the service
              type:
              ■   WSDL Web Service: soa-direct, bpel-10g, dsp, http, jca, jms, sb, soa-direct, ws
              ■   Transport-Typed Service: ejb, flow, jejb
              ■   Messaging Service: email, file, ftp, http, jms, mq (if available), sftp, tuxedo
              ■   Any SOAP Service: dsp, http, jms, sb
              ■   Any XML Service: dsp, email, file, ftp, http, jms, mq (if available), sb, sftp, tuxedo
Load          Select one of these load-balancing algorithms:
Balancing
              ■   Round-robin - This algorithm dynamically orders the URLs that you enter in the Endpoint
Algorithm
                  URI field for this business service. If the first one fails, it tries the next one, and so on until the
                  retry count is exhausted.
                  For every new message, there is a new order of URLs.
              ■   Random - This algorithm randomly orders the list of URLs that you enter in the Endpoint
                  URI field for this business service. If the first one fails, it tries the next one, and so on until the
                  retry count is exhausted.
              ■   Random-weighted - This algorithm randomly orders the list of URLs that you enter in the
                  Endpoint URI field for this business service, but some are retried more than others based on
                  the value you enter in the Weight field.
              ■   None - This algorithm orders the list of URLs that you enter in the Endpoint URI field for this
                  business service from top to bottom.




                                                                                         User Interface Reference 4-7
Business Service Configuration


Table 4–6 (Cont.) Business Service Transport Configuration Options
Option          Description
Endpoint URI Enter an endpoint URL in the format based on the transport protocol you selected in the Protocol
             field. Following are descriptions of the URI formats for each transport. Optional URI elements are
             shown in brackets []. For more information on transport URIs, see the respective transport
             chapters in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus.
                ■    bpel-10g – protocol://host[:port]
                     [/protocol-path]/domain/process[/version[/partnerlink/role]]
                ■    dsp - t3://dsp-ip-address:port/dsp-app-name
                ■    ejb - ejb:jndi_provider_name:ejb_jndi_name
                     In the URI, jndi_provider_name is the name of the Oracle Service Bus JNDI provider
                     resource, and ejb_jndi_name is the JNDI name in the JNDI server for the EJB.
                     If the JNDI provider is located on the same server, the JNDI provider need not be specified.
                     The URI then would be ejb::ejb_jndi_name
                     Note: If your EJBs are running on IBM WebSphere, ejb_jndi_name must be in the following
                     format:
                     cell/nodes/node_name/servers/server_name/ejb_jndi_name
                     or
                     cell/clusters/cluster_name/ejb_jndi_name
                     as described in the IBM WebSphere documentation at
                     http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic
                     =/com.ibm.websphere.nd.iseries.doc/info/iseriesnd/ae/rnam_example_
                     prop3.html
                ■    email - You can enter multiple endpoint URIs in any combination of the following formats:
                     mailto:name@domain_name.com
                     mailto:name@domain_name.com?smtp=smtp_server_resource
                     mailto:name@domain_name.com?mailsession=jndi_mail_session
                ■    file - file:///root-dir/dir1
                ■    ftp - ftp://hostname:port/directory
                ■    http - http://host:port/someService
                     The HTTP transport supports both HTTP and HTTPS endpoints.
                ■    jca - jca://<resource_adapter_jndi>
                ■    jejb - jndi_provider_name:ejb_jndi_name
                     In the URI, jndi_provider_name is the name of the Oracle Service Bus JNDI provider
                     resource, and ejb_jndi_name is the JNDI name in the JNDI server for the EJB.
                     EJB 2.1 example: jejb:myProvider:osb.jejb.myJejbBiz21
                     EJB 3.0 example: jejb:myProvider:myBiz31#osb.jejb.myJejbBiz
                     Note: If your EJBs are running on IBM WebSphere, ejb_jndi_name must be in the following
                     format:
                     cell/nodes/node_name/servers/server_name/ejb_jndi_name
                     or
                     cell/clusters/cluster_name/ejb_jndi_name
                     as described in the IBM WebSphere documentation at
                     http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic
                     =/com.ibm.websphere.nd.iseries.doc/info/iseriesnd/ae/rnam_example_
                     prop3.html




4-8 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Business Service Configuration


Table 4–6 (Cont.) Business Service Transport Configuration Options
Option         Description
Endpoint URI   ■   jms - jms://host:port[,host:port]*/connection_factory/jndi_destination
(continued)
                   To target a JMS destination to multiple servers, use the following URI format:
                   jms://host1:port,host2:port/connection_factory/jndi_destination
                   You can also omit host and port from the URI to have the lookup performed on the local
                   machine. For example:
                   jms:///connection_factory/jndi_destination
                   Note: While Oracle WebLogic Server allows forward slashes in JNDI names, such as
                   "myqueues/myqueue", JNDI names with forward slashes interfere with the URI format
                   required by Oracle Service Bus, and you cannot use those names. To work around this issue,
                   define a JMS foreign server and reference that foreign server in the URI. For more information,
                   see "Configure foreign servers" in the Oracle Fusion Middleware Oracle WebLogic Server
                   Administration Console Online Help at
                   http://www.oracle.com/pls/as1111/lookup?id=WLACH.
                   In a cluster: The host names in the JMS URI must exactly match the host names of the cluster
                   servers as they are configured in Oracle WebLogic Server.
               ■   mq - mq://local-queue-name?conn=mq-connection-resource-ref
                   local-queue-name is the name of the MQ queue from which the business service reads
                   messages.
                   mq-connection-resource-ref is the path (project/folder) and name of the MQ
                   connection resource; for example, default/my_MQconnection.
                   Note: The Endpoint URI cannot contain spaces, so do not create MQ Connection resources or
                   projects/folders with spaces in the names.
                   To make the MQ transport available in Oracle Service Bus, see "MQ Transport" in the Oracle
                   Fusion Middleware Developer's Guide for Oracle Service Bus at
                   http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117.
               ■   sb - sb://<jndi_provider_name/>service_name
                   jndi_provider_name (optional) is the name of the Oracle Service Bus JNDI provider
                   resource. When omitted, the default context is used.
                   service_name is a target service and corresponds to the remote proxy service URI.
               ■   sftp - sftp://hostname:port/directory
               ■   soa-direct –
                   [protocol://authority]/default/compositeName[!versionNumber[*label]]/
                   serviceName
                   The protocol and authority are optional when the SOA services are co-located on the same
                   server as Oracle Service Bus.
               ■   tuxedo - tuxedo:resourcename/remotename
                   tuxedo-queue:sendQSpace/sendQName[/[rcvQspace:]rvcQname][/failureQnam
                   e]
                   In the URI, resourcename corresponds to a WTC Import name and remotename
                   corresponds to the service name exported by the remote Tuxedo domain. The URI
                   resourcename is required, and the remotename is optional.
                   If more than one URI is specified, you must have unique resource names for the endpoints. If
                   no remote name is specified, its value is the value of the resource name. If no remote name is
                   entered or if remote and resource name are the same, only one URI is allowed. In this case
                   resource name and remote name have the same value. This allows already defined WTC
                   Imports to make use of WTC load-balancing and failover.
               ■   ws - http://host:port/someService
                   Note: Oracle Service Bus no longer supports duplicate endpoint URIs within the same
                   business service.
                   Click Add to add one or more additional URIs. At run time, the URLs are selected based on
                   the load balancing algorithm you selected in the Load Balancing Algorithm field.
                   If you selected Random-weighted in the Load Balancing Algorithm field, you can also enter
                   a weight in the Endpoint URI field. The default is 1.
                   If you have multiple endpoint defined, and you selected None in User Interface Reference 4-9
                                                                                   the Load Balancing
                   Algorithm field, the order of endpoints is significant. You can reorder the endpoints using the
                   Up and Down buttons.
Business Service Configuration


Table 4–6 (Cont.) Business Service Transport Configuration Options
Option          Description
Retry count     In case of delivery failure when sending outbound requests, specify the number of times to retry
                individual URL endpoints; in other words, the number of failover attempts.
                For example, a business service has one configured URI (U1) and the number of retries is set to 3. If
                U1 fails on the first attempt, the system retries the U1 endpoint 3 more times.
                If a business service has 2 configured URIs (U1 and U2) and a retry count of 3, if the first attempt
                (for example, to U1) fails, the system tries (fails over to) the next URI (U2). If that also fails, the
                system makes two more attempts, once to U1 and once to U2.
Retry           Specify the number of seconds the system pauses before iterating over all the endpoint URIs in the
Iteration       list again.
Interval
                For example, a business service has two configured URIs (U1 and U2) and a retry count of 2 with a
                retry iteration interval of 5 seconds. If the first attempt (to U1) fails, the system tries U2 right away.
                But if U2 also fails, the system waits for 5 seconds and retries U1 once more.
Retry           Select Yes or No.
Application
                In case of delivery failure when sending outbound requests, specify whether or not to retry
Errors
                endpoint URIs based on application errors (for example, a SOAP fault).


4.2.5 Business Service Message Handling Configuration Page
                    Use the Business Service Message Handling Configuration page to specify how Oracle
                    Service Bus is to encode outbound messages sent by business services and whether
                    Oracle Service Bus should stream attachments in outbound response messages instead
                    of buffering the attachment contents in memory.
                    Using this page, you can enable the business service to encode outbound messages in
                    MTOM/XOP format. SOAP Message Transmission Optimization Mechanism (MTOM)
                    is a method of sending binary data to and from Web services. MTOM uses XML-binary
                    Optimized Packaging (XOP) to transfer the binary data.
                    Using this page, you can also enable the business service to store attachments in
                    outbound response messages to a disk file and then process the data in a streaming
                    fashion without buffering the attachment contents in memory. This enables the
                    business service to process large attachments robustly and efficiently.




4-10 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Business Service Configuration



Table 4–7     Business Service Message Handling Options
Option                    Description
XOP/MTOM Support          Oracle Service Bus supports XOP/MTOM using the following
                          transports:
                          ■   HTTP/S
                          ■   Local
                          ■   SB
                          Select the Enabled check box to enable the business service to
                          encode outbound messages in MTOM/XOP format. Note that this
                          option is disabled for imported business services that are based on
                          previous release configurations.
                          If XOP/MTOM Support is enabled, select how to handle binary
                          data in the $header and $body message context variables from
                          among the following options:
                          ■   Include Binary Data by Reference: (Default) In an outbound
                              response message, replace xop:Include elements with
                              ctx:binary-content elements when setting up the $body
                              message context variable.
                          ■   Include Binary Data by Value: In an outbound response
                              message, replace xop:Include elements with base64-encoded
                              text versions of corresponding binary data when setting up
                              the $body message context variable.
                          Note that if XOP/MTOM Support is enabled for a business service,
                          it is not required that every outbound message be in the MTOM
                          format. Instead, this setting specifies that the business service is
                          capable of handling an MTOM payload.
                          Since Oracle Service Bus does not support a combination of MTOM
                          and SwA, the system issues a runtime error when Oracle Service
                          Bus attempts to dispatch an outbound request to a business service
                          and the business service is both MTOM/XOP-enabled and the
                          $attachments message context variable is not null.
Attachments               Oracle Service Bus supports streaming MIME attachments using
                          the HTTP/S transport.
                          Select the Page Attachments to Disk check box to enable the
                          business service to stream attachments in outbound response
                          messages.
                          Note that if you enable XOP/MTOM Support, the Attachments
                          option is only available if you choose the Include Binary Data by
                          Reference option under XOP/MTOM Support. Note also that
                          payloads that contain attachments must conform to RFC 822.
                          Specifically, lines containing Internet headers need to be
                          terminated with CRLF (carriage return line feed).




                                                                User Interface Reference 4-11
Business Service Configuration


                    Table 4–7 (Cont.) Business Service Message Handling Options
                    Option                 Description
                    Result Caching         If you invoke business services whose results seldom change,
                                           result caching improves business service performance by returning
                                           cached results to the client instead of invoking an external service
                                           directly.
                                           To use result caching for business services, you must first enable it
                                           globally, as described in "Enabling Result Caching Globally" in the
                                           Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus
                                           at
                                           http://www.oracle.com/pls/as1111/lookup?id=OSBAG1
                                           294.
                                           Configure result caching in the Advanced Settings section using
                                           the following guidelines:
                                           ■   Select the Supported option. When you do, the remaining
                                               fields are enabled.
                                           ■   Cache Token Expression – Oracle Service Bus uses a cache
                                               key to identify cached results for retrieval or population, and
                                               the cache token portion of the cache key provides the unique
                                               identifier. You can use an expression—the Cache Token
                                               Expression—to generate the cache token part of the cache key
                                               to uniquely identify a cached result for the business service.
                                               Click Expression to build the expression.
                                               To generate the cache token from a value in the request, use an
                                               expression that gets the value from the message $body,
                                               $header, $operation, or $transportMetaData
                                               ($outbound/ctx:transport/ctx:request or
                                               $outbound/ctx:transport/ctx:response). For example, you can
                                               populate the cache-token from a customer ID in the $body.
                                               In the Service Result Caching Expression builder, you can also
                                               select the namespace for the expression in the Namespace
                                               Definitions tab.
                                               The Cache Token Expression must resolve to a String or the
                                               value of simple content, such as an attribute or an element
                                               with no child elements. If the expression evaluates to null or
                                               causes an error, results are not cached.
                                               Note: You can also generate the cache token from the request
                                               (in the proxy service message flow that invokes the business
                                               service), without setting a Cache Token Expression in the
                                               business service configuration. To do this, include a value in
                                               $outbound/ctx:transport/ctx:request/ctx:cache-token in the
                                               proxy service pipeline. Any value in that cache-token
                                               overrides the Cache Token Expression in the business service
                                               configuration.




4-12 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Business Service Configuration


              Table 4–7 (Cont.) Business Service Message Handling Options
              Option                  Description
              Result Caching          ■   Expiration Time – Expiration Time, or time-to-live (TTL),
              continued                   determines when an entry in the business service’s result
                                          cache is flushed. A duration of zero (0) means no expiration. A
                                          negative duration means do not cache. Select one of the
                                          following:
                                          Use Default – The default is the expiry-delay value in
                                          DOMAIN_
                                          HOME/config/osb/coherence/osb-coherence-config.xml. The
                                          default is 5 minutes.
                                          Duration – Set a specific length of time.
                                          XQuery Expression – You can enter an XQuery expression
                                          that gets an Expiration Time value from the request or
                                          response. Select Request or Response.
                                          To generate the expiration time from a value in the request or
                                          response, use an expression that gets the value from the $body,
                                          $header, $operation, or $transportMetaData
                                          ($outbound/ctx:transport/ctx:request or
                                          $outbound/ctx:transport/ctx:response). For example, use a
                                          value you have set in the Cache-Control HTTP header.
                                          In the Caching Expression builder, you can also select the
                                          namespace for the expression using the Namespace
                                          Definitions tab.
                                          Expiration Time must resolve to an Integer (representing
                                          seconds), an XQuery dayTimeDuration (XSD type), or the
                                          integer value of simple content representing seconds, such as
                                          an attribute or an element with no child elements. If the
                                          expression evaluates to null or causes an error, results are not
                                          cached.
                                          Note: You can also generate the expiration from the request,
                                          without setting an Expiration Time in the business service
                                          configuration. To do this, include a value in
                                          $outbound/ctx:transport/ctx:request/ctx:cache-ttl in the
                                          proxy service pipeline. Any value in the cache-ttl element
                                          overrides the Expiration Time in the business service
                                          configuration.
                                      For a more detailed description of result caching, see “Improving
                                      Performance by Caching Business Service Results” in the Oracle
                                      Fusion Middleware Administrator's Guide for Oracle Service Bus at
                                      http://www.oracle.com/pls/as1111/lookup?id=OSBAG1
                                      70.


4.2.6 Business Service - Service Policy Configuration Page
              Use the Business Service - Service Policy Configuration page to configure service
              policy settings for a business service.
              Note: The policy binding models are mutually exclusive. You must use only one type
              of policy in a service. If you bind policies directly to the service, all WSDL-based
              policies are ignored.




                                                                            User Interface Reference 4-13
Business Service Configuration



                    Table 4–8    Business Service Service Policy Configuration Options
                    Option                    Description
                    From OWSM Policy          Policies are defined in the central Oracle Web Services Manager
                    Store                     Policy Store managed by Oracle Enterprise Manager. These policies
                                              support WS-Security 1.0/1.1, SAML 1.1/2.0, KerberosToken Profile,
                                              and other industry standards.
                                              To add Oracle Web Services Manager policies to services in the IDE,
                                              you must be connected to a running server that has Oracle Web
                                              Services Manager enabled. For information, see "Securing Oracle
                                              Service Bus with Oracle Web Services Manager" in the Oracle Fusion
                                              Middleware Developer's Guide for Oracle Service Bus at
                                              http://www.oracle.com/pls/as1111/lookup?id=OSBDV16
                                              81.
                                              Note: When working with multiple servers in Eclipse, Eclipse
                                              chooses the first valid Oracle Service Bus server in the list of servers
                                              for retrieval of Oracle Web Services Manager policies.
                                              Use category filtering to help you find the policy you want. For
                                              business services, only client-side policies are displayed.
                                              If a WSDL used to create a business service contains embedded
                                              standard WS-Security policies, Oracle Service Bus throws an error
                                              and displays a conflict. To resolve this conflict, replace the
                                              embedded WSDL policies with compatible Oracle Web Services
                                              Manager policies by selecting From OWSM Policy Store and
                                              clicking Add Compatible Policies. Oracle Service Bus makes a
                                              best-effort attempt at finding the closest matching policy from the
                                              Oracle Web Services Manager policy store based on the standard
                                              policy embedded in the WSDL. The algorithm may return zero,
                                              one, or multiple matching policies.
                                              If after clicking Add Compatible Policies Oracle Service Bus finds
                                              no compatible policies, click Add and select the appropriate Oracle
                                              Web Services Manager policies. If Oracle Service Bus returns more
                                              than one compatible policy, delete the policies you do not want to
                                              use.
                                              After adding policies, you can provide overrides on the Security
                                              page.
                    From WSDL                 Select this option if the service policy is associated with the WSDL
                                              upon which the service is based. These policies support
                                              WS-Security 1.0, SAML 1.1, and other industry standards.
                                              Note: If you receive an error in the business service configuration
                                              about WS-Security Policies not supported by Oracle Service Bus,
                                              use the From OWSM Policy Store option to replace the embedded
                                              WSDL policies with compatible OWSM policies.
                    From Pre-defined Policy   Select this option to add service-level policies, operation-level
                    or WS-Policy Resource     policies (in which case the policy applies to both the request and
                                              response messages), request policies, and response policies directly.
                                              Policies are either pre-defined in Oracle WebLogic Server or
                                              user-defined in Oracle Service Bus with a WS-Policy resource.
                                              These policies support WS-Security 1.0, SAML 1.1, and other
                                              industry standards.


4.2.7 Business Service Security Configuration Page
                    Use the Security configuration page to provide overrides to security policies used in
                    the business service.




4-14 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Proxy Service Configuration



              Table 4–9     Business Service Security Configuration Options
              Option                       Description
              Service Account              Click Browse and select a service account from the list
                                           displayed. If no service account is specified, an anonymous
                                           subject is used.
                                           Note: This option is not available for services that use Oracle
                                           Web Services Manager policies, because user credentials are
                                           provided by override keys.
                                           For more information, see Section 4.19, "Service Accounts".
              Policy Overrides             For OWSM policies, provide any desired overrides that are
                                           allowed.
                                           For more information, see Table 4–8 and "Securing Oracle
                                           Service Bus with Oracle Web Services Manager" in the Oracle
                                           Fusion Middleware Developer's Guide for Oracle Service Bus at
                                           http://www.oracle.com/pls/as1111/lookup?id=OSBD
                                           V1681.


4.3 Proxy Service Configuration
              You configure new proxy services in the proxy service editor after you create a new
              proxy service. You can view and modify those settings in the Proxy Service editor: The
              proxy service configuration pages are:
              ■   Section 4.3.1, "Proxy Service General Configuration Page"
              ■   Section 4.3.2, "Proxy Service Message Type Configuration Page"
              ■   Section 4.3.3, "Proxy Service Operation Selection Configuration Page"
              ■   Section 4.3.4, "Proxy Service Message Handling Configuration Page"
              ■   Section 4.3.5, "Proxy Service SOAP Binding Configuration Page"
              ■   Section 4.3.6, "Proxy Service Transport Configuration Page"
              ■   Section 4.3.7, "Proxy Service - Service Policy Configuration Page"
              ■   Section 4.3.8, "Proxy Service Security Configuration Page"


4.3.1 Proxy Service General Configuration Page
              Use the Proxy Service General Configuration page to set or modify general
              configuration properties for a proxy service.

              4.3.1.1 Proxy Service Editor Options
              The following table describes the options in the editor:

              Table 4–10     Proxy Service Editor Options
              Option                    Description
              Description               Enter a description for this proxy service.




                                                                               User Interface Reference 4-15
Proxy Service Configuration


                    Table 4–10 (Cont.) Proxy Service Editor Options
                    Option                  Description
                    Service Type (editor    This option shows the service type of the proxy service. You can
                    only)                   change only some of the properties of some of the service types:
                                            ■   WSDL Web Service - Select this option to create a proxy
                                                service based on a WSDL. Then enter the WSDL name,
                                                qualified by its path (for example,
                                                myProject/myFolder/myWSDL). Alternatively, click Browse
                                                to select a WSDL resource. You can enter (or click Browse to
                                                select) a different port or binding from the same WSDL. You
                                                can also specify a different WSDL, but by doing so, you are
                                                effectively creating a new service and you will have to
                                                configure it as if it were a new service.
                                                (port or binding) - Enter the name of a port (defined in the
                                                WSDL) to describe an actual transport address, or enter the
                                                name of a binding (defined in the WSDL) to map to a
                                                transport address. If you use Browse to select a WSDL, the
                                                Select a WSDL Definition dialog lists any defined ports and
                                                bindings.
                                                Note: If you are going to use the SOAP Body Type for
                                                operations, ensure that the WSDL does not have two
                                                operations with the same input message. The SOAP Body
                                                Type operation cannot be uniquely identified by inspecting
                                                the input message.
                                            ■   Transport Typed Service - Select this option to create a JEJB
                                                proxy service.
                                            ■   Messaging Service - Select this option to create a service that
                                                can receive messages of one data type and respond with
                                                messages of a different data type. These exchanges can be
                                                either request/response or one-way.
                                                (HTTP GET is supported only in the Any XML Service and
                                                Messaging Service service types.)
                                            ■   Any SOAP Service - Select this option to create a SOAP
                                                service that does not have an explicitly defined, concrete
                                                interface. You can change the SOAP version (SOAP 1.1 or
                                                SOAP 1.2)
                                            ■   Any XML Service - Select this option to create an XML service
                                                that does not have an explicitly defined, concrete interface.
                                                (HTTP GET is supported only in the Any XML Service and
                                                Messaging Service service types.)


4.3.2 Proxy Service Message Type Configuration Page
                    Use Proxy Service Message Type Configuration page to configure message types for a
                    proxy service whose type is Messaging Service.
                    The binding definition for messaging services consists of configuring the content-types
                    of the messages that are exchanged. The content-type for the response does not have to
                    be the same as for the request; therefore, the response is configured separately (for
                    example, the service could accept an MFL message and return an XML
                    acknowledgment receipt).




4-16 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Proxy Service Configuration



         Note:   E-mail, File, FTP, or SFTP transport proxy services whose type
         is Messaging Service support one-way messaging only; the Response
         Message Type should be None. If you select an option other than
         None, the E-mail, File, FTP, or SFTP protocols will not be available on
         the Transport Configuration page.


Table 4–11   Proxy Service Message Type Options
Option                   Description
Request Message Type     Select a message type for the request message:
                         ■   None - Select this option if there is no request message.
                         ■   Binary - Select this option if the content-type of the message is
                             unknown or not important.
                         ■   Text - Select this option if the message can be restricted to text.
                         ■   MFL - Select this option if the message is a binary document
                             conforming to an MFL definition. Enter the MFL file name
                             (qualified by its path), or click Browse to select a file.
                             You can configure only one MFL file.
                             Note: To support multiple MFL files, define the content as
                             binary or text and use the MFL action in the message flow to
                             convert to XML.
                         ■   XML - Select this option if the message is an XML document.
                             Enter the XML file name (qualified by its path), or click
                             Browse to select a file.
                             Optionally provide some type information by declaring (in the
                             element or type field) the XML schema type of the XML
                             document exchanged.
                         ■   Java - Select this option if a Java Object is being sent in the
                             request. The JMS transport is used for Java Object messages.
                             For more information, see "Sending and Receiving Java
                             Objects in Messages" in the Oracle Fusion Middleware
                             Developer's Guide for Oracle Service Bus at
                             http://www.oracle.com/pls/as1111/lookup?id=OSB
                             DV1874.




                                                                User Interface Reference 4-17
Proxy Service Configuration


                    Table 4–11 (Cont.) Proxy Service Message Type Options
                    Option                   Description
                    Response Message Type    Select a message type for the response message:
                                             ■   None - Select this option if there is no response message.
                                                 Note: If you are using a Reply action in the pipeline to
                                                 propagate success or failure messages from a service to the
                                                 calling client, select an option other than None. The None
                                                 option blocks the reply.
                                             ■   Binary - Select this option if the content-type of the message is
                                                 unknown or not important.
                                             ■   Text - Select this option if the message can be restricted to text.
                                             ■   MFL - Select this option if the message is a binary document
                                                 conforming to an MFL definition. Enter the MFL file name
                                                 (qualified by its path), or click Browse to select a file.
                                                 You can configure only one MFL file.
                                                 Note: To support multiple MFL files, define the content as
                                                 binary or text and use the MFL action in the message flow to
                                                 convert to XML.
                                             ■   XML - Select this option if the message is an XML document.
                                                 Enter the XML file name (qualified by its path), or click
                                                 Browse to select a file.
                                                 Optionally provide some type information by declaring (in the
                                                 element or type field) the XML schema type of the XML
                                                 document exchanged.
                                             ■   Java - Select this option if a Java Object is being received in the
                                                 response. The JMS transport is used for Java Object messages.
                                                 For more information, see "Sending and Receiving Java
                                                 Objects in Messages" in the Oracle Fusion Middleware
                                                 Developer's Guide for Oracle Service Bus at
                                                 http://www.oracle.com/pls/as1111/lookup?id=OSB
                                                 DV1874.


4.3.3 Proxy Service Operation Selection Configuration Page
                    Use Proxy Service Operation Selection Configuration page to enforce WS-I compliance
                    (for SOAP 1.1 services only) and select the selection algorithm to use to determine the
                    operation called by this proxy service. This option is only available for SOAP or XML
                    services defined from a WSDL.
                    The WSDL specification defines a default algorithm to compute which operation is
                    called based on the type of the SOAP message received. However, there are cases (for
                    example, performance issues, signature/encryption issues, or the default algorithm is
                    not applicable) when you may need to select the operation based on other means.
                    Oracle Service Bus provides additional algorithms. Each of them follows the same
                    pattern and are based on the evaluation of an expression to get a value that is then
                    used to lookup the corresponding operation in a static table.
                    Oracle Service Bus is generally very forgiving if an inbound message is either missing
                    data such that the operation cannot be determined, or has data that does not
                    correspond to a valid operation. Both of these conditions result in $operation being
                    empty. Rather than reject all such messages, Oracle Service Bus does not initialize the
                    operation variable in the context but otherwise continues to process the message.
                    However, security requirements are enforced if the proxy service is WSDL-based and
                    at least one of the following conditions is true:



4-18 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Proxy Service Configuration


■   The WSDL has a WS-Security policy and the proxy is an active intermediary.
■   The proxy has message-level custom authentication (either custom token or
    username/password).
If these conditions are met, then there is a runtime check to make sure the operation
selection algorithm returns a valid operation name. If the operation selection returns
null or an operation that is not in the WSDL, then the message is rejected and an error
is raised.

Table 4–12     Proxy Service Operation Selection Options
Option                    Description
Enforce WS-I              Select or deselect this check box to specify whether or not the
Compliance                service is to conform to the Basic Profile defined by the Web
                          Services Interoperability Organization. This option is available for
                          or SOAP 1.1 services only
                          When a service is marked WS-I compliant, checks are performed
                          against the messages sent to and from that service.
                          For proxies, checks are performed against request messages
                          received by the proxy. For invoked services (i.e. services invoked by
                          a proxy via service callout action or route node), checks are
                          performed against the response messages received from those
                          services. Note that it is the WS-I compliance property of the
                          invoked service and not the proxy that determines whether or not
                          checks are performed against messages received from the invoked
                          service. If you specify WS-I compliance testing for an invoked
                          service, the message flow generates a fault for response errors.




                                                                User Interface Reference 4-19
Proxy Service Configuration


                    Table 4–12 (Cont.) Proxy Service Operation Selection Options
                    Option                 Description
                    Selection Algorithm    Select one of the following and perform any required additional
                                           steps:
                                           ■   Transport Header - Select this algorithm to define the transport
                                               header that contains the lookup value. Then:
                                           ■   In the Header Name field, enter the transport header that
                                               extracts the value used as a key to select the operation being
                                               invoked.
                                           ■   Under the Operation Mapping field, specify the value for each
                                               operation in the Value field. The value is used as the key of the
                                               operation.
                                           ■   SOAPAction Header - Select this algorithm to specify that
                                               operation mapping be done automatically from the WSDL
                                               associated with this proxy service.
                                           ■   WS-Addressing - Select this algorithm to specify that the
                                               lookup value is contained by the WS-Addressing Action tag
                                               located in the SOAP headers of the SOAP message. Then,
                                               under the Operation Mapping field, specify the value for each
                                               operation in the Value field. The value is used as the key of the
                                               operation.
                                           ■   SOAP Header - Select this algorithm to define an XPath
                                               expression to be evaluated against the SOAP headers. This
                                               allows you to get the lookup value. Then:
                                           ■   In the XPath Expression field, specify the XPath expression
                                               that extracts the value used as a key to select the operation
                                               being invoked.
                                           ■   In the Operation Mapping field, specify the value for each
                                               operation in the Value field. The value is used as the key of the
                                               operation.
                                           ■   SOAP Body Type - This is the default algorithm defined by the
                                               WSDL specification to compute which operation is called
                                               based on the type of the SOAP message received.
                                               If the proxy service is configured for a Web Service security
                                               pass-through scenario with an encrypted body, you cannot
                                               select this algorithm. A similar caveat applies to pass-through
                                               encrypted SOAP headers.
                                               If you have a WSDL that has two operations with the same
                                               input message, do not select this algorithm for operations,
                                               because the operation cannot be uniquely identified by
                                               inspecting the input message.
                                           ■   Payload Type - Available only for XML services based on a
                                               WSDL port or WSDL binding.
                    Header Name            This option is available only when the Selection Algorithm option
                                           is set to Transport Header.
                                           Enter the transport header that extracts the value used as a key to
                                           select the operation being invoked.
                    XPath Expression       This option is available only when the Selection Algorithm option
                                           is set to SOAPHeader.
                                           Specify the XPath expression that extracts the value used as a key to
                                           select the operation being invoked.
                    Operation Mapping      This option is available only when the Selection Algorithm option
                                           is set to Transport Header, WS-Addressing, or SOAP Body Type.
                                           Specify the value for each operation in the Value field. The value is
                                           used as the key of the operation.


4-20 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Proxy Service Configuration



4.3.4 Proxy Service Message Handling Configuration Page
             Use the Proxy Service Message Handling Configuration page to specify different
             aspects of message handling, as described in Table 4–13.

             Table 4–13   Proxy Service Message Handling Options
             Option                 Description
             Transaction Required   Select this option to ensure Oracle Service Bus executes the proxy
                                    service message flow in the context of a transaction. If a global
                                    transaction already exists, the transport provider propagates it in the
                                    request (even if you do not select this option). If no global transaction
                                    exists, the message flow run time starts a transaction. If the message
                                    flow run time starts a transaction, the transaction context begins
                                    before the service configuration is validated or run (for example,
                                    security checking or WS-I validation), and before message flow
                                    execution, ensuring that all processing and execution occurs in the
                                    transaction context.
                                    If the message flow run time starts a transaction, quality of service is
                                    exactly-once. However, if Service Callouts or Publish actions have the
                                    outbound quality of service parameter set to best-effort (the default),
                                    Oracle Service Bus executes those actions outside of the transaction
                                    context. To have Oracle Service Bus execute those actions in the same
                                    request transaction context, set quality of service on those actions to
                                    exactly-once.
                                    The service maintains its messaging pattern (synchronous,
                                    asynchronous, one-way) regardless of the setting on this option.
                                    For transaction timeouts, the global transaction timeout value
                                    configured in the Oracle WebLogic Server Console applies.
                                    Exceptions in Transactions
                                    Oracle Service Bus invokes the system error handler for failed
                                    transactions. You cannot catch failed transaction exceptions in a
                                    user-configured error handler. For synchronous patterns, a
                                    transaction exception is returned through the response. For
                                    asynchronous patterns, where the transaction is designed to be
                                    committed in the request, the exception is sent back on the request
                                    thread.
                                    Note that in asynchronous patterns, an error in the response that
                                    occurs after transaction committal in the request does not affect the
                                    transaction.
             Same Transaction for   This option applies only to one-way and asynchronous messaging
             Response               patterns.
                                    If you select this option, Oracle Service Bus propagates the
                                    transaction context from the request thread to the response thread.
                                    If you select this option, the message pattern becomes synchronous
                                    automatically, regardless of the initial message pattern setting (such
                                    as asynchronous or one-way).
                                    You would not use this option, for example, if the business service in
                                    the request required a transaction committal before sending the
                                    response, such as in a one-way pattern.
                                    For transaction timeouts, the global transaction timeout value
                                    configured in the Oracle WebLogic Server Console applies.




                                                                             User Interface Reference 4-21
Proxy Service Configuration


                    Table 4–13 (Cont.) Proxy Service Message Handling Options
                    Option                Description
                    Content Streaming     Select this option to stream message content rather than store it in
                                          memory.
                                          Select the Enabled check box and choose the following:
                                          ■   Whether to buffer the intermediate content in memory (Memory
                                              Buffer) or to a disk file (Disk Buffer)
                                          ■   Whether to enable Compression
                                          For more information, see "Streaming body Content" in the Oracle
                                          Fusion Middleware Administrator's Guide for Oracle Service Bus at
                                          http://www.oracle.com/pls/as1111/lookup?id=OSBAG314
                                          .




4-22 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Proxy Service Configuration


Table 4–13 (Cont.) Proxy Service Message Handling Options
Option               Description
XOP/MTOM Support     SOAP Message Transmission Optimization Mechanism (MTOM) is a
                     method of sending binary data to and from Web services. MTOM
                     uses XML-binary Optimized Packaging (XOP) to transfer the binary
                     data.
                     Use this option to decode and parse inbound messages in
                     MTOM/XOP format and to send responses using the MTOM/XOP
                     format, when appropriate.
                     Oracle Service Bus supports XOP/MTOM using the following
                     transports:
                     ■   HTTP/S
                     ■   Local
                     ■   SB
                     Select the Enabled check box to enable the proxy service to decode
                     and parse inbound messages in MTOM/XOP format and to send
                     responses using the MTOM/XOP format, when appropriate. Note
                     that this option is disabled for imported proxy services that are based
                     on previous release configurations.
                     If XOP/MTOM Support is enabled, select how to handle binary data
                     in the $header and $body message context variables from among the
                     following options:
                     ■   Include Binary Data by Reference: (Default) In an inbound
                         request message, replace xop:Include elements with
                         ctx:binary-content elements when setting up the $header and
                         $body message context variables.
                     ■   Include Binary Data by Value: In an inbound request message,
                         replace xop:Include elements with base64-encoded text versions
                         of corresponding binary data when setting up the $header and
                         $body message context variables.
                     Use Include Binary Data by Reference when you need direct access to
                     binary data, for example to pass data to a Java callout or Message
                     Format Language (MFL) transform.
                     Use Include Binary Data by Value in the following cases:
                     ■   To bridge between MTOM and non-MTOM services. For
                         example, consider an MTOM-enabled proxy service that receives
                         a request that is then routed to a non-MTOM-enabled service.
                         You could use this option to comply with existing standards for
                         sending binary data in XML in base64-encoded form.
                     ■   To validate the contents of the message against an XML schema
                         that requires a base64binary element to be used in place of
                         binary data
                     Note that if XOP/MTOM Support is enabled for a proxy service, it is
                     not required that every inbound message be in the MTOM format.
                     Instead, this setting specifies that when an MTOM-formatted
                     message arrives, the proxy service should handle it accordingly.
                     Note also that when proxy services not enabled for XOP/MTOM
                     Support receive an MTOM-formatted message, the service rejects the
                     message and issues a runtime error.




                                                             User Interface Reference 4-23
Proxy Service Configuration


                    Table 4–13 (Cont.) Proxy Service Message Handling Options
                    Option                 Description
                    Attachments            Use this option to have the proxy service store MIME attachment
                                           content to a disk file and then process the data in a streaming fashion
                                           without buffering the attachment contents in memory. This enables
                                           the proxy service to process large attachments robustly and
                                           efficiently.
                                           Oracle Service Bus supports streaming MIME attachments using the
                                           following transports:
                                           ■   HTTP/S
                                           ■   Local (when chained through an HTTP proxy with streaming
                                               attachments enabled)
                                           Select the Page Attachments to Disk check box to enable the proxy
                                           service to stream MIME attachments. When enabled for HTTP proxy
                                           services, the option applies to proxy service inbound request
                                           messages.
                                           Note that if you select XOP/MTOM Support, the Attachments option
                                           is only available if you choose the Include Binary Data by Reference
                                           option under XOP/MTOM Support. Note also that payloads that
                                           contain attachments must conform to RFC 822. Specifically, lines
                                           containing Internet headers need to be terminated with CRLF
                                           (carriage return line feed).


4.3.5 Proxy Service SOAP Binding Configuration Page
                    This page is displayed only if the service you are creating has operations.
                    Use the Proxy Service SOAP Binding Configuration page to enforce WS-I compliance
                    (for SOAP 1.1 services only) and select the selection algorithm to use to determine the
                    operation called by this proxy service. This option is only available for SOAP or XML
                    services defined from a WSDL.
                    The WSDL specification defines a default algorithm to compute which operation is
                    called based on the type of the SOAP message received. However, there are cases (for
                    example, performance issues, signature/encryption issues, or the default algorithm is
                    not applicable) when you may need to select the operation based on other means.
                    Oracle Service Bus provides additional algorithms. Each of them follows the same
                    pattern and are based on the evaluation of an expression to get a value that is then
                    used to lookup the corresponding operation in a static table.
                    Oracle Service Bus is generally very forgiving if an inbound message is either missing
                    data such that the operation cannot be determined, or has data that does not
                    correspond to a valid operation. Both of these conditions result in $operation being
                    empty. Rather than reject all such messages, Oracle Service Bus does not initialize the
                    operation variable in the context but otherwise continues to process the message.
                    However, security requirements are enforced if the proxy service is WSDL-based and
                    at least one of the following conditions is true:
                    ■    The WSDL has a WS-Security policy and the proxy is an active intermediary.
                    ■    The proxy has message-level custom authentication (either custom token or user
                         name/password).
                    If these conditions are met, then there is a runtime check to make sure the operation
                    selection algorithm returns a valid operation name. If the operation selection returns
                    null or an operation that is not in the WSDL, then the message is rejected and an error
                    is raised.


4-24 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Proxy Service Configuration



                   Table 4–14     Proxy Service SOAP Binding Options
                   Option                      Description
                   Enforce WS-I                For SOAP 1.1 services only:
                   Compliance
                                               Select or deselect this check box if you want to specify whether or
                                               not the service is to conform to the Basic Profile defined by the Web
                                               Services Interoperability Organization.
                                               When a service is marked WS-I compliant, checks are performed
                                               against the messages sent to and from that service. For proxies,
                                               checks are performed against request messages received by the
                                               proxy. For invoked services (i.e. services invoked by a proxy via
                                               service callout action or route node), checks are performed against
                                               the response messages received from those services. Note that it is
                                               the WS-I compliance property of the invoked service and not the
                                               proxy that determines whether or not checks are performed
                                               against messages received from the invoked service. If you specify
                                               WS-I compliance testing for an invoked service, the message flow
                                               generates a fault for response errors.


4.3.6 Proxy Service Transport Configuration Page
                   Use the Proxy Service Transport Configuration page to select a transport protocol for
                   the proxy service and to set other general transport configuration settings.


                            Note:   Inbound transport-level security applies to the client
                            applications and Oracle Service Bus proxy services. Outbound
                            transport-level security applies to the connections between Oracle
                            Service Bus proxy services and business services.


Table 4–15   Proxy Service Transport Configuration Options
Option         Description
Protocol       Select a transport protocol from the list. The protocols available differ, depending on the service
               type you are creating:
               ■     WSDL Web Service: http, jca, jms, local, sb, ws
               ■     Transport Typed Service: jejb
               ■     Messaging Service: email, file, ftp, http, jms, local, mq (if available), sftp, tuxedo
               ■     Any SOAP Service: http, jms, local, sb
               ■     Any XML Service: email, file, ftp, http, jms, local, mq (if available), sb, sftp, tuxedo




                                                                                       User Interface Reference 4-25
Proxy Service Configuration


Table 4–15 (Cont.) Proxy Service Transport Configuration Options
Option            Description
Endpoint URI      Enter an endpoint URI in the format based on the transport protocol you selected in the Protocol
                  field, above: The formats are:
                  ■   email - mailfrom:mail-server-host:port
                  ■   file - file:///root-dir/dir1
                  ■   ftp - ftp://hostname:port/directory
                  ■   http - /someName
                      The HTTP transport supports both HTTP and HTTPS endpoints.
                  ■   jca - jca://<resource_adapter_jndi>
                  ■   jejb – The URL format is ejb_jndi_name. The URI configured for a JEJB proxy service
                      becomes the global JNDI name for locating the stateless session bean generated by the JEJB
                      transport from the remote/business interface in the client JAR.
                      Note: For EJB 3.0, ejb_jndi_name is the mappedName attribute of the @javax.ejb.Stateless
                      annotation in the generated bean. The lookup JNDI name for the generated EJB service is
                      suffixed with #interface_class, which is the fully qualified name of the business
                      interface.
                      You can access the JEJB proxy service as:
                      EJB 2.1 - protocol://host:port/_ejb_jndi_name
                      EJB 3.0 - protocol://host:port/ejb_jndi_name#interface_class
                      Note: If your EJBs are running on IBM WebSphere, ejb_jndi_name must be in the
                      following format:
                      cell/nodes/node_name/servers/server_name/ejb_jndi_name
                      or
                      cell/clusters/cluster_name/ejb_jndi_name
                      as described in the IBM WebSphere documentation at
                      http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topi
                      c=/com.ibm.websphere.nd.iseries.doc/info/iseriesnd/ae/rnam_example_
                      prop3.html
                  ■   jms - jms://host:port[,host:port]*/connection_factory/jndi_destination
                      To target a target a JMS destination to multiple servers, use the following URI format:
                      jms://host1:port,host2:port/QueueConnectionFactory/DestName
                      Note that when you create a proxy service, you can configure a JMS endpoint URI even if
                      the server at that endpoint if not available. However, in the case of JMS, when you activate
                      the session, the endpoint must be available.
                      You can also omit host and port from the URI to have the lookup performed on the local
                      machine. For example:
                      jms:///connection_factory/jndi_destination
                      Note: While Oracle WebLogic Server allows forward slashes in JNDI names, such as
                      "myqueues/myqueue", JNDI names with forward slashes interfere with the URI format
                      required by Oracle Service Bus, and you cannot use those names. To work around this issue,
                      define a JMS foreign server and reference that foreign server in the URI. For more
                      information, see "Configure foreign servers" in the Oracle Fusion Middleware Oracle WebLogic
                      Server Administration Console Online Help at
                      http://www.oracle.com/pls/as1111/lookup?id=WLACH.
                      In a cluster: The host names in the JMS URI must exactly match the host names of the cluster
                      servers as they are configured in Oracle WebLogic Server.
                  ■   local
                      This transport does not require an endpoint URI.




4-26 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Proxy Service Configuration


Table 4–15 (Cont.) Proxy Service Transport Configuration Options
Option         Description
Endpoint URI   ■      mq - mq://local-queue-name?conn=mq-connection-resource-ref
(continued)
                      local-queue-name is the name of the MQ queue from which the proxy service reads
                      messages.
                      mq-connection-resource-ref is the path (project/folder) and name of the MQ
                      connection resource; for example, default/my_MQconnection.
                      Note: The Endpoint URI cannot contain spaces, so do not create MQ Connection resources
                      or projects/folders with spaces in the names.
                      To make the MQ transport available in Oracle Service Bus, see "MQ Transport" in the Oracle
                      Fusion Middleware Developer's Guide for Oracle Service Bus at
                      http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117.
               ■      sb - service_name
                      service_name is the unique identifier for the proxy service. By default, this name will be
                      the proxy service name.
                      service_name must only contain characters permitted in URIs (as described in RFC2396 at
                      http://www.ietf.org/rfc/rfc2396.txt), except it cannot contain forward slash (/)
                      or colon (:) characters.
               ■      sftp - sftp://hostname:port/directory
               ■      tuxedo - servicename
                      The URI servicename corresponds to a WTC Export that the remote Tuxedo domain
                      identifies as a Tuxedo service.
                      If more than one URI is specified, you must have unique resource names for the endpoints.
                      If no remote name is specified, its value is the value of the resource name. If no remote name
                      is entered or if remote and resource name are the same, only one URI is allowed. In this case
                      resource name and remote name will have the same value. This allows users using already
                      defined WTC Imports to make use of WTC load-balancing and failover.
                      Note: If you configure two identical URIs, an error indicates that the service name already
                      exists.
               ■      ws - /contextPath
                      contextPath must be unique for proxy services that use either HTTP or WS transport.
Get All        Select Yes to retrieve all the headers from the transport.
Headers
               Select No to retrieve a defined set of headers. If you select No, enter a set of headers in the
               Header field, then click Add. (This step does not apply to Local transport.)
               Note: Oracle Service Bus does not pass the HTTP Authorization header from the request to the
               pipeline because it opens a security vulnerability. You could inadvertently create a log action that
               writes the user name and unencrypted password to a log file. If your design pattern requires the
               HTTP Authorization header to be in the pipeline, do the following:
               1.     In the startup command for Oracle Service Bus, set the following system property to true:
                      com.bea.wli.sb.transports.http.GetHttpAuthorizationHeaderAllowed
               2.     In Eclipse, on the Transport Configuration page, select Yes for Get All Headers or select No
                      and specify Authorization.
               3.     Restart Oracle Service Bus.
               Oracle Service Bus will pass the Authorization header to the pipeline.


4.3.7 Proxy Service - Service Policy Configuration Page
                    Use Proxy Service - Service Policy Configuration page to configure service policies for
                    a proxy service.




                                                                                     User Interface Reference 4-27
Proxy Service Configuration



                    Table 4–16   Proxy Service Service Policy Options
                    Option                    Description
                    From OWSM Policy          Policies are defined in the central Oracle Web Services Manager
                    Store                     Policy Store managed by Oracle Enterprise Manager. These policies
                                              support WS-Security 1.0/1.1, SAML 1.1/2.0, KerberosToken
                                              Profile, and other industry standards.
                                              To add Oracle Web Services Manager policies to services in the
                                              IDE, you must be connected to a running server that has Oracle
                                              Web Services Manager enabled.
                                              Note: When working with multiple servers in Eclipse, Eclipse
                                              chooses the first valid Oracle Service Bus server in the list of
                                              servers for retrieval of Oracle Web Services Manager policies.
                                              Use category filtering to help you find the policy you want. For
                                              proxy services, only service policies are displayed.
                                              After adding policies, you can provide overrides on the Security
                                              page.
                                              For information, see "Securing Oracle Service Bus with Oracle Web
                                              Services Manager" in the Oracle Fusion Middleware Developer's Guide
                                              for Oracle Service Bus at
                                              http://www.oracle.com/pls/as1111/lookup?id=OSBDV1
                                              681.
                    From WSDL                 Select this option if the service policy is associated with the WSDL
                                              upon which the service is based. These policies support
                                              WS-Security 1.0, SAML 1.1, and other industry standards.
                    From Pre-defined Policy   Select this option to add service-level policies, operation-level
                    or WS-Policy Resource     policies (in which case the policy applies to both the request and
                                              response messages), request policies, and response policies directly.
                                              Policies are either pre-defined in Oracle WebLogic Server or
                                              user-defined in Oracle Service Bus with a WS-Policy resource.
                                              These policies support WS-Security 1.0, SAML 1.1, and other
                                              industry standards.


4.3.8 Proxy Service Security Configuration Page
                    Use the Proxy Service Message Level Security Configuration page to configure
                    security for proxy services.
                    For WLS 9.2 policies, message-level custom tokens and message-level user name and
                    password are supported on proxy services of the following binding types:
                    ■    WSDL-SOAP
                    ■    WSDL-XML
                    ■    Abstract SOAP
                    ■    Abstract XML
                    ■    Mixed - XML (in the request)
                    ■    Mixed - MFL (in the request)
                    The configuration for both custom user name/password and custom token is similar.
                    In both cases, you specify XPath expressions that enable Oracle Service Bus to locate
                    the necessary information. The root of these XPath expressions is as follows:
                    ■    Use soap-env:Envelope/soap-env:Header if the service binding is
                         AnySOAP or WSDL-SOAP.
                    ■    Use soap-env:Body if the service binding is not SOAP based.


4-28 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Proxy Service Configuration


All XPath expressions must be in a valid XPath 2.0 format. The XPath expressions
must use the XPath "declare namespace" syntax to declare any namespaces used, as
follows:
declare namespace ns='http://webservices.mycompany.com/MyExampleService';)

Table 4–17   Proxy Service Message-Level Security Options
Option                  Description
Service Key Provider    The name of a service key provider to be used by the service.
                        You can enter the path (project/folder) and name of a service key
                        provider, or click Browse to select one.
                        A service key provider is only required in certain cases:
                        ■   Outbound two-way TLS/SSL, where the proxy service routes
                            messages to HTTPS services that require client-certificate
                            authentication.
                        ■   In some Web Service security scenarios, for example, if the
                            proxy service requires messages to be encrypted.
                        To add a Web service security-enabled proxy service, you must
                        create the proxy service from a WSDL (port or binding) with
                        WS-Policy attachments.
Policy Overrides        For OWSM policies, provide any desired overrides that are
                        allowed.
                        For more information, see Table 4–16 and "Securing Oracle Service
                        Bus with Oracle Web Services Manager" in the Oracle Fusion
                        Middleware Developer's Guide for Oracle Service Bus at
                        http://www.oracle.com/pls/as1111/lookup?id=OSBDV1
                        681.
Process WS-Security     If a client request includes a WS-Security security header, decide
Header                  whether or not to process this header:
                        ■   Select Yes: In an active intermediary scenario, the client
                            applies WS-Security to the request and/or response messages.
                            The proxy service processes the security header and enforces
                            the WS-Security policy.
                            This option is automatically set to Yes when a proxy service is
                            based on a WSDL that has a security policy or when you
                            attach a policy to the service on the Service Policy
                            Configuration page.
                        ■   Select No: In a WS-Security pass-through scenario, the client
                            applies WS-Security to the request and/or response messages.
                            The proxy service does not process the security header.
                            Instead, it passes the secured request message untouched to a
                            business service.
Custom Authentication   Select one of the following:
Settings
                        ■   None - if the service will not use custom authentication.
                        ■   Custom User Name and Password - if the service will use a
                            custom name and password, specified as XPath expressions
                        ■   Custom Token - if the service will use a custom token
Custom User Name and    The user name, specified as an XPath expression.
Password - User Name
                        The XPath expression is evaluated against the message headers or
XPath
                        payload, as appropriate, which allows Oracle Service Bus to obtain
                        the user name and for custom authentication.




                                                              User Interface Reference 4-29
Oracle Service Bus Configurations and Projects


                    Table 4–17 (Cont.) Proxy Service Message-Level Security Options
                    Option                       Description
                    Custom User Name and         The password, specified as an XPath expression.
                    Password - User
                                                 The XPath expression is evaluated against the message headers or
                    Password XPath
                                                 payload, as appropriate, which allows Oracle Service Bus to obtain
                                                 the password values for custom authentication.
                    Custom Token - Token         Enter the type for the custom token type. Only the active token
                    Type                         types configured for an Oracle WebLogic Server Identity Assertion
                                                 provider can be used.
                    Custom Token - Token         An XPath expression that specifies a path to the custom token.
                    XPath                        Oracle Service Bus evaluates the Token XPath expression against
                                                 the message headers or payload, as appropriate, to obtain the
                                                 token for custom authentication.
                                                 To create or edit an expression, click <XPath> (or the expression_
                                                 fragment, if one is already defined) to display the XPath
                                                 Expression Editor.
                    Custom User Name and         Optionally, specify one or more context properties to pass
                    Password - Context           additional context information to the Authentication (Custom User
                    Properties                   Name and Password) or Identity Assertion (Custom Token)
                                                 security provider.
                    or
                                                 Context Properties provide a way (the ContextHandler
                    Custom Token - Context
                                                 interface) to pass additional information to the WebLogic Security
                    Properties
                                                 Framework so that a security provider can obtain contextual
                                                 information.
                                                 Enter the Property Name as a literal string, and the Value Selector
                                                 as a valid XPath expression. (XPath expressions can also be literal
                                                 strings.)
                                                 The XPath expressions are evaluated against the same
                                                 message-part that is used for the custom token or custom user
                                                 name/password. That is, the Value Selector XPath expressions for
                                                 SOAP-based proxy services evaluate against the header and
                                                 against the payload for non-SOAP-based proxy services.
                                                 The XPath expression is evaluated at runtime to produce the
                                                 property's value. A ContextHandler is essentially a name/value
                                                 list and, as such, it requires that a security provider know what
                                                 names to look for. Therefore, the XPath expressions are evaluated
                                                 only if a security provider asks for the value of one of these
                                                 user-defined properties.
                                                 Click Add Property to add this context property. You can add
                                                 multiple context properties.


4.4 Oracle Service Bus Configurations and Projects
                    The following are provided for working with Oracle Service Bus configurations and
                    projects.
                    ■    Section 4.4.1, "Oracle Service Bus Configurations View"
                    ■    Section 4.4.2, "New Oracle Service Bus Configuration Project Wizard"
                    ■    Section 4.4.4, "New Oracle Service Bus Project"


4.4.1 Oracle Service Bus Configurations View
                    This view displays a hierarchical list of all your Oracle Service Bus configurations and
                    the projects they contain. See also Section 4.4.2, "New Oracle Service Bus
                    Configuration Project Wizard."


4-30 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Oracle Service Bus Configurations and Projects


              You can do the following in the Configurations view:
              ■   Edit the configuration:
                  1.   Right click the configuration you want to edit.
                  2.   Select Properties from the menu.
                  3.   Modify information as needed in the Oracle Service Bus Configuration Page.
              ■   Create a new configuration:
                  1.   Right-click anywhere in the view.
                  2.   Select New Oracle Service Bus Configuration from the menu.
                  3.   Enter information as needed in the Oracle Service Bus Configuration Page.
              ■   Move a project from one configuration to another by dragging it from the source
                  configuration to the target configuration. You can also drag a project from the
                  Project Explorer.
              ■   Delete a configuration project:
                  1.   Right-click the configuration you want to delete.
                  2.   Select Delete from the menu.


4.4.2 New Oracle Service Bus Configuration Project Wizard
              Use this wizard to create an Oracle Service Bus configuration project. For
              configuration options, see Section 4.4.3, "Oracle Service Bus Configuration Page."


4.4.3 Oracle Service Bus Configuration Page
              An Oracle Service Bus configuration project is a grouping of Oracle Service Bus
              projects and resources destined for a server, a location for system resources (SMTP,
              UDDI, and such), and a container for validation; for example, a resource in a project
              associated with one Oracle Service Bus configuration cannot refer to a resource in a
              project associated to another Oracle Service Bus configuration.
              Use this page to create a new Oracle Service Bus configuration project (in the New
              Oracle Service Bus Configuration Project wizard) or to configure an existing one (in
              the Properties for Oracle Service Bus Configuration editor).
              The preserve, session, and customization file settings are used when publishing an
              Oracle Service Bus configuration to the server, and used as defaults when configuring
              the Export Wizard - Export to Server - Select Resources Page.

              Table 4–18   Oracle Service Bus Configuration Options
              Option                   Description
              Configuration name       Enter a name for this Oracle Service Bus configuration or keep the
                                       default.
              Preserve environment     Select this check box when you are re-importing a resource but
              variable values          want to preserve environment variable values in the existing
                                       resource.
              Preserve security and    Select this check box to preserve the security configuration
              policy settings          (excluding access control policies) and the references to the
                                       WS-policies bound directly to the service (instead of bound to the
                                       WSDL).




                                                                             User Interface Reference 4-31
Custom Resources


                   Table 4–18 (Cont.) Oracle Service Bus Configuration Options
                   Option                     Description
                   Preserve credentials (user Select this check box to preserve PKI credentials in service key
                   name and password)         providers, user name and passwords in service accounts, and user
                                              name and password credentials in SMTP servers, JNDI providers,
                                              and UDDI registries.
                   Discard session if         Select this check box to discard the session if the activation fails
                   activation fails           (for example, due to conflicts).
                   Session Name               The session name.
                   Description                The session description.
                   Deployment                 Specify a customization.xml file or click Browse, locate the file, then
                   customization file         click Open. For information on customization, see "Creating
                                              Customization Files" in the Oracle Fusion Middleware
                                              Administrator's Guide for Oracle Service Bus at
                                              http://www.oracle.com/pls/as1111/lookup?id=OSBAG1
                                              360.
                   Keystore file              Specify a keystore.jks file or click Browse, locate the file, then click
                                              Open.
                                              The key store settings are used when configuring a service key
                                              provider.
                   Password                   Enter the password that you use to secure access to the key store.
                   Server                     The name of the server associated with this Oracle Service Bus
                                              configuration. This setting is automatically configured unless there
                                              is more than one server from which to choose. When multiple
                                              servers are associated with the same Oracle Service Bus
                                              configuration, use the list to select the server you want to associate
                                              with this Oracle Service Bus configuration.
                                              The server setting is only used for transport specific configuration,
                                              when the transport benefits from being connected to a server (for
                                              example, when configuring the dispatch policy setting in the HTTP
                                              transport).


4.4.4 New Oracle Service Bus Project
                   Use this page to create a new Oracle Service Bus project.

                   Table 4–19      New Oracle Service Bus Project Options
                   Option                     Description
                   Project name               Enter a unique name for the project.
                   Oracle Service Bus         Select an existing Oracle Service Bus configuration or click New to
                   Configuration              open the New Oracle Service Bus Configuration Project Wizard,
                                              where you can create a new configuration.


4.5 Custom Resources
                   You can define custom resources for use by Oracle Service Bus using the New Custom
                   Resource wizard and the Custom Resource editor, as described in the following topics:
                   ■   Section 4.5.1, "New Custom Resource Wizard"
                   ■   Section 4.5.1, "New Custom Resource Wizard"
                   ■   Section 4.5.3, "New Custom Resource - Resource Type Page"




4-32 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Custom Resources



4.5.1 New Custom Resource Wizard
             Use this wizard to create a new custom resource.


4.5.2 New Custom Resource Editor
             Use this editor to modify the configuration of a custom resource. The General page
             identifies the type of custom resource. The Custom page provides options for editing
             the configuration for that type of custom resource.


4.5.3 New Custom Resource - Resource Type Page
             Use this page to select the type of custom resource to create. Select the type of custom
             resource to create from the list of available resource type.


4.5.4 Custom MQ Resource Configuration Page
             Use this page to configure a custom MQ connection resource. For information on MQ
             connection resources and MQ transports, see the following:
             ■   "MQ Connections" in the Oracle Fusion Middleware Administrator's Guide for Oracle
                 Service Bus at
                 http://www.oracle.com/pls/as1111/lookup?id=OSBAG909
             ■   "MQ Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service
                 Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117.

             Table 4–20   MQ Resource Options
             Option                   Description
             Connection Type          Select one of the following modes for connecting to the MQ queue
                                      manager:
                                      ■   tcp mode—Use TCP/IP to connect to a queue manager that
                                          does not reside on the same machine as Oracle Service Bus.
                                      ■   binding mode—Use the bindings mode to connect to a
                                          queue manager that is located on the same machine as Oracle
                                          Service Bus.
             MQ Host Name             For tcp mode connections only:
                                      Enter the host name of the MQ queue manager.
             MQ Port Number           For tcp mode connections only:
                                      Enter the port number of the MQ queue manager listener.
             MQ Queue Manager         Enter the name of the MQ queue manager to which to connect.
             Name
             Queue Manager CCSID      For tcp mode connections only:
                                      The coded character set identifier (CCSID) to be used when
                                      establishing a connection. The CCSID is used mainly for
                                      internationalization support.
                                      To learn more, see IBM’s WebSphere MQ Fundamentals at
                                      http://www.redbooks.ibm.com/redbooks/SG247128/wwh
                                      elp/wwhimpl/java/html/wwhelp.htm.
             MQ Queue Manager         For tcp mode connections only:
             Channel Name
                                      Enter the queue manager server connection channel name.




                                                                          User Interface Reference 4-33
Export Wizard


                  Table 4–20 (Cont.) MQ Resource Options
                  Option                     Description
                  SSL Required               For tcp mode connections:
                                             Select the check box to use SSL for sending messages. Only
                                             server-side SSL is enabled when the 2-way SSL Required option is
                                             not selected.
                  Cipher Suite               This option is available only when the SSL Required check box is
                                             selected.
                                             Select the Cipher Suite algorithm to be used by SSL.
                                             The Cipher Suite algorithm is used to encrypt and decrypt message
                                             communications between the WebSphere MQ server and the
                                             WebSphere MQ client. Thus a Cipher Suite algorithm must be
                                             specified when using SSL to communicate with a WebSphere MQ
                                             server.
                  2-way SSL Required         This option is available only when the SSL Required check box is
                                             selected.
                                             Select the check box to enable both client-side and server-side SSL
                                             authentication.
                  Reference to the Service   If you selected 2-way SSL Required, you must provide a reference
                  Key Provider               to the service key provider for obtaining the appropriate key store
                                             and trust store information.
                                             Enter the path (project/folder) and name of a service key provider,
                                             or click Browse to select one from the Select Service Key Provider
                                             page.
                  Reference to the Static    For tcp mode connections only:
                  Service Account
                                             Required for user name and password authentication. Enter the
                                             path (project/folder) and name of a static service account, or click
                                             Browse to select service accounts from a browser.
                  WebSphere MQ Version       Select the WebSphere MQ version:
                                             ■   5.3
                                             ■   6.0
                                             ■   7.0
                  MQ Connection Pool         Enter the size of the MQ connection pool.
                  Size
                  MQ Connection Timeout      Enter the time interval in seconds after which unused connections
                                             are destroyed. The default is 1800 seconds.
                  MQ Connection Max          Enter the Max Wait in seconds for the amount of time to wait for a
                  Wait                       connection to become available. If a connection is not made within
                                             that time interval, Oracle Service Bus throws an exception. The
                                             default is 3 seconds.


4.6 Export Wizard
                  The Export wizard contains the following pages:
                  ■   Section 4.6.1, "Export Wizard - Oracle Service Bus Configuration JAR Export Page"
                  ■   Section 4.6.2, "Export Wizard - Export to Server - Select Resources Page"
                  ■   Section 4.6.3, "Export Wizard - Export to Server - Review Resources Page"




4-34 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Export Wizard



4.6.1 Export Wizard - Oracle Service Bus Configuration JAR Export Page
              Use this page to export Oracle Service Bus resources to a configuration JAR file. For
              more information, see "Exporting Resources" in the Oracle Fusion Middleware
              Administrator's Guide for Oracle Service Bus at
              http://www.oracle.com/pls/as1111/lookup?id=OSBAG1320.

              Table 4–21     Configuration JAR Export Options
              Option                    Description
              Oracle Service Bus        Select an existing Oracle Service Bus configuration and resources to
              Configuration             export. Deselect resources you do not want to export.
              Export Level              Select whether to export projects or resources.
                                        Notes
                                        A System project cannot be exported at the project level.
                                        Exporting projects might cause resource deletion when you import
                                        the full project JAR file.
              Include Dependencies      If you selected to export resources, select or clear this check box.
                                        Use the Include Dependencies option to export any other
                                        resources that this resource references
              Export Destination        Enter the fully qualified name of a JAR file to export, or click
                                        Browse to select it.


4.6.2 Export Wizard - Export to Server - Select Resources Page
              Use this page to select the projects or resources you want to export. Clear the check
              boxes next to any resources that you do not want to include in this export.

              Table 4–22     Resource Export Options
              Option                    Description
              Resource                  The name of the project and resource.
                                        Deselect resources you do not want to export.
              Operation                 Create or update. The operation that will be performed on the
                                        resource.
              Include Dependencies      Select this check box if you are exporting resources (not projects)
                                        and want to ensure that all the associated resources are exported.
              Preserve environment      Select this check box when you want to preserve (protect against
              variable values           overwriting) the environment variables values in the resource you
                                        are exporting.
              Preserve security and     Select this check box to preserve the security configuration
              policy settings           (excluding access control policies) and the references to the
                                        WS-policies bound directly to the service (instead of bound to the
                                        WSDL).
              Preserve credentials (user Select this check box to preserve PKI credentials in service key
              name and password)         providers, user name and passwords in service accounts, and user
                                         name and password credentials in SMTP servers, JNDI providers,
                                         and UDDI registries.
              Activate session after    Select this check box to create and activate a session in the Oracle
              publish                   Service Bus Administration Console.
              Discard session if        Select this check box to discard the session if the activation fails
              activation fails          (for example, due to conflicts).
              Description               The session description.



                                                                                User Interface Reference 4-35
Import Wizard


                  Table 4–22 (Cont.) Resource Export Options
                  Option                    Description
                  Customization File        Specify a customization file or click Browse, locate the file, then
                                            click Open. For information on customization, see "Creating
                                            Customization Files" in the Oracle Fusion Middleware
                                            Administrator's Guide for Oracle Service Bus at
                                            http://www.oracle.com/pls/as1111/lookup?id=OSBAG1
                                            360.


4.6.3 Export Wizard - Export to Server - Review Resources Page
                  Use this page to select the projects or resources you want to export.

                  Table 4–23     Resource Export Options
                  Option                    Description
                  Oracle Service Bus        Select an existing Oracle Service Bus configuration and resources to
                  Configuration             export.
                  Export Level              Select whether to export projects or resources.
                  Server                    From the list, select an Oracle Service Bus destination server.
                  Session                   The session name.


4.7 Import Wizard
                  The Import wizard has the following pages:
                  ■     Section 4.7.1, "Import Wizard - Config JAR Import - Load Resources Page"
                  ■     Section 4.7.2, "Import Wizard - Config JAR Import - Review Resources Page"
                  ■     Section 4.7.3, "Import Wizard - Config ZIP Import - Load Resources Page"
                  ■     Section 4.7.4, "Import Wizard - Config ZIP Import - Review Resources Page"
                  ■     Section 4.7.5, "Import Wizard - URL Import - Load Resources Page"
                  ■     Section 4.7.6, "Import Wizard - URL Import - Review Resources Page"


4.7.1 Import Wizard - Config JAR Import - Load Resources Page
                  Use this page to select a configuration JAR to import and an import destination. For
                  more information, see "Importing Resources" in the Oracle Fusion Middleware
                  Administrator's Guide for Oracle Service Bus at
                  http://www.oracle.com/pls/as1111/lookup?id=OSBAG1312.

                  Table 4–24     Configuration JAR Import
                  Option                    Description
                  Oracle Service Bus        Select an existing Oracle Service Bus configuration or click New to
                  Configuration             open the New Oracle Service Bus Configuration Project Wizard,
                                            where you can create a new configuration.
                  Jar                       Select a full project JAR file or a resource JAR file that has been
                                            previously exported from another Oracle Service Bus domain.




4-36 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Import Wizard



4.7.2 Import Wizard - Config JAR Import - Review Resources Page
              Use this page to select the objects on which you want to operate (create, update, or
              delete). Resources are only scheduled for deletion when the JAR being imported is a
              full project JAR and there are project resources in the importing system that are not
              present in the imported JAR file. To prevent resources from being deleted, deselect
              them.

              Table 4–25   Configuration JAR Import Options
              Option                    Description
              Resources                 The name of the project and resource.
              Operation                 Expand the Project folder to display the operations (create, update,
                                        delete) that will be performed on the resources.
                                        To prevent resources from being deleted, deselect them. Resources
                                        are only scheduled for deletion when the JAR being imported is a
                                        full project JAR and there are project resources in the importing
                                        system that are not present in the imported JAR file.
              Include Dependencies      Select this check box if you are importing a resource JAR file and
                                        want to ensure that all its associated resources are imported.
              Passphrase                Enter the password that was used to encrypt the data.
              Preserve environment      Select this check box when you are re-importing a resource but
              variable values           want to preserve environment variable values in the existing
                                        resource.
              Preserve security and     Select this check box to preserve the security configuration
              policy settings           (excluding access control policies) and the references to the
                                        WS-Policies bound directly to the service (instead of bound to the
                                        WSDL).
              Preserve credentials (user Select this check box to preserve PKI credentials in service key
              name and password)         providers, user name and passwords in service accounts, and user
                                         name and password credentials in SMTP servers, JNDI providers,
                                         and UDDI registries.


4.7.3 Import Wizard - Config ZIP Import - Load Resources Page
              Use this page to select a ZIP file with resources to import and an import destination.

              Table 4–26   Configuration ZIP Import
              Option                    Description
              Oracle Service Bus        Select an existing Oracle Service Bus configuration and an import
              Configuration             destination (project or folder).
              File Name                 Enter the fully qualified name of a ZIP file to import, or click
                                        Browse to select it.


4.7.4 Import Wizard - Config ZIP Import - Review Resources Page
              Use this page to select the objects you want to import. Clear the check boxes next to
              any resources that you do not want to include in this import.

              Table 4–27   Configuration ZIP Import Options
              Option                    Description
              Resource                  The name of the project and resource.




                                                                                User Interface Reference 4-37
JNDI Providers


                  Table 4–27 (Cont.) Configuration ZIP Import Options
                  Option                   Description
                  Operation                Create or update. The operation that will be performed on the
                                           resource.
                  File Name                The file name of the resource, including the file extension.


4.7.5 Import Wizard - URL Import - Load Resources Page
                  Use this page to import resources such as WSDLs or XML schemas that are available
                  on the Web. You can import them, along with all their dependents, by specifying the
                  URL of the root resource.

                  Table 4–28   URL Import Options
                  Option                   Description
                  Oracle Service Bus       Select an existing Oracle Service Bus configuration and an import
                  Configuration            destination (project or folder).
                  URL                      Enter the URL where the file is located.
                                           To specify a local resource, you can use the file protocol with a
                                           file name fully qualified by its path, for example,
                                           file:///c:/alsbresources/ForeachAction.jar.
                  Resource Name            Enter a name for the resource.
                  Resource Type            Select the type of resource from the list.


4.7.6 Import Wizard - URL Import - Review Resources Page
                  Use this page to select the objects you want to import. Clear the check boxes next to
                  any resources that you do not want to include in this import.

                  Table 4–29   URL Import Options
                  Option                   Description
                  Resource                 The name of the project and resource.
                  Operation                Create or update. The operation that will be performed on the
                                           resource.
                  URL                      Enter the URL where the file is located.
                                           To specify a local resource, you can use the file protocol with a
                                           file name fully qualified by its path, for example,
                                           file:///c:/alsbresources/ForeachAction.jar.


4.8 JNDI Providers
                  The following are provided for working with JNDI providers:
                  ■   Section 4.8.1, "JNDI Provider Editor"
                  ■   Section 4.8.2, "New JNDI Provider Resource Wizard"


4.8.1 JNDI Provider Editor
                  Use this editor to modify an existing JNDI provider configuration. For descriptions of
                  the fields, see the Section 4.8.2, "New JNDI Provider Resource Wizard."




4-38 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Proxy Servers



4.8.2 New JNDI Provider Resource Wizard
             Use this page to configure a new JNDI provider resource.

             Table 4–30     New JNDI Provider Resource Options
             Option                    Description
             Description               Enter a description for the JNDI provider.
             JNDI Cache                Keep the default Enabled option or select Disabled.
                                       When enabled, the JNDI context and JNDI objects are cached
                                       locally which improves performance when doing an object lookup.
                                       Oracle recommends that you keep the JNDI cache enabled.
             Provider URL              Enter the URL for the JNDI provider in the format:
                                       protocol://host:port
                                       You can use any protocol, for example:
                                       http, https, t3, t3s, iiop, iiops
             JNDI Request Timeout      The JNDI request timeout in milliseconds. The default of zero (0)
                                       means no timeout.
             User Name                 If access to the target JNDI provider requires a user name and
                                       password, enter a user name in the User Name field, and the
                                       associated password in the Password and Confirm Password
                                       fields.
                                       These fields are optional, and required only if the JNDI tree is
                                       secured.
             Password                  Enter the associated password.
             Confirm Password          Enter the same password you entered for the Password field.


4.9 Proxy Servers
             Use this page to configure and edit a proxy server resource after you create a new
             proxy server.

             Table 4–31     Proxy Server Configuration Options
             Option                    Description
             Description               Enter a description of the proxy server resource.
             User Name                 Enter the user name used for proxy authentication.
             Password                  Enter the password associated with the user name.
             Confirm Password          Enter the same password you entered for the Password field.




                                                                              User Interface Reference 4-39
Message Flow Design Palette


                   Table 4–31 (Cont.) Proxy Server Configuration Options
                   Option                  Description
                   Host-Port Parameters    The list of proxy server hosts. You can configure multiple proxy
                                           servers for each proxy server resource. This enables Oracle Service
                                           Bus to perform load balancing and offer fault tolerance features for
                                           the proxy server resource.
                                           The following options are available:
                                           ■   Click Add and specify the following information to configure
                                               a new proxy server for the resource:
                                           ■   Server Host: The host name or IP address of the proxy server.
                                               The Server Host name for the Oracle Service Bus proxy server
                                               must be identical to the server host name of the actual proxy
                                               server.
                                           ■   Clear Text Port: The proxy server clear-text port number.
                                           ■   SSL Port: The proxy server SSL port number.
                                           ■   Select a proxy server in the list and edit the Host-Port
                                               Parameters.
                                           ■   Select a proxy server in the list and click Delete to remove it
                                               from the resource configuration.


4.10 Message Flow Design Palette
                   The Message Flow Design Palette lists all the nodes and actions you can use to
                   construct a message flow for a proxy service. To insert a node or an action into a
                   message flow, drag the item from the palette to the Message Flow Editor. When you
                   drag an item to the palette, one or more target icons indicate that you can drop the
                   dragged item in that position on the palette. When you drag the item onto a target, the
                   target icon is highlighted to show that you can drop the item there.
                   You can also add nodes and actions to message flows by right-clicking an object in the
                   Message Flow Editor and choosing a node or action from the Insert, Insert Into, or
                   Insert After submenus. You can also add an error handler by selecting the Add Error
                   Handler command. These submenus and commands are context sensitive. That is,
                   they appear only when it is legal to add the item into the selected context in the
                   message flow.
                   The Message Flow Design Palette is organized into the following categories:
                   ■   Section 4.10.1, "Message Flow Nodes"
                   ■   Section 4.10.2, "Message Flow Route Actions - Communication Actions"
                   ■   Section 4.10.3, "Message Flow Route Actions - Flow Control Actions"
                   ■   Section 4.10.4, "Message Flow Stage Actions - Communication Actions"
                   ■   Section 4.10.5, "Message Flow Stage Actions - Flow Control Actions"
                   ■   Section 4.10.6, "Message Flow Stage Actions - Message Processing Actions"
                   ■   Section 4.10.7, "Message Flow Stage Actions - Reporting Actions"


4.10.1 Message Flow Nodes
                   The following table describes the nodes you can add to a message flow:




4-40 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Design Palette



              Table 4–32      Message Flow Nodes
              Node                      Description
              Conditional branch        A branch node allows processing to proceed down exactly one of
                                        several possible paths.
                                        For configuration properties, see Section 4.11.3, "Conditional
                                        Branch Node Properties."
              Operational branch        An operational branch node determines what branch to follow
                                        based on specified operations.
                                        For configuration properties, see Section 4.11.17, "Operational
                                        Branch Node Properties."
              Pipeline pair             A pipeline pair node consists of a request pipeline and a response
                                        pipeline.
                                        For configuration properties, see Section 4.11.18, "Pipeline Pair
                                        Node Properties."
              Route                     Route node actions define the handling of messages as they flow
                                        through the route node.
                                        For configuration properties, see Section 4.11.27, "Route Node
                                        Properties."
              Stage                     A stage node is a container of actions.
                                        For configuration properties, see Section 4.11.33, "Stage Node
                                        Properties."
              Error handler             An error handler provides the logic for resending errors in the
                                        message flow.
                                        For configuration properties, see Section 4.11.7, "Error Handler
                                        Node Properties."


4.10.2 Message Flow Route Actions - Communication Actions
              The following table describes the communication actions you can add to a route in a
              message flow:

              Table 4–33      Message Flow Route Node Communication Actions
              Action                    Description
              Dynamic routing           A dynamic routing action assigns a route for a message based on
                                        routing information available in an XQuery resource.
                                        For configuration properties, see Section 4.11.6, "Dynamic Routing
                                        Action Properties."
              Routing                   A routing action identifies a target service for the message and
                                        configures how the message is routed to that service:
                                        For configuration properties, see Section 4.11.28, "Routing Action
                                        Properties."
              Routing table             A routing table action assigns a set of routes wrapped in a
                                        switch-style condition table. Different routes are selected based
                                        upon the results of a single XQuery expression.
                                        For configuration properties, see Section 4.11.30, "Routing Table
                                        Action Properties."


4.10.3 Message Flow Route Actions - Flow Control Actions
              The following table describes the flow control action you can add to a route in a
              message flow:


                                                                               User Interface Reference 4-41
Message Flow Design Palette



                   Table 4–34      Message Flow Route Node Flow Control Actions
                   Action                    Description
                   If-then                   An if-then action performs an action or a set of actions
                                             conditionally, based on the Boolean result of an XQuery
                                             expression.
                                             For configuration properties, see Section 4.11.9, "If-Then Action
                                             Properties."


4.10.4 Message Flow Stage Actions - Communication Actions
                   The following table describes the communication actions you can add to a stage in a
                   message flow:

                   Table 4–35      Message Flow Stage Node Communication Actions
                   Action                    Description
                   Dynamic Publish           A dynamic publish action publishes a message to a service
                                             identified by an XQuery expression
                                             For configuration properties, see Section 4.11.5, "Dynamic Publish
                                             Action Properties."
                   Publish                   A publish action publishes a message to a statically specified
                                             service.
                                             For configuration properties, see Section 4.11.19, "Publish Action
                                             Properties."
                   Publish Table             A publish table action publishes a message to zero or more
                                             statically specified services. Switch-style condition logic is used to
                                             determine at run time which services will be used for the publish.
                                             For configuration properties, see Section 4.11.20, "Publish Table
                                             Action Properties."
                   Routing Options           A routing options action modifies any or all of the following
                                             properties in the outbound request: URI, Quality of Service, Mode,
                                             Retry parameters, Message Priority.
                                             For configuration properties, see Section 4.11.29, "Routing Options
                                             Action Properties."
                   Service Callout           A service callout action configures a synchronous (blocking)
                                             callout to an Oracle Service Bus-registered proxy or business
                                             service.
                                             For configuration properties, see Section 4.11.31, "Service Callout
                                             Action Properties."
                   Transport Headers         A transport header action sets the transport header values in
                                             messages
                                             For configuration properties, see Section 4.11.34, "Transport
                                             Headers Action Properties."


4.10.5 Message Flow Stage Actions - Flow Control Actions
                   The following table describes the flow control actions you can add to a stage in a
                   message flow:




4-42 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Design Palette



             Table 4–36     Message Flow Stage Node Flow Control Actions
             Action                    Description
             For-Each                  A for-each action iterates over a sequence of values and executes a
                                       block of actions
                                       For configuration properties, see Section 4.11.8, "For-Each Action
                                       Properties."
             If-Then                   An if-then action performs an action or set of actions conditionally,
                                       based on the Boolean result of an XQuery expression.
                                       For configuration properties, see Section 4.11.9.1, "If Action and
                                       Else-If Action Properties."
             Raise error               A raise-error action raises an exception with a specified error code
                                       (a string) and description.
                                       For configuration properties, see Section 4.11.21, "Raise Error
                                       Action Properties."
             Reply                     A reply action specifies that an immediate reply be sent to the
                                       invoker.
                                       For configuration properties, see Section 4.11.24, "Reply Action
                                       Properties."
             Skip                      A skip action specifies that at run time, the execution of the current
                                       stage is skipped and the processing proceeds to the next stage in
                                       the message flow.
                                       For configuration properties, see Section 4.11.32, "Skip Action
                                       Properties."
             Resume                   A resume action resumes message flow after an error is handled by
                                      an error handler.
                                       For configuration properties, see Section 4.11.26, "Resume Action
                                       Properties."


4.10.6 Message Flow Stage Actions - Message Processing Actions
             The following table describes the message processing actions you can add to a stage in
             a message flow:

             Table 4–37     Message Flow Stage Node Message Processing Actions
             Action                    Description
             Assign                    An assign action assigns the result of an XQuery expression to a
                                       context variable.
                                       For configuration properties, see Section 4.11.2, "Assign Action
                                       Properties."
             Delete                    A delete action deletes a context variable or a set of nodes specified
                                       by an XPath expression.
                                       For configuration properties, see Section 4.11.4, "Delete Action
                                       Properties."
             Insert                    An insert action inserts the result of an XQuery expression at an
                                       identified place relative to nodes selected by an XPath expression.
                                       For configuration properties, see Section 4.11.10, "Insert Action
                                       Properties."
             Java callout              A Java callout action invokes a Java method from the pipeline.
                                       For configuration properties, see Section 4.11.11, "Java Callout
                                       Action Properties."



                                                                              User Interface Reference 4-43
Message Flow Editor


                      Table 4–37 (Cont.) Message Flow Stage Node Message Processing Actions
                      Action                  Description
                      MFL transform           A MFL transform action converts non-XML to XML or XML to
                                              non-XML in the pipeline.
                                              For configuration properties, see Section 4.11.16, "MFL Transform
                                              Action Properties."
                      Rename                  A rename action renames elements selected by an XPath
                                              expression without modifying the contents of the element.
                                              For configuration properties, see Section 4.11.22, "Rename Action
                                              Properties."
                      Replace                 A replace action replaces a node or the contents of a node specified
                                              by an XPath expression.
                                              For configuration properties, see Section 4.11.23, "Replace Action
                                              Properties."
                      Validate                A validate action validates elements selected by an XPath
                                              expression against an XML schema element or a WSDL resource.
                                              For configuration properties, see Section 4.11.35, "Validate Action
                                              Properties."


4.10.7 Message Flow Stage Actions - Reporting Actions
                      The following table describes the reporting actions you can add to a stage in a message
                      flow:

                      Table 4–38   Message Flow Stage Node Reporting Actions
                      Action                  Description
                      Alert                   An alert action ends an alert notification based on pipeline
                                              message context.
                                              For configuration properties, see Section 4.11.1, "Alert Action
                                              Properties."
                      Log                     A log action constructs a message to be logged.
                                              For configuration properties, see Section 4.11.12, "Log Action
                                              Properties."
                      Report                  A report action enables message reporting for a proxy service.
                                              For configuration properties, see Section 4.11.25, "Report Action
                                              Properties."


4.11 Message Flow Editor
                      Use this editor to construct a proxy service message flow. To insert a node or an action
                      into a message flow, drag the item from the Message Flow Design Palette to the editor.
                      When you drag an item to the editor, one or more target icons indicate that you can
                      drop the dragged item in that position on the palette. When you drag the item onto a
                      target, the target icon is highlighted to show that you can drop the item there.
                      You can also add nodes and actions to message flows by right-clicking an object in the
                      Message Flow Editor and choosing a node or action from the Insert, Insert Into, or
                      Insert After submenus. You can also add an error handler by selecting the Add Error
                      Handler command. These submenus and commands are context sensitive. That is,
                      they appear only when it is legal to add the item into the selected context in the
                      message flow.



4-44 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor


When you select a node or action in the editor, a configuration page for that item is
displayed in the Properties view. You can add or modify configuration properties in
those pages. The message flow node and action properties configuration pages are:
■   Section 4.11.1, "Alert Action Properties"
■   Section 4.11.13, "Message Flow Properties - Comment"
■   Section 4.11.2, "Assign Action Properties"
■   Section 4.11.3, "Conditional Branch Node Properties"
■   Section 4.11.3, "Conditional Branch Node Properties"
■   Section 4.11.4, "Delete Action Properties"
■   Section 4.11.5, "Dynamic Publish Action Properties"
■   Section 4.11.6, "Dynamic Routing Action Properties"
■   Section 4.11.7, "Error Handler Node Properties"
■   Section 4.11.7, "Error Handler Node Properties"
■   Section 4.11.8, "For-Each Action Properties"
■   Section 4.11.9.1, "If Action and Else-If Action Properties"
■   Section 4.11.9, "If-Then Action Properties"
■   Section 4.11.10, "Insert Action Properties"
■   Section 4.11.11, "Java Callout Action Properties"
■   Section 4.11.12, "Log Action Properties"
■   Section 4.11.16, "MFL Transform Action Properties"
■   Section 4.11.14, "Message Flow Properties - Namespaces"
■   Section 4.11.17, "Operational Branch Node Properties"
■   Section 4.11.18, "Pipeline Pair Node Properties"
■   Section 4.11.19, "Publish Action Properties"
■   Section 4.11.20, "Publish Table Action Properties"
■   Section 4.11.21, "Raise Error Action Properties"
■   Section 4.11.22, "Rename Action Properties"
■   Section 4.11.23, "Replace Action Properties"
■   Section 4.11.24, "Reply Action Properties"
■   Section 4.11.25, "Report Action Properties"
■   Section 4.11.26, "Resume Action Properties"
■   Section 4.11.27, "Route Node Properties"
■   Section 4.11.28, "Routing Action Properties"
■   Section 4.11.29, "Routing Options Action Properties"
■   Section 4.11.30, "Routing Table Action Properties"
■   Section 4.11.31, "Service Callout Action Properties"
■   Section 4.11.32, "Skip Action Properties"
■   Section 4.11.33, "Stage Node Properties"


                                                             User Interface Reference 4-45
Message Flow Editor


                      ■   Section 4.11.34, "Transport Headers Action Properties"
                      ■   Section 4.11.35, "Validate Action Properties"
                      ■   Section 4.11.15, "Message Flow Properties - Variables"


4.11.1 Alert Action Properties
                      In a message flow, use the alert action to generate alerts based on message context in a
                      pipeline, to send to an alert destination. Unlike SLA alerts, notifications generated by
                      the alert action are primarily intended for business purposes, or to report errors, and
                      not for monitoring system health. Alert destinations should be configured and chosen
                      with this in mind. To learn more about alert destinations, see Section 4.1.1, "Alert
                      Destination Editor."
                      If pipeline alerting is not enabled for the service or at the domain level, the configured
                      alert action is bypassed during message processing.
                      In the Message Flow Editor, click an alert action to display its properties in the
                      Properties view. Use these properties pages to configure the selected alert action. The
                      pages are:
                      ■   Alert
                      ■   Comment
                      ■   Namespaces
                      ■   Variables
                      The Alert page has the following options:

                      Table 4–39    Alert Action Options
                      Option                   Description
                      Expression               An XQuery expression that specifies the message context to be
                                               added to the alert message.
                                               To create or edit an expression, click <Expression> (or the
                                               expression_fragment, if one is already defined) to display the
                                               XQuery/XSLT Expression Editor.
                      Summary                  A short description of the alert. This will be the subject line in the
                                               case of an e-mail notification and can contain no more than 80
                                               characters. If no description is provided, a predefined subject line
                                               that reads, "ALSB Alert," will be used instead.
                      Severity                 The severity level for this alert. Select a level from the list.
                      Destination              The destination for the alert. To specify a destination, click Browse
                                               to select an appropriate resource.


                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.


4.11.2 Assign Action Properties
                      In a message flow, use an assign action to assign the result of an XQuery expression to
                      a context variable.




4-46 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor


              In the Message Flow Editor, click an assign action to display its properties in the
              Properties view. Use these properties pages to configure the selected assign action. The
              pages are:
              ■   Assign
              ■   Comment
              ■   Namespaces
              ■   Variables
              The Assign page has the following options:

              Table 4–40    Assign Action Options
              Option                   Description
              Expression               An expression that creates the data that is assigned to variable
                                       named in the Variable field, described below.
                                       To create or edit an expression, click <Expression> (or the
                                       expression_fragment, if one is already defined) to display the
                                       XQuery/XSLT Expression Editor.
              Variable                 The variable to which the value created in the XQuery expression
                                       described above is assigned.


              Use the Comment page to add a comment, if desired:
              Use the Namespaces page to see a list of defined namespaces or to create a new one.
              Use the Variables page to see a list of defined context variables or to create a new one.


4.11.3 Conditional Branch Node Properties
              In a message flow, use a conditional branch node to specify that message processing is
              to proceed along exactly one of several possible paths, based on a result returned by an
              XPath condition.
              Conditional branching is driven by a lookup table with each branch tagged with a
              simple, but unique, string value. A variable in the message context is designated as the
              lookup variable for that node, and at run time, its value is used to determine which
              branch to follow. If no branch matches the value of the lookup variable, the default
              branch is followed. You should design the proxy service in such a way that the value
              of the lookup variable is set before reaching the branch node.
              In the Message Flow Editor, click a conditional branch node to display its properties in
              the Properties view. Use these properties pages to configure the selected conditional
              branch node. The pages are:
              ■   Flow
              ■   Conditional Branch
              The Flow page has the following options:

              Table 4–41    Flow Options
              Option                   Description
              Name                     Enter a name for the conditional branch node.
              Description              Enter a description for the conditional branch node.




                                                                             User Interface Reference 4-47
Message Flow Editor


                      The Conditional Branch page has the following options:

                      Table 4–42   Conditional Branch Options
                      Option                   Description
                      XPath                    The XPath expression that defines the condition to be evaluated for
                                               determining the branch to follow.
                                               To create or edit the XPath expression, click <XPath> (or the
                                               XPath_fragment, if one is already defined) to display the XPath
                                               Expression Editor.
                      Variable                 Enter a context variable.


                      A conditional branch node also always contains one or more branches, which are
                      configured as part of the node.
                      Click a Branch icon in a conditional branch node to display the Branch properties page
                      in the Properties view. Use these properties pages to configure the selected branch
                      node in a message flow. This page has the following options.

                      Table 4–43   Branch Options
                      Option                   Description
                      Label                    A label for the branch. This label appears as the label for the
                                               branch in the Message Flow Editor.
                      Operator                 Select an operator from the list to be used with the value in the
                                               next field, for creating the condition on which the branch is based.
                      Value                    Enter a value to be used with the operator in the previous field, for
                                               creating the condition


4.11.4 Delete Action Properties
                      In a message flow, use a delete action to delete a context variable or a set of nodes
                      specified by an XPath expression.
                      In the Message Flow Editor, click a delete action to display its properties in the
                      Properties view. Use these properties pages to configure the selected delete action. The
                      pages are:
                      ■   Delete
                      ■   Comment
                      ■   Namespaces
                      ■   Variables
                      The Delete page has the following options. Select Variable to delete a variable, or
                      select XPath to delete an XPath expression.

                      Table 4–44   Delete Action Options
                      Option                   Description
                      Variable                 Select this radio button to delete a context variable. Enter the name
                                               of the context variable to delete in the adjacent text field.




4-48 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor


              Table 4–44 (Cont.) Delete Action Options
              Option                   Description
              XPath                    Select this radio button to delete all nodes selected by an XPath
                                       expression. Then:
                                       ■    To create or edit the XPath expression, click <XPath> (or the
                                            XPath_fragment, if one is already defined) to display the
                                            XPath Expression Editor.
                                       ■    After saving the expression, in the In Variable field, enter the
                                            context variable containing the nodes specified in the XPath
                                            expression.


              Use the Comment page to add a comment, if desired:
              Use the Namespaces page to see a list of defined namespaces or to create a new one.
              Use the Variables page to see a list of defined context variables or to create a new one.


4.11.5 Dynamic Publish Action Properties
              In a message flow, use a dynamic publish action to publish a message to a service
              specified by an XQuery expression.
              In the Message Flow Editor, click a dynamic publish action to display its properties in
              the Properties view. Use these properties pages to configure the selected dynamic
              publish action. The pages are:
              ■   Dynamic Publish
              ■   Comment
              ■   Namespaces
              ■   Variables
              The Dynamic Publish page has the following options:

              Table 4–45   Dynamic Publish Action Options
              Option               Description
              Service              An XQuery expression that defines the service to which a message is to
                                   be published.
                                   To create or edit the expression, click <Expression> (or the expression_
                                   fragment, if one is already defined) to display the XQuery/XSLT
                                   Expression Editor.
                                   In the editor, enter an Xquery expression or select an XQuery resource
                                   that provides a result similar to:
                                   <ctx:route>
                                   <ctx:service
                                   isProxy="false">project/folder/businessservicename</ctx:servic
                                   e>
                                   <ctx:operation>foo</ctx:operation>
                                   </ctx:route>
                                   Note: The element operation is optional.


              Use the Comment page to add a comment, if desired:
              Use the Namespaces page to see a list of defined namespaces or to create a new one.
              Use the Variables page to see a list of defined context variables or to create a new one.


                                                                              User Interface Reference 4-49
Message Flow Editor



4.11.6 Dynamic Routing Action Properties
                      In a message flow, use a dynamic routing action to assign a route for a message based
                      on routing information available in an XQuery resource.
                      This is a terminal action, which means you cannot add another action after this one.
                      However, this action can contain request and response actions.
                      In the Message Flow Editor, click a dynamic routing action to display its properties in
                      the Properties view. Use these properties pages to configure the selected dynamic
                      routing action. The pages are:
                      ■   Dynamic Routing
                      ■   Comment
                      ■   Namespaces
                      ■   Variables
                      The Dynamic Routing page has the following option:

                      Table 4–46   Dynamic Routing Action Properties
                      Option                   Description
                      Service                  An XQuery expression that defines the route to be taken by a
                                               message.
                                               To create or edit an expression, click <Expression> (or the
                                               expression_fragment, if one is already defined) to display the
                                               XQuery/XSLT Expression Editor.
                                               In the XQuery/XSLT Expression editor, enter an Xquery
                                               expression, the result of which is similar to:
                                               <ctx:route>
                                                   <ctx:service isProxy='true'>{$service}</ctx:service>
                                                   <ctx:operation>{$operation}</ctx:operation>
                                               </ctx:route>
                                               Note: If a proxy service is being invoked, isProxy attribute
                                               should be set to true.
                                               ■   The service name is the fully qualified service name.
                                               ■   The operation element is optional


                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.


4.11.7 Error Handler Node Properties
                      Use an error handler to specify what should happen if an error occurs in a specific
                      location in the message flow.
                      All configuration for an error handler is in one or more stages contained by the error
                      handler. See Section 4.11.33, "Stage Node Properties."


4.11.8 For-Each Action Properties
                      In a message flow, use the for-each action to iterate over a sequence of values and
                      execute a block of actions.



4-50 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor


              In the Message Flow Editor, click a for-each action to display its properties in the
              Properties view. Use these properties pages to configure the selected for-each action.
              The pages are:
              ■   For Each
              ■   Comment
              ■   Namespaces
              ■   Variables
              The For Each page has the following options:

              Table 4–47    For-Each Action Properties
              Option                   Description
              For Each Variable        Enter the name of the variable on whose contents the for-each
                                       action(s) will be executed.
              XPath                    An XPath expression that specifies where in the structure of the
                                       containing context variable the variable specified in the For Each
                                       Variable field is located.
                                       To create or edit the XPath expression, click <XPath> (or the
                                       XPath_fragment, if one is already defined) to display the XPath
                                       Expression Editor.
              In Variable              The context variable containing the variable on whose contents the
                                       for-each action(s) will be executed.
              Index Variable           A variable containing the current number of iterations in the loop.
              Count Variable           A variable containing the total number of iterations.


              Use the Comment page to add a comment, if desired:
              Use the Namespaces page to see a list of defined namespaces or to create a new one.
              Use the Variables page to see a list of defined context variables or to create a new one.


4.11.9 If-Then Action Properties
              In a message flow, use an if-then action to perform an action or a set of actions
              conditionally, based on the Boolean result of an XQuery expression.
              In the Message Flow Editor, click an if-then action to display its properties in the
              Properties view. Use this page to review and configure general properties of the if-then
              action. The pages are:
              ■   Comment
              ■   Namespaces
              ■   Variables
              An if-then action always contains an if condition plus zero or more else-if condition,
              where you define the conditions for the if-then action. An if-then action also always
              contains an else condition, which defines the default path when no other condition is
              met.
              Click an If:condition icon or an Else-If:condition icon in an if-then action to display
              their properties in the Properties view. Use these properties pages to configure the
              selected condition. This If condition properties page has the following option.




                                                                             User Interface Reference 4-51
Message Flow Editor


                      4.11.9.1 If Action and Else-If Action Properties
                      If actions and else-if actions are always contained by an if-then action. The message
                      follows the path associated with the first if action or else-id action that returns true.

                      Table 4–48   If and Else-If Action Options
                      Option                    Description
                      Condition                 A condition in an if action or an if-else action that contains one of
                                                the tests for following alternative paths in the flow.
                                                To add or edit a condition
                                                1.   Click <Condition> (or condition_fragment, if one is already
                                                     defined) to display the Condition Editor. Define a condition to
                                                     be evaluated in the if-then action.
                                                2.   When you finish editing the condition, add one or more action
                                                     that will be executed when the condition evaluates to true. To
                                                     add an action, drag it from the Design Palette to associate with
                                                     the condition.
                                                In the route node, you can select only the routing, dynamic
                                                routing, or routing table actions. However, these actions can
                                                contain request and response actions.
                                                To add an Else-If condition:
                                                Click add condition. Then add one or more actions to this else-if
                                                condition, as described above for the If condition. Continue with as
                                                many else-if conditions as your logic requires.
                                                Condition actions can be nested.


                      4.11.9.2 Else Action Properties
                      The else action does not have associate properties. When all if and else-if conditions
                      return false, the message proceeds down the path associated with the else action.
                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.


4.11.10 Insert Action Properties
                      In a message flow, use an insert action to insert the result of an XQuery expression at
                      an identified place relative to nodes selected by an XPath expression.
                      In the Message Flow Editor, click an insert action to display its properties in the
                      Properties view. Use these properties pages to configure the selected insert action. The
                      pages are:
                      ■   Insert
                      ■   Comment
                      ■   Namespaces
                      ■   Variables
                      The Insert page has the following options:




4-52 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor



              Table 4–49   Insert Action Options
              Option                   Description
              Expression               The XQuery expression used to create the data that will be inserted
                                       at a specified location in a named variable.
                                       To create or edit an expression, click <Expression> (or the
                                       expression_fragment, if one is already defined) to display the
                                       XQuery/XSLT Expression Editor.
              Location                 The location where the insert is performed, relative to the result of
                                       the XPath expression: Options are:
                                       ■   Before—as sibling before each element or attribute selected by
                                           the XPath expression
                                       ■   After—as sibling after each element or attribute selected by
                                           the XPath expression
                                       ■   As first child of—as first child of each element identified by
                                           the XPath expression. An error occurs if the result of the XPath
                                           returns attributes.
                                       ■   As last child of—as last child of each element identified by the
                                           XPath expression. An error occurs if the XPath returns
                                           attributes.
              XPath                    Valid configurations include those in which:
                                       ■   XQuery and XPath expressions both return elements.
                                       ■   The XQuery and XPath expressions both return attributes—in
                                           which case, the XQuery expression must return attributes.
                                       To create or edit the XPath expression, click <XPath> (or the
                                       XPath_fragment, if one is already defined) to display the XPath
                                       Expression Editor.
              Variable                 The context variable whose contents are evaluated by the XPath
                                       variable defined above. Enter the name of the variable in the text
                                       field.


              Use the Comment page to add a comment, if desired:
              Use the Namespaces page to see a list of defined namespaces or to create a new one.
              Use the Variables page to see a list of defined context variables or to create a new one.


4.11.11 Java Callout Action Properties
              In a message flow, use a Java callout action to invoke a Java method or an EJB business
              service from within the message flow.
              In the Message Flow Editor, click a Java Callout action to display its properties in the
              Properties view. Use these properties pages to configure the selected Java callout
              action. The pages are:
              ■   Java Callout
              ■   Comment
              ■   Namespaces
              ■   Variables
              The Java Callout page has the following options:




                                                                              User Interface Reference 4-53
Message Flow Editor



                      Table 4–50    Java Callout Action Options
                      Option                   Description
                      Method                   An external Java method to be called from the message flow.
                                               Click Browse to select a class and a static method from an archived
                                               resource. Once you have selected the class and method, a table
                                               appears on the Java Callout Properties page:
                                               The Name column lists all the method’s arguments.
                                               The Action column provides an <Expression> or expression_
                                               fragment link to the XQuery/XSLT Expression Editor, where you
                                               can create an expression to retrieve a value for the argument.
                                               Data types for the arguments must be one of the following:
                                               ■   Java.lang.String
                                               ■   Primitive types, and their corresponding class types (e.g., int
                                                   vs. java.lang.Integer)
                                               ■   java.lang.BigDecimal, and java.lang.BigInteger
                                                   (these types are used in financial calculations where round-off
                                                   errors or overflows are not tolerable)
                                               ■   only org.apache.xbeans.XmlObject and no typed XML
                                                   beans.
                                               ■   byte[]
                                               ■   java.lang.String[] (INPUT ONLY)
                                               ■   XmlObject [ ] (INPUT ONLY)
                                               ■   javax.activation.DataSource
                                               If the type of the input value you enter does not match the
                                               declared input argument type, Oracle Service Bus tries to
                                               automatically typecast input values to the declared type of the
                                               input argument. For example a string value of "123" will be
                                               converted to integer 123 if the declared type of the input argument
                                               is java primitive int.
                      Return Parameter as      Return Parameter as Reference: This option makes the return
                      Reference                value of a Java Callout invocation a <java-content ref="jcid">
                                               reference element regardless of its actual type, where jcid is the key
                                               to the object in the pipeline object repository. In the Result value
                                               field, enter the name of the variable to contain the java-content
                                               reference. This option lets you work with a referenced object in the
                                               message flow in addition to the pipeline XML for providing
                                               passthrough, performing message enrichment with Java Callout
                                               and inline actions, or performing message transformation between
                                               Java and non-Java transports. For more information, see "Sending
                                               and Receiving Java Objects in Messages" in the Oracle Fusion
                                               Middleware Developer's Guide for Oracle Service Bus at
                                               http://www.oracle.com/pls/as1111/lookup?id=OSBDV1
                                               874.
                      Result Type              The variable to which the result is assigned. The label for the field
                                               indicates the data type of the result.
                                               If the result is a byte array (the only possible array returned), the
                                               binary-content XML element is returned.




4-54 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor


              Table 4–50 (Cont.) Java Callout Action Options
              Option                   Description
              Service Account          An optional Service Account, which can be specified if there is a
                                       security context for this Java method.
                                       Click Browse to select a service account.
                                       In the case of fixed and mapped service accounts, the
                                       userid/password from the service account is authenticated in the
                                       local system and the security context propagated to the Java
                                       callout. In the case of passthru, the security context is
                                       propagated to the Java callout. This context is the message level
                                       context if defined (with WS-Security). Otherwise, it is the transport
                                       level context.


              Use the Comment page to add a comment, if desired:
              Use the Namespaces page to see a list of defined namespaces or to create a new one.
              Use the Variables page to see a list of defined context variables or to create a new one.


4.11.12 Log Action Properties
              In a message flow, use the log action to construct a message to be logged and to define
              a set of attributes with which it will be logged.
              In the Message Flow Editor, click a log action to display its properties in the Properties
              view. Use these properties pages to configure the selected log action. The pages are:
              ■   Log
              ■   Comment
              ■   Namespaces
              ■   Variables
              The Log page has the following options:

              Table 4–51   Log Action Options
              Option                   Description
              Expression               The message context to be logged through XQuery expressions on
                                       context variables.
                                       To create or edit an expression, click <Expression> (or the
                                       expression_fragment, if one is already defined) to display the
                                       XQuery/XSLT Expression Editor.
              Annotation               Notes for this log action. These notes are logged along with the
                                       result of the previously defined expression.




                                                                             User Interface Reference 4-55
Message Flow Editor


                      Table 4–51 (Cont.) Log Action Options
                      Option                   Description
                      Severity                 The severity of the log message. Options are:
                                               ■   Debug - While your application is under development, you
                                                   might find it useful to create and use messages that provide
                                                   verbose descriptions of low-level activity within the
                                                   application.
                                               ■   Info -Used for reporting normal operations; a low-level
                                                   informational message.
                                               ■   Warning - A suspicious operation or configuration has
                                                   occurred but it might not affect normal operation.
                                               ■   Error - A user error has occurred. The system or application
                                                   can handle the error with no interruption and limited
                                                   degradation of service.


                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.


4.11.13 Message Flow Properties - Comment
                      In the Message Flow Editor, click a node or an action to display its properties in the
                      Properties view. For most nodes and actions, one of the properties pages displayed (as
                      a tab) is the Comment page. Use this page to add an optional comment about the item
                      selected in the message flow.


4.11.14 Message Flow Properties - Namespaces
                      In the Message Flow Editor, click a node or an action to display its properties in the
                      Properties view. For most nodes and actions, one of the properties pages displayed (as
                      a tab) is the Namespaces page. Use this page to see a list of defined namespaces or to
                      create a new namespace.


4.11.15 Message Flow Properties - Variables
                      In the Message Flow Editor, click a node or an action to display its properties in the
                      Properties view. For many nodes and actions, one of the properties pages displayed (as
                      a tab) is the Variables page. Use this page to see a list of all the predefined and
                      user-defined context variables. Click Add to define a new variable.


4.11.16 MFL Transform Action Properties
                      In a message flow, use a MFL (Message Format Language) transform action to convert
                      message content from XML to non-XML, or vice versa, in the message pipeline. An
                      MFL is a specialized XML document used to describe the layout of binary data. It is an
                      Oracle proprietary language used to define rules to transform formatted binary data
                      into XML data, or vice versa.
                      In the Message Flow Editor, click a MFL transform action to display its properties in
                      the Properties view. Use these properties pages to configure the selected MFL
                      transform action. The pages are:
                      ■   MFL Transform
                      ■   Comment


4-56 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor


             ■   Namespaces
             ■   Variables
             The MFL Transform page has the following options:

             Table 4–52   MFL Transform Action Options
             Option                   Description
             Apply Transform          The type of transform to be applied.
                                      Select XML to Non-XML or Non-XML to XML, according to your
                                      requirement.
             on <Expression>          The variable on which the MFL transformation action is to be
                                      performed.
                                      Click <Expression> (or the expression_fragment, if one is already
                                      defined) to display the XQuery/XSLT Expression Editor, where
                                      you can specify the variable.
                                      This input must be text or binary when transforming to XML, and
                                      must be XML when transforming to non-XML. Binary content in
                                      the message context is represented by the binary-content XML
                                      element. This XML should be the result of the Xquery expression
                                      when the input needs to be binary.
             Resource                 Select this option to perform an MFL transform action using a
                                      static MFL resource. Click Browse to select the resource.
             Resource From            Select this option to specify an MFL resource that will perform the
                                      transform action.
                                      Click <Expression> (or the expression_fragment, if one is already
                                      defined) to display the XQuery/XSLT Expression Editor, where
                                      you can specify the MFL resource that will perform the action, in
                                      the format project/folder/MFLresourcename.
             Variable                 The name of the variable to which the result of this transform
                                      action is to be assigned. The result will be a binary-content XML
                                      element.


             Use the Comment page to add a comment, if desired:
             Use the Namespaces page to see a list of defined namespaces or to create a new one.
             Use the Variables page to see a list of defined context variables or to create a new one.


4.11.17 Operational Branch Node Properties
             In a message flow, use an operational branch node to configure branching based on
             operations defined in a WSDL.
             When message flows define WSDL-based proxy services, operation-specific processing
             is required. Instead of configuring a branching node based on operations manually,
             Oracle Service Bus provides a branching node that automatically branches based on
             operations. In other words, when you create an operational branch node in a message
             flow, you can quickly build your branching logic based on the operations defined in
             the WSDL, because the Oracle Service Bus plug-ins present those operations in the
             operational branch node configuration page.
             A branch node allows processing to proceed along exactly one of several possible
             paths. Branching is driven by an XPath-based switch table. Each branch in the table
             specifies a condition (for example, <500) that is evaluated in order down the message
             flow against a single XPath expression (for example, ./ns:
             PurchaseOrder/ns:totalCost on $body). Whichever condition is satisfied first


                                                                             User Interface Reference 4-57
Message Flow Editor


                      determines which branch is followed. If no branch condition is satisfied, then the
                      default branch is followed. A branch node may have several descendants in the
                      message flow: one for each branch, including the default branch.
                      When you add an operational branch node to a message flow in the Message Flow
                      Editor, the node contains an initial conditional branches based on the first operation
                      defined in the WSDL, plus a default branch, as shown in Figure 4–1.

                      Figure 4–1 Branch Node With "Submit" Operation From WSDL and "Default" Branch




                      Click the node itself (the Operational Branch Node icon or the bounding box
                      connected to the icon) to display the Flow properties page in the Properties view. You
                      can provide a name and a description for the node on that page.
                      Click an operational branch icon to display the properties for that operational branch
                      on the Operational Branch page. That page contains a list of all the operations defined
                      in the WSDL. You can select a different operation for that branch. You can also click the
                      plus sign in the operational branch node, in the Message Flow Editor, to add another
                      operation branch.
                      After you have added all the branches, add nodes and stages to them to define the
                      processing for each branch.


4.11.18 Pipeline Pair Node Properties
                      In a message flow, use a pipeline pair node to define request and response processing.
                      Message flows can include zero or more pipeline pair nodes: request and response
                      pipelines for the proxy service (or for the operations on the service), and error handler
                      pipelines that can be defined for stages, pipelines, and proxy services. Pipelines can
                      include one or more stages, which in turn include actions.
                      A pipeline pair always contains a request pipeline and a response pipeline. Add stages
                      and actions to those pipelines, as needed.
                      In the Message Flow Editor, click a pipeline pair node to display its properties in the
                      Properties view. Use this properties page to configure the selected pipeline pair node.
                      The options are:

                      Table 4–53    Pipeline Pair Node Options
                      Option                   Description
                      Name                     Enter a name for the pipeline pair node.
                      Description              Enter a description for the pipeline pair node.




4-58 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor



4.11.19 Publish Action Properties
              In a message flow, use a publish action to identify a statically specified target service
              for a message and to configure how the message is packaged and sent to that service.
              In the Message Flow Editor, click a publish action to display its properties in the
              Properties view. Use these properties pages to configure the selected publish action.
              The pages are:
              ■   Publish
              ■   Comment
              ■   Namespaces
              ■   Variables
              The Publish page has the following options:

              Table 4–54    Publish Action Options
              Option                   Description
              Service                  The target service for the publish action. Click Browse to select a
                                       proxy service or business service from a list.
              Invoking                 The operation to be invoked on the target service.
                                       This option appears only if the selected service defines any
                                       operations.
                                       To configure how the message is packaged and sent to the service,
                                       in the Request Actions field, click Add an Action. Then select an
                                       action to associate with the service. You can add more than one
                                       action.
              Use inbound operation    Select this option to make the outbound operation the same as the
              for outbound             inbound operation.
                                       This option appears only if the selected service defines any
                                       operations.


              Use the Comment page to add a comment, if desired:
              Use the Namespaces page to see a list of defined namespaces or to create a new one.
              Use the Variables page to see a list of defined context variables or to create a new one.


4.11.20 Publish Table Action Properties
              In a message flow, use a publish table action to publish a message to zero or more
              statically specified services. Switch-style condition logic is used to determine at run
              time which services will be used for the publish. A publish table action contains one or
              more case actions to define conditions for following alternative paths (by default, via
              publish actions), as well as a default path to a default publish action. To fully define a
              publish table action, you must configure the publish table action, its case actions, and
              its publish actions (and any other actions you may add).
              When you add a publish table action to a message flow in the Message Flow Editor,
              the publish table action contains a case action with a path to a publish action plus a
              default case action with a path to a default publish action, as shown in Figure 4–2.
              Click add condition to add another condition to the publish table.




                                                                              User Interface Reference 4-59
Message Flow Editor


                      Figure 4–2 Publish Table Action




                      4.11.20.1 Publish Table Properties
                      In the Message Flow Editor, click the publish table action itself (the Publish Table icon
                      or the bounding box connected to the icon) to display the Publish Tables properties
                      page in the Properties view. Use these properties pages to configure the selected
                      publish table action. The pages are:
                      ■   Publish Table
                      ■   Comment
                      ■   Namespaces
                      ■   Variables
                      The Publish Table properties page has the following option:

                      Table 4–55   Publish Table Options
                      Option                   Description
                      Expression               An XQuery expression, which at run time returns the value upon
                                               which the routing decision will be made.
                                               To create or edit an XQuery expression, click <Expression> (or the
                                               expression_fragment, if one is already defined) to display the
                                               XQuery/XSLT Expression Editor.


                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.

                      4.11.20.2 Case Action Properties
                      In the Message Flow Editor, click a case action to display its properties in the
                      Properties view. Use this properties page to configure the selected case action, as
                      described below:




4-60 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor



              Table 4–56   Case Action Options
              Option                   Description
              Operator and Value       Select a comparison operator from the list. Then enter a value
                                       against which the value returned from the XQuery expression
                                       defined for the publish table action will be evaluate


              4.11.20.3 Publish Action Properties
              See Section 4.11.19, "Publish Action Properties."


4.11.21 Raise Error Action Properties
              In a message flow, use the raise error action to raise an exception with a specified error
              code (a string) and description.
              In the Message Flow Editor, click a raise error action to display its properties in the
              Properties view. Use these properties pages to configure the selected raise error action.
              The pages are:
              ■   Raise Error
              ■   Comment
              ■   Namespaces
              ■   Variables
              The Raise Error page has the following options:

              Table 4–57   Raise Error Action Options
              Option                   Description
              Code                     The error code to be raised.
              Message                  Description of the error code


              Use the Comment page to add a comment, if desired:
              Use the Namespaces page to see a list of defined namespaces or to create a new one.
              Use the Variables page to see a list of defined context variables or to create a new one.

              4.11.21.1 Transactions
              If a service is transactional, a triggered Raise Error action aborts the transaction in the
              request (asynchronous) or in either the request or response (synchronous). For
              example, you may introspect messages and determine conditions under which a Raise
              Error action should occur even if no SOAP fault occurs, and Raise Error causes the
              transaction to be aborted.


4.11.22 Rename Action Properties
              In a message flow, use the rename action to rename elements selected by an XPath
              expression without modifying the contents of the element.
              In the Message Flow Editor, click a rename action to display its properties in the
              Properties view. Use these properties pages to configure the selected rename action.
              The pages are:
              ■   Rename



                                                                            User Interface Reference 4-61
Message Flow Editor


                      ■   Comment
                      ■   Namespaces
                      ■   Variables
                      The Rename page has the following options:

                      Table 4–58    Rename Action Options
                      Option                   Description
                      XPath                    An XPath expression used to specify the data (in the named
                                               variable) that will be renamed.
                                               To create or edit the XPath expression, click <XPath> (or the
                                               XPath_fragment, if one is already defined) to display the XPath
                                               Expression Editor.
                      In Variable              The context variable that holds the element you want to rename.
                                               Enter the name of the variable in this field.
                      Localname                A local name to use to rename the selected elements.
                                               Enter the local name in this field.
                      Namespace                A namespace to use when renaming the selected elements.
                                               Enter the namespace in this field.


                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.


4.11.23 Replace Action Properties
                      In a message flow, use a replace action to replace a node or the contents of a node
                      specified by an XPath expression. The node or its contents are replaced with the value
                      returned by an XQuery expression.
                      A replace action can be used to replace simple values, elements and even attributes.
                      An XQuery expression that returns nothing is equivalent to deleting the identified
                      nodes or making them empty, depending upon whether the action is replacing entire
                      nodes or just node contents.
                      In the Message Flow Editor, click a replace action to display its properties in the
                      Properties view. Use these properties pages to configure the selected replace action.
                      The pages are:
                      ■   Replace
                      ■   Comment
                      ■   Namespaces
                      ■   Variables
                      The Replace page has the following options:




4-62 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor



              Table 4–59    Replace Action Options
              Option                    Description
              XPath                     The XPath expression used to specify the data (in the named
                                        variable) that will be replaced.
                                        To create or edit the XPath expression, click <XPath> (or the
                                        XPath_fragment, if one is already defined) to display the XPath
                                        Expression Editor.
              Variable                  Enter a context variable.
              Expression                The XQuery expression used to create the data that replaces the
                                        data specified by the XPath in the named variable.
                                        To create or edit an expression, click <Expression> (or the
                                        expression_fragment, if one is already defined) to display the
                                        XQuery/XSLT Expression Editor.
              Replace entire node       When you finish editing the XQuery expression, select one of the
                                        options:
              or
                                        ■   Replace entire node—to specify that the nodes selected by the
              Replace node contents
                                            XPath expression you defined are replaced along with all of its
                                            contents
                                        ■   Replace node contents—to specify that the node is not
                                            replaced; only the contents are replaced.
                                        Note: Selecting the Replace node contents option and leaving the
                                        XPath field blank is more efficient than selecting the Replace
                                        entire node option and setting the XPath to ./*


              Use the Comment page to add a comment, if desired:
              Use the Namespaces page to see a list of defined namespaces or to create a new one.
              Use the Variables page to see a list of defined context variables or to create a new one.


4.11.24 Reply Action Properties
              In a message flow, use the reply action to specify that an immediate reply be sent to
              the invoker.
              The reply action can be used in the request, response, or error pipeline. You can
              configure it to result in a reply with success or failure. In the case of reply with failure
              where the inbound transport is HTTP, the reply action specifies that an immediate
              reply is sent to the invoker.
              In the Message Flow Editor, click a reply action to display its properties in the
              Properties view. Use these properties pages to configure the selected reply action. The
              pages are:
              ■    Assign
              ■    Comment
              ■    Namespaces
              ■    Variables
              The Reply page has the following options:




                                                                             User Interface Reference 4-63
Message Flow Editor



                      Table 4–60     Reply Action Options
                      Option                    Description
                      With Success              Select With Success to reply that the message was successful, or
                                                select With Failure to reply that the message has a fault. Reply
                      or
                                                With Failure will cause a transaction, if started by Oracle Service
                      With Failure              Bus, to be aborted.


                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.


4.11.25 Report Action Properties
                      In a message flow, use the report action to enable message reporting for a proxy
                      service.
                      In the Message Flow Editor, click a report action to display its properties in the
                      Properties view. Use these properties pages to configure the selected report action. The
                      pages are:
                      ■    Report
                      ■    Comment
                      ■    Namespaces
                      ■    Variables
                      The Report page has the following option:

                      Table 4–61     Report Action Options
                      Option                    Description
                      Expression                The XQuery expression used to create the data that will be
                                                reported.
                                                To create or edit an expression, click <Expression> (or the
                                                expression_fragment, if one is already defined) to display the
                                                XQuery/XSLT Expression Editor.
                      Search Keys               When you finish editing the XQuery expression, click Add a Key
                                                to add one or more key value pairs to be used to extract key
                                                identifiers from any message context variable or message payload.
                                                (The rest of the message is ignored.) The keys are a convenient way
                                                to identify a message.
                                                In the Key Name: Name field enter a name for the key.In the Key
                                                Value column, click <XPath> to create the XPath expression in the
                                                XPath Expression Editor.In the In variable field, enter the name of
                                                the variable on which the expression will be executed.


                      For example, consider a report action configured on an error handler in a stage. The
                      action reports the contents of the fault context variable in the event of an error. The
                      report action is configured as follows:
                      ■    Key name = errorCode
                      ■    Key value = ./ctx:errorCode in variable fault




4-64 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor


                   Each time this action is executed at run time, a message is reported via the Reporting
                   Data Stream. The following table shows the results after the report action is executed
                   twice.

Table 4–62     Report Action Execution Results
Report Index                 DB TimeStamp             Inbound Service                        Error Code
errorCode=BEA-382505         04/26/07 9:45 AM         MortgageBroker/ProxySvcs/loanGate BEA-382505
                                                      way3
errorCode=BEA-382505         04/26/07 9:45 AM         same                                   BEA-382505


                   Use the Comment page to add a comment, if desired:
                   Use the Namespaces page to see a list of defined namespaces or to create a new one.
                   Use the Variables page to see a list of defined context variables or to create a new one.


4.11.26 Resume Action Properties
                   In a message flow, use the resume action to resume message flow after an error is
                   handled by an error handler. This action has no parameters and can only be used in
                   error pipelines.
                   In the Message Flow Editor, click a resume action to display its properties in the
                   Properties view. Use these properties pages to configure the selected resume action.
                   The pages are:
                   ■   Comment
                   ■   Namespaces
                   ■   Variables
                   Use the Comment page to add a comment, if desired:
                   Use the Namespaces page to see a list of defined namespaces or to create a new one.
                   Use the Variables page to see a list of defined context variables or to create a new one.


4.11.27 Route Node Properties
                   In a message flow, use the route node to handle request and response dispatching of
                   messages to and from business services. No other nodes can follow a route node.
                   In the Message Flow Editor, click a route node to display its properties in the
                   Properties view. Use these properties pages to configure the selected route node. The
                   pages are:
                   ■   Route
                   ■   Namespaces
                   ■   Variables
                   The Route page has the following option:

                   Table 4–63    Route Node Options
                   Option                   Description
                   Name                     Enter a name for the route node.
                   Description              Enter a description for the route node.



                                                                                  User Interface Reference 4-65
Message Flow Editor


                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.


4.11.28 Routing Action Properties
                      In a message flow, use a routing action to identify a target service for the message and
                      configure how the message is routed to that service.
                      This is a terminal action, which means you cannot add another action after this one.
                      However, this action can contain request and response actions.
                      In the Message Flow Editor, click a routing action to display its properties in the
                      Properties view. Use these properties pages to configure the selected routing action.
                      The pages are:
                      ■   Routing
                      ■   Comment
                      ■   Namespaces
                      ■   Variables
                      The Routing page has the following option:

                      Table 4–64    Routing Action Options
                      Option                   Description
                      Service                  The target service for the routing action. Click Browse to select a
                                               proxy service or business service from a list.
                      Invoking                 The operation to be invoked on the target service.
                                               This option appears only if the selected service defines any
                                               operations.
                                               To configure how the message is packaged and sent to the service,
                                               in the Request Actions field, click Add an Action. Then select an
                                               action to associate with the service. You can add more than one
                                               action.
                      Use inbound operation    Select this option to make the outbound operation the same as the
                      for outbound             inbound operation.
                                               This option appears only if the selected service defines any
                                               operations.


                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.


4.11.29 Routing Options Action Properties
                      In a message flow, use a routing options action to modify any or all of the following
                      properties in the outbound request: URI, Quality of Service, Mode, Retry parameters,
                      Message Priority.
                      In the Message Flow Editor, click a routing options action to display its properties in
                      the Properties view. Use these properties pages to configure the selected routing
                      options action. The pages are:



4-66 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor


              ■     Routing Options
              ■     Comment
              ■     Namespaces
              ■     Variables
              The Routing Options page has the following option:

              Table 4–65       Routing Options Action Properties
              Option                      Description
              URI                         Select this option to set the URI for the outbound message:
                                          To create or edit an expression, click <Expression> (or the
                                          expression_fragment, if one is already defined) to display the
                                          XQuery/XSLT Expression Editor.
                                          Enter an expression that returns a URI. This overrides the URI for
                                          the invoked service.
                                          Note: When routing to another proxy service, the URI override has
                                          no effect.
              QoS                         Select this option to set the Quality of Service element:
                                          Select a QoS option from the list. This overrides the default.
              Mode                        Select this option to set the mode to Request or Request-Response.
                                          Select the mode from the list.
                                          Note: This is normally already automatically set, based on the
                                          interface of the service invoked. However, in some cases like Any
                                          Soap or Any XML services, this is not so.
              Retry Interval              Select this option to set the retry interval.
                                          Specify the number of seconds between retries. This overrides the
                                          default configured with the invoked service.
              Retry Count                 Select this option to set the retry count.
                                          Specify the number of retries the system must attempt before
                                          discontinuing the action. This overrides the default configured
                                          with the invoked service.
              Priority                    Select this option to set the message priority:
                                          To create or edit an expression, click <Expression> (or the
                                          expression_fragment, if one is already defined) to display the
                                          XQuery/XSLT Expression Editor.
                                          Enter an expression that returns a positive integer.


              Use the Comment page to add a comment, if desired:
              Use the Namespaces page to see a list of defined namespaces or to create a new one.
              Use the Variables page to see a list of defined context variables or to create a new one.


4.11.30 Routing Table Action Properties
              In a message flow, use a routing table to select different routes based upon the results
              of a single XQuery expression. A routing table action contains a set of routes wrapped
              in a switch-style condition table.
              This is a terminal action, which means you cannot add another action after this one.
              However, this action can contain request and response actions.



                                                                                   User Interface Reference 4-67
Message Flow Editor


                      When you add a routing table action to a message flow in the Message Flow Editor,
                      the routing table action contains a case action with a path to a routing action plus a
                      default case action with a path to a default routing action, as shown in Figure 4–3.
                      Click add condition to add another condition to the routing table.

                      Figure 4–3 Routing Table Action




                      4.11.30.1 Routing Table Properties
                      In the Message Flow Editor, click the publish table action itself (the Publish Table icon
                      or the bounding box connected to the icon) to display the Publish Tables properties
                      page in the Properties view. Use these properties pages to configure the selected
                      publish table action. The pages are:
                      ■   Routing Table
                      ■   Comment
                      ■   Namespaces
                      ■   Variables
                      The Routing Table properties page has the following option:

                      Table 4–66   Routing Table Options
                      Option                   Description
                      Expression               An XQuery expression, which at run time returns the value upon
                                               which the routing decision will be made.
                                               To create or edit an XQuery expression, click <Expression> (or the
                                               expression_fragment, if one is already defined) to display the
                                               XQuery/XSLT Expression Editor.


                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.




4-68 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor


              4.11.30.2 Case Action Properties
              In the Message Flow Editor, click a case action to display its properties in the
              Properties view. Use this properties page to configure the selected case action, as
              described below:

              Table 4–67   Case Action Options
              Option                   Description
              Operator and Value       Select a comparison operator from the list. Then enter a value
                                       against which the value returned from the XQuery expression
                                       defined for the routing table action will be evaluate


              4.11.30.3 Routing Action Properties
              See Section 4.11.28, "Routing Action Properties."


4.11.31 Service Callout Action Properties
              In a message flow, use a service callout action to configure a synchronous (blocking)
              callout to an Oracle Service Bus-registered proxy or business service.
              In the Message Flow Editor, click a service callout action to display its properties in the
              Properties view. Use these properties pages to configure the selected service callout
              action. The pages are:
              ■    Service Callout
              ■    Comment
              ■    Namespaces
              ■    Variables
              The Service Callout page has the following options:

              Table 4–68   Service Callout Action Options
              Option                   Description
              Service                  The target service for the service callout action. Click Browse to
                                       select a proxy service or business service from a list.
              Invoking                 The operation to be invoked on the target service.
                                       This option appears only if the selected service is WSDL-based and
                                       has operations that can be invoked on the service.
                                       Note: Selecting an operation, which Oracle Service Bus requires for
                                       many reasons, does not guarantee that only the selected operation
                                       is invoked. For example, if you select OperationA, but a message
                                       also contains an invocation for Operation B, then OperationB will
                                       be invoked as well.
              Configure Soap Body      Specify how you want to configure the request and response
                                       messages by selecting one of the following options:
              or
                                       ■    Select Configure SOAP Body to configure the SOAP Body.
              Configure Payload
                                            Selecting this option allows you to use $body directly.
              Document
                                            This option supports SOAP-RPC encoded, which is not
                                            supported when configuring payload parameters or
                                            document.
                                       ■    Select Configure Payload Parameters or Configure Payload
                                            Document to configure the payload.




                                                                              User Interface Reference 4-69
Message Flow Editor


                      Subsequent configuration options depend on the kind of service you selected and on
                      the kind of configuration options you chose. Table 4–69 shows the options available for
                      each service type.

                      Table 4–69   SOAP Body, Payload Parameters, and Payload Document Options
                                                                          "Configure Payload Parameters"
                      Selected Service       "Configure SOAP Body"        Options or "Configure Payload
                      Type                   Options                      Document" Options
                      SOAP RPC               See "SOAP Request Body       See "Request Parameters and
                                             and SOAP Response Body"      Response Parameters" (optional)
                                             in the following table.
                                                                          (Optional) See "SOAP Request
                                             (Optional) See "SOAP         Header and SOAP Response Header"
                                             Request Header and SOAP      in the following table.
                                             Response Header" in the
                                             following table.
                      SOAP Document          See "SOAP Request Body       See "Request Document and Response
                      and Any SOAP           and SOAP Response Body"      Document" in the following table.
                                             in the following table.
                                                                          (Optional) See "SOAP Request
                                             (Optional) See "SOAP         Header and SOAP Response Header"
                                             Request Header and SOAP      in the following table.
                                             Response Header" in the
                                             following table.
                      XML, Any XML, and See "SOAP Request Body            See "Request Document and Response
                      Messaging         and SOAP Response Body"           Document" in the following table.
                                        in the following table.


                      The following table provides instructions for each of the options listed in the previous
                      table.

                      Table 4–70 SOAP Body, Payload Parameters, and Payload Document Option
                      Descriptions
                      For These Options...          Follow These Steps...
                      SOAP Request Body and         To configure these options:
                      SOAP Response Body
                                                    ■   In the SOAP Request Body field, enter the name of a
                                                        variable to hold the XML of the SOAP Body element for
                                                        the callout request.
                                                    ■   In the SOAP Response Body field, enter the name of a
                                                        variable to which the XML of the SOAP Body element on
                                                        the response will be bound.
                      SOAP Request Header and       To configure these options:
                      SOAP Response Header
                                                    ■   In the SOAP Request Header field, enter the name of a
                                                        variable to hold the XML of the SOAP Header element
                                                        for the callout request
                                                        You must wrap the input document for the SOAP
                                                        Request Header with
                                                        <soap-env:Header>...</soap-env:Header>.
                                                    ■   In the SOAP Response Header field, enter the name of a
                                                        variable to which the XML of the SOAP Headers on the
                                                        response, if any, will be bound.




4-70 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor


Table 4–70 (Cont.) SOAP Body, Payload Parameters, and Payload Document Option
Descriptions
For These Options...        Follow These Steps...
Request Parameters and      To configure options:
Response Parameters
                            ■   In the Request Parameters fields, enter names for the
                                variables that will be evaluated at run time to provide
                                values for the request parameters.
                                You must provide only the core payload documents in
                                the input variable—the SOAP package is created for you
                                by Oracle Service Bus. In other words, do not wrap the
                                input document with
                                <soap-env:Body>...</soap-env:Body>.
                                For example, when creating a body input variable that is
                                used for this request parameter, you would define that
                                variable’s contents using the XPath statement body/* (to
                                remove the wrapper soap-env:Body), not $body
                                (which results in keeping the soap-env:Body
                                wrapper).
                            ■   In the Response Parameters fields, enter the names of
                                the variables to which the responses will be assigned at
                                run time.
Request Document and        To configure these options:
Response Document
                            ■   In the Request Document Variable field, enter the name
                                of a variable to assign a request document to.
                                For SOAP Document-type services, the variable is
                                evaluated at runtime to form the body of the SOAP
                                message sent to the service. For Any XML services, the
                                variable is evaluated at runtime to form the body of the
                                XML message sent to the service.
                                For SOAP Document-type services and for Any XML
                                services, you provide only the core payload documents
                                in the input variable—the SOAP package is created for
                                you by Oracle Service Bus. In other words, do not wrap
                                the input document with
                                <soap-env:Body>...</soap-env:Body>.
                                For example, when creating a body input variable that is
                                used for this request parameter, you would define that
                                variable’s contents using the XPath statement body/* (to
                                remove the wrapper soap-env:Body), not $body
                                (which results in keeping the soap-env:Body wrapper).
                                For Messaging services, the variable is evaluated to form
                                the body of the message, based on the type of data
                                expected by the service. The following restrictions apply
                                to variables used with Messaging services:
                            ■   For services that expect binary data, the variables must
                                have a ctx:binary-content element.
                            ■   For services that expect MFL data, the variable must
                                have the XML equivalent.
                            ■   For services that expect text data, the variable is a string.
                            ■   In the Response Document Variable field, enter the
                                name of the variable to which a response document will
                                be assigned at run time.


Optionally, add one or more transport header actions. For more information about
transport header actions, see Section 4.11.34, "Transport Headers Action Properties."



                                                              User Interface Reference 4-71
Message Flow Editor



                               Note:  In addition to the transport headers you specify, headers are
                               added by the Oracle Service Bus binding layer.


                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.


4.11.32 Skip Action Properties
                      In a message flow, use the skip action to specify that at run time, the execution of the
                      current stage is skipped and the processing proceeds to the next stage in the message
                      flow. This action has no parameters and can be used in the request, response or error
                      pipelines.
                      In the Message Flow Editor, click a skip action to display its properties in the
                      Properties view. Use these properties pages to configure the selected skip action. The
                      pages are:
                      ■   Comment
                      ■   Namespaces
                      ■   Variables
                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.


4.11.33 Stage Node Properties
                      In a message flow, use a stage node as a container for actions in a message flow. You
                      can string multiple stages together, to compartmentalize processing logic.
                      In the Message Flow Editor, click a stage node to display its properties in the
                      Properties view. Use these properties pages to configure the selected stage node. The
                      pages are:
                      ■   Stage
                      ■   Namespaces
                      ■   Variables
                      The Stage page has the following options:

                      Table 4–71    Start Node Options
                      Option                   Description
                      Name                     Enter a name for the stage node.
                      Description              Enter a description of the stage node.


                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.


4.11.34 Transport Headers Action Properties
                      In a message flow, use a transport header action to set header values in messages.


4-72 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Message Flow Editor


In the Message Flow Editor, click a transport headers action to display its properties in
the Properties view. Use these properties pages to configure the selected transport
headers action. The pages are:
■   Transport Headers
■   Comment
■   Namespaces
■   Variables
The Transport Header page has the following options:

Table 4–72   Transport Header Action Options
Option                   Description
Direction                From the Set Transport Headers for list, select one of the
                         following, to specify to the run time which of the message context
                         locations are to be modified:
                         ■   Outbound Request - Select this option to set header values for
                             outbound requests (the messages sent out by a proxy service
                             in route, publish, or service callout actions). This header
                             element is located in the message context as follows:
                             $outbound/ctx:transport/ctx:request/tp:headers
                         ■   Inbound Response - Select this option to set header values for
                             inbound responses (the response messages a proxy service
                             sends back to clients). This header element is located in the
                             message context as follows:
                             $inbound/ctx:transport/ctx:response/tp:headers
Pass All Headers         Select this option to pass all headers through from the inbound
                         message to the outbound message or vice versa. Every header in
                         the source set of headers will be copied to the target header set,
                         overwriting any existing values in the target header set.
Headers                  Click Add Header to add a header to the Headers table. Then
                         configure each header as described in the following rows.
                         You can add as many headers as necessary to this table. You do not
                         have to order the headers in the table, because the run time
                         declares namespaces and places header elements in their proper
                         order when generating the corresponding XML.
Headers: Name:           Specify a header by doing either of the following:
                         ■   From the list in the Name column, select a header name. The
                             list contains all of the predefined header names for the target
                             transport (for example, Content-Type for HTTP transports,
                             JMSCorrelationID for JMS transports, etc.).
                         ■   Enter a header name in the Other field. If that header name is
                             not one of the predefined headers for this service’s transport,
                             it becomes a user-header, as defined by the transport
                             specification.




                                                               User Interface Reference 4-73
Message Flow Editor


                      Table 4–72 (Cont.) Transport Header Action Options
                      Option                   Description
                      Headers: Action          Select one of the options in this column to specify how to set the
                                               header’s value:
                                               ■   Set Header to Expression
                                                   Selecting this option allows you to use an XQuery or XSLT
                                                   expression to set the value of the header. The expression can
                                                   be simple (for example, "text/xml") or a complex XQuery or
                                                   XSLT expression.
                                                   Because the Oracle Service Bus transport layer defines the
                                                   XML representation of all headers as string values, the result
                                                   of any expression is converted to a string before the header
                                                   value is set. Expressions that return nothing result in the
                                                   header value being set to the empty string. You cannot delete a
                                                   header using an expression.
                                                   Caution: Not all of the header settings you can specify in this
                                                   action are honored at run time.
                                               ■   Delete Header
                                                   Specifies that the header is removed from the request or
                                                   response metadata.
                                               ■   Copy Header from Inbound Request (if you are setting
                                                   transport headers for the Outbound Request)
                                                   or
                                                   Copy Header from Outbound Response (if you are setting
                                                   transport headers for the Inbound Response)
                                                   Specifies that this header is copied directly from the
                                                   corresponding header of the same name from the inbound
                                                   message to the outbound message and vice versa. For
                                                   example, if you want to set the SOAPAction header for an
                                                   outbound request, selecting Copy Header from Inbound
                                                   Request causes the run time to copy the value from the
                                                   SOAPAction request header of $inbound. In the case of
                                                   inbound response headers, the source of the header to copy is
                                                   the response headers of $outbound.
                                                   If the Copy Header option is selected for a header that does
                                                   not exist in the source, this option is ignored and no action is
                                                   performed on the target for this header.


                      Use the Comment page to add a comment, if desired:
                      Use the Namespaces page to see a list of defined namespaces or to create a new one.
                      Use the Variables page to see a list of defined context variables or to create a new one.


4.11.35 Validate Action Properties
                      In a message flow, use a validate action to validate elements selected by an XPath
                      expression against an XML schema element or a WSDL resource. You can validate
                      global elements only; Oracle Service Bus does not support validation against local
                      elements.
                      In the Message Flow Editor, click a validate action to display its properties in the
                      Properties view. Use these properties pages to configure the selected validate action.
                      The pages are:
                      ■   Validate



4-74 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
SMTP Servers


           ■    Comment
           ■    Namespaces
           ■    Variables
           The Validate page has the following options:

           Table 4–73      Validate Action Options
           Option                     Description
           XPath                      An XPath expression that specifies the elements to be validated.
                                      To create or edit the XPath expression, click <XPath> (or the
                                      XPath_fragment, if one is already defined) to display the XPath
                                      Expression Editor.
           In Variable                The name of the variable to hold the element to be validated. Enter
                                      the name of the variable, or, if Content Assist is on, press
                                      Ctrl-Space to display a list of declared variables.
           Against Resource           An XML schema element or a WSDL resource against which the
                                      elements selected by the XPath expression (in the XPath field
                                      described above) are validated.
           Save Variable              To save the result of this validation (a boolean result), select Save
                                      Variable and enter the name of the variable in which you want to
           or
                                      save the result.
           Raise Error
                                      Alternatively, to raise an error if the element fails validation
                                      against the WSDL or XML schema element, select Raise Error.


           Use the Comment page to add a comment, if desired:
           Use the Namespaces page to see a list of defined namespaces or to create a new one.
           Use the Variables page to see a list of defined context variables or to create a new one.


4.12 Modify JAR Dependencies Dialog
           In Oracle Service Bus, JAR resources can contain classes that depend on other classes
           in different JARs. Use the Modify JAR Dependencies page to add or remove referenced
           JAR resources. Use the Up and Down buttons to reorder the hierarchy (order of
           precedence) of referenced JARs. For more information, see "JARs" in the Oracle Fusion
           Middleware Administrator's Guide for Oracle Service Bus at
           http://www.oracle.com/pls/as1111/lookup?id=OSBAG898.

           Table 4–74      Modify JAR Dependencies Properties
           Option                     Description
           Available JARs             The project name and the name of the folder, if applicable, in
                                      which the JAR resources reside. This column shows all available
                                      JARs in the current workspace.
           JAR references             The name and path of the referenced JAR resources. This column
                                      shows all the JARs currently configured as dependencies.


4.13 SMTP Servers
           The following editor and wizard are provided for working with SMTP servers:
           ■    Section 4.13.1, "Edit SMTP Server Page"
           ■    Section 4.13.2, "New SMTP Server Resource Wizard"


                                                                             User Interface Reference 4-75
UDDI Registry Configuration Page



4.13.1 Edit SMTP Server Page
                   Use this page to view the details of an SMTP server and edit the configuration, if
                   required. For descriptions of the fields, see the Section 4.13.2, "New SMTP Server
                   Resource Wizard."
                   If you rename an SMTP resource, the new name is automatically updated in the any
                   e-mail business services that reference the SMTP resource in the endpoint URI.


4.13.2 New SMTP Server Resource Wizard
                   Use this page to configure a new SMTP server resource.

                   Table 4–75      New SMTP Server Options
                   Option                     Description
                   Description                Enter a description for this SMTP server resource.
                   Server URL                 Enter the URL that points to the SMTP server. This is a required
                                              field.
                   Port Number                Enter a port number for the SMTP server (the default port is 25).
                                              This is a required field.
                   User Name                  If access to the target SMTP server requires a user name and
                                              password, enter a user name in the User Name field, and the
                                              associated password in the Password and Confirm Password
                                              fields.
                                              These fields are optional, and required only if the SMTP server is
                                              secured.
                   Password                   Enter the associated password.
                   Confirm Password           Enter the same password you entered for the Password field.


4.14 UDDI Registry Configuration Page
                   Use this page to configure a UDDI registry resource. This page is displayed in the New
                   UDDI Registry Resource wizard and in the UDDI Configuration editor.
                   For more information, see "UDDI" in the Oracle Fusion Middleware Administrator's Guide
                   for Oracle Service Bus at
                   http://www.oracle.com/pls/as1111/lookup?id=OSBAG392.

                   Table 4–76      UDDI Registry Options
                   Option                     Description
                   Description                Enter a description of the registry.
                   Inquiry URL                The URL of the Inquiry API endpoint used for locating and
                                              importing services. Enter an inquiry URL in the format:
                                              http://host:port/APPLICATION_SERVER_
                                              CONTEXT/uddi/inquiry
                   Publish URL                The URL of the Publish API endpoint used for publishing services.
                                              Enter a publish URL in the format:
                                              http://host:port/APPLICATION_SERVER_
                                              CONTEXT/uddi/publishing
                   Security URL               The URL of the Security API endpoint used for getting an
                                              authentication token so that you can publish to the registry. Enter a
                                              security URL in the format: http://host:port/APPLICATION_
                                              SERVER_CONTEXT/uddi/security



4-76 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Resource Management


              Table 4–76 (Cont.) UDDI Registry Options
              Option                   Description
              Subscription URL         The URL of the Subscription API endpoint used for subscribing to
                                       registry changes, creating a registry subscription, and listening for
                                       changes to imported services. Enter a subscription URL in the
                                       format:
                                       http://host:port/APPLICATION_SERVER_
                                       CONTEXT/uddi/subscription
                                       By default, the value for APPLICATION_SERVER_CONTEXT in
                                       the installer is registry.
              User Name                Enter the user name to log into the registry console.
              Password (Confirm        Enter the password to log into the registry console.
              Password)
              Validate                 Click Validate to validate that a connection can be made to the
                                       configured registry.


4.15 Outline view - Oracle Service Bus
              This view displays a hierarchical view, or outline, of a structured file that is currently
              open in the editor area. The contents of this view are editor-specific.
              In Oracle Service Bus, when the proxy service is editor is open and the Message Flow
              Editor is selected, the Outline view displays a hierarchical view of the nodes and
              actions in the message flow. When the Message Flow Editor is displayed, you can
              switch between the hierarchical view and a thumbnail view of the service.
              In thumbnail view, when the entire message flow does not fit in the editor, a blue mask
              appears in the outline view to show what portion of the flow is visible in the editor. To
              display a different portion of the flow, you can drag the mask to the portion of the flow
              you want to display in the editor.


4.16 Resource Management
              The following are provided for managing resources:
              ■   Section 4.16.1, "Preferences dialog - Oracle Service Bus - Type Associations Page"
              ■   Section 4.16.2, "References View"
              ■   Section 4.16.3, "Select Clone Target Dialog"
              ■   Section 4.16.3, "Select Clone Target Dialog"


4.16.1 Preferences dialog - Oracle Service Bus - Type Associations Page
              Use this page to associate one or more file extensions with an Oracle Service Bus
              resource type.

              Table 4–77   Type Association Properties
              Option                   Description
              Resource Types           This pane lists all the available types of Oracle Service Bus
                                       resources. Select a type to display its assigned file extension
                                       associated with the type.




                                                                              User Interface Reference 4-77
New Service Key Provider Resource



4.16.2 References View
                   Use this page to view resource dependencies. This view shows your current selection
                   whether it is in the Project Explorer or the active editor.

                   Table 4–78       Reference Dependency Properties
                   Option                      Description
                   Referenced By               A list of the resources outside of this project, folder, or resource
                                               that are dependent on resources inside this project or folder, or this
                                               resource.
                   References                  A list of the resources outside of this project, folder, or resource on
                                               which resources inside this project or folder, or this resource
                                               depends.


4.16.3 Select Clone Target Dialog
                   Use this dialog to specify where to clone a project, as a new project or as a folder under
                   a different project.

                   Table 4–79       Clone Project Options
                   Option                      Description
                   Name                        Enter a name for the new (cloned) project.
                   As project                  Select As project to clone the project as another project, that is, as a
                                               peer to the other projects.
                   or
                                               Select As folder in location to convert a project (and its contents)
                   As folder in location
                                               into a folder under a project. When you select this option, you
                                               must also select the new location.


4.16.4 Select a Resource Dialog
                   Use this dialog to select a resource, appropriate to the context, that has been created in
                   or imported into the Oracle Service Bus plug-ins. When you click Browse from an
                   editor or a wizard, this dialog displays the available resources that are appropriate for
                   the context. The dialog has different names, depending on the type of resource
                   displayed, for example, Select a WSDL, Select a MFL, Select an XML Schema, etc. In
                   some cases, the dialog displays a hierarchical list of items contained in each resource.
                   For example, the Select an XML Schema dialog lists elements and types defined in the
                   schemas. The Select a WSDL dialog displays ports and bindings defined in the
                   WSDLs.
                   In some cases, for example, the Select a WSDL dialog, you can click the Consume
                   button to open the Service Consumption dialog, where you can consume services from
                   the following resource types: Oracle Enterprise Repository, file system, UDDI, URI,
                   workspace: consume a service residing in the current workspace.


4.17 New Service Key Provider Resource
                   Use this page to configure a service key provider resource after you create one.

                   Table 4–80       New Service Key Provider Options
                   Option                      Description
                   Description                 Enter a description for the service key provider.




4-78 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Service Accounts


           Table 4–80 (Cont.) New Service Key Provider Options
           Option                      Description
           Encryption Key              To enter an Encryption Key:
                                       1.   Next to Encryption Key, select the Key check box.
                                       2.   Enter a key alias that maps to an X.509 certificate and that
                                            supports encryption, or click Browse to display the key aliases
                                            from the key store that your realm’s PKI credential mapper is
                                            using.
                                       3.   Enter the password that you use to secure access to the key
                                            store. (You set the password when you create the key store.)
                                       When you associate this service key provider with a proxy service,
                                       Oracle Service Bus embeds the X.509 certificate into the proxy
                                       service’s WSDL. The proxy service then uses this certificate to
                                       encrypt the messages that it sends to its endpoint. The proxy
                                       service uses the private key in the PKI credential to decrypt the
                                       messages that the endpoint returns.
           Digital Signature Key       To enter a Digital Signature Key:
                                       1.   Next to Digital Signature Key, select the Key check box.
                                       2.   Enter a key alias, or click Browse to display the key aliases
                                            from the key store that your realm’s PKI credential mapper is
                                            using.
                                       3.   Enter the password that you use to secure access to the key
                                            store. (You set the password when you create the key store.)
           SSL Client                  To enter an SSL Client Authentication Key:
           Authentication Key
                                       1.   Next to SSL Client Authentication Key, select the Key check
                                            box.
                                       2.   Enter a key alias, or click Browse to display the key aliases
                                            from the key store that your realm’s PKI credential mapper is
                                            using.
                                       3.   Enter the password that you use to secure access to the key
                                            store. (You set the password when you create the key store.)


4.18 New WS-Policy
           Web Services Policy Framework (WS-Policy) is an extensible XML-based framework
           that extends the configuration of a Web Service with domain specific security
           assertions and specifies the security requirements, expectations, and capabilities of the
           Web Service. In Oracle Service Bus, one of the primary uses of WS-Policy is
           configuring message-level security in proxy services and business services.
           Use this page to select a name and location for a new WS-Policy resource.

           Table 4–81    New WS-Policy Options
           Option                      Description
           Enter or select the parent Enter or select the name of the project or folder in which to locate a
           folder                     new WS-Policy resource.
           File Name                   Enter a name for this WS-Policy.


4.19 Service Accounts
           The following are provided for working with service accounts:
           ■   Section 4.19.1, "New Service Account Resource"


                                                                             User Interface Reference 4-79
Service Accounts


                   ■   Section 4.19.2, "Service Account Editor - General Configuration Page"
                   ■   Section 4.19.3, "Service Account Editor - Static User Configuration Page"
                   ■   Section 4.19.4, "Service Account Editor - User Mappings Configuration Page"


4.19.1 New Service Account Resource
                   Use the Service Account Resource editor to configure service account resource after
                   you create it.

                   Table 4–82    New Service Account Options
                   Option                   Description
                   Description              Enter a description for the service account.
                   Resource Type            ■   To create a service account that provides the user names and
                                                passwords that it receives from incoming client requests, select
                                                Pass Through and click Finish.
                                            ■   To create a service account that provides a user name and
                                                password that you save with the service account
                                                configuration, select Static. Continue as described in
                                                Section 4.19.3, "Service Account Editor - Static User
                                                Configuration Page."
                                            ■   To create a service account that maps the user name from one
                                                or more authenticated clients to user names and passwords
                                                that you specify, select Mapping. Continue as described in
                                                Section 4.19.4, "Service Account Editor - User Mappings
                                                Configuration Page."


4.19.2 Service Account Editor - General Configuration Page
                   Use this page to configure a service account resource, as described in the following
                   table.

                   Table 4–83    Service Account General Options
                   Option                   Description
                   Description              Enter a description for the service account.
                   Resource Type            Leave the resource type as is, or select a different resource type:
                                            ■   A Pass Through type provides the user names and passwords
                                                that it receives from incoming client requests.
                                            ■   A Static type provides a user name and password that you
                                                save with the service account configuration. Configure this
                                                type on the Service Account Editor - Static User Configuration
                                                Page.
                                            ■   A Mapping type maps the user name from one or more
                                                authenticated clients to user names and passwords that you
                                                specify. Configure this type on the Service Account Editor -
                                                User Mappings Configuration Page.


4.19.3 Service Account Editor - Static User Configuration Page
                   Use this to page to save a user name and password with the service account
                   configuration. The service account encodes this user name and password in the
                   outbound request.




4-80 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Expression Editors



              Table 4–84     Service Account Static User Options
              Option                    Description
              User Name                 Enter a user name for this service account.
              Password                  Enter the associated password.
              Confirm Password          Enter the same password you entered for the Password field.


4.19.4 Service Account Editor - User Mappings Configuration Page
              Use this to page to create a service account that maps the user name from one or more
              clients to user names and passwords that you specify.

              Table 4–85     Service Account User Mappings Options
              Option                  Description
              Remote Users            In the Remote User Name and Remote Password fields, enter the
                                      user name and password that you want to send in outbound
                                      requests.
                                      (Optional) Add additional remote users in the Remote Users table.
              Local User Mappings     To map authorized clients to remote user names and passwords, in the
                                      Local User Name field, enter the name that identifies a client that has
                                      been authenticated on its inbound request.
                                      If you have not already added this user in the Security Configuration
                                      module of the Oracle Service Bus Administration Console, do so
                                      before you use this mapping in a runtime environment. Oracle
                                      Service Bus lets you create a mapping for a non-existent local user,
                                      but the mapping will never match an authenticated user and will
                                      never be used.
                                      From the Remote User Name list, select the user name that you want
                                      to send in outbound requests for the authenticated user you specified
                                      in the Local User Name field.
              Map Anonymous           To map anonymous clients to remote user names, select the Map
              Requests                Anonymous Requests check box.
                                      From the Select Remote User list, select the user name that you want
                                      to send in outbound requests for all anonymous users.


4.20 Expression Editors
              The following editors help you to write expressions for use in services.
              ■   Section 4.20.1, "XQuery/XSLT Expression Editor"
              ■   Section 4.20.2, "XPath Expression Editor"
              ■   Section 4.20.3, "Condition Editor"


4.20.1 XQuery/XSLT Expression Editor
              Use the XQuery/XSLT Expression editor to create variable structures, define user
              namespaces, use predefined message context variables to build inline XQuery
              expressions, build inline XQuery expressions manually, and select XQuery or XSLT
              resources for execution as inline XQueries.
              The XQuery/XSLT Expression editor contains two panels, each containing three tabs.
              Use the panel on the left to write or construct the expression. The panel contains these
              pages (tabs):


                                                                               User Interface Reference 4-81
Expression Editors


                     ■   Section 4.20.5, "Expression Page"
                     ■   Section 4.20.6, "XQuery Resource Page"
                     ■   Section 4.20.7, "XSLT Resource Page"
                     ■   Section 4.20.8, "Dynamic XQuery Page"
                     Use the tabs in the panel on the right to manage the variables, namespaces, and
                     XQuery functions you can use to construct an XQuery or XSLT. The panel contains
                     these pages (tabs):
                     ■   Section 4.20.9, "Variable Structures Page"
                     ■   Section 4.20.10, "Namespace Definitions Page"
                     ■   Section 4.20.11, "XQuery Functions Page"


4.20.2 XPath Expression Editor
                     Use the XPath Expression Editor to create an XPath expression, which is then inserted
                     into the location from which you launched the editor.
                     The XPath Expression Editor contains these pages:
                     ■   Section 4.20.5, "Expression Page"
                     ■   Section 4.20.9, "Variable Structures Page"
                     ■   Section 4.20.10, "Namespace Definitions Page"
                     ■   Section 4.20.11, "XQuery Functions Page"
                     You can write an expression directly in the Expression text field, or you can drag
                     variables from the Variable Structure page and drag XQuery functions from the
                     XQuery Functions page to construct a valid XPath expression.
                     When you are finished constructing the expression, you can click Test to test the
                     expression on a running server. Or click OK to insert the expression without testing it.


4.20.3 Condition Editor
                     Use the Condition Editor to create an inline XQuery condition.
                     Use the panel on the left to write or construct the condition. The panel contains these
                     tabs, each of which is described below:
                     ■   Section 4.20.5, "Expression Page"
                     ■   Section 4.20.4, "Condition Builder Page"
                     Use the tabs in the panel on the right to manage the variables, namespaces, and
                     XQuery functions you can use to construct a condition. The panel contains the
                     following tabs. They are the same as the tabs in the right-hand panel of the
                     XQuery/XSLT Expression Editor, and the following links display the help for those
                     tabs in the XQuery/XSLT Expression Editor.
                     ■   Section 4.20.9, "Variable Structures Page"
                     ■   Section 4.20.10, "Namespace Definitions Page"
                     ■   Section 4.20.11, "XQuery Functions Page"




4-82 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Expression Editors



4.20.4 Condition Builder Page
              Use the Condition Builder page to build an inline condition. This page appears only in
              the Condition Editor.
              Build an expression in the Condition Builder as follows:
              1.   Select Comparison Expression to build a comparison expression or select Unary
                   Expression to build a unary expression.
              2.   If you chose Comparison Expression, do the following:
                   a.   In the Operand field, enter the name of the operand you want to compare to a
                        value. Alternatively, drag an item from the Variable Structures tab on the
                        right to the Operand field.
                   b.   In the Value field, enter the value against which to compare the operand.
                        Alternatively, drag item from the Variable Structures tab on the right to the
                        Value field.
                   c.   Select a comparison operator from the Operator list.
                   d.   Go to step 4.
              3.   If you chose Unary Expression, do the following:
                   a.   Select or deselect the Not check box to indicate whether to evaluate the
                        expression as true or not true, that is, to specify whether the expression should
                        be enclosed by not().
                   b.   Enter an expression in the text field, or construct it by dragging items from the
                        Variable Structures tab on the right.
              4.   Do either of the following:
                   ■    Click Add to add a new statement to the expression in the Condition
                        Expression field.
                   ■    Select a statement in the Condition Expression field, then click Update to
                        modify the statement.
              5.   Click Test to test the expression in a running server, or click OK to insert the
                   condition in the message flow.


4.20.5 Expression Page
              This page appears on the XQuery/XSLT Expression Editor, the XPath Expression
              Editor, and the Condition Editor.
              The Expression page contains a text field where you can build expressions by typing
              directly into the field or by dragging items from the Variable Structures Page or the
              XQuery Functions Page on the right side of the editor.
              Click Test to test the expression in an Oracle Service Bus domain on a running server.
              Oracle WebLogic Server is packaged with Oracle Service Bus, so an installation of
              Oracle Service Bus includes an embedded server you can use for testing purposes.


4.20.6 XQuery Resource Page
              This page appears in the XQuery/XSLT Expression Editor only.
              In the message flow of a proxy service, you can assign XQuery expressions to message
              context variables, assign if-then-else actions based on the Boolean result of an XQuery
              expression, insert the result of an XQuery expression at an identified place relative to


                                                                           User Interface Reference 4-83
Expression Editors


                     an XPath expression, specify the message context that you want to log through
                     XQuery expressions on context variables, and so on.
                     Use the XQuery Resource page to configure an XQuery transformation to be executed
                     in the message flow of a proxy service.

                     Table 4–86   XQuery Resource Options
                     Field                  Description
                     XQuery                 The XQuery resource to be executed. Click Browse to find and
                                            open an XQuery resource that has been registered in Oracle Service
                                            Bus.
                     Bind Variables         When you select a resource, each input parameter of the
                                            transformation is displayed. Each label corresponds to the name of
                                            a parameter, and each text box is for defining an XQuery
                                            expression to be mapped to the parameter. You must define a
                                            mapping for each parameter. Enter the expression directly, or drag
                                            variables and structures from the right panel.


4.20.7 XSLT Resource Page
                     This page appears in the XQuery/XSLT Expression Editor only.
                     Use the XSLT Resource tab to configure an XSLT transformation to be executed in the
                     message flow of a proxy service.

                     Table 4–87   XSLT Resource Options
                     Field                  Description
                     XSLT                   The XSLT resource to execute. Click Browse to find and open a
                                            resource registered with Oracle Service Bus.
                     Input Document         An XQuery expression for the input document to the
                                            transformation, for example $body.
                     Bind Variables         A label and a corresponding text box is displayed for each input
                                            parameter of the transformation. Each label corresponds to the
                                            name of a parameter, and each text box is for defining an XQuery
                                            expression to be bound to the parameter. You must define a
                                            binding for each parameter. For example, if an XSL transformation
                                            has two input parameters named one and two, the Variable Name
                                            field has two labels one and two, with a text box associated with
                                            each into which the XQuery expression is entered.
                                            Enter the expression directly, or drag variables and structures from
                                            the right panel.
                                            The following XQuery expressions are examples of valid input to
                                            this field:
                                            $body/*[1]
                                            $body/po:PurchaseOrder
                                            Note: The following variable name is not a valid entry for this field
                                            and results in an exception:
                                            body


4.20.8 Dynamic XQuery Page
                     This page appears in the XQuery/XSLT Expression Editor only.
                     You can specify a dynamic XQuery expression that evaluates at runtime to the name of
                     a pre-registered XQuery resource. Oracle Service Bus executes this XQuery resource,



4-84 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Expression Editors


              with optional variable bindings, against the message context to produce the required
              transformation.
              Use the XQuery Resource page to configure a dynamic XQuery transformation to be
              executed in the message flow of a proxy service.

              Table 4–88   Dynamic XQuery Options
              Field                    Description
              Expression               The XQuery expression that will evaluate at runtime to the name of
                                       a pre-registered XQuery resource.
                                       The following shows the syntax for the XQuery resource
                                       (representing the full name of the resource):
                                       Project/folder1/folder2/XQueryResourceName
              Select XQuery Template   The resource to serve as a template for the shape of the query (the
                                       number and names of the variables). Click Browse to select an
                                       existing registered resource. After selecting a template, the
                                       variables appear in the Bind Variables area. Note that the template
                                       is not persisted with the configuration. Instead, the template serves
                                       as a quick start to help you specify the variables for the query.
              Add Custom Variable      An input parameter of the transformation. Type a variable name in
                                       the Add Custom Variable field, and click Add.
              Bind Variables           When you add a custom variable, it appears in the Bind Variables
                                       area. Similarly, when you select an XQuery template, each input
                                       parameter of the transformation is displayed. Each label
                                       corresponds to the name of a parameter, and each text box is for
                                       defining an XQuery expression to be mapped to the parameter. You
                                       must define a mapping for each parameter. Enter the expression
                                       directly, or drag variables and structures from the right panel.


4.20.9 Variable Structures Page
              This page appears in the XQuery/XSLT Expression Editor, the XPath Expression
              Editor, and the Condition Editor.
              The Variable Structures page displays variables and their contents as trees. It includes
              the built-in message context variables attachments, body, header, outbound, and
              inbound, as well as any user-defined variables. It includes fault if the context of the
              expression is appropriate (that is, in an error handler). The outbound variable is
              always listed; even though it is not valid in every context. If outbound is used in
              invalid contexts, it will be reported when validating.
              Each variable structure mapping entry has a label and maps a variable or variable path
              to one or more structures. The scope of these mappings is a stage or a route node.
              You can drag items from this page to the editor’s Expression Page to insert them into
              the current expression. They are inserted as XPath expressions.
              To define a new variable and add it to the variable structure tree, click Add to open the
              Add Variable Structure Dialog.


4.20.10 Namespace Definitions Page
              This page appears in the XQuery/XSLT Expression Editor, the XPath Expression
              Editor, and the Condition Editor.
              The Namespace Definitions page lists default Oracle Service Bus namespaces, variable
              namespaces, and user-defined namespaces. Click Add to define a new namespace,



                                                                             User Interface Reference 4-85
Expression Editors


                     which is then added to the list of user-defined namespaces. To modify a user-defined
                     namespace, select it in the list, then click Edit.


4.20.11 XQuery Functions Page
                     This page appears in the XQuery/XSLT Expression Editor, the XPath Expression
                     Editor, and the Condition Editor.
                     The XQuery Functions page lists a set of standard XQuery functions, organized
                     alphabetically and by type. You can drag functions from this page to the editor’s
                     Section 4.20.5, "Expression Page" to insert them into the current expression. When you
                     insert a function into an expression, placeholders are used for parameter values you
                     must supply.


4.20.12 Add Variable Structure Dialog
                     Use this dialog to define a variable and add it to the tree of variable structures in the
                     Variable Structures Page of the Expression Editors.
                     You create variable structures in this dialog to define the structure of a variable for
                     design purposes. For example, it is easier to browse the XPath variable in the structure
                     view rather than viewing the XML schema of the XPath variable. Variable structures
                     do not create variables. Variables are created at runtime as the target of the assign
                     action in the stage.
                     You can declare your own variable structures based on:
                     ■   XML types, including
                         –    Schema elements
                         –    WSDL elements
                         –    Schema types
                         –    WSDL types
                     ■   MFLs
                     ■   Service interfaces
                     ■   Simple types (string or any XML)
                     You can use this feature directly for all user-defined variables, as well as $inbound,
                     $outbound, and $fault. However, you cannot use it directly to access XML
                     attachments in $attachments, headers in $header, or documents and RPC
                     parameters in $body, with one exception— you can use it directly to access
                     documents and parameters in $body for request messages received by a WSDL proxy
                     service.
                     When you create a variable structure based on XML types, MFLs, or service interfaces,
                     you must enter the following information into the fields at the top of the page:

                     Table 4–89   Variable Structure Options
                     Option                   Description
                     Structure Label          A display name for the variable you want to create. This display
                                              name enables you to give a meaningful name to the structure so
                                              you can recognize it at design time but it has no impact at run time.
                     Structure Path           The path of the variable structure at run time




4-86 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Split-Join User Interface Reference



4.21 New XSL Transformation
            Transformation maps describe the mapping between two data types. eXtensible
            Stylesheet Language Transformation (XSLT) maps describe XML-to-XML mappings.
            Use this page to select a name and location for a new XSL transformation. This wizard
            creates a skeleton for the XSLT. Add details in the XSLT editor.

            Table 4–90    New XSL Transformation Options
            Option                      Description
            Enter or select the parent Enter or select the name of the project or folder in which to locate a
            folder                     new XSL transformation.
            File Name                   Enter a name for this new XSL transformation.


4.22 Split-Join User Interface Reference
            The following sections describe the fields and user interface components involved
            with creating and configuring Split-Joins in Oracle Service Bus.
            ■   Section 4.22.1, "Split-Join Design Palette"
            ■   Section 4.22.2, "Global / Start Node Properties"
            ■   Section 4.22.3, "Variable Properties"
            ■   Section 4.22.4, "Error Handler Properties"
            ■   Section 4.22.5, "Invoke Service Properties"
            ■   Section 4.22.6, "Reply Properties"
            ■   Section 4.22.7, "For Each Properties"
            ■   Section 4.22.8, "If Properties"
            ■   Section 4.22.9, "If and Else If Properties"
            ■   Section 4.22.10, "Parallel Properties"
            ■   Section 4.22.11, "Raise Error Properties"
            ■   Section 4.22.12, "Repeat Until Properties"
            ■   Section 4.22.13, "Re-Raise Error Properties"
            ■   Section 4.22.14, "Scope Properties"
            ■   Section 4.22.15, "While Properties"
            ■   Section 4.22.16, "Wait Properties"
            ■   Section 4.22.17, "Assign Properties"
            ■   Section 4.22.18, "Copy Properties"
            ■   Section 4.22.19, "Delete Properties"
            ■   Section 4.22.20, "Insert Properties"
            ■   Section 4.22.21, "Java Callout Properties"
            ■   Section 4.22.22, "Log Properties"
            ■   Section 4.22.23, "Replace Properties"
            ■   Section 4.22.24, "Receive Properties"



                                                                              User Interface Reference 4-87
Split-Join User Interface Reference


                     ■    Section 4.22.25, "Counter Variable Dialog"
                     ■    Section 4.22.26, "Create/Edit Variable Dialog"
                     ■    Section 4.22.27, "Create Message Variable Dialog"
                     ■    Section 4.22.28, "Service Browser"
                     ■    Section 4.22.29, "SOAP Fault Variable Dialog"
                     ■    Section 4.22.30, "WSDL Browser"
                     ■    Section 4.22.31, "Split-Join Wizard - New Split-Join"
                     ■    Section 4.22.32, "Split-Join Wizard - Specify Operations"


4.22.1 Split-Join Design Palette
                     The Split-Join Design Palette lists all the operations you can use to construct a
                     Split-Join. To insert a control into a Split-Join, drag the icon from the palette to the
                     Split-Join editor. When you drag an item to the editor, one or more target icons
                     indicate that you can drop the dragged item in that position on the editor. When you
                     drag the item into a target icon, it is highlighted to show that you can drop the item
                     there.

                     4.22.1.1 Operations
                     The Split-Join Design palette is organized into the following categories:
                     ■    Communication
                     ■    Flow Control
                     ■    Assign Operations
                     The following tables describe the operations you can add to a Split-Join:

                     Table 4–91       Split-Join Communication Operations
                     Operation                   Description
                     Invoke Service              Invoke Service invokes a WSDL-based, non-transport-typed
                                                 Business Service, a WSDL-based Proxy Service, or a Split-Join.
                                                 For configuration properties, see Section 4.22.5, "Invoke Service
                                                 Properties."
                     Reply                       Reply sends a response or fault back to the Oracle Service Bus
                                                 Message Flow.
                                                 For configuration properties, see Section 4.22.6, "Reply Properties."


                     Table 4–92       Split-Join Flow Control Operations
                     Operation                   Description
                     For Each                    For Each executes logic configured within its Scope a specified
                                                 number of times.
                                                 For configuration properties, see Section 4.22.7, "For Each
                                                 Properties."
                     If                          If provides conditional behavior within a Split-Join.
                                                 For configuration properties, see Section 4.22.8, "If Properties."




4-88 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Split-Join User Interface Reference


Table 4–92 (Cont.) Split-Join Flow Control Operations
Operation                 Description
Parallel                  Parallel creates a fixed number of configured parallel branches.
                          For configuration properties, see Section 4.22.10, "Parallel
                          Properties."
Raise Error               Raise Error generates an error that causes the Split-Join to stop
                          normal processing. If the error is not handled using an Error
                          Handler, the Split-Join will terminate and a Fault will be sent to the
                          Oracle Service Bus Message Flow.
                          For configuration properties, see Section 4.22.11, "Raise Error
                          Properties."
Repeat Until              Repeat Until lets you repeat operations until a condition evaluates
                          to true within a Split-Join. The condition is evaluated after each
                          loop finishes.
                          For configuration properties, see Section 4.22.12, "Repeat Until
                          Properties."
Re-Raise Error            Re-Raise Error lets you re-raise an error caught by an Error
                          Handler Catch or CatchAll.
                          For configuration properties, see Section 4.22.13, "Re-Raise Error
                          Properties."
Scope                     Scope creates a context which influences the behavior of its
                          enclosed operations.
                          For configuration properties, see Section 4.22.14, "Scope
                          Properties."
While                     While lets you repeat operations until a condition evaluates to false
                          within a Split-Join. The condition is evaluated before each loop
                          commences.
                          For configuration properties, see Section 4.22.15, "While
                          Properties."


Table 4–93     Split-Join Assign Operations
Operation                 Description
Assign                    Lets you assigns the result of an XQuery expression to a Variable.
                          For configuration properties, see Section 4.22.17.1, "Assign
                          Operation Properties."
Copy                      Lets you copy the information specified by an XPath expression
                          from a source document to a destination document.
                          For configuration properties, see Section 4.22.18, "Copy Properties."
Delete                    Lets you delete a set of nodes specified by an XPath Expression.
                          For configuration properties, see Section 4.22.19, "Delete
                          Properties."
Insert                    Lets you insert the result of an XQuery expression at an identified
                          place relative to nodes selected by an XPath Expression.
                          For configuration properties, see Section 4.22.20, "Insert
                          Properties."
Java Callout              Lets you invoke a static Java method from a Split-Join for custom
                          actions such to be handled in Java such as validation,
                          transformation, and logging.
                          For configuration properties, see Section 4.22.21, "Java Callout
                          Properties."


                                                                 User Interface Reference 4-89
Split-Join User Interface Reference


                     Table 4–93 (Cont.) Split-Join Assign Operations
                     Operation                    Description
                     Log                          Lets you log data at a specified severity so that administrators can
                                                  take appropriate action.
                                                  For configuration properties, see Section 4.22.22, "Log Properties."
                     Replace                      Lets you replace a node or the contents of a node specified by an
                                                  XPath expression.s
                                                  For configuration properties, see Section 4.22.23, "Replace
                                                  Properties."


                     Operations have a General properties tab for changing the node’s label and providing
                     comments.


4.22.2 Global / Start Node Properties
                     The start node in a Split-Join specifies its global properties. Among these properties,
                     global variables and associated External Services can be reviewed and configured by
                     expanding the left-side arrow. The global Error Handler can be reviewed and
                     configured by expanding the right-side arrow.
                     Use the Properties view to review and configure the Global Properties of the selected
                     Split-Join.
                     This page has two tabs:
                     ■     Imports
                     ■     General
                     The Imports tab has the following options:

                     Table 4–94       Split-Join Start Node Options - Imports Tab
                     Option                       Description
                     WSDL Imports                 Displays WSDL Imports used by the Split-Join.
                                                  Select a WSDL in the list and right-click to delete it.
                     Schema Imports               Displays Schema Imports used by the Split-Join.
                                                  Select a Schema in the list and right-click to delete it.


                     The General tab has the following options:

                     Table 4–95       Split-Join Start Node Options - General Tab
                     Option                       Description
                     Label                        Enter a label for the file defining the Process Node.
                     Documentation                Enter a description and/or comments.


4.22.3 Variable Properties
                     Use the Properties view to review and configure Variables in the selected Split-Join.

                     Table 4–96       Split-Join Variable Options
                     Option                       Description
                     (tree)                       Depicts the hierarchical structure of the Variable’s type.


4-90 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Split-Join User Interface Reference


              Table 4–96 (Cont.) Split-Join Variable Options
              Option                    Description
              Edit                      Click to display the Create/Edit Variable Dialog, where you can
                                        modify the Variable’s name and type.


4.22.4 Error Handler Properties
              The Error Handler receives and handles all of the errors that are raised in a Split-Join.
              An Error Handler lets you add Catch and CatchAll operations.
              Use the Properties view to review and configure the selected Error Handler in a
              Split-Join.
              The Catch tab has the following options.

              Table 4–97   Split-Join Error Handler Options - Catch Tab
              Option                    Description
              SOAP Fault Variable       Defines a variable to contain SOAP (1.1 or 1.2) faults. If the Error
              Name                      Handler is executed due to a SOAP fault received from invoked
                                        external services, this variable is populated with the received
                                        SOAP fault.
              Fault Name – Define       Lets you define a custom local fault.
              Fault
                                        Click Define Fault to enter a Namespace and Fault Name.
              Fault Name – Predefined Lets you select an existing WSDL, Application, or Standard fault.
                                        Click Pick Fault to select an existing fault.


              The catchAll tab has the following options.

              Table 4–98   Split-Join Error Handler Options - CatchAll Tab
              Option                    Description
              SOAP Fault Variable       Defines a variable to contain SOAP (1.1 or 1.2) faults. If the Error
              Name                      Handler is executed due to a SOAP fault received from invoked
                                        external services, this variable is populated with the received
                                        SOAP fault.


4.22.5 Invoke Service Properties
              The Invoke Service invokes a WSDL-based, non-transport-typed Business Service, a
              WSDL-based Proxy Service, or another Split-Join.
              Use the Properties view to review and configure the selected Invoke Service in a
              Split-Join.
              The Operation tab has the following options:

              Table 4–99   Split-Join Invoke Service Options - Operation Tab
              Option                    Description
              Operation                 The operation to be invoked by the Service.
                                        Click Browse to select the operation you want to invoke.
                                        When you select an operation, a dashed blue line appears pointing
                                        to the external service in the Split-Join editor.




                                                                                User Interface Reference 4-91
Split-Join User Interface Reference


                     Table 4–99 (Cont.) Split-Join Invoke Service Options - Operation Tab
                     Option                      Description
                     Service Location            The location of the invoked Service.
                                                 Click the location path to open the service file.
                     Qos                         The quality of service option that controls transaction support.
                                                 Select one of the following:
                                                 ■   Best Effort – The operation does not execute in the context of
                                                     an existing transaction.
                                                 ■   Exactly Once – The operation executes in the context of an
                                                     existing transaction.


                     The Input Variable tab has the following options:

                     Table 4–100      Split-Join Invoke Service Options - Input Variable Tab
                     Option                      Description
                     Message Variable            A list of message type variables with the type matching the
                                                 operation’s input message type.
                                                 Select Create Message Variable to define a new message variable.
                                                 Note: If message type variables with the type matching the
                                                 operation’s input message type do not exist, you must define a
                                                 new message type variable with the required type.
                     Message Type                The namespace of the operation’s input message type.
                     Namespace
                     Message Type                The operation’s input message type.


                     The Output Variable tab has the following options:

                     Table 4–101      Split-Join Invoke Service Options - Output Variable Tab
                     Option                      Description
                     Message Variable            A list of message type variables with the type matching the
                                                 operation’s output message type.
                                                 Select Create Message Variable to define a new message variable.
                                                 Note: If message type variables with the type matching the
                                                 operation’s output message type do not exist, you must define a
                                                 new message type variable with the required type.
                     Message Type                The namespace of the operation’s output message type.
                     Namespace
                     Message Type                The operation’s output message type.


                     4.22.5.1 Invoking Another Split-Join
                     A Split-Join can invoke another Split-Join in the same Oracle Service Bus
                     configuration. This functionality provides more flexibility in service design, letting
                     you split up complex Split-Join functionality into multiple Split-Joins, allowing for
                     componentization and re-use of Split-Join functionality. Performance is maintained,
                     because there is no marshalling and unmarshalling of data between the Split-Joins.
                     You must ensure that you do not create circular Split-Join references. Oracle Service
                     Bus does not check for circular references.




4-92 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Split-Join User Interface Reference



4.22.6 Reply Properties
              Reply sends a response or fault back to the Oracle Service Bus message flow.
              Use the Properties view to review and configure the selected Reply in a Split-Join.
              The Operation tab has the following options:

              Table 4–102    Split-Join Reply Options - Operation Tab
              Option                    Description
              Operation                The operation to be invoked by the Reply.


              The Variable tab has the following Select options:

              Table 4–103    Split-Join Reply Options - Variable Tab
              Response Options         Description
              Message Variable         A list of the message variables whose type matches the operation’s
                                       output message type.
                                       Select Create Message Variable to define a new message variable.
                                       Note: If message type variables with the type matching the
                                       operation’s output message-type do not exist, you must define a
                                       new message type variable with the required type.
              Message Type             The namespace of the operation’s output message type.
              Namespace
              Message Type             The operation’s output message type.
              Pick WSDL Fault/SOAP     Determine whether the fault reply is a fault message defined in the
              Fault                    operation of the WSDL or an explicit SOAP fault message.
              WSDL Fault Name          Select a fault name from the list of faults defined in the operation
                                       of the WSDL.
              Message Variable         A list of the Message Variables whose type matches the operation’s
                                       output message type.
                                       Select Create Message Variable to define a new message variable.
                                       Note: If message type variables with the type matching the
                                       operation’s output message-type do not exist, you must define a
                                       new message type variable with the required type.
              Message Type             The namespace of the operation’s output message type.
              Namespace
              Message Type             The operation’s output message type.
              SOAP Fault                Select SOAP Fault
                                       See Section 4.22.29, "SOAP Fault Variable Dialog."
              Propagate SOAP Fault     Propagate the SOAP fault in the SOAP fault variable defined in the
                                       Error Handler.
                                       See Section 4.22.4, "Error Handler Properties."


              Reply automatically includes an implicit Exit operation to end that instance of the flow
              without triggering a fault. The Exit operation is not visible in the development
              environment.


4.22.7 For Each Properties
              For Each executes logic configured within its Scope a specified number of times.


                                                                              User Interface Reference 4-93
Split-Join User Interface Reference


                     Use the Properties view to review and configure the selected For Each in a Split-Join.
                     The Counter Variables tab has the following options:

                     Table 4–104      Split-Join For Each Options - Counter Variables Tab
                     Option                     Description
                     Parallel                   Select one of the following options:
                                                ■   If you select yes, each iteration of For Each is executed in
                                                    parallel.
                                                ■   If no, each iteration of For Each is executed sequentially.
                     Counter Variable Name      Defines an implicit variable within the Scope of the For Each. Each
                                                iteration of the For Each contains an isolated instance of this
                                                variable. In turn, every instance is set to an iteration number; for
                                                example, the first iteration has its value set to Start Counter Value,
                                                the second iteration to Start Counter Value+1, etc.
                     Start Counter Value        The value of the Counter Variable for the first iteration of For Each.
                                                Determined as the result of an XPath expression. The result must
                                                be "1" or more. ("0" is not a valid Start Counter Value.)
                                                The browse button launches the expression builder. The expression
                                                should generate an integer for the initial Start Count Value.
                     Final Counter Value        The value of the Counter Variable for the final iteration of For
                                                Each. Determined as the result of an XPath expression. The result
                                                must be "1" or more. ("0" is not a valid Final Counter Value.)
                                                The browse button launches the expression builder. The expression
                                                should generate an integer for the Final Count Value.


                     The Completion Condition tab has the following options:

                     Table 4–105      Split-Join For Each Options - Completion Condition
                     Option                     Description
                     Number of Finished         An optional expression that determines when to stop creating
                     Branches                   branches. Depending on the context in the Split-Join, the
                                                expression prevents some of the children from executing or forces
                                                early termination of some children.
                                                The browse button launches the expression builder.
                     Successful Branches        Select this option if you want only successfully completed
                     Only?                      branches to be counted when determining if the completion
                                                condition has been met.


4.22.8 If Properties
                     If nodes contain If, Else If, and Else operations. See Section 4.22.9, "If and Else If
                     Properties."
                     Use the Properties view to review and configure the selected If in a Split-Join.


4.22.9 If and Else If Properties
                     The If and Else If operations provide conditional behavior within a Split-Join.
                     Use the Properties view to review and configure the selected If or Else If in a Split-Join.
                     If and Else If have the following options:




4-94 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Split-Join User Interface Reference



              Table 4–106    Split-Join If and Else If Options
              Option                    Description
              Condition                 Define an XPath expression that evaluates to true or false. If the
                                        condition evaluates to true, the associated If/Else If branch is
                                        executed.
                                        Click the browse icon to launch the expression builder.


4.22.10 Parallel Properties
              Parallel lets you create a static Split-Join that handles fixed number of message
              requests. Parallels contain one or more Scope branches.
              Use the Properties view to review and configure the selected Parallel in a Split-Join.


4.22.11 Raise Error Properties
              Raise Error establishes an error condition under which the execution of the process
              will halt.
              Use the Properties view to review and configure the selected Raise Error in a Split-Join.
              The Raise Error tab has the following options:

              Table 4–107    Split-Join Raise Error Options
              Option                    Description
              Define Fault              Lets you specify a custom local fault not contained in the WSDL.
                                        Click the Fault link to specify the fault Namespace and Fault
                                        Name.
              Pick Fault From WSDL      Lets you select an existing fault specified in the WSDL.
                                        Click the Pick Fault link to select the WSDL fault.


4.22.12 Repeat Until Properties
              Repeat Until lets you repeat operations until a condition evaluates to true within a
              Split-Join. The condition is evaluated after each loop finishes.
              Use the Properties view to review and configure the selected Repeat Until in a
              Split-Join.
              The Condition tab has the following options:

              Table 4–108    Split-Join Repeat Until Options
              Option                    Description
              Condition                 Define an XPath expression that evaluates to true or false. The
                                        operation(s) in the Repeat Until are executed until the condition
                                        evaluates to true.
                                        Click the browse icon to launch the expression builder.


4.22.13 Re-Raise Error Properties
              Use Re-Raise Error within an Error Handler to re-raise an error caught by a Catch or a
              CatchAll. In the Properties view you can rename and enter comments about the
              Re-Raise Error node.




                                                                               User Interface Reference 4-95
Split-Join User Interface Reference


                     Use the Properties view to review and configure the selected Re-Raise Error in a
                     Split-Join.


4.22.14 Scope Properties
                     The Scope creates a context which influences the behavior of its enclosed operations.
                     Local variables and the Error Handler defined within the Scope are restricted to this
                     context.
                     Use the Properties view to review and configure the selected Scope in a Split-Join.
                     Related Topics
                     Section 4.22.26.1, "Scope and Variables"


4.22.15 While Properties
                     While lets you repeat operations until a condition evaluates to false within a Split-Join.
                     The condition is evaluated before each loop commences.
                     Use the Properties view to review and configure the selected While in a Split-Join.
                     The Condition tab has the following options:

                     Table 4–109      Split-Join While Options
                     Option                     Description
                     Condition                  Define an XPath expression that evaluates to true or false. If the
                                                condition evaluates to true, the associated operations is executed.
                                                Click the browse icon to launch the expression builder.


4.22.16 Wait Properties
                     Wait lets you insert a pause in the Split-Join flow for a short duration to wait for other
                     dependent jobs to complete. After the short duration, the Wait continues the Split-Join
                     execution.
                     Use the Properties view to review and configure the selected Wait in a Split-Join.
                     The Wait tab has the following options:

                     Table 4–110      Split-Join Wait Options
                     Option                     Description
                     Duration                   Define an XPath expression that evaluates to a duration type of
                                                xsd:duration in the following format:
                                                nYnMnDTnHnMnS (number of years, months, days, hours,
                                                minutes, and seconds, with a date/time separator, represented by
                                                "T".)
                                                Be sure the expression resolves to a correct duration type. The Wait
                                                operation does not validate the results of the expression.
                                                When the duration is reached, the Wait resumes the Split-Join
                                                execution.
                                                Click the browse icon to launch the expression builder.




4-96 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Split-Join User Interface Reference



4.22.17 Assign Properties
              Assign lets you perform data manipulation, including initializing and updating a
              Variable. You can perform the following operations in an Assign node: Assign, Copy,
              Delete, Insert, Java Callout, Log, and Replace.
              Use the Properties view to review and configure the selected Assign in a Split-Join.

              4.22.17.1 Assign Operation Properties
              The Assign tab has the following options:

              Table 4–111    Split-Join Assign Operation Options
              Option                   Description
              Expression               An XQuery expression used to create the data that will be assigned
                                       to the Variable.
                                       Clicking the expression launches the XQuery editor.
                                       When Oracle Service Bus binds variables in an inline XQuery, it
                                       assumes the type xs:string. This can cause parser errors in
                                       operations with constants that are incompatible with xs:string.
                                       To ensure compatible types, use an explicit XQuery cast. For
                                       example, the following inline XQuery will fail. Although the
                                       $itemsTotal is of type xs:double, it is bound as an
                                       xs:string, which is incompatible in the test against 10000.
                                       if ($itemsTotal < 10000) then . . .
                                       To make this inline XQuery work, explicitly cast the $itemsTotal
                                       to an xs:double:
                                       if (($itemsTotal cast as xs:double) < 10000) then . . .
                                       Also, when creating an Assign action to a String result or variable,
                                       ensure that your expression returns a String value. Assigning a
                                       non-String value to a String result or String global variable does
                                       not cause a MismatchedAssignmentFailure exception, as
                                       specified by the WS-BPEL specification.
              Variable                 A variable to which the result of the XQuery expression is
                                       assigned.
                                       Only previously defined Variables, the Counter Variable, and
                                       SOAP Fault Variables (for Error Handlers) are available.
              Qos                      The quality of service option that controls transaction support.
                                       Select one of the following:
                                       ■   Best Effort – The operation does not execute in the context of
                                           an existing transaction.
                                       ■   Exactly Once – The operation executes in the context of an
                                           existing transaction.


              Oracle Service Bus's Assign functionality in Split-Joins conforms to the WS-BPEL
              specification for resolution of XPath/XQuery expressions to simple type variables.
              Supported simple types for binding XPath/XQuery expressions to variables in
              Split-Joins are String, Boolean, and Float. The Assign converts the value you provide
              the type with which the variable is defined.
              For example:
              ■     If you assign <foo><bar>4</bar></foo> to a response variable defined as a String
                    ($response.result), Oracle Service Bus returns <bar>4</bar> as a String in the
                    <result> through a simple copy of the child element and value.




                                                                             User Interface Reference 4-97
Split-Join User Interface Reference


                     ■    If you map <foo><bar>4</bar></foo> to a String variable (such as myStr), then
                          assign $myStr to $response.result, Oracle Service Bus returns <result>4</result>,
                          because it first converts the value in $myStr to a String before it makes the
                          assignment to the $response.result String variable.


4.22.18 Copy Properties
                     The Copy operation copies the information specified by an XPath expression from a
                     source document to a destination document.
                     Use the Properties view to configure a Copy Operation in an Assign. Configure Select
                     From and Select To using the following guidance.
                     The Copy tab has the following options:

                     Table 4–112      Split-Join Copy Options
                     Option                     Description
                     Keep Source Element        Lets you determine which element name (source or destination) is
                                                used when values are copied from a source to a destination.
                                                If you do not select this option, the existing element name in the
                                                destination is used to hold the copied value.
                                                If you select this option, the name of the source element is used in
                                                the destination to hold the copied value.
                                                For example, if you are copying a zip code value from
                                                <zipCode>80303</zipCode> in the source, selecting Keep Source
                                                Element uses the <zipCode> element in the destination. If you do
                                                not select the option, the zip code value is copied to the existing
                                                destination element, such as <pinCode>80303</pinCode>.
                     Choose Type                Allows the user to select the desired type: Variable, Expression,
                                                Literal, or XML Fragment. Literals and XML fragments are
                                                available only in the Select From menu.
                     Choose Type - Variable     Select an XPath on a Variable. Use this option when simple node
                                                selection on a Variable is required.
                                                When a node is selected by expanding the Variable tree, an Xpath
                                                expression is automatically generated.
                     Choose Type -              Create an Xpath expression to select a node from a Variable. Use
                     Expression                 this option when more complex Xpaths (potentially with
                                                predicates) are required to select a node on a Variable.
                                                Click the Expression link to use the XPath Expression Builder.
                                                Note: The entered Xpath expression should only copy to one XML
                                                node/element, or there will be run-time errors.
                     Choose Type - Literal      A Literal string entered by the user.
                     (Select From only)
                                                Click the Literal link to enter the string.
                     Choose Type - XML          An XML fragment entered by the user.
                     Fragment (Select From
                                                Click the XML Fragment link to enter the fragment.
                     only)


4.22.19 Delete Properties
                     The Delete operation deletes a set of nodes specified by an XPath Expression.
                     Use the Properties view to configure a Delete Operation in an Assign.




4-98 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Split-Join User Interface Reference



                         Note:   Unlike a Delete operation in a proxy service message flow, a
                         Delete operation in a Split-Join does not allow deleting a variable
                         directly.


              The Delete tab has the following options:

              Table 4–113        Split-Join Delete Options
              Option                        Description
              XPath                         An XPath Expression that selects the nodes to be deleted.
                                            Click the XPath link to launch the expression editor.
              In Variable                   Variable on which the XPath expression is executed to select the
                                            nodes to be deleted.
              Qos                           The quality of service option that controls transaction support.
                                            Select one of the following:
                                            ■   Best Effort – The operation does not execute in the context of
                                                an existing transaction.
                                            ■   Exactly Once – The operation executes in the context of an
                                                existing transaction.


4.22.20 Insert Properties
              The Insert operation inserts the result of an XQuery expression at an identified place
              relative to nodes selected by an XPath Expression.
              Use the Properties view to configure an Insert Action in an Assign.
              The Insert tab has the following options:

              Table 4–114        Split-Join Insert Options
              Option                        Description
              Expression                    An XQuery expression used to create the data that will be inserted
                                            at a specified location in a Variable.
                                            Click the Expression link to launch the expression editor.
              Location                      The location used to control where the Insert operation is
                                            performed relative to the result of the XPath Expression. Options
                                            include:
                                            ■   before: Immediately before the element specified by the result
                                                of the Xpath Expression.
                                            ■   after: Immediately after the element specified by the result of
                                                the Xpath Expression.
                                            ■   as first child of: The first child element of the element
                                                specified by the result of the Xpath Expression.
                                            ■   as last child of: The last child element belonging to the
                                                element specified by the result of the Xpath Expression.
              XPath                         An XPath that determines the nodes to be selected.
                                            Click the Xpath link to launch the expression editor.
              Variable                      A Variable to be evaluated by the XPath.




                                                                                  User Interface Reference 4-99
Split-Join User Interface Reference


                     Table 4–114      (Cont.) Split-Join Insert Options
                     Option                      Description
                     Qos                         The quality of service option that controls transaction support.
                                                 Select one of the following:
                                                 ■   Best Effort – The operation does not execute in the context of
                                                     an existing transaction.
                                                 ■   Exactly Once – The operation executes in the context of an
                                                     existing transaction.


4.22.21 Java Callout Properties
                     A Java Callout operation lets you invoke a static Java method from a Split-Join for
                     custom actions such to be handled in Java such as validation, transformation, and
                     logging.
                     Use the Properties view to configure a Java Callout operation in an Assign.
                     The Java Callout tab has the following options:

                     Table 4–115      Split-Join Java Callout Options
                     Option                      Description
                     Method                      Package your Java class in a JAR file in your Oracle Service Bus
                                                 project. Click Browse to first select the JAR, then the method you
                                                 want to invoke.
                                                 Using the following guidelines for the Java callout method:
                                                 ■   The method must be static.
                                                     Only the following Java types are supported for input
                                                     parameters:
                                                 ■   boolean, byte, char, double, float, int, long, short and arrays of
                                                     these types
                                                 ■   java.lang.[Boolean | Byte | Character | Double | Float |
                                                     Integer | Long | Short | String] and arrays of these types
                                                 ■   java.math.[BigInteger | BigDecimal] and arrays of these types
                                                 ■   org.apache.xmlbeans.XmlObject and arrays of this type
                                                 Only the following Java types are supported for method return:
                                                 ■   All types supported for input parameters except their array
                                                     equivalent
                                                 ■   void
                     Expression                  An XQuery expression used to map data to the input parameters of
                                                 the static Java method. Click the Expression link to launch the
                                                 expression editor.
                     Result Value                Select the variable to contain the result value for the Java method.
                     Service Account             You can use Service Account to put the appropriate subject on the
                                                 thread when executing the Java callout.
                                                 Click Browse to select a service account.
                     Qos                         The quality of service option that controls transaction support.
                                                 Select one of the following:
                                                 ■   Best Effort – The operation does not execute in the context of
                                                     an existing transaction.
                                                 ■   Exactly Once – The operation executes in the context of an
                                                     existing transaction.



4-100 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Split-Join User Interface Reference


              Oracle Service Bus provides the following errors for Java callouts:
              ■   2031350 – Received more than one element when only one is expected during
                  conversion to Java
              ■   2031351 – Found simple type instead of XmlObject when converting to Java
              ■   2031352 – Error converting simple type to its corresponding Java type
              ■   2031353 – Received exception during invocation of the Java method
              ■   2031354 – Errors setting the security context


4.22.22 Log Properties
              The Log operation lets you log Split-Join data at a specified severity to the server log
              file. Administrators can use log information to take appropriate action based on the
              severity of the data logged.
              Use the Properties view to configure a Log operation in an Assign.
              The Log tab has the following options:

              Table 4–116   Split-Join Log Options
              Option                   Description
              Expression               An XQuery expression used to select the data to be logged.
                                       Click the Expression link to launch the expression editor.
              Annotation               Optionally specify a note for the log. The annotation is logged
                                       along with the data selected by the expression.
              Severity                 Select one of the following the severity levels for the log:
                                       ■   Debug
                                       ■   Info
                                       ■   Warning
                                       ■   Error


4.22.23 Replace Properties
              The Replace operation lets you replace a node or the contents of a node specified by an
              XPath expression.
              Use the Properties view to configure a Replace operation in an Assign.
              The Replace tab has the following options:

              Table 4–117   Split-Join Replace Options
              Option                   Description
              XPath                    An XPath Expression used to specify the data (in the Variable) that
                                       will be replaced.
                                       Click the XPath link to launch the expression editor.
              Variable                 The Variable that contains the data to be replaced.
              Expression               An XQuery expression used to create the data that replaces the
                                       data specified by the XPath in the named Variable.
                                       Click the Expression link to launch the expression editor.
              Replace entire node      Specifies that the nodes selected by the expression are replaced
                                       along with all of its contents.


                                                                             User Interface Reference 4-101
Split-Join User Interface Reference


                     Table 4–117      (Cont.) Split-Join Replace Options
                     Option                      Description
                     Replace node contents       Specifies that the node is not replaced. Only the contents are
                                                 replaced.
                     Qos                         The quality of service option that controls transaction support.
                                                 Select one of the following:
                                                 ■   Best Effort – The operation does not execute in the context of
                                                     an existing transaction.
                                                 ■   Exactly Once – The operation executes in the context of an
                                                     existing transaction.


4.22.24 Receive Properties
                     Use the Properties view to review and configure the selected Receive in a Split-Join.
                     The Operation tab has the following options:

                     Table 4–118      Split-Join Receive Options - Operation Tab
                     Option                      Description
                     Operation                   The operation to be invoked by the Receive.
                                                 Browse to select an operation from the WSDL Browser.


                     The Variable tab has the following options:

                     Table 4–119      Split-Join Receive Options - Variable Tab
                     Option                      Description
                     Message Variable            A list of the message variables whose type matches the operation’s
                                                 output message type
                                                 Select Create New Variable to define a new message variable.
                                                 Note: If message type variables with the type matching the
                                                 operation’s output message-type do not exist, you must define a
                                                 new message type variable with the required type.
                     Message Type                The namespace of the operation’s output message type.
                     Namespace
                     Message Type                The operation’s output message type.


4.22.25 Counter Variable Dialog
                     Use this dialog to create a Counter Variable.

                     Table 4–120      Split-Join Counter Variable Options
                     Option                      Description
                     Counter Variable Name       The name of the Counter Variable


4.22.26 Create/Edit Variable Dialog
                     Use this dialog to review and/or configure Variables in the Split-Join.




4-102 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Split-Join User Interface Reference


              4.22.26.1 Scope and Variables
              Although variables are visible in the scope in which they are defined and in all scopes
              nested within that scope, a variable declared in an outer scope is hidden when you
              declare a variable with an identical name in an inner scope. For example, if you define
              variable myVar in an outer scope (So) and then define variable myVar again in an
              inner scope (Si) which is contained by scope So, then you can only access the myVar
              you defined in the inner scope Si. This myVar overrides the myVar you defined in
              scope So.

              Table 4–121     Split-Join Variable Options
              Option                    Description
              Name                      Enter a name for the Variable that is unique within the Scope.
              Select Variable Type      Select one of the following Variable Types:
                                        ■    Built-in Types
                                        ■    Schema Types
                                        ■    Message Types
              Select Variable Type -    When selected, only Built-in Type Variables are displayed.
              Built-in Types
              Select Variable Type-     When selected, all Schema Types in the current Oracle Service Bus
              Schema Types              Configuration are displayed.
                                        If "Show only applicable schema types/elements for this Split-Join"
                                        is selected, only Schema Types directly applicable to the current
                                        Split-Join are displayed. This is checked by default.
              Select Variable Type -    When selected, only message types are displayed.
              Message Types
                                        If "Show only applicable schema types/elements for this Split-Join"
                                        is selected, only Message Types directly applicable to the current
                                        Split-Join are displayed. This is checked by default.
              Type                      The Variable type.
              Namespace                 The namespace of the Variable’s type.


4.22.27 Create Message Variable Dialog
              Use this dialog to create a new message variable.

              Table 4–122     Split-Join New Message Variable Options
              Option                    Description
              Name                      Enter a unique name for the Variable.
              Type                      One of the following Variable types: WSDL message, XSD element,
                                        or XSD type (simple, complex, built-in).
              Namespace                 The namespace of the Variable’s type.


4.22.28 Service Browser
              Use this dialog to browse for and select an operation from a business service, a proxy
              service, or a Split-Join in the tree.


4.22.29 SOAP Fault Variable Dialog
              Use this dialog to create a SOAP fault variable.



                                                                            User Interface Reference 4-103
Split-Join User Interface Reference



                     Table 4–123      Split-Join SOAP Fault Variable Options
                     Option                      Description
                     SOAP Fault Variable         The name of the SOAP fault variable.
                     Name


4.22.30 WSDL Browser
                     Use this dialog to browse for and select an operation from a WSDL in the depicted
                     tree.


4.22.31 Split-Join Wizard - New Split-Join
                     Use this page to locate and name the new Split-Join

                     Table 4–124      New Split-Join Options
                     Option                      Description
                     Enter or select the parent Enter the name of the folder to contain this Split-Join, or select a
                     folder                     folder from the list.
                     File Name                   Enter a name for the file defining the Split-Join.


4.22.32 Split-Join Wizard - Specify Operations
                     Use this page to select an operation for the new Split-Join.

                     Table 4–125      New Split-Join Options - Selecting an Operation
                     Option                      Description
                     Select Operation            Select the operation from those available in the tree.
                     Consume                     Click this button to import WSDLs from outside your current
                                                 Oracle Service Bus configuration that can subsequently be used to
                                                 select an operation.




4-104 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Part II
                                           Part II   XQuery Mapper

This part contains the XQuery Mapper IDE help, which includes the following
chapters:
■   Chapter 5, "Introduction"
■   Chapter 6, "Transforming Data Using XQuery Mapper"
■   Chapter 7, "Examples: Data Transformation Using XQuery Mapper"
Osb developer's guide
5
                                                                    5Introduction

           This chapter provides an overview of the Oracle XQuery Mapper.
           Oracle XQuery Mapper is a graphical mapping tool that enables you to transform data
           between XML, non-XML, and Java data types, allowing you to integrate
           heterogeneous applications rapidly. For example, you can package data
           transformations in Oracle WebLogic Integration (WLI) as controls and reuse the
           controls in multiple business processes and applications. You can also use .xq files
           created in XQuery Mapper as resources in Oracle Service Bus.
           The output of XQuery Mapper is a query in the XQuery language, which is defined by
           the World Wide Web Consortium (W3C). For more information about W3C and the
           XQuery language, see http://www.w3.org/XML/Query/.


5.1 Overview of XQuery Mapper
           You can use XQuery Mapper to transform data between XML, non-XML, and Java
           data types. For example, XML data that is valid against one schema can be converted
           to XML that is valid against a different schema. The data can be based on XML
           schemas, Web Service Definition Language (WSDL) file, and Message Format
           Language (MFL) files.
           When you select the Simple source type, you can transform standard schema types,
           such as boolean, byte, double, float, int, long, short, String, and Date, to
           any other required target data format.
           A data transformation can have multiple input types, but only one target type. For
           example, data can be transformed from two sources to one target, as shown in the
           following figure.




                                                                                  Introduction 5-1
Support for XQuery 2002 and 2004


Figure 5–1 Data Transformation from Multiple Sources to One Target




5.2 Support for XQuery 2002 and 2004
                   Oracle Service Bus supports data transformation for the following versions of XQuery:
                   ■   XQuery 2004: Graphical design view (XQuery Mapper), source view, and test
                       view.
                   ■   XQuery 2002: Source view and test view.


                            Note:  For XQuery 2002-compliant XQuery files, the source view does
                            not show compilation errors.


                   When you open an XQuery 2002-compliant XQuery file, it opens automatically in the
                   XQuery 2002 Transformation Editor, which has Source and Test views, but no Design
                   view.


5.2.1 Restrictions Applicable to the XQuery Test View
                   Table 5–1 describes restrictions in XQuery test view.

                   Table 5–1       Restrictions Applicable to the XQuery Test View
                                                                                      Applicable   Applicable
                                                                                      to           to
                   Restriction                                                        XQ2002?      XQ2004?
                   If an XQuery calls a Java user function, the Java method must be   Yes          Yes
                   static.




5-2 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
Support for XQuery 2002 and 2004


Table 5–1 (Cont.) Restrictions Applicable to the XQuery Test View
                                                                      Applicable   Applicable
                                                                      to           to
Restriction                                                           XQ2002?      XQ2004?
If an input Java type argument to an XQuery is an abstract class or   Yes          No
an interface, the test view can not process it. An error message is
displayed in the results view.
The input Java type and its member variables (except those of type    Yes          No
primitive, String, java.sql.Date and java.util.Date)
must follow the standard Java Bean guidelines.




                                                                               Introduction 5-3
Support for XQuery 2002 and 2004




5-4 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
6
     6Transforming Data Using XQuery Mapper

           This chapter describes how to use XQuery Mapper to perform data transformation in
           message flows.
           You can use the graphical interface of XQuery Mapper to create data transformations
           by mapping elements in source schemas to elements in a target schema. XQuery
           Mapper generates an XQuery, which is saved as an .xq file.
           The procedure to transform data using XQuery Mapper is described in the following
           sections:
           ■   Section 6.1, "Launching XQuery Mapper"
           ■   Section 6.2, "Importing the XQuery Mapper Sample Project"
           ■   Section 6.3, "Creating an XQuery Mapper Project"
           ■   Section 6.4, "Importing and Creating Schema Files"
           ■   Section 6.5, "Selecting Source and Target Data Types"
           ■   Section 6.6, "Creating Data Transformations"
           ■   Section 6.7, "Editing Data Transformations"
           ■   Section 6.8, "Restricting Output of Optional Elements"
           ■   Section 6.9, "Testing Data Transformations"
           ■   Section 6.10, "Graphical Features in Design View"
           ■   Section 6.11, "XML Global Elements, Global Types, Local Elements, and Attributes"


6.1 Launching XQuery Mapper
           In Oracle Enterprise Pack for Eclipse, open the XQuery transformation perspective by
           choosing Window > Open Perspective > XQuery Transformation from the Eclipse
           menu.
           The XQuery transformation perspective launches automatically when you open an
           XQuery file. If, however, XQuery Mapper is open and no XQuery file is open, you
           must launch the XQuery transformation perspective manually.


6.2 Importing the XQuery Mapper Sample Project
           The XQuery Mapper sample project includes sample schema and XML files, which
           you can use to create XQuery transformations as described in Chapter 7, "Examples:
           Data Transformation Using XQuery Mapper."



                                                       Transforming Data Using XQuery Mapper    6-1
Creating an XQuery Mapper Project


                   Use the following procedure to import the sample project.
                   1.   From the Eclipse menu bar, choose File > Import.
                   2.   In the Import window, select General > Existing Projects into Workspace, then
                        click Next.
                   3.   In the Select root directory field, click Browse, then select the following folder:
                        OSB_ORACLE_HOME/eclipse/plugins/com.bea.alsb.common.mapper_
                        version/samples, and click OK.
                   4.   In the Import window, select Copy projects into workspace, and click Finish.
                   5.   Enter a name for your sample project and click Finish.
                        The samples project is created and displayed in the Project Explorer view. The
                        project contains the following folders:
                        ■   schemas folder: Contains the XML schema (.xsd) files of the sample project.
                        ■   XML folder: Contains test XML files required by some of the samples.
                        ■   XQueryTransformations folder: This is the folder in which you will create the
                            XQuery files for the samples.
                   To learn more about creating projects and importing the files you need for those
                   projects, see the following topics:
                   ■    Section 6.3, "Creating an XQuery Mapper Project"
                   ■    Section 6.4, "Importing and Creating Schema Files"
                   ■    Chapter 7, "Examples: Data Transformation Using XQuery Mapper"


                            Note:   You can import project-specific XML schemas, Web Service
                            Definition Language (WSDL) files, and Message Format Language
                            (MFL) files from any location. Before you imp
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide
Osb developer's guide

More Related Content

PDF
Oracle® Fusion Middleware
PDF
Informatica installation guide
PDF
PDF
Adf tutorial oracle
PDF
Getting started with odi
PDF
Rst4userguide
PDF
PDF
Oracle Lead to Order Integration Pack for Oracle CRM On Demand and Oracle E-B...
Oracle® Fusion Middleware
Informatica installation guide
Adf tutorial oracle
Getting started with odi
Rst4userguide
Oracle Lead to Order Integration Pack for Oracle CRM On Demand and Oracle E-B...

What's hot (19)

PDF
Installing and conf guide for hp sm connector
PDF
Oracle 11g release 2
PDF
B28654oas10g best pracitice
PDF
Oracle_9i_Database_Getting_started
PDF
Esm admin guide_5.2
PDF
High availability solutions
PDF
Pdrmsqlsr services share_point_integrated_mode
DOC
Lync Powershell - Ls admin windows_power_shell_supplement
PDF
Oracle sap
PDF
Hfm install
PDF
Optimizing oracle-on-sun-cmt-platform
PDF
121ontapi
PDF
Maa wp sun_apps11i_db10g_r2-2
PDF
Microsoft Dynamics CRM - Connector Overview
PDF
Esm install guide_5.2
PDF
Cr app controller_in_system_center_2012_sp1
PDF
White paper: EMC Performance Optimization for Microsoft FAST Search Server 20...
 
PDF
Installing and conf guide for hp sm connector
Oracle 11g release 2
B28654oas10g best pracitice
Oracle_9i_Database_Getting_started
Esm admin guide_5.2
High availability solutions
Pdrmsqlsr services share_point_integrated_mode
Lync Powershell - Ls admin windows_power_shell_supplement
Oracle sap
Hfm install
Optimizing oracle-on-sun-cmt-platform
121ontapi
Maa wp sun_apps11i_db10g_r2-2
Microsoft Dynamics CRM - Connector Overview
Esm install guide_5.2
Cr app controller_in_system_center_2012_sp1
White paper: EMC Performance Optimization for Microsoft FAST Search Server 20...
 
Ad

Viewers also liked (18)

PPTX
Things to consider in the learning
PDF
Records and Information Management Survey by MCS Management Services
DOCX
Event driven network
PPTX
Differeniation
PPTX
Senior Project 12 pics.
PPT
Beyond These Walls - Back to School PPT
PDF
Herba LIfe
PPT
Efectos tardios quimioterapia
PDF
A Discourse on e-Discovery - MCS Management Services
PPTX
Faults
PPTX
Considerations of a Business Partnership
PDF
Records & Information Management and the Law Firm - MCS Management Services
PPTX
Poaching
PPTX
Poaching
PPT
2012 Jdivanna
PPTX
Differeniation
PPTX
Be Digital or Die - Predictive Analytics for Digital Transformation
PDF
Secure Elements in Web Applications
Things to consider in the learning
Records and Information Management Survey by MCS Management Services
Event driven network
Differeniation
Senior Project 12 pics.
Beyond These Walls - Back to School PPT
Herba LIfe
Efectos tardios quimioterapia
A Discourse on e-Discovery - MCS Management Services
Faults
Considerations of a Business Partnership
Records & Information Management and the Law Firm - MCS Management Services
Poaching
Poaching
2012 Jdivanna
Differeniation
Be Digital or Die - Predictive Analytics for Digital Transformation
Secure Elements in Web Applications
Ad

Similar to Osb developer's guide (20)

PDF
Oracl apps api usages
PDF
Dw guide 11 g r2
PDF
Install
PDF
1 Pdfsam
PDF
Odi installation guide
PDF
121cash mgmt
PDF
Oracle10g new features
PDF
Coherence developer's guide
PDF
PDF
PDF
Ovm user's guide
PDF
Oracle pl-sql user's guide & reference
PDF
SLM
PDF
Soa best practices_1013x_drop3
PDF
Oracle Web Conferencing - Release 2.0.4
PDF
Security Guide for Oracle Fusion - E10543
PDF
B12303
PDF
Work flow api reference
PDF
Firstcup
PDF
Web logic installation document
Oracl apps api usages
Dw guide 11 g r2
Install
1 Pdfsam
Odi installation guide
121cash mgmt
Oracle10g new features
Coherence developer's guide
Ovm user's guide
Oracle pl-sql user's guide & reference
SLM
Soa best practices_1013x_drop3
Oracle Web Conferencing - Release 2.0.4
Security Guide for Oracle Fusion - E10543
B12303
Work flow api reference
Firstcup
Web logic installation document

Osb developer's guide

  • 1. Oracle® Fusion Middleware Developer’s Guide for Oracle Service Bus 11g Release 1 (11.1.1.6.3) E15866-08 August 2012 Documentation for developers that describes how to use the Oracle Service Bus (OSB) development environment (IDE) to create and configure proxy and business services, Split-Joins, create message flows, perform message transformation with XQuery, XSLT, and MFL, configure transports, work with JCA adapters, create custom transports, configure security using WS-Security, use the OSB API, and create global JNDI resources.
  • 2. Oracle Fusion Middleware Developer's Guide for Oracle Service Bus, 11g Release 1 (11.1.1.6.3) E15866-08 Copyright © 2008, 2012, Oracle and/or its affiliates. All rights reserved. Primary Author: Carol Thom Contributing Author: Floyd Jones Contributor: This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065. This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group. This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.
  • 3. Contents Preface .............................................................................................................................................................. xliii Documentation Accessibility .................................................................................................................. xliii Conventions .............................................................................................................................................. xliii What's New in This Guide for Release 11.1.1.6.x .................................................................... xlv Part I IDE Help for Oracle Service Bus 1 Introduction to Oracle Service Bus 2 Tasks Working with Projects, Folders, Resources, and Configurations ................................................... 2-1 Resource Naming Restrictions ......................................................................................................... 2-2 Editing Resources............................................................................................................................... 2-2 Cloning Oracle Service Bus Projects and Folders.......................................................................... 2-2 Creating Oracle Service Bus Configuration Projects..................................................................... 2-3 Creating Oracle Service Bus Projects............................................................................................... 2-3 Creating Servers ................................................................................................................................. 2-3 Creating Custom Resources.............................................................................................................. 2-4 Creating and Editing JNDI Provider Resources ............................................................................ 2-4 Creating Proxy Server Resources..................................................................................................... 2-5 Creating Message Format Files ........................................................................................................ 2-5 Exporting Resources .......................................................................................................................... 2-5 Using the Export Wizard ........................................................................................................... 2-6 Using the Command Line or a Script to Export an Oracle Service Bus Configuration .... 2-6 Before You Begin.................................................................................................................. 2-6 Exporting a Configuration Using the Command Line................................................... 2-6 Exporting a Configuration Using Ant .............................................................................. 2-8 Exporting a Configuration Using WLST .......................................................................... 2-9 Generating an Effective WSDL ........................................................................................................ 2-9 Modifying JAR Dependencies.......................................................................................................... 2-9 Importing Resources.......................................................................................................................... 2-9 Using the Import Wizard........................................................................................................ 2-10 Using the Command Line or a Script to Import an Oracle Service Bus Configuration. 2-10 Creating Service Account Resources............................................................................................ 2-10 iii
  • 4. Creating Service Key Provider Resources ................................................................................... 2-10 Creating SMTP Server Resources ................................................................................................. 2-11 Creating XQuery Transformations ............................................................................................... 2-11 Creating XSL Transformations...................................................................................................... 2-11 Working with Business Services ........................................................................................................ 2-11 Creating Business Services............................................................................................................. 2-12 Generating a Business Service from an Existing Service.................................................... 2-12 Generating a JCA Business Service from an Outbound JCA File ............................................ 2-12 Generating a Business Service from Oracle Enterprise Repository ......................................... 2-13 Re-generating an Existing Business Service from Oracle Enterprise Repository ........... 2-13 Editing Business Services............................................................................................................... 2-13 Working with Proxy Services .............................................................................................................. 2-13 Creating Proxy Services ................................................................................................................. 2-13 Generating a Proxy Service from an Existing Service ........................................................ 2-14 Generating a JCA Proxy Service from an Inbound JCA File .................................................... 2-14 Consuming Oracle Service Bus Proxy Services in Oracle JDeveloper with WSIL ................ 2-15 Editing Proxy Services.................................................................................................................... 2-16 Working with Proxy Service Message Flows ................................................................................... 2-16 Constructing Proxy Service Message Flows................................................................................ 2-17 Adding and Configuring Alert Actions in Message Flows ...................................................... 2-18 Adding and Configuring Assign Actions in Message Flows ................................................... 2-18 Adding and Configuring Conditional Branch Nodes in Message Flows ............................... 2-19 Adding and Configuring Delete Actions in Message Flows .................................................... 2-19 Adding and Configuring Dynamic Publish Actions in Message Flows ................................. 2-20 Adding and Configuring Dynamic Routing Actions in Message Flows ................................ 2-20 Adding and Configuring Error Handlers in Message Flows ................................................... 2-20 Adding and Configuring For-Each Actions in Message Flows................................................ 2-21 Adding and Configuring If-Then Actions in Message Flows .................................................. 2-21 Adding and Configuring Insert Actions in Message Flows ..................................................... 2-22 Adding and Configuring Java Callout Actions in Message Flows.......................................... 2-22 Adding and Configuring Log Actions in Message Flows......................................................... 2-23 Adding and Configuring MFL Transform Actions in Message Flows ................................... 2-23 Adding and Configuring Operational Branch Nodes in Message Flows............................... 2-23 Adding and Configuring Pipeline Pair Nodes in Message Flows ........................................... 2-24 Adding and Configuring Publish Actions in Message Flows .................................................. 2-24 Adding and Configuring Publish Table Actions in Message Flows ....................................... 2-25 Adding and Configuring Raise Error Actions in Message Flows............................................ 2-26 Adding and Configuring Rename Actions in Message Flows ................................................. 2-26 Adding and Configuring Replace Actions in Message Flows.................................................. 2-27 Adding and Configuring Reply Actions in Message Flows ..................................................... 2-27 Adding and Configuring Report Actions in Message Flows ................................................... 2-27 Adding and Configuring Resume Actions in Message Flows ................................................. 2-28 Adding and Configuring Route Nodes in Message Flows ....................................................... 2-28 Adding and Configuring Routing Actions in Message Flows ................................................. 2-28 Adding and Configuring Routing Options Actions in Message Flows .................................. 2-29 Adding and Configuring Routing Table Actions in Message Flows ...................................... 2-29 Adding and Configuring Service Callout Actions in Message Flows..................................... 2-30 iv
  • 5. Adding and Configuring Skip Actions in Message Flows........................................................ 2-30 Adding and Configuring Stages in Message Flows................................................................... 2-31 Adding and Configuring Transport Headers Actions in Message Flows .............................. 2-31 Adding and Configuring Validate Actions in Message Flows................................................. 2-31 Working with Alert Destinations....................................................................................................... 2-32 Creating and Editing Alert Destinations ..................................................................................... 2-32 Adding E-mail Recipients to Alert Destinations ........................................................................ 2-32 Adding JMS Destinations to Alert Destinations......................................................................... 2-32 Working with MQ Connections ......................................................................................................... 2-33 Adding and Editing MQ Connections ......................................................................................... 2-33 Working with Oracle Enterprise Repository and Harvester ......................................................... 2-34 Generating Business Services from Oracle Enterprise Repository .......................................... 2-34 Using Harvester............................................................................................................................... 2-35 Using Harvester from Eclipse ................................................................................................ 2-36 Using Harvester from the Command Line or a Script ....................................................... 2-37 Performing Queries in Oracle Enterprise Repository from Eclipse......................................... 2-38 Working with UDDI Registries .......................................................................................................... 2-38 Adding and Configuring UDDI Registries ................................................................................. 2-39 Importing Business Services From a UDDI Registry ................................................................. 2-39 Working with Split-Join....................................................................................................................... 2-39 Introduction to Split-Join ............................................................................................................... 2-40 Using Split-Join with Content in SOAP Headers ................................................................ 2-40 Transaction Support ................................................................................................................ 2-41 Security with Split-Joins.......................................................................................................... 2-41 Designing a Split-Join ..................................................................................................................... 2-41 Initial Setup............................................................................................................................... 2-42 Creating/Importing a WSDL Containing the Base Operation .................................. 2-42 Creating/Importing a Business Service to Use the Split-Join .................................... 2-42 Designing a Static Split-Join .......................................................................................................... 2-42 1. Creating a New Split-Join ................................................................................................... 2-42 2. Adding an Assign ................................................................................................................ 2-43 3. Adding a Parallel Node ...................................................................................................... 2-43 4. Adding an Assign for Each Branch ................................................................................... 2-44 5. Adding an Invoke Service .................................................................................................. 2-44 6. Adding an Assign for Each Branch ................................................................................... 2-44 7. Exporting and Testing the Split-Join................................................................................. 2-44 Designing a Dynamic Split-Join .................................................................................................... 2-45 1. Creating a New Split-Join ................................................................................................... 2-46 2. Adding an Assign ................................................................................................................ 2-47 3. Adding a For Each ............................................................................................................... 2-47 4. Adding an Assign ................................................................................................................ 2-47 5. Adding an Invoke Service .................................................................................................. 2-47 6. Adding an Assign ................................................................................................................ 2-48 7. Adding an Error Handler ................................................................................................... 2-48 8. Exporting and Testing the Split-Join................................................................................. 2-48 Creating a New Split-Join .............................................................................................................. 2-49 Configuring the Start Node ........................................................................................................... 2-50 v
  • 6. Adding General Information.................................................................................................. 2-51 Defining Global Variables....................................................................................................... 2-51 Viewing External Services ...................................................................................................... 2-52 Configuring a Receive .................................................................................................................... 2-52 Viewing the Operation............................................................................................................ 2-52 Defining the Receive Variable................................................................................................ 2-52 Adding General Information.................................................................................................. 2-53 Creating an Assign.......................................................................................................................... 2-53 Adding and Configuring Assign Operations ...................................................................... 2-53 Adding an Operation to an Assign ................................................................................ 2-54 Adding a Copy Operation............................................................................................... 2-54 Adding General Information.................................................................................................. 2-55 Invoking a Service ........................................................................................................................... 2-55 Selecting an Operation ............................................................................................................ 2-55 Defining Input and Output Variables................................................................................... 2-55 Adding General Information.................................................................................................. 2-56 Creating a Parallel ........................................................................................................................... 2-56 Adding Nodes .......................................................................................................................... 2-56 Adding General Information.................................................................................................. 2-57 Creating a For Each......................................................................................................................... 2-57 Defining the For Each Logic ................................................................................................... 2-57 Adding General Information.................................................................................................. 2-58 Creating an If Activity .................................................................................................................... 2-58 Configuring the If ................................................................................................................... 2-58 Writing the logic of the condition................................................................................... 2-59 Adding resulting nodes ................................................................................................... 2-59 Adding General Information .......................................................................................... 2-59 Adding and Configuring Else If ........................................................................................... 2-59 Writing the Logic of the Condition ................................................................................ 2-59 Adding Resulting Nodes ................................................................................................. 2-60 Adding General Information .......................................................................................... 2-60 Configuring the Else ................................................................................................................ 2-60 Adding Resulting Nodes ................................................................................................. 2-60 Adding General Information.................................................................................................. 2-60 Creating an Error Handler............................................................................................................. 2-60 Creating a Raise Error..................................................................................................................... 2-61 Configuring a Reply........................................................................................................................ 2-61 Viewing the Operation............................................................................................................ 2-62 Defining the Reply Variable ................................................................................................... 2-62 Adding General Information.................................................................................................. 2-63 About Scope ..................................................................................................................................... 2-63 Scope and Variables................................................................................................................. 2-63 Exporting and Testing a Split-Join................................................................................................ 2-64 Creating a Transport Typed Business Service ..................................................................... 2-64 Exporting the Split-Join Files.................................................................................................. 2-64 Exporting from the Business Service Menu .................................................................. 2-65 Auto-export ....................................................................................................................... 2-65 vi
  • 7. Manual export ................................................................................................................... 2-65 Testing the Split-Join in the Test Console............................................................................. 2-66 Exporting from the Business Service Menu .................................................................. 2-66 Using the Oracle Service Bus Debugger........................................................................................... 2-66 Enabling Debugging ....................................................................................................................... 2-67 Using Standard Debugging ........................................................................................................... 2-67 Debug Views............................................................................................................................. 2-68 Step Actions and Breakpoints ................................................................................................ 2-69 Using the Oracle Service Bus Debugger Launch Configuration.............................................. 2-69 Remote Debugging .................................................................................................................. 2-70 Debugging Oracle Service Bus Running Stand-Alone on a Managed Server................. 2-70 Server Sharing .......................................................................................................................... 2-70 3 Transport Configuration Protocol-Specific Transport Configuration Pages.............................................................................. 3-1 BPEL-10g Transport Configuration Page (Business Services)..................................................... 3-2 DSP Transport Configuration Page (Business Services)............................................................... 3-3 EJB Transport Configuration Page (Business Services) ................................................................ 3-4 E-Mail Transport Configuration Page (Business Services) .......................................................... 3-5 E-Mail Transport Configuration Page (Proxy Services) ............................................................... 3-6 File Transport Configuration Page (Business Services)................................................................ 3-7 File Transport Configuration Page (Proxy Services)..................................................................... 3-7 FTP Transport Configuration Page (Business Services) ............................................................... 3-8 FTP Transport Configuration Page (Proxy Services) .................................................................... 3-9 HTTP Transport Configuration Page (Business Services) ........................................................ 3-10 HTTP Transport Configuration Page (Proxy Services) ............................................................. 3-13 JCA Transport Configuration Page (Proxy and Business Services)......................................... 3-15 JEJB Transport Configuration Page (Business Services)............................................................ 3-17 JEJB Transport Configuration Page (Proxy Services) ................................................................ 3-19 JMS Transport Configuration Page (Business Services) ............................................................ 3-20 JMS Transport Configuration Page (Proxy Services)................................................................. 3-24 MQ Transport Configuration Page (Business Services) ............................................................ 3-28 MQ Transport Configuration Page (Proxy Services) ................................................................. 3-30 SB Transport Configuration Page (Business Services)............................................................... 3-32 SB Transport Configuration Page (Proxy Services) ................................................................... 3-33 SFTP Transport Configuration Page (Business Services) .......................................................... 3-34 SFTP Transport Configuration Page (Proxy Services)............................................................... 3-34 SOA-DIRECT Transport Configuration Page (Business Services)........................................... 3-36 Tuxedo Transport Configuration Page (Business Services)...................................................... 3-38 Tuxedo Transport Configuration Page (Proxy Services)........................................................... 3-40 WS Transport Configuration Page (Business Services) ............................................................. 3-41 WS Transport Configuration Page (Proxy Services) .................................................................. 3-42 4 User Interface Reference Alerts........................................................................................................................................................... 4-1 Alert Destination Editor .................................................................................................................... 4-2 vii
  • 8. Edit E-mail Recipient Page ............................................................................................................... 4-2 Edit JMS Destination Page ................................................................................................................ 4-3 Business Service Configuration ............................................................................................................ 4-3 Business Service General Configuration Page ............................................................................... 4-4 Business Service Editor Options ............................................................................................... 4-4 Business Service Message Type Configuration Page.................................................................... 4-4 Business Service SOAP Binding Configuration Page ................................................................... 4-6 Business Service Transport Configuration Page ........................................................................... 4-6 Business Service Message Handling Configuration Page......................................................... 4-10 Business Service - Service Policy Configuration Page ............................................................... 4-13 Business Service Security Configuration Page............................................................................ 4-14 Proxy Service Configuration ............................................................................................................... 4-15 Proxy Service General Configuration Page ................................................................................. 4-15 Proxy Service Editor Options ................................................................................................. 4-15 Proxy Service Message Type Configuration Page...................................................................... 4-16 Proxy Service Operation Selection Configuration Page ............................................................ 4-18 Proxy Service Message Handling Configuration Page.............................................................. 4-21 Proxy Service SOAP Binding Configuration Page .................................................................... 4-24 Proxy Service Transport Configuration Page ............................................................................. 4-25 Proxy Service - Service Policy Configuration Page ................................................................... 4-27 Proxy Service Security Configuration Page ................................................................................ 4-28 Oracle Service Bus Configurations and Projects............................................................................. 4-30 Oracle Service Bus Configurations View..................................................................................... 4-30 New Oracle Service Bus Configuration Project Wizard ............................................................ 4-31 Oracle Service Bus Configuration Page ....................................................................................... 4-31 New Oracle Service Bus Project .................................................................................................... 4-32 Custom Resources ................................................................................................................................. 4-32 New Custom Resource Wizard..................................................................................................... 4-33 New Custom Resource Editor....................................................................................................... 4-33 New Custom Resource - Resource Type Page ........................................................................... 4-33 Custom MQ Resource Configuration Page ................................................................................ 4-33 Export Wizard......................................................................................................................................... 4-34 Export Wizard - Oracle Service Bus Configuration JAR Export Page..................................... 4-34 Export Wizard - Export to Server - Select Resources Page ....................................................... 4-35 Export Wizard - Export to Server - Review Resources Page .................................................... 4-36 Import Wizard ........................................................................................................................................ 4-36 Import Wizard - Config JAR Import - Load Resources Page ................................................... 4-36 Import Wizard - Config JAR Import - Review Resources Page ............................................... 4-37 Import Wizard - Config ZIP Import - Load Resources Page .................................................... 4-37 Import Wizard - Config ZIP Import - Review Resources Page ................................................ 4-37 Import Wizard - URL Import - Load Resources Page ............................................................... 4-38 Import Wizard - URL Import - Review Resources Page ........................................................... 4-38 JNDI Providers....................................................................................................................................... 4-38 JNDI Provider Editor ...................................................................................................................... 4-38 New JNDI Provider Resource Wizard ......................................................................................... 4-39 Proxy Servers ......................................................................................................................................... 4-39 Message Flow Design Palette ............................................................................................................. 4-40 viii
  • 9. Message Flow Nodes ...................................................................................................................... 4-40 Message Flow Route Actions - Communication Actions.......................................................... 4-41 Message Flow Route Actions - Flow Control Actions ............................................................... 4-41 Message Flow Stage Actions - Communication Actions........................................................... 4-42 Message Flow Stage Actions - Flow Control Actions ................................................................ 4-42 Message Flow Stage Actions - Message Processing Actions .................................................... 4-43 Message Flow Stage Actions - Reporting Actions...................................................................... 4-44 Message Flow Editor............................................................................................................................. 4-44 Alert Action Properties................................................................................................................... 4-46 Assign Action Properties ............................................................................................................... 4-46 Conditional Branch Node Properties ........................................................................................... 4-47 Delete Action Properties ................................................................................................................ 4-48 Dynamic Publish Action Properties ............................................................................................. 4-49 Dynamic Routing Action Properties ............................................................................................ 4-50 Error Handler Node Properties..................................................................................................... 4-50 For-Each Action Properties............................................................................................................ 4-50 If-Then Action Properties............................................................................................................... 4-51 If Action and Else-If Action Properties................................................................................. 4-52 Else Action Properties ............................................................................................................. 4-52 Insert Action Properties ................................................................................................................. 4-52 Java Callout Action Properties ...................................................................................................... 4-53 Log Action Properties..................................................................................................................... 4-55 Message Flow Properties - Comment .......................................................................................... 4-56 Message Flow Properties - Namespaces ..................................................................................... 4-56 Message Flow Properties - Variables .......................................................................................... 4-56 MFL Transform Action Properties................................................................................................ 4-56 Operational Branch Node Properties ........................................................................................... 4-57 Pipeline Pair Node Properties ....................................................................................................... 4-58 Publish Action Properties .............................................................................................................. 4-59 Publish Table Action Properties.................................................................................................... 4-59 Publish Table Properties ......................................................................................................... 4-60 Case Action Properties ............................................................................................................ 4-60 Publish Action Properties ....................................................................................................... 4-61 Raise Error Action Properties........................................................................................................ 4-61 Transactions .............................................................................................................................. 4-61 Rename Action Properties ............................................................................................................. 4-61 Replace Action Properties.............................................................................................................. 4-62 Reply Action Properties ................................................................................................................. 4-63 Report Action Properties................................................................................................................ 4-64 Resume Action Properties ............................................................................................................. 4-65 Route Node Properties ................................................................................................................... 4-65 Routing Action Properties ............................................................................................................. 4-66 Routing Options Action Properties .............................................................................................. 4-66 Routing Table Action Properties................................................................................................... 4-67 Routing Table Properties ........................................................................................................ 4-68 Case Action Properties ............................................................................................................ 4-69 Routing Action Properties ...................................................................................................... 4-69 ix
  • 10. Service Callout Action Properties................................................................................................. 4-69 Skip Action Properties.................................................................................................................... 4-72 Stage Node Properties .................................................................................................................... 4-72 Transport Headers Action Properties .......................................................................................... 4-72 Validate Action Properties............................................................................................................. 4-74 Modify JAR Dependencies Dialog .................................................................................................... 4-75 SMTP Servers......................................................................................................................................... 4-75 Edit SMTP Server Page................................................................................................................... 4-76 New SMTP Server Resource Wizard............................................................................................ 4-76 UDDI Registry Configuration Page................................................................................................... 4-76 Outline view - Oracle Service Bus ..................................................................................................... 4-77 Resource Management ......................................................................................................................... 4-77 Preferences dialog - Oracle Service Bus - Type Associations Page.......................................... 4-77 References View .............................................................................................................................. 4-78 Select Clone Target Dialog............................................................................................................. 4-78 Select a Resource Dialog................................................................................................................. 4-78 New Service Key Provider Resource ................................................................................................. 4-78 New WS-Policy ...................................................................................................................................... 4-79 Service Accounts.................................................................................................................................... 4-79 New Service Account Resource .................................................................................................... 4-80 Service Account Editor - General Configuration Page .............................................................. 4-80 Service Account Editor - Static User Configuration Page ......................................................... 4-80 Service Account Editor - User Mappings Configuration Page................................................. 4-81 Expression Editors ................................................................................................................................ 4-81 XQuery/XSLT Expression Editor ................................................................................................. 4-81 XPath Expression Editor ................................................................................................................ 4-82 Condition Editor.............................................................................................................................. 4-82 Condition Builder Page .................................................................................................................. 4-83 Expression Page............................................................................................................................... 4-83 XQuery Resource Page ................................................................................................................... 4-83 XSLT Resource Page ....................................................................................................................... 4-84 Dynamic XQuery Page ................................................................................................................... 4-84 Variable Structures Page ................................................................................................................ 4-85 Namespace Definitions Page......................................................................................................... 4-85 XQuery Functions Page.................................................................................................................. 4-86 Add Variable Structure Dialog ..................................................................................................... 4-86 New XSL Transformation .................................................................................................................... 4-87 Split-Join User Interface Reference ................................................................................................... 4-87 Split-Join Design Palette................................................................................................................. 4-88 Operations................................................................................................................................. 4-88 Global / Start Node Properties ..................................................................................................... 4-90 Variable Properties.......................................................................................................................... 4-90 Error Handler Properties ............................................................................................................... 4-91 Invoke Service Properties............................................................................................................... 4-91 Invoking Another Split-Join ................................................................................................... 4-92 Reply Properties .............................................................................................................................. 4-93 For Each Properties ......................................................................................................................... 4-93 x
  • 11. If Properties...................................................................................................................................... 4-94 If and Else If Properties .................................................................................................................. 4-94 Parallel Properties ........................................................................................................................... 4-95 Raise Error Properties..................................................................................................................... 4-95 Repeat Until Properties .................................................................................................................. 4-95 Re-Raise Error Properties............................................................................................................... 4-95 Scope Properties .............................................................................................................................. 4-96 While Properties .............................................................................................................................. 4-96 Wait Properties ................................................................................................................................ 4-96 Assign Properties ............................................................................................................................ 4-97 Assign Operation Properties .................................................................................................. 4-97 Copy Properties............................................................................................................................... 4-98 Delete Properties ............................................................................................................................. 4-98 Insert Properties .............................................................................................................................. 4-99 Java Callout Properties................................................................................................................. 4-100 Log Properties................................................................................................................................ 4-101 Replace Properties......................................................................................................................... 4-101 Receive Properties ......................................................................................................................... 4-102 Counter Variable Dialog .............................................................................................................. 4-102 Create/Edit Variable Dialog........................................................................................................ 4-102 Scope and Variables............................................................................................................... 4-103 Create Message Variable Dialog ................................................................................................. 4-103 Service Browser ............................................................................................................................. 4-103 SOAP Fault Variable Dialog ........................................................................................................ 4-103 WSDL Browser .............................................................................................................................. 4-104 Split-Join Wizard - New Split-Join.............................................................................................. 4-104 Split-Join Wizard - Specify Operations ...................................................................................... 4-104 Part II XQuery Mapper 5 Introduction Overview of XQuery Mapper ................................................................................................................ 5-1 Support for XQuery 2002 and 2004........................................................................................................ 5-2 Restrictions Applicable to the XQuery Test View ......................................................................... 5-2 6 Transforming Data Using XQuery Mapper Launching XQuery Mapper.................................................................................................................... 6-1 Importing the XQuery Mapper Sample Project ................................................................................. 6-1 Creating an XQuery Mapper Project .................................................................................................... 6-2 Importing and Creating Schema Files.................................................................................................. 6-2 Importing XML Schemas and MFL Files ........................................................................................ 6-3 Creating XML Schemas ..................................................................................................................... 6-4 Creating XML Files from XML Schemas ........................................................................................ 6-4 Creating WSDL Files.......................................................................................................................... 6-5 Creating MFL Files............................................................................................................................. 6-5 Selecting Source and Target Data Types .............................................................................................. 6-6 xi
  • 12. Creating Data Transformations ............................................................................................................. 6-7 Creating Basic Element Transformations ....................................................................................... 6-8 Prerequisite .................................................................................................................................. 6-8 Creating Element-to-Element Links......................................................................................... 6-8 Creating Basic Attribute Transformations...................................................................................... 6-8 Prerequisite .................................................................................................................................. 6-9 Creating an Attribute-to-Element Link.................................................................................... 6-9 Creating Complex Transformations................................................................................................ 6-9 Prerequisite ............................................................................................................................... 6-10 Creating a Complex Transformation .................................................................................... 6-10 Editing Data Transformations............................................................................................................. 6-10 Viewing and Editing XQuery Files............................................................................................... 6-10 Creating Joins and Unions ............................................................................................................. 6-11 Creating If-Then-Else Expressions................................................................................................ 6-11 Creating For-Let-Where-Order By-Return (FLWOR) Expressions.......................................... 6-13 Creating Typeswitch Expressions................................................................................................. 6-14 Inserting XQuery Functions .......................................................................................................... 6-15 Inserting Expression Variables...................................................................................................... 6-16 Viewing Schema Properties........................................................................................................... 6-17 Restricting Output of Optional Elements ........................................................................................ 6-17 Testing Data Transformations............................................................................................................. 6-18 Features of the Test View............................................................................................................... 6-18 Related Topics .......................................................................................................................... 6-21 Graphical Features in Design View ................................................................................................... 6-21 Right-Click Menu Options............................................................................................................. 6-21 Link Patterns .................................................................................................................................... 6-22 Link Colors....................................................................................................................................... 6-23 XML Global Elements, Global Types, Local Elements, and Attributes...................................... 6-24 7 Examples: Data Transformation Using XQuery Mapper Combining Data from Different Schemas .......................................................................................... 7-1 Mapping Repeating Elements and Creating Joins ............................................................................ 7-4 Step 1. Create an XQuery File........................................................................................................... 7-4 Step 2. Add a Constraint ................................................................................................................... 7-6 Step 3. Add Data to Return Element ............................................................................................... 7-7 Step 4. Add Function to Calculate Value of Quote ....................................................................... 7-7 Step 5. Add a Constraint with Multiple Conditions ..................................................................... 7-9 Test the XQuery............................................................................................................................... 7-10 Creating Unions..................................................................................................................................... 7-10 Creating Repeating-Source to Nonrepeating-Target Transformations ....................................... 7-12 Creating Nonrepeating-Source to Repeating-Target Transformation......................................... 7-14 Creating Nested If-Then-Else Expressions....................................................................................... 7-17 Step 1. Create the XQuery Transformation ................................................................................. 7-18 Step 2. Create the First "If" Condition .......................................................................................... 7-19 Step 3. Create the First Nested If-Then-Else Condition............................................................. 7-20 Step 4. Create the Second Nested If-Then-Else Condition ........................................................ 7-20 Creating FLWOR Expressions............................................................................................................. 7-21 xii
  • 13. Using Recursive Schemas .................................................................................................................... 7-23 Grouping Data by Key Fields ............................................................................................................. 7-25 Part III Format Builder 8 Introduction Overview.................................................................................................................................................... 8-1 9 Format Builder Main Window Using the Menu Bar ................................................................................................................................. 9-1 Using the Toolbar ..................................................................................................................................... 9-1 Using the Tree Pane.................................................................................................................................. 9-2 Using the Shortcut Menus ...................................................................................................................... 9-3 Using Drag and Drop .............................................................................................................................. 9-4 Valid Names .............................................................................................................................................. 9-4 10 Message Format Detail Window 11 Field Detail Window 12 Group Detail Window 13 Reference Detail Window 14 Comment Detail Window 15 Format Builder Options 16 Importing Metadata Importing a Guideline XML File........................................................................................................ 16-1 Importing an XML Schema ................................................................................................................. 16-2 Importing a COBOL Copybook ......................................................................................................... 16-2 Importing C Structures......................................................................................................................... 16-3 Starting the C Structure Importer ...................................................................................................... 16-3 Generating MFL Data........................................................................................................................... 16-4 Generating C Code................................................................................................................................ 16-5 Importing an FML Field Table Class ................................................................................................ 16-5 FML Field Table Class Importer Prerequisites .......................................................................... 16-5 Sample FML Field Table Class Files ............................................................................................ 16-6 Creating XML with the FML Field Table Class Importer ........................................................ 16-6 17 Format Tester Format Tester Window ......................................................................................................................... 17-1 Format Tester Menus ............................................................................................................................ 17-1 xiii
  • 14. File Menu ................................................................................................................................................ 17-1 Edit Menu ............................................................................................................................................... 17-2 Display Menu......................................................................................................................................... 17-2 Generate Menu ...................................................................................................................................... 17-3 Transform Menu .................................................................................................................................... 17-3 Shortcut Menu ....................................................................................................................................... 17-3 Using the Non-XML Window ............................................................................................................. 17-3 Using the Data Offset Feature............................................................................................................. 17-4 Using the Text Feature .......................................................................................................................... 17-4 Using the XML Window ...................................................................................................................... 17-4 Using the Debug Window ................................................................................................................... 17-4 Using the Resize Bars ........................................................................................................................... 17-5 Debugging Format Definitions .......................................................................................................... 17-5 Searching for Values ............................................................................................................................. 17-5 Searching for Offsets ............................................................................................................................ 17-5 Using the Debug Log ............................................................................................................................ 17-6 18 Format Builder Menus File Menu ................................................................................................................................................ 18-1 Edit Menu ............................................................................................................................................... 18-1 Insert Menu ............................................................................................................................................ 18-2 View Menu ............................................................................................................................................. 18-3 Tools Menu ............................................................................................................................................. 18-3 Help Menu.............................................................................................................................................. 18-3 Shortcut Menu ....................................................................................................................................... 18-3 19 How Do I? Create a Message Format ..................................................................................................................... 19-1 Create a Group ....................................................................................................................................... 19-1 Create a Field.......................................................................................................................................... 19-2 Create a Comment ................................................................................................................................. 19-2 Create a Reference ................................................................................................................................. 19-3 Save a Document ................................................................................................................................... 19-3 Use Format Tester .................................................................................................................................. 19-4 Debug Format Definitions .................................................................................................................. 19-4 Search for Values ................................................................................................................................... 19-4 Search for Offsets .................................................................................................................................. 19-5 Use the Debug Log................................................................................................................................ 19-5 Character Delimiters............................................................................................................................. 19-5 Specify a Delimiter ............................................................................................................................... 19-6 Specify by Reference ....................................................................................................................... 19-6 Specify by Value ............................................................................................................................. 19-7 Delimiter Match Rule........................................................................................................................... 19-7 Data Delimiter ................................................................................................................................. 19-7 Escape Character ............................................................................................................................. 19-8 None .................................................................................................................................................. 19-8 xiv
  • 15. 20 Using the Palette Displaying the Palette Window.......................................................................................................... 20-1 Adding Items to the Palette ................................................................................................................. 20-1 Adding Palette Items to a Message Format ...................................................................................... 20-2 Using the File Menu ............................................................................................................................. 20-2 Using the Shortcut Menu..................................................................................................................... 20-2 21 Format Builder Supported Data Types MFL Data Types..................................................................................................................................... 21-1 COBOL Copybook Importer Data Types ......................................................................................... 21-5 Unsupported C Language Features.................................................................................................... 21-6 Part IV General Development Topics 22 Development Environment Setup Running Multiple Development Servers with Derby ................................................................... 22-1 Derby Best Practices and Troubleshooting.................................................................................. 22-1 Sharing a Single Derby Database Instance Between Multiple Domains................................. 22-2 Running Each Domain with a Unique Derby Instance ............................................................. 22-3 Disabling the JMS Reporting Provider............................................................................................. 22-4 23 Creating and Using Custom XPath Functions Registering Custom Functions with Oracle Service Bus ............................................................... 23-1 Creating and Packaging the Custom Function Java Classes......................................................... 23-3 Creating the Class and Method..................................................................................................... 23-3 Using Single-Dimensional Arrays ......................................................................................... 23-3 Packaging the Custom Function Class......................................................................................... 23-4 Using Custom Functions...................................................................................................................... 23-4 Using Custom Functions in Inline XQuery Expressions and XQuery Resources ................. 23-4 Using Custom Functions in XSLT Resources.............................................................................. 23-4 Testing Custom XPath Functions in Eclipse..................................................................................... 23-5 Deploying Custom Functions in a Cluster ....................................................................................... 23-5 Part V Transports 24 Oracle SOA Suite Transport (SOA-DIRECT) About the SOA-DIRECT Transport ................................................................................................... 24-1 WS-Addressing................................................................................................................................ 24-2 Security ............................................................................................................................................. 24-3 Environment Values ....................................................................................................................... 24-3 Error Handling ................................................................................................................................ 24-3 Connection Errors .................................................................................................................... 24-3 Application Errors ................................................................................................................... 24-3 Generic Errors........................................................................................................................... 24-4 Using SOA Suite Services with Oracle Service Bus....................................................................... 24-4 xv
  • 16. Simple Use Cases – Synchronous ................................................................................................. 24-4 Synchronous Invocation of a SOA Composite .................................................................... 24-4 Creating and Configuring the Services ......................................................................... 24-4 Synchronous Invocation from a SOA Composite ............................................................... 24-5 Creating and Configuring the Services ......................................................................... 24-5 Associating Messages with the Correct Conversation ....................................................... 24-6 Advanced Use Cases – Asynchronous......................................................................................... 24-6 Asynchronous Invocation of a SOA Composite.................................................................. 24-6 Creating and Configuring the Services ......................................................................... 24-7 Asynchronous Invocation from a SOA Composite............................................................. 24-8 Creating and Configuring the Services ......................................................................... 24-9 Transport Configuration Reference ................................................................................................. 24-10 SOA-DIRECT Endpoint URI ....................................................................................................... 24-11 Cluster URI ............................................................................................................................. 24-11 URI Examples ......................................................................................................................... 24-11 SOA-DIRECT Transport Configuration for Business Services............................................... 24-12 WS-Addressing Reference................................................................................................................. 24-14 ReplyTo Header ............................................................................................................................ 24-14 Calling a SOA Composite Asynchronously with a SOA-DIRECT Business Service ... 24-14 Calling Back to a SOA Composite Asynchronously with a SOA-DIRECT Business Service ..................................................................................................................... 24-14 MessageID / RelatesTo Headers ................................................................................................ 24-14 XML Examples ..................................................................................................................................... 24-15 Conversation ID Examples .......................................................................................................... 24-15 Port and Message Definitions .............................................................................................. 24-15 WS-Addressing that Sets the Conversation ID.................................................................. 24-16 Message Payload Data that Sets the Conversation ID...................................................... 24-17 Transformation Examples..................................................................................................... 24-18 Asynchronous Composite to Composite Native Communication Through Oracle Service Bus Example..................................................................................................................... 24-20 Port and Message Definitions .............................................................................................. 24-20 BP1 to P1 – Initiate operation ............................................................................................... 24-20 P1/B1 to BP2........................................................................................................................... 24-21 BP2 to P2 – onResult operation ............................................................................................ 24-21 P2/B2 to BP1 – onResult operation ..................................................................................... 24-22 25 JCA Transport About the JCA Transport ..................................................................................................................... 25-1 Messaging......................................................................................................................................... 25-2 Transactions .............................................................................................................................. 25-2 Transport Headers and Normalized Message Properties......................................................... 25-2 $inbound and $outbound Request Headers ........................................................................ 25-2 $inbound-Only Request Headers .......................................................................................... 25-3 $outbound-Only Request Headers........................................................................................ 25-3 Endpoint Properties ........................................................................................................................ 25-4 Proxy Service Endpoint Properties (Inbound)..................................................................... 25-4 Business Service Endpoint Properties (Outbound)............................................................. 25-6 xvi
  • 17. Security ............................................................................................................................................. 25-6 Proxy Services........................................................................................................................... 25-7 Business Services...................................................................................................................... 25-7 Logging ............................................................................................................................................. 25-7 Oracle BAM Adapter Logging ............................................................................................... 25-8 Error Handling ................................................................................................................................ 25-8 EIS Fault Details in JCA Business Services........................................................................... 25-8 Business Service Retry Application Errors........................................................................... 25-8 URI Rewriting.................................................................................................................................. 25-8 Environment Variables................................................................................................................... 25-8 Encoding........................................................................................................................................... 25-9 Working with Adapters........................................................................................................................ 25-9 Adapter Support.............................................................................................................................. 25-9 Oracle JCA Adapter Limitations................................................................................................. 25-10 Limitations that Apply to All JCA Adapters ..................................................................... 25-10 Oracle JCA Adapter for AQ Limitations ............................................................................ 25-10 Oracle JCA Adapters for Files/FTP Limitations ............................................................... 25-10 JCA Adapter Framework ............................................................................................................. 25-10 Configuring Adapters – General ................................................................................................ 25-11 Configuring Adapters that Poll a Database .............................................................................. 25-11 Configuring the Oracle JCA Adapter for Database ................................................................. 25-12 Configuring the Oracle JCA Adapter for AQ ........................................................................... 25-12 Using Custom JCA Adapters ...................................................................................................... 25-12 Rejected Messages......................................................................................................................... 25-13 Invoking an EIS Service Through Oracle Service Bus................................................................. 25-13 Creating, Configuring, and Invoking the Services................................................................... 25-13 Invoking an External Service from an EIS ..................................................................................... 25-14 Creating, Configuring, and Invoking the Services................................................................... 25-14 Transport Configuration Reference ................................................................................................. 25-15 Endpoint URI ................................................................................................................................. 25-15 Endpoint Redeployment....................................................................................................... 25-15 JCA Transport Configuration for Proxy and Business Services............................................. 25-15 Proxy Service Operation Configuration .................................................................................... 25-17 Proxy Service Message Handling ............................................................................................... 25-17 Policies ............................................................................................................................................ 25-17 26 HTTP and Poller Transports HTTP Transport ..................................................................................................................................... 26-1 Configuring Proxy Services using the HTTP Transport ........................................................... 26-1 Configuring Business Services using the HTTP Transport....................................................... 26-3 REST Support................................................................................................................................... 26-6 REST in Proxy Services ........................................................................................................... 26-7 XQuery Examples ............................................................................................................. 26-7 Headers .............................................................................................................................. 26-8 REST in Business Services....................................................................................................... 26-8 Response Codes and Error Handling for HTTP Business Services........................... 26-9 E-mail Transport .................................................................................................................................... 26-9 xvii
  • 18. Configuring Proxy Services Using the E-mail Transport ....................................................... 26-10 Configuring Business Services Using the E-mail Transport ................................................... 26-11 File Transport ....................................................................................................................................... 26-12 Configuring Proxy Services using the File Transport.............................................................. 26-12 Configuring Business Services using the File Transport ........................................................ 26-13 FTP Transport ....................................................................................................................................... 26-14 Configuring Proxy Services using the FTP Transport ............................................................. 26-14 Configuring Business Services using the FTP Transport ........................................................ 26-15 SFTP Transport..................................................................................................................................... 26-16 Environment Values ..................................................................................................................... 26-17 General Principles of SFTP Authentication............................................................................... 26-17 Run-Time Behavior ....................................................................................................................... 26-18 Using the SFTP Transport............................................................................................................ 26-19 Enabling SFTP Authentication............................................................................................. 26-19 Creating the Known Hosts File..................................................................................... 26-19 Enabling Username-Password Authentication .......................................................... 26-20 Enabling Host-Based Authentication .......................................................................... 26-20 Enabling Public Key Authentication............................................................................ 26-21 Configuring Proxy Services.................................................................................................. 26-21 Configuring Transport Headers and Metadata.......................................................... 26-24 Configuring Business Services ............................................................................................. 26-25 Handling Communication Errors........................................................................................ 26-26 Troubleshooting ..................................................................................................................... 26-27 Importing Resources.............................................................................................................. 26-27 Importing and Publishing Services: UDDI Registries ...................................................... 26-27 27 SB Transport Environmental Values .......................................................................................................................... 27-2 Configuring Proxy Services to Use the SB Transport..................................................................... 27-2 Configuring Business Services to Use the SB Transport .............................................................. 27-3 JNDI Provider .................................................................................................................................. 27-4 Handling Errors .................................................................................................................................... 27-5 UDDI........................................................................................................................................................ 27-5 Publishing a Service........................................................................................................................ 27-5 Importing a Service ......................................................................................................................... 27-6 28 EJB Transport Introduction............................................................................................................................................ 28-1 Invoking EJBs from Oracle Service Bus ........................................................................................... 28-2 Register a JNDI Provider Resource .............................................................................................. 28-2 Adding a JNDI Provider ......................................................................................................... 28-3 Register an EJB Client JAR Resource............................................................................................ 28-3 Adding a Client or Converter JAR ........................................................................................ 28-3 Create a Service Account (Optional) ..................................................................................... 28-3 Locate an EJB in the JNDI Tree .............................................................................................. 28-3 Transport Configuration Reference.............................................................................................. 28-3 EJB Endpoint URI..................................................................................................................... 28-4 xviii
  • 19. EJB Transport Configuration for Business Services............................................................ 28-4 Invoking EJB Business Services..................................................................................................... 28-6 Exposing EJBs as Web Services........................................................................................................... 28-6 Advanced Topics.................................................................................................................................... 28-6 Transaction Processing, Retries, and Error Handling................................................................ 28-6 Transactions .............................................................................................................................. 28-6 Retries and Failover ................................................................................................................. 28-7 Error Handling ......................................................................................................................... 28-8 Supported Types and Converter Class ........................................................................................ 28-8 Converter Classes..................................................................................................................... 28-9 Business Exception Classes............................................................................................................ 28-9 Troubleshooting..................................................................................................................................... 28-9 Enabling Debug Mode.................................................................................................................... 28-9 Temp Directories ............................................................................................................................. 28-9 Deployed Application .................................................................................................................... 28-9 Errors............................................................................................................................................... 28-10 29 JEJB Transport About the JEJB Transport..................................................................................................................... 29-1 Difference Between the JEJB Transport and the EJB Transport ............................................... 29-1 Environment Values ....................................................................................................................... 29-2 WSDL Generation ........................................................................................................................... 29-2 Error Handling ................................................................................................................................ 29-2 Exception Propagation in the Response ............................................................................... 29-2 Java Callout and Service Callout Exceptions................................................................ 29-3 Application and Connection Errors ...................................................................................... 29-3 Connection Errors............................................................................................................. 29-3 Application Errors ............................................................................................................ 29-4 Creating and Configuring JEJB Services .......................................................................................... 29-4 Creating and Packaging Your Client EJB JAR ............................................................................ 29-4 Register a JNDI Provider Resource (Business Services) ............................................................ 29-5 Adding a JNDI Provider ......................................................................................................... 29-5 Configuring a JEJB Proxy or Business Service ............................................................................ 29-5 Use Cases................................................................................................................................................. 29-6 EJB Invokes an External Service.................................................................................................... 29-6 Non-EJB Client Invokes an EJB ..................................................................................................... 29-7 EJB Invokes EJB ............................................................................................................................... 29-7 Transport Configuration Reference ................................................................................................... 29-8 JEJB Endpoint URI .......................................................................................................................... 29-8 Proxy Service JEJB Endpoint URI .......................................................................................... 29-8 Business Service JEJB Endpoint URI ..................................................................................... 29-9 JEJB Transport Configuration for Proxy Services....................................................................... 29-9 JEJB Transport Configuration for Business Services................................................................ 29-11 Testing JEJB Services .......................................................................................................................... 29-12 UDDI Integration ................................................................................................................................ 29-12 UDDI Publish................................................................................................................................. 29-12 UDDI Import.................................................................................................................................. 29-12 xix
  • 20. 30 JMS Transport Overview of JMS Interoperability ..................................................................................................... 30-1 Asynchronous Request-Response Messaging ................................................................................. 30-2 Using SOAP-JMS Transport................................................................................................................ 30-3 Interoperating with Oracle WebLogic Server ............................................................................. 30-3 Configuring the Response Queues for Cross-Domain JMS Calls ..................................... 30-3 Naming Guidelines for Domains, WebLogic, and JMS Servers .................................................. 30-4 Specifying the JMS Type for Services ............................................................................................... 30-4 WSDL-Defined SOAP Fault Messages ............................................................................................. 30-4 Interoperability with WebSphere MQ .............................................................................................. 30-6 Interoperability with Tibco EMS ....................................................................................................... 30-6 Message ID and Correlation ID Patterns for JMS Request/Response........................................ 30-6 Overview of JMS Request-Response and Design Patterns ....................................................... 30-7 Patterns for Messaging............................................................................................................ 30-7 JMS Message ID Pattern ................................................................................................................. 30-8 JMS Correlation ID Pattern ............................................................................................................ 30-9 Comparison of Message ID and Correlation ID Patterns.......................................................... 30-9 Interoperating with JAX-RPC Over JMS ................................................................................... 30-10 Invoking a JAX-RPC Web Service Using the JMS Message ID Pattern ........................ 30-11 Invoking a JMS Request-Response Proxy Service from a JAX-RPC Client ................... 30-12 JMS Message ID Pattern Examples............................................................................................. 30-12 Example 1: An MQ Service Uses a JMS Message ID to Correlate the Request-Response Message 30-13 Example 2: A JAX-RPC Client with Oracle Service Bus Proxy Service.......................... 30-13 Example 3: Oracle Service Bus as a Client of an Oracle WebLogic Server JAX-RPC Request/Response Service .................................................................................................. 30-14 Using the JMS Transport.................................................................................................................... 30-14 Security ........................................................................................................................................... 30-15 Configuring Proxy Services using JMS Transport Protocol.................................................... 30-15 Transport Headers ........................................................................................................................ 30-15 Configuring Transport Headers .......................................................................................... 30-17 Sending and Receiving Java Objects in Messages .................................................................... 30-18 Configuring Business Services using JMS Transport Protocol............................................... 30-18 Error Handling .............................................................................................................................. 30-19 31 Local Transport Introduction............................................................................................................................................ 31-1 Features and Characteristics of Local Transport Proxy Services .................................................. 31-1 Message Handling for Local Transport Proxy Services ................................................................. 31-2 Usage of Local Transport Proxy Services .......................................................................................... 31-2 Propagating SOAP Faults Between Proxy Services ................................................................... 31-4 Using OWSM Security with Local Proxies....................................................................................... 31-4 Limitations.............................................................................................................................................. 31-6 32 WS Transport Supported Functionality ..................................................................................................................... 32-2 xx
  • 21. Messaging Patterns ......................................................................................................................... 32-2 Policies .............................................................................................................................................. 32-2 WS-Policy Configurations ...................................................................................................... 32-3 Streaming Content for Large Messages ...................................................................................... 32-3 Web Services Interoperability ....................................................................................................... 32-3 Authentication and Authorization of Services ............................................................................... 32-3 Proxy Service Authentication ....................................................................................................... 32-3 Proxy Service Authorization ......................................................................................................... 32-4 Business Service Authentication .................................................................................................. 32-4 Using the WS Transport ....................................................................................................................... 32-5 Adding Resources to an Oracle Service Bus Domain ................................................................ 32-5 Configuring WS Policies ......................................................................................................... 32-5 Attaching WS Policies to a Service ........................................................................................ 32-6 Configuring an Error Queue ......................................................................................................... 32-6 Configuring Proxy Services to Use the WS Transport............................................................... 32-6 Assigning Transport Access Control to Proxy Services ............................................................ 32-8 Adding Policy Conditions .................................................................................................... 32-10 Routing the WS Transport Through an HTTP Proxy Server.................................................. 32-15 Configuring Business Services to Use the WS Transport ....................................................... 32-15 Error Handling .................................................................................................................................... 32-17 Importing and Exporting Resources................................................................................................ 32-17 Importing and Publishing Services Using UDDI Registries...................................................... 32-18 33 MQ Transport Key Features ........................................................................................................................................... 33-1 Advantages of Using the MQ Transport ........................................................................................... 33-2 Supported Service Types ..................................................................................................................... 33-2 Messaging Patterns ............................................................................................................................... 33-2 Environment Values.............................................................................................................................. 33-3 Quality of Service.................................................................................................................................. 33-4 MQ Clusters and the MQ Transport.................................................................................................. 33-4 Using the MQ Transport ...................................................................................................................... 33-4 Adding MQ Client Libraries to Your Environment................................................................... 33-4 MQ Connection Resources............................................................................................................. 33-5 Creating an MQ Connection Resource ................................................................................. 33-5 Configuring Proxy Services to Use the MQ Transport.............................................................. 33-7 Configuring Business Services to Use the MQ Transport ......................................................... 33-9 Transport Headers ........................................................................................................................ 33-12 Configuring Transport Headers .......................................................................................... 33-18 About RFH2 Headers ..................................................................................................... 33-19 Error Handling .............................................................................................................................. 33-19 Limitations of the MQ Transport................................................................................................ 33-19 Using the WebSphere JMS MQ Interface....................................................................................... 33-20 Using the WebSphere MQ JMS Interface................................................................................... 33-20 Messaging Types ........................................................................................................................... 33-21 Non-Persistent Messaging .................................................................................................... 33-21 Non-XA Persistent Messaging ............................................................................................. 33-21 xxi
  • 22. XA Messaging......................................................................................................................... 33-21 Tuning WebSphere MQ ............................................................................................................... 33-21 34 Oracle BPEL Process Manager Transport (for use with Oracle SOA Suite 10g only) Overview................................................................................................................................................. 34-1 SOAP Support.................................................................................................................................. 34-2 Transaction Propagation ................................................................................................................ 34-2 SSL Support...................................................................................................................................... 34-2 Environment Variables................................................................................................................... 34-2 Simple Use Cases (Synchronous)....................................................................................................... 34-3 Synchronous: Invoking Processes in Oracle BPEL Process Manager...................................... 34-3 Creating and Configuring the Services................................................................................. 34-3 Synchronous: Calling External Services from Oracle BPEL Process Manager ...................... 34-4 Creating and Configuring the Services................................................................................. 34-4 Associating Messages with the Correct Conversation .............................................................. 34-4 Advanced Use Cases (Asynchronous) ............................................................................................... 34-5 Asynchronous: Invoking Processes in Oracle BPEL Process Manager ................................... 34-5 Creating and Configuring the Services................................................................................. 34-5 Asynchronous: Calling Service Providers from Oracle BPEL Process Manager ................... 34-6 Creating and Configuring the Services................................................................................. 34-7 Transport Configuration Reference ................................................................................................... 34-8 Endpoint URI ................................................................................................................................... 34-8 bpel-10g Transport Configuration................................................................................................ 34-9 Security.................................................................................................................................................. 34-11 Using SSL from Oracle Service Bus to Oracle Servers ............................................................. 34-11 Error Handling ..................................................................................................................................... 34-12 Application Errors......................................................................................................................... 34-12 Connection Errors ......................................................................................................................... 34-12 Other Errors ................................................................................................................................... 34-12 WS-Addressing Reference................................................................................................................. 34-12 ReplyTo........................................................................................................................................... 34-12 Calling a BPEL Process Asynchronously Through Oracle Service Bus ......................... 34-12 BPEL Processes Calling External Services Through Oracle Service Bus ....................... 34-13 MessageID / RelatesTo ................................................................................................................ 34-13 XML Examples ..................................................................................................................................... 34-13 Conversation ID Examples .......................................................................................................... 34-13 Port and Message Definitions .............................................................................................. 34-14 WS-Addressing that Sets the Conversation ID.................................................................. 34-14 Message Payload Data that Sets the Conversation ID...................................................... 34-15 Transformation Examples..................................................................................................... 34-17 Asynchronous BPEL to BPEL Through Oracle Service Bus Example ................................... 34-18 Port and Message Definitions .............................................................................................. 34-19 BP1 to P1 – Initiate operation ............................................................................................... 34-19 P1/B1 to BP2........................................................................................................................... 34-19 BP2 to P2 – onResult operation ............................................................................................ 34-20 P2/B2 to BP1 – onResult operation ..................................................................................... 34-20 xxii
  • 23. 35 Tuxedo Transport Overview................................................................................................................................................. 35-1 Capabilities of the Tuxedo transport............................................................................................ 35-2 Configuring the Oracle Tuxedo Connector ...................................................................................... 35-3 Before You Begin ............................................................................................................................. 35-3 Configuring Oracle Tuxedo Connector ....................................................................................... 35-4 Using Tuxedo Services from Oracle Service Bus............................................................................. 35-4 Configuring a New Business Service ........................................................................................... 35-5 Add a New Project................................................................................................................... 35-5 Add a Business Service ........................................................................................................... 35-5 Load Balancing and Failover ......................................................................................................... 35-9 Handling Errors............................................................................................................................... 35-9 Testing Your Configuration........................................................................................................... 35-9 Using Oracle Service Bus from Tuxedo........................................................................................... 35-10 Adding and Configuring a Proxy Service ................................................................................ 35-10 Add a New Project................................................................................................................. 35-10 Add a Proxy Service .............................................................................................................. 35-10 Configure the Proxy Service................................................................................................. 35-12 Testing Your Configuration......................................................................................................... 35-13 Tuxedo Transport Buffer Transformation ....................................................................................... 35-13 Any XML Service Type ................................................................................................................ 35-14 Messaging Service Type ............................................................................................................... 35-14 Tuxedo Transport Transaction Processing ...................................................................................... 35-15 Inbound Services ........................................................................................................................... 35-15 Outbound Services........................................................................................................................ 35-16 36 DSP and Oracle Data Service Integrator Transport Enabling Data Services for Oracle Service Bus............................................................................... 36-1 Using the DSP Transport ..................................................................................................................... 36-2 Actions Needed Within Oracle Data Service Integrator ........................................................... 36-2 Step 1. Start Your Server ......................................................................................................... 36-2 Step 2. Generate a WSDL from the Data Service................................................................. 36-2 Step 3: Obtaining the Web Service Address......................................................................... 36-3 Actions Needed Within Oracle Service Bus ................................................................................ 36-3 Step 4: Import the Data Service WSDL into Oracle Service Bus ....................................... 36-3 Step 5: Create the Business Service........................................................................................ 36-3 Step 6: Create the Proxy Service ............................................................................................ 36-4 Step 7: Test Your Setup ........................................................................................................... 36-4 Part VI Transport SDK 37 Introduction 38 Design Considerations What is a Transport Provider?............................................................................................................. 38-1 xxiii
  • 24. What is the Transport SDK? ............................................................................................................... 38-2 Purpose of the SDK ......................................................................................................................... 38-2 Transport SDK Features ................................................................................................................. 38-3 Handling Inbound and Outbound Messages ...................................................................... 38-3 Deploying Transport-Related Artifacts ................................................................................ 38-3 Processing Messages Asynchronously ................................................................................ 38-4 Transport Provider Modes............................................................................................................. 38-4 Related Features .............................................................................................................................. 38-4 Load Balancing ......................................................................................................................... 38-4 Monitoring and Metrics .......................................................................................................... 38-4 Do You Need to Develop a Custom Transport Provider? .............................................................. 38-4 When to Use the Transport SDK................................................................................................... 38-5 When Alternative Approaches are Recommended.................................................................... 38-5 Transport Provider Components ....................................................................................................... 38-6 Overview .......................................................................................................................................... 38-6 Design-Time Component .............................................................................................................. 38-7 Runtime Component ...................................................................................................................... 38-8 The Transaction Model ........................................................................................................................ 38-9 Overview of Transport Endpoint Properties .............................................................................. 38-9 Transactional vs. Non-Transactional Endpoints ............................................................... 38-10 Supported Message Patterns ............................................................................................... 38-10 Support for Synchronous Transactions ..................................................................................... 38-10 Use Case 1 (Response Pipeline Processing) ....................................................................... 38-10 Use Case 2 (Service Callout Processing)............................................................................. 38-11 Use Case 3 (Suspending Transactions) ............................................................................... 38-12 Use Case 4 (Multiple URIs) .................................................................................................. 38-12 The Security Model ............................................................................................................................ 38-12 Inbound Request Authentication ............................................................................................... 38-12 Outbound Request Authentication ........................................................................................... 38-13 Outbound Username/Password Authentication ............................................................. 38-13 Outbound SSL Client Authentication (Two-Way SSL) ................................................... 38-14 Outbound JAAS Subject Authentication ........................................................................... 38-14 Link-Level or Connection-Level Credentials ........................................................................... 38-14 Uniform Access Control to Proxy Services ............................................................................... 38-15 Identity Propagation and Credential Mapping ....................................................................... 38-15 The Threading Model......................................................................................................................... 38-15 Overview ........................................................................................................................................ 38-15 Inbound Request Message Thread ............................................................................................. 38-16 Outbound Response Message Thread ....................................................................................... 38-17 Support for Asynchrony .............................................................................................................. 38-17 Publish and Service Callout Threading ..................................................................................... 38-17 Designing for Message Content ...................................................................................................... 38-18 Overview ........................................................................................................................................ 38-18 Sources and Transformers .......................................................................................................... 38-18 Sources and the MessageContext Object ................................................................................... 38-19 Built-In Transformations.............................................................................................................. 38-20 xxiv
  • 25. 39 Developing a Transport Provider Development Road Map ...................................................................................................................... 39-1 Planning............................................................................................................................................ 39-1 Developing ....................................................................................................................................... 39-2 Packaging and Deploying.............................................................................................................. 39-2 Before You Begin ................................................................................................................................... 39-2 Basic Development Steps .................................................................................................................... 39-2 1. Review the Transport Framework Components .................................................................... 39-3 2. Create a Directory Structure for Your Transport Project ...................................................... 39-4 3. Create an XML Schema File for Transport-Specific Artifacts ............................................... 39-4 4. Define Transport-Specific Artifacts ......................................................................................... 39-4 EndPointConfiguration .......................................................................................................... 39-5 RequestMetaDataXML ............................................................................................................ 39-5 RequestHeadersXML............................................................................................................... 39-6 ResponseMetaDataXML ......................................................................................................... 39-7 ResponseHeadersXML............................................................................................................ 39-7 5. Define the XMLBean TransportProviderConfiguration........................................................ 39-7 6. Implement the Transport Provider User Interface................................................................. 39-8 7. Implement the Runtime Interfaces ........................................................................................... 39-9 8. Deploy the Transport Provider ............................................................................................... 39-10 Important Development Topics........................................................................................................ 39-10 Handling Messages............................................................................................................................. 39-10 Overview ........................................................................................................................................ 39-11 Sending and Receiving Message Data ....................................................................................... 39-11 Request and Response Metadata Handling .............................................................................. 39-12 Character Set Encoding ................................................................................................................ 39-12 Co-Located Calls ........................................................................................................................... 39-13 Returning Outbound Responses to Oracle Service Bus Runtime .......................................... 39-13 Transforming Messages .................................................................................................................... 39-13 Working with TransportOptions ...................................................................................................... 39-14 Inbound Processing ...................................................................................................................... 39-15 Outbound Processing ................................................................................................................... 39-15 Request Mode ............................................................................................................................... 39-15 Handling Errors ................................................................................................................................... 39-16 Case 1 .............................................................................................................................................. 39-16 Case 2 .............................................................................................................................................. 39-17 Case 3 .............................................................................................................................................. 39-17 Catching Application Errors........................................................................................................ 39-18 Identifying Application Errors............................................................................................. 39-18 Configuring Application Error Retries ............................................................................... 39-18 Catching Connection Errors ........................................................................................................ 39-19 Identifying Connection Errors ............................................................................................. 39-19 Defining Custom Environment Value Types................................................................................. 39-20 Publishing Proxy Services to a UDDI Registry ............................................................................. 39-21 When to Implement TransportWLSArtifactDeployer.................................................................. 39-22 Creating Help for Custom Transports ............................................................................................. 39-23 Custom Transport Help Overview............................................................................................. 39-23 xxv
  • 26. Eclipse Help ............................................................................................................................ 39-23 Context-Sensitive Help (F1) .......................................................................................... 39-23 Eclipse Help Table of Contents..................................................................................... 39-24 Oracle Service Bus Administration Console Help ............................................................ 39-25 Providing Custom Transport Help in Eclipse........................................................................... 39-26 Providing Context-Sensitive Help in Eclipse..................................................................... 39-26 Providing Help in the Eclipse Help System....................................................................... 39-27 Help Implementation Reference.......................................................................................... 39-27 plugin.xml........................................................................................................................ 39-28 toc.xml .............................................................................................................................. 39-29 context.xml....................................................................................................................... 39-29 Help Content and Resources......................................................................................... 39-30 Packaging Help for the Transport Plug-in ......................................................................... 39-30 Related Topics ........................................................................................................................ 39-31 Providing Custom Transport Help in the Oracle Service Bus Administration Console .... 39-31 Implementing the CustomHelpProvider Interface ........................................................... 39-32 Creating an HTML File to Launch....................................................................................... 39-33 Creating a Simple Web Application to Display Expanded Help (Optional) ................ 39-34 META-INF/application.xml ......................................................................................... 39-34 WEB-INF/web.xml......................................................................................................... 39-35 Help Content and Resources......................................................................................... 39-35 Packaging Transport Help for the Oracle Service Bus Administration Console.......... 39-35 40 Developing Oracle Service Bus Transports for Eclipse Introduction............................................................................................................................................ 40-1 Services Runtime and Services Configuration................................................................................ 40-1 Offline Methods............................................................................................................................... 40-2 Restrictions when Working Offline.............................................................................................. 40-4 Working Offline with a Remote Server........................................................................................ 40-4 Bootstrapping Transports in Offline Mode ................................................................................ 40-5 Packaging Transports in Offline Mode........................................................................................ 40-5 Packaging Transports as Eclipse Plug-Ins ........................................................................................ 40-6 Transport Plug-in Resources ......................................................................................................... 40-6 Transport Plug-in Packaging......................................................................................................... 40-7 Reference................................................................................................................................................. 40-7 Working in Different Modes ........................................................................................................ 40-8 TransportProviderFactory ............................................................................................................. 40-9 Extension Point Schema ............................................................................................................... 40-10 plugin.xml ...................................................................................................................................... 40-10 MANIFEST.MF.............................................................................................................................. 40-11 Build.xml ........................................................................................................................................ 40-11 TransportManagerHelper Methods ........................................................................................... 40-12 41 Transport SDK Interfaces and Classes Introduction............................................................................................................................................ 41-1 Schema-Generated Interfaces ............................................................................................................. 41-1 General Classes and Interfaces........................................................................................................... 41-2 xxvi
  • 27. Summary of General Classes......................................................................................................... 41-2 Summary of General Interfaces..................................................................................................... 41-3 Source and Transformer Classes and Interfaces.............................................................................. 41-4 Summary of Source and Transformer Interfaces........................................................................ 41-4 Summary of Source and Transformer Classes ........................................................................... 41-4 Metadata and Header Representation for Request and Response Messages............................ 41-6 Runtime Representation of Message Contents ........................................................................... 41-6 Interfaces .......................................................................................................................................... 41-7 User Interface Configuration .............................................................................................................. 41-7 Overview .......................................................................................................................................... 41-7 Summary of UI Interfaces .............................................................................................................. 41-7 Summary of UI Classes .................................................................................................................. 41-8 42 Sample Socket Transport Provider Sample Socket Transport Provider Design ...................................................................................... 42-1 Concepts Illustrated by the Sample.............................................................................................. 42-1 Basic Architecture of the Sample .................................................................................................. 42-2 Configuration Properties ............................................................................................................... 42-2 Sample Location and Directory Structure ....................................................................................... 42-3 Building and Deploying the Sample ................................................................................................ 42-4 Setting Up the Environment .......................................................................................................... 42-4 Building the Transport ................................................................................................................... 42-4 Deploying the Sample Transport Provider ................................................................................. 42-5 Start and Test the Socket Server ........................................................................................................ 42-5 Start the Socket Server ................................................................................................................... 42-5 Test the Socket Transport............................................................................................................... 42-6 Configuring the Socket Transport Sample ....................................................................................... 42-6 Create a New Project ...................................................................................................................... 42-6 Create a Business Service ............................................................................................................... 42-7 Create a Proxy Service .................................................................................................................... 42-7 Edit the Pipeline .............................................................................................................................. 42-7 Testing the Socket Transport Provider ............................................................................................. 42-9 43 Deploying a Transport Provider Packaging the Transport Provider ..................................................................................................... 43-1 Deploying the Transport Provider ..................................................................................................... 43-1 Transport Registration.................................................................................................................... 43-2 Undeploying a Transport Provider .................................................................................................... 43-3 Deploying to a Cluster ......................................................................................................................... 43-3 Part VII Security 44 Introduction Document Audience ............................................................................................................................. 44-1 Related Information.............................................................................................................................. 44-2 xxvii
  • 28. 45 Understanding Oracle Service Bus Security Inbound Security................................................................................................................................... 45-1 Outbound Security................................................................................................................................ 45-3 Options for Identity Propagation....................................................................................................... 45-3 Example: Authentication with a User Name Token ................................................................ 45-10 Administrative Security ..................................................................................................................... 45-11 Access Control Policies ...................................................................................................................... 45-11 Configuring Proxy Service Access Control ............................................................................... 45-12 Access Control Policy Management........................................................................................... 45-12 Deleting a Proxy Service ....................................................................................................... 45-13 Deleting the Access Control Policy Assigned to a Proxy Service ................................... 45-13 Moving or Renaming a Proxy Service ................................................................................ 45-13 Renaming a Proxy Service Operation ................................................................................. 45-13 Preserving Security Configuration During Import ...................................................................... 45-14 Preserve Security and Policy Configuration Check Box ......................................................... 45-14 Preserve Credentials Check Box ................................................................................................. 45-15 Preserve Access Control Check Box ........................................................................................... 45-15 Configuring the Oracle WebLogic Security Framework: Main Steps....................................... 45-15 Context Properties Are Passed to Security Providers................................................................... 45-19 Context Properties for HTTP Transport-Level Authentication.............................................. 45-19 ContextHandler Properties for Access Control and Message-Level Custom Authentication 45-20 Additional Transport-Specific Context Properties................................................................... 45-20 Administrator-Supplied Context Properties for Message-Level Authentication................ 45-21 Security Provider Must Have Knowledge of the Property Name ......................................... 45-21 Oracle WebLogic Server Administrative Channel is Supported ........................................... 45-22 Using Security Providers ................................................................................................................... 45-23 Configuring Authentication Providers ...................................................................................... 45-23 Using a Custom Authorization Provider to Protect Oracle Service Bus Resources ............ 45-24 WebLogic Authorization Provider Usage Information.................................................... 45-24 Oracle Service BusProxyServiceResource Object .............................................................. 45-25 ALSBProxyServiceResource Examples ....................................................................... 45-26 ProjectResourceV2 Object ..................................................................................................... 45-27 ConsoleResource Object........................................................................................................ 45-27 About Errors When Using Security Provider Policies............................................................. 45-27 46 Oracle Service Bus Security FAQ How are Oracle Service Bus and Oracle WebLogic Server Security related?............................ 46-1 What is Transport-Level Security? ..................................................................................................... 46-2 What is Web Services Security?.......................................................................................................... 46-2 What is Web Service Policy? ............................................................................................................... 46-2 What are Web Service Policy assertions?.......................................................................................... 46-2 Are Access Control Policy and Web Service Policy the same? ..................................................... 46-2 What is Web Services Security Pass-Through?................................................................................ 46-3 What is a Web Services Security Active Intermediary? ................................................................. 46-3 What is outbound Web Services Security?....................................................................................... 46-3 What is SAML? ...................................................................................................................................... 46-3 xxviii
  • 29. Is it possible to customize the format of the subject identity in a SAML assertion? .............. 46-3 What is the Certificate Lookup And Validation Framework? ...................................................... 46-3 Does Oracle Service Bus support identity propagation in a proxy service?.............................. 46-4 If both transport-level authentication and message-level authentication exist on inbound messages to the proxy service, which identity is propagated? ..................................................... 46-4 Is single sign-on supported in Oracle Service Bus? ....................................................................... 46-4 Are security errors monitored? .......................................................................................................... 46-5 Can I configure security for MBeans? .............................................................................................. 46-5 47 Configuring Administrative Security Administrative Security Roles and Privileges................................................................................. 47-1 Role-Based Access in the Oracle Service Bus Administration Console .................................. 47-2 Administrative Security Groups ........................................................................................................ 47-8 Configuring Administrative Security: Main Steps......................................................................... 47-8 48 Securing Oracle Service Bus in a Production Environment Undeploying the Service Bus (SB) Resource ................................................................................... 48-1 Protection of Temporary Files With Streaming body Content ..................................................... 48-2 Protecting Against Denial of Service Attacks on the Oracle Service Bus Administration Console .................................................................................................................................................... 48-2 49 Configuring Transport-Level Security Configuring Transport-Level Security for HTTPS ......................................................................... 49-2 HTTPS Authentication Levels ....................................................................................................... 49-2 Configuring Inbound HTTPS Security: Main Steps................................................................... 49-3 Configuring Outbound HTTPS Security: Main Steps................................................................ 49-4 Configuring Transport-Level Security for HTTP............................................................................ 49-4 Configuring Inbound HTTP Security: Main Steps..................................................................... 49-5 Configuring Outbound HTTP Security: Main Steps.................................................................. 49-5 Configuring Transport-Level Security for JMS............................................................................... 49-6 Configuring Inbound JMS Transport-Level Security: Main Steps........................................... 49-6 Configuring Outbound JMS Transport-Level Security: Main Steps........................................ 49-7 Configuring Transport-Level Security for SFTP Transport........................................................... 49-7 How Two-Way Authentication is Performed ............................................................................. 49-7 Use of the known_hosts File.......................................................................................................... 49-8 SFTP Transport Authentication Process ...................................................................................... 49-9 Configuring Inbound SFTP Transport-Level Security: Main Steps....................................... 49-10 Configuring Outbound SFTP Transport-Level Security: Main Steps.................................... 49-12 SFTP Security Attributes Preserved During Import ................................................................ 49-13 SFTP Credential Life Cycle .......................................................................................................... 49-14 Email, FTP, and File Transport-Level Security ............................................................................... 49-14 Email and FTP Transport-Level Security .................................................................................. 49-14 File Transport Security ................................................................................................................. 49-14 Configuring Transport-Level Security for SB Transport ............................................................. 49-14 Configuring SAML Authentication With Service Bus (SB) Transport .................................. 49-15 Configuring Transport-Level Security for WS Transport............................................................ 49-15 xxix
  • 30. Reliable Web Services Messaging Defined................................................................................ 49-16 WS Transport Resources Visible in WLS Console.................................................................... 49-16 Use of WS-Policy Files for Web Service Reliable Messaging Configuration ....................... 49-16 Preconfigured WS-RM Policy Files ..................................................................................... 49-16 RM WS-Policy Required Prior to Activation............................................................................. 49-17 Async Responses ........................................................................................................................... 49-17 Proxy Service Authentication ..................................................................................................... 49-17 Preserving Security Configuration on Import .......................................................................... 49-19 Configuring Inbound and Outbound WS Transport-Level Security .................................... 49-19 Configuring Transport-Level Security for WebSphere Message Queue Transport ............... 49-19 Configuring Inbound MQ Transport-Level Security: Main Steps ......................................... 49-20 Configuring Outbound MQ Transport-Level Security: Main Steps...................................... 49-20 Transport-Level Security Elements in the Message Context ...................................................... 49-21 50 Securing Oracle Service Bus with Oracle Web Services Manager About Oracle Web Services Manager Integration with Oracle Service Bus.............................. 50-1 Security Providers ........................................................................................................................... 50-2 JPS Providers ............................................................................................................................ 50-2 CSS Providers ........................................................................................................................... 50-3 Setting Up and Using Oracle Web Services Manager with Oracle Service Bus ....................... 50-3 Adding Oracle Web Services Manager and Oracle Enterprise Manager to an Oracle Service Bus Domain............................................................................................................ 50-3 Attaching Oracle Web Services Manager Policies to Oracle Service Bus Services ................ 50-5 Policy Overrides....................................................................................................................... 50-5 Configuring SAML ......................................................................................................................... 50-6 Advertising WSDLs to Support WS Standards .......................................................................... 50-6 WSDL Query Parameter Reference for WS Policies ........................................................... 50-7 Deployment Considerations.......................................................................................................... 50-7 Auditing............................................................................................................................................ 50-8 Monitoring Statistics ....................................................................................................................... 50-8 Supported Seed Policies and Unsupported Assertions............................................................. 50-8 Supported Seed Policies .......................................................................................................... 50-8 wss_http_token_*_policy Guidelines........................................................................... 50-11 OWSM Authentication Policy Guidelines .................................................................. 50-12 Unsupported Assertions ....................................................................................................... 50-12 Use Cases: Oracle Service Bus and WLS 9 Policies with Oracle Web Services Manager ..... 50-13 Message Protection ....................................................................................................................... 50-13 Message Protection with Client Agent ............................................................................... 50-13 Message Protection with Server Agent............................................................................... 50-14 Message Protection with Client and Server Agents.......................................................... 50-14 Message Protection with Gateway ...................................................................................... 50-15 Authentication ............................................................................................................................... 50-15 Perimeter Security ......................................................................................................................... 50-16 Identity Propagation..................................................................................................................... 50-16 51 Using WS-Policy in Oracle Service Bus Proxy and Business Services About Web Services Policy.................................................................................................................. 51-1 xxx
  • 31. Relationship Between WS-Security and WS-Policy ................................................................... 51-2 WS-Policies Can be Bound Directly to Service ........................................................................... 51-2 Abstract and Concrete WS-Policy Statements ............................................................................ 51-3 Oracle Service Bus WS-Policy Files................................................................................................... 51-3 Predefined Oracle Proprietary Policy Files ................................................................................. 51-4 Predefined Reliable Messaging Policy Files ................................................................................ 51-5 When to Use the Predefined Policy Files..................................................................................... 51-5 Creating and Using Custom WS-Policy Statements....................................................................... 51-5 Attaching WS-Policy Statements to WSDL Documents................................................................ 51-6 Determining the URI of a WS-Policy Statement......................................................................... 51-7 Specifying the URI of a WS-Policy Statement in a WSDL Document ..................................... 51-7 Best Practices: Attaching WS-Policy Statements ........................................................................ 51-8 Example: Requiring X.509 Credentials for Identity and Confidentiality................................ 51-8 Example: Attaching Custom Inline WS-Policy Statements to a WSDL Document ............... 51-9 Oracle-Proprietary Security Policy Best Practices......................................................................... 51-10 Policy Subjects and Effective Policy................................................................................................ 51-11 52 Configuring Message-Level Security for Web Services About Message-Level Security ........................................................................................................... 52-2 Sample Sequence of Actions in Message-Level Security........................................................... 52-2 Message-Level Access Control Policies for Proxy Services .......................................................... 52-3 Configuring Proxy Service Message-Level Security ...................................................................... 52-3 Creating an Active Intermediary Proxy Service: Main Steps ................................................... 52-3 Creating a Pass-Through Proxy Service: Main Steps................................................................. 52-5 Configuring Business Service Message-Level Security: Main Steps.......................................... 52-6 Examples of Custom WS-Policy Statements .................................................................................... 52-7 Example: Encrypting Part of the SOAP Body and Header ....................................................... 52-7 Example: Encryption Policy for a Business Service ................................................................... 52-9 Example: Encrypting a Custom SOAP Header ........................................................................ 52-11 Example: Signing the Message Body and Headers .................................................................. 52-11 Example: Signing a SOAP Body with SAML Holder-of-Key ................................................. 52-12 Example: Authenticating, Signing, and Encrypting a SOAP Body and Headers with SAML Sender Vouches........................................................................................................ 52-14 Disabling Outbound WS-Security................................................................................................... 52-17 53 Using SAML with Oracle Service Bus Mapping Identity to a SAML Token ................................................................................................. 53-1 Configuring SAML Pass-Through Identity Propagation .............................................................. 53-2 Authenticating SAML Tokens in Proxy Service Requests ............................................................ 53-2 Configuring SAML Authentication with Service Bus (SB) Transport........................................ 53-3 Using SAML Identity Switching........................................................................................................ 53-3 Protecting the Identity-Switching Resource................................................................................ 53-3 Troubleshooting SAML with Oracle Service Bus ........................................................................... 53-4 54 Configuring Custom Authentication What Are Custom Authentication Tokens?...................................................................................... 54-2 xxxi
  • 32. Custom Authentication Token Use and Deployment ............................................................... 54-2 Understanding Transport-Level Custom Authentication.............................................................. 54-3 Importing and Exporting and Transport-Level Custom Token Authentication ................... 54-3 Understanding Message-Level Custom Authentication ............................................................... 54-4 Format of XPath Expressions............................................................................................................... 54-4 Configuring Identity Assertion Providers for Custom Tokens.................................................... 54-5 Object Type of Custom Tokens ..................................................................................................... 54-6 Configuring a Custom Token Type in an Identity Assertion Provider .................................. 54-6 Steps for Configuring a Custom Token Type in an Identity Assertion Provider........... 54-7 Setting the Supported and Active Types in the MBean ..................................................... 54-7 Configuring Custom Authentication Transport-Level Security .................................................. 54-8 Steps for Configuring Custom Authentication Transport-Level Security.............................. 54-8 Configuring Custom Authentication Message-Level Security .................................................... 54-9 Steps for Configuring Custom Authentication Message-Level Security ................................ 54-9 Propagating the Identity Obtained From Custom Authentication Tokens ............................. 54-10 Combining WS-Security with Custom Username/Password and Tokens ............................... 54-10 55 Message-Level Security with .Net 2.0 Message-Level Security Between .NET 2.0 and Oracle Service Bus ........................................... 55-1 What is .NET?......................................................................................................................................... 55-1 Message-Level Security Configuration in .NET For Oracle Service Bus Interoperability ..... 55-1 Oracle Service Bus Configuration for Message-Level Security with .NET ............................... 55-3 Sample WSDL File .......................................................................................................................... 55-5 Part VIII Appendix A Transport SDK UML Sequence Diagrams Oracle Service Bus Runtime Inbound Messages ............................................................................. A-1 Oracle Service Bus Runtime Outbound Messages ........................................................................... A-2 Design Time Service Registration........................................................................................................ A-3 xxxii
  • 33. List of Examples 6–1 XML Data with Optional Element......................................................................................... 6-17 6–2 XML Schema with Global and Local Elements ................................................................... 6-24 7–1 calculateTotalPrice Function ..................................................................................................... 7-7 7–2 Where Clause............................................................................................................................ 7-10 7–3 If-Then Expression ................................................................................................................... 7-19 7–4 Nested If-Then-Else Expression............................................................................................. 7-20 7–5 Nested If-Then-Else Expression............................................................................................. 7-21 7–6 Code for FLWOR Expression ................................................................................................. 7-23 7–7 Example of Recursive Schema ............................................................................................... 7-23 7–8 Example Input XML Document............................................................................................. 7-25 7–9 Example Output XML Document.......................................................................................... 7-25 7–10 XQuery Code for Group-By Expression ............................................................................... 7-26 23–1 Syntax for Invoking a Custom Function with the Xalan Engine ...................................... 23-5 30–1 Sample WSDL Definitions ...................................................................................................... 30-5 30–2 Sample SOAP............................................................................................................................ 30-5 39–1 Sample SocketEndPointConfiguration Definition ............................................................. 39-5 39–2 Sample SocketRequestMetaDataXML Definition ............................................................... 39-6 39–3 Sample SocketRequestHeadersXML Definition .................................................................. 39-6 39–4 Sample SocketResponseMetaDataXML Definition............................................................. 39-7 39–5 Sample SocketResponseHeadersXML Definition ............................................................... 39-7 39–6 Example tModel ..................................................................................................................... 39-21 39–7 Sample transport plugin.xml................................................................................................ 39-28 39–8 Sample Socket Transport toc.xml for a Top-Level Entry in the Eclipse Help System . 39-29 39–9 Sample context.xml (contexts_socketTransport.xml) for the sample socket transport 39-29 39–10 Implementing CustomHelpProvider to provide help for your transport in the Oracle Service Bus Administration Console ...................................................................... 39-33 39–11 JavaScript function that provides a redirect ...................................................................... 39-34 39–12 application.xml for the sample socket transport Web application ................................. 39-34 39–13 web.xml for the sample socket transport Web application ............................................. 39-35 40–1 Connection to the Remote Server .......................................................................................... 40-8 40–2 The TransportProviderFactory Class .................................................................................... 40-9 40–3 Example of the Socket Transport Implementing the Interface........................................ 40-10 40–4 Part of the Extension Point Schema..................................................................................... 40-10 40–5 Plugin.xml File........................................................................................................................ 40-11 40–6 Sample MANIFEST.MF File ................................................................................................. 40-11 40–7 TransportManagerHelper Methods .................................................................................... 40-12 43–1 Application Deployment Entry.............................................................................................. 43-2 45–1 Getting the HttpServletRequest Property .......................................................................... 45-21 49–1 LongRunningReliability.xml File ........................................................................................ 49-17 49–2 Wssp1.2-Https.xml File (Partial).......................................................................................... 49-18 51–1 WSDL with Policy References to Oracle Service Bus WS-Policies ................................... 51-9 51–2 WSDL with Policy References to a Custom Inline Policy .................................................. 51-9 52–1 Encrypting Part of the SOAP Body and Header ................................................................. 52-8 52–2 Encrypting the Body with a Concrete Policy, Embedding the Policy in the WSDL Document .................................................................................................................................. 52-9 52–3 Encrypting a Custom SOAP Header................................................................................... 52-11 52–4 Requiring a Signature for SOAP Headers and Body ........................................................ 52-12 52–5 Signing a SOAP Body with SAML Holder-of-Key Method ............................................ 52-13 52–6 Signing a SOAP Body and Headers with SAML Sender-Vouches Method.................. 52-15 54–1 SampleIdentityAsserter MDF: SupportedTypes Attribute ............................................... 54-7 54–2 SampleIdentityAsserter MDF: ActiveTypes Attribute with Default ............................... 54-8 55–1 Configuring WS-Policy for Message-Level Security .......................................................... 55-5 xxxiii
  • 34. List of Figures 2–1 New Split-Join .......................................................................................................................... 2-43 2–2 Parallel Node ............................................................................................................................ 2-44 2–3 Completed Split-Join Ready for Testing............................................................................... 2-45 2–4 New Split-Join With Edited Labels ....................................................................................... 2-46 2–5 For Each Node Labeled "Iterate Through Orders".............................................................. 2-47 2–6 Error Handler ........................................................................................................................... 2-48 2–7 Completed Split-Join Ready for Testing............................................................................... 2-49 2–8 Add Scope Button .................................................................................................................... 2-57 2–9 Add Else If Button.................................................................................................................... 2-58 2–10 Add Else If Button.................................................................................................................... 2-59 2–11 Debugging a Proxy Service .................................................................................................... 2-68 4–1 Branch Node With "Submit" Operation From WSDL and "Default" Branch .................. 4-58 4–2 Publish Table Action ............................................................................................................... 4-60 4–3 Routing Table Action............................................................................................................... 4-68 5–1 Data Transformation from Multiple Sources to One Target ................................................ 5-2 6–1 New XQuery Transformation ................................................................................................... 6-4 6–2 Selecting Source Types ............................................................................................................... 6-7 6–3 Element-to-Element Links ......................................................................................................... 6-8 6–4 Attribute-to-Element Link ......................................................................................................... 6-9 6–5 Repeating-Group–to–Repeating-Group Link ...................................................................... 6-10 6–6 Example of If-Then-Else Expression ..................................................................................... 6-12 6–7 If-Then-Else Expression in Target Expression View........................................................... 6-12 6–8 FLWOR Expression.................................................................................................................. 6-13 6–9 Typeswitch Expression ........................................................................................................... 6-15 6–10 Remove Empty Node .............................................................................................................. 6-18 6–11 Retain Empty Node ................................................................................................................. 6-18 6–12 Test View................................................................................................................................... 6-19 7–1 Combining Data From Different Schemas .............................................................................. 7-2 7–2 Design View of XQuery Transformation................................................................................. 7-3 7–3 Data Transformation in Design View ...................................................................................... 7-4 7–4 Data Transformation in Design View ...................................................................................... 7-5 7–5 Adding a Constraint ................................................................................................................... 7-6 7–6 Adding Data in the QuoteResponse Element ......................................................................... 7-7 7–7 totalCost Calculation in Design View ...................................................................................... 7-9 7–8 Creating a Union ...................................................................................................................... 7-11 7–9 Creating Implied Links ........................................................................................................... 7-12 7–10 Repeating-Source–to–Nonrepeating Target Transformation ............................................ 7-12 7–11 Repeating-Source–to–Nonrepeating-Target Data Transformation .................................. 7-13 7–12 Repeating-Source–to–Nonrepeating-Target Data Transformation .................................. 7-14 7–13 Nonrepeating-Source–to–Repeating-Target Transformation............................................ 7-15 7–14 Creating a Union for Structural Links .................................................................................. 7-16 7–15 XQuery Transformation for If-Then-Else Example............................................................. 7-19 7–16 XQuery Example - FLWOR Expression................................................................................ 7-22 7–17 Mapping Recursive Elements ................................................................................................ 7-24 19–1 Select Reference Fields ............................................................................................................ 19-6 19–2 Reference Field ......................................................................................................................... 19-7 19–3 Data Delimiter .......................................................................................................................... 19-7 19–4 Escape Character ...................................................................................................................... 19-8 22–1 The Derby Database for a Domain ........................................................................................ 22-2 24–1 Client Invoking a SOA Binding Service Synchronously .................................................... 24-4 24–2 SOA Binding Service Invoking an External Service Synchronously................................ 24-5 24–3 Client Invoking a SOA Binding Service Asynchronously ................................................. 24-7 24–4 SOA Binding Service Invoking an External Service Asynchronously ............................. 24-9 24–5 Operations in a Synchronous Exchange Through Oracle Service Bus........................... 24-15 xxxiv
  • 35. 24–6 SOA Composite Invoking an SOA Composite Through Oracle Service Bus................ 24-20 25–1 Oracle Service Bus Services Interacting With an EIS .......................................................... 25-2 25–2 A Client Invoking an EIS Service Through Oracle Service Bus ...................................... 25-13 25–3 An EIS Invoking an External Service Through Oracle Service Bus ................................ 25-14 29–1 An EJB Invokes an External Service ...................................................................................... 29-6 29–2 A Non-EJB Client Invokes an EJB.......................................................................................... 29-7 29–3 An EJB Invokes an EJB ............................................................................................................ 29-8 30–1 MQ Service Uses a JMS Message ID to Correlate the Request/Response Message .... 30-13 30–2 JAX-RPC Client with Oracle Service Bus Proxy Service .................................................. 30-13 30–3 Oracle Service Bus as a Client of an Oracle WebLogic Server JAX-RPC Request/Response Service ................................................................................................... 30-14 31–1 Using Local Transport to Implement Convergence ........................................................... 31-3 31–2 Using Local Transport to Access Multiple Business Services ........................................... 31-3 31–3 Front-end Proxy as Security Pass-through to Local Proxies.............................................. 31-5 31–4 Front-end Proxy Processes All Security Headers Before Forwarding to Local Proxies 31-6 32–1 Conflicts – When no RM policy assertions are specified for the WSDL .......................... 32-5 32–2 Security tab for a Proxy Service ............................................................................................. 32-9 32–3 Transport-Level Policy ............................................................................................................ 32-9 32–4 List of Predicates .................................................................................................................... 32-10 33–1 Oracle Service Bus Front End............................................................................................... 33-20 33–2 Messages Sent Through Oracle Service Bus....................................................................... 33-20 34–1 Invoking Oracle BPEL Processes Synchronously Through Oracle Service Bus ............. 34-3 34–2 Oracle BPEL Processes Invoking a Service Synchronously Through Oracle Service Bus .............................................................................................................................................. 34-4 34–3 Invoking Oracle BPEL Processes Asynchronously Through Oracle Service Bus........... 34-5 34–4 Oracle BPEL Processes Invoking a Service Asynchronously Through Oracle Service Bus .............................................................................................................................................. 34-7 34–5 Operations in a Synchronous Exchange Through Oracle Service Bus........................... 34-14 34–6 One BPEL Process Invoking Another BPEL Process Through Oracle Service Bus ...... 34-19 35–1 WTC Message Handling ......................................................................................................... 35-2 36–1 From Data Source to Web Service Client.............................................................................. 36-2 36–2 Request and Response from the Oracle Service Bus Test Console ................................... 36-5 38–1 Message Flow Through Oracle Service Bus ......................................................................... 38-2 38–2 Design Time UML Diagram ................................................................................................... 38-7 38–3 EndPointConfiguration Properties........................................................................................ 38-8 38–4 Runtime UML Diagram .......................................................................................................... 38-9 38–5 Sample Oracle Service Bus Threading Model.................................................................... 38-16 38–6 Flow of Attachments ............................................................................................................. 38-20 39–1 Transport Subsystem Overview ............................................................................................ 39-3 39–2 Error Case 1............................................................................................................................. 39-16 39–3 Error Case 2............................................................................................................................. 39-17 39–4 Error Case 3............................................................................................................................. 39-18 39–5 Custom Transport Help in the Development and Run-Time Environments ............... 39-23 39–6 Pressing F1 on a Transport Configuration Page to Display Help for the Transport ... 39-24 39–7 Custom Transport Help in Eclipse ...................................................................................... 39-25 39–8 Custom Transport Help from the Oracle Service Bus Administration Console........... 39-26 39–9 Oracle Service Bus Administration Console Help Framework....................................... 39-32 40–1 Transport Configuration Page in Eclipse ............................................................................. 40-6 40–2 Plug-In Packaging .................................................................................................................... 40-7 42–1 Sample Socket Transport Architecture ................................................................................ 42-2 42–2 SocketEndpointConfiguration Properties ............................................................................ 42-3 42–3 Request/Response Header and Metadata Configurations ............................................... 42-3 42–4 Selecting the Message Flow Icon ........................................................................................... 42-8 42–5 Editing the Message Flow....................................................................................................... 42-8 42–6 Adding an Action..................................................................................................................... 42-8 xxxv
  • 36. 42–7 Starting the Test Console ........................................................................................................ 42-9 42–8 Test Console.............................................................................................................................. 42-9 42–9 Successful Test........................................................................................................................ 42-10 45–1 Inbound and Outbound Security........................................................................................... 45-2 45–2 How Service Accounts Are Used......................................................................................... 45-10 50–1 Message Protection With an Oracle Web Services Manager Client Agent ................... 50-14 50–2 Message Protection With an Oracle Web Services Manager Server Agent................... 50-14 50–3 Message Protection With an Oracle Web Services Manager Client and Server Agents ...................................................................................................................................... 50-15 50–4 Message Protection With an Oracle Web Services Manager Gateway .......................... 50-15 50–5 Authentication with an Oracle Web Services Manager Client Agent............................ 50-16 50–6 Perimeter Security with Oracle Web Services Manager Gateway.................................. 50-16 50–7 Identity Propagation with Oracle Web Services Manager Gateway.............................. 50-17 52–1 Binding a Certificate to an Abstract Policy .......................................................................... 52-8 54–1 Identity Assertion and Custom Tokens ................................................................................ 54-6 A–1 Inbound Messages at Runtime................................................................................................. A-2 A–2 Outbound Messages at Runtime ............................................................................................. A-3 A–3 Service Registration .................................................................................................................. A-4 xxxvi
  • 37. List of Tables 2–1 Differences in Harvesting Scenarios .................................................................................... 2-36 3–1 BPEL-10g Transport Configuration Options for Business Services.................................... 3-2 3–2 DSP Transport Configuration Options for Business Services ............................................. 3-3 3–3 EJB Transport Configuration Options for Business Services............................................... 3-4 3–4 E-Mail Transport Configuration Options for Business Services ......................................... 3-6 3–5 E-Mail Transport Configuration Options for Proxy Services.............................................. 3-6 3–6 File Transport Configuration Options for Business Services .............................................. 3-7 3–7 File Transport Configuration Options for Proxy Services ................................................... 3-7 3–8 FTP Transport Configuration Options for Business Services.............................................. 3-8 3–9 FTP Transport Configuration Options for Proxy Services................................................... 3-9 3–10 HTTP Transport Configuration Options for Business Services ....................................... 3-10 3–11 HTTP Transport Configuration Options for Proxy Services ............................................ 3-13 3–12 JCA Transport Configuration Options ................................................................................ 3-15 3–13 JEJB Transport Configuration for Business Services ......................................................... 3-18 3–14 JEJB Transport Configuration for Proxy Services .............................................................. 3-19 3–15 JMS Transport Configuration Options for Business Services........................................... 3-20 3–16 JMS Transport Configuration Options for Proxy Services ............................................... 3-24 3–17 MQ Transport Configuration Options for Business Services........................................... 3-28 3–18 MQ Transport Configuration Options for Proxy Services................................................ 3-31 3–19 SB Transport Configuration Options for Business Services ............................................. 3-33 3–20 SB Transport Configuration Options for Proxy Services .................................................. 3-33 3–21 SFTP Transport Configuration Options for Business Services......................................... 3-34 3–22 SFTP Transport Configuration Options for Proxy Services.............................................. 3-35 3–23 SOA-DIRECT Transport Configuration .............................................................................. 3-36 3–24 Tuxedo Transport Configuration Options for Business Services .................................... 3-38 3–25 Tuxedo Transport Configuration Options for Proxy Services ......................................... 3-40 3–26 WS Transport Configuration Options for Business Services............................................ 3-42 3–27 WS Transport Configuration Options for Proxy Services................................................. 3-43 4–1 Alert Destination Editor Options............................................................................................. 4-2 4–2 E-mail Recipient Options .......................................................................................................... 4-2 4–3 JMS Destination Options........................................................................................................... 4-3 4–4 Business Service Editor Options .............................................................................................. 4-4 4–5 Message Type Business Service Options ................................................................................ 4-5 4–6 Business Service Transport Configuration Options.............................................................. 4-7 4–7 Business Service Message Handling Options ..................................................................... 4-11 4–8 Business Service Service Policy Configuration Options ................................................... 4-14 4–9 Business Service Security Configuration Options.............................................................. 4-15 4–10 Proxy Service Editor Options ................................................................................................ 4-15 4–11 Proxy Service Message Type Options.................................................................................. 4-17 4–12 Proxy Service Operation Selection Options ........................................................................ 4-19 4–13 Proxy Service Message Handling Options.......................................................................... 4-21 4–14 Proxy Service SOAP Binding Options ................................................................................. 4-25 4–15 Proxy Service Transport Configuration Options ............................................................... 4-25 4–16 Proxy Service Service Policy Options .................................................................................. 4-28 4–17 Proxy Service Message-Level Security Options ................................................................. 4-29 4–18 Oracle Service Bus Configuration Options ......................................................................... 4-31 4–19 New Oracle Service Bus Project Options............................................................................. 4-32 4–20 MQ Resource Options ............................................................................................................ 4-33 4–21 Configuration JAR Export Options ...................................................................................... 4-35 4–22 Resource Export Options ....................................................................................................... 4-35 4–23 Resource Export Options ....................................................................................................... 4-36 4–24 Configuration JAR Import ..................................................................................................... 4-36 4–25 Configuration JAR Import Options...................................................................................... 4-37 xxxvii
  • 38. 4–26 Configuration ZIP Import...................................................................................................... 4-37 4–27 Configuration ZIP Import Options ...................................................................................... 4-37 4–28 URL Import Options............................................................................................................... 4-38 4–29 URL Import Options............................................................................................................... 4-38 4–30 New JNDI Provider Resource Options................................................................................ 4-39 4–31 Proxy Server Configuration Options ................................................................................... 4-39 4–32 Message Flow Nodes.............................................................................................................. 4-41 4–33 Message Flow Route Node Communication Actions........................................................ 4-41 4–34 Message Flow Route Node Flow Control Actions ............................................................. 4-42 4–35 Message Flow Stage Node Communication Actions......................................................... 4-42 4–36 Message Flow Stage Node Flow Control Actions.............................................................. 4-43 4–37 Message Flow Stage Node Message Processing Actions .................................................. 4-43 4–38 Message Flow Stage Node Reporting Actions.................................................................... 4-44 4–39 Alert Action Options .............................................................................................................. 4-46 4–40 Assign Action Options ........................................................................................................... 4-47 4–41 Flow Options ........................................................................................................................... 4-47 4–42 Conditional Branch Options.................................................................................................. 4-48 4–43 Branch Options........................................................................................................................ 4-48 4–44 Delete Action Options ............................................................................................................ 4-48 4–45 Dynamic Publish Action Options......................................................................................... 4-49 4–46 Dynamic Routing Action Properties .................................................................................... 4-50 4–47 For-Each Action Properties.................................................................................................... 4-51 4–48 If and Else-If Action Options................................................................................................. 4-52 4–49 Insert Action Options ............................................................................................................. 4-53 4–50 Java Callout Action Options.................................................................................................. 4-54 4–51 Log Action Options................................................................................................................. 4-55 4–52 MFL Transform Action Options ........................................................................................... 4-57 4–53 Pipeline Pair Node Options................................................................................................... 4-58 4–54 Publish Action Options .......................................................................................................... 4-59 4–55 Publish Table Options ............................................................................................................ 4-60 4–56 Case Action Options ............................................................................................................... 4-61 4–57 Raise Error Action Options.................................................................................................... 4-61 4–58 Rename Action Options ......................................................................................................... 4-62 4–59 Replace Action Options.......................................................................................................... 4-63 4–60 Reply Action Options ............................................................................................................. 4-64 4–61 Report Action Options ........................................................................................................... 4-64 4–62 Report Action Execution Results .......................................................................................... 4-65 4–63 Route Node Options............................................................................................................... 4-65 4–64 Routing Action Options ......................................................................................................... 4-66 4–65 Routing Options Action Properties ...................................................................................... 4-67 4–66 Routing Table Options ........................................................................................................... 4-68 4–67 Case Action Options ............................................................................................................... 4-69 4–68 Service Callout Action Options............................................................................................. 4-69 4–69 SOAP Body, Payload Parameters, and Payload Document Options .............................. 4-70 4–70 SOAP Body, Payload Parameters, and Payload Document Option Descriptions ........ 4-70 4–71 Start Node Options ................................................................................................................. 4-72 4–72 Transport Header Action Options........................................................................................ 4-73 4–73 Validate Action Options......................................................................................................... 4-75 4–74 Modify JAR Dependencies Properties ................................................................................. 4-75 4–75 New SMTP Server Options.................................................................................................... 4-76 4–76 UDDI Registry Options.......................................................................................................... 4-76 4–77 Type Association Properties.................................................................................................. 4-77 4–78 Reference Dependency Properties........................................................................................ 4-78 4–79 Clone Project Options............................................................................................................. 4-78 4–80 New Service Key Provider Options ..................................................................................... 4-78 xxxviii
  • 39. 4–81 New WS-Policy Options ........................................................................................................ 4-79 4–82 New Service Account Options .............................................................................................. 4-80 4–83 Service Account General Options......................................................................................... 4-80 4–84 Service Account Static User Options.................................................................................... 4-81 4–85 Service Account User Mappings Options ........................................................................... 4-81 4–86 XQuery Resource Options ..................................................................................................... 4-84 4–87 XSLT Resource Options ......................................................................................................... 4-84 4–88 Dynamic XQuery Options ..................................................................................................... 4-85 4–89 Variable Structure Options .................................................................................................... 4-86 4–90 New XSL Transformation Options....................................................................................... 4-87 4–91 Split-Join Communication Operations................................................................................. 4-88 4–92 Split-Join Flow Control Operations...................................................................................... 4-88 4–93 Split-Join Assign Operations ................................................................................................. 4-89 4–94 Split-Join Start Node Options - Imports Tab....................................................................... 4-90 4–95 Split-Join Start Node Options - General Tab....................................................................... 4-90 4–96 Split-Join Variable Options.................................................................................................... 4-90 4–97 Split-Join Error Handler Options - Catch Tab .................................................................... 4-91 4–98 Split-Join Error Handler Options - CatchAll Tab ............................................................... 4-91 4–99 Split-Join Invoke Service Options - Operation Tab............................................................ 4-91 4–100 Split-Join Invoke Service Options - Input Variable Tab .................................................... 4-92 4–101 Split-Join Invoke Service Options - Output Variable Tab................................................. 4-92 4–102 Split-Join Reply Options - Operation Tab ........................................................................... 4-93 4–103 Split-Join Reply Options - Variable Tab .............................................................................. 4-93 4–104 Split-Join For Each Options - Counter Variables Tab ........................................................ 4-94 4–105 Split-Join For Each Options - Completion Condition ........................................................ 4-94 4–106 Split-Join If and Else If Options ............................................................................................ 4-95 4–107 Split-Join Raise Error Options ............................................................................................... 4-95 4–108 Split-Join Repeat Until Options ............................................................................................ 4-95 4–109 Split-Join While Options ........................................................................................................ 4-96 4–110 Split-Join Wait Options .......................................................................................................... 4-96 4–111 Split-Join Assign Operation Options.................................................................................... 4-97 4–112 Split-Join Copy Options ......................................................................................................... 4-98 4–113 Split-Join Delete Options ....................................................................................................... 4-99 4–114 Split-Join Insert Options......................................................................................................... 4-99 4–115 Split-Join Java Callout Options ........................................................................................... 4-100 4–116 Split-Join Log Options .......................................................................................................... 4-101 4–117 Split-Join Replace Options ................................................................................................... 4-101 4–118 Split-Join Receive Options - Operation Tab ...................................................................... 4-102 4–119 Split-Join Receive Options - Variable Tab ......................................................................... 4-102 4–120 Split-Join Counter Variable Options .................................................................................. 4-102 4–121 Split-Join Variable Options.................................................................................................. 4-103 4–122 Split-Join New Message Variable Options ........................................................................ 4-103 4–123 Split-Join SOAP Fault Variable Options ............................................................................ 4-104 4–124 New Split-Join Options ........................................................................................................ 4-104 4–125 New Split-Join Options - Selecting an Operation............................................................. 4-104 5–1 Restrictions Applicable to the XQuery Test View................................................................. 5-2 6–1 Clauses of FLWOR Expressions............................................................................................ 6-13 6–2 Clauses of Typeswitch Expressions ..................................................................................... 6-15 6–3 Right-Click Menu Options..................................................................................................... 6-21 6–4 Link Patterns............................................................................................................................ 6-22 6–5 Graphical Representation of XML Components ................................................................ 6-25 9–1 List of Toolbar Buttons.............................................................................................................. 9-1 9–2 Tree Icon Descriptions............................................................................................................... 9-3 10–1 Message Format ...................................................................................................................... 10-1 11–1 Fields in Message Format – Field Description.................................................................... 11-1 xxxix
  • 40. 11–2 Fields in Message Format – Field Occurrence .................................................................... 11-2 11–3 Fields in Message Format – Field Data Options................................................................. 11-2 11–4 Fields in Message Format – Field Attributes ...................................................................... 11-2 11–5 Fields in Message Format – Termination ............................................................................ 11-3 11–6 Fields in Message Format – Literal....................................................................................... 11-4 11–7 Fields in Message Format – Field Update Buttons............................................................. 11-4 12–1 Groups in Message Format – Group Description .............................................................. 12-1 12–2 Groups in Message Format – Group Occurrence............................................................... 12-1 12–3 Groups in Message Format – Group Attributes ................................................................. 12-2 12–4 Groups in Message Format – Group Delimiter .................................................................. 12-2 12–5 Groups in Message Format – Group Update Buttons ....................................................... 12-2 13–1 Reference Detail Window – Reference Description ........................................................... 13-1 13–2 Reference Detail Window – Field Occurrence.................................................................... 13-1 13–3 Reference Detail Window – Field Update Buttons ............................................................ 13-2 14–1 Comments about Message Format ....................................................................................... 14-1 15–1 Format Builder Options ......................................................................................................... 15-1 15–2 Format Builder Options – Character Encoding Options................................................... 15-1 15–3 Format Builder Options – XML Formatting Options ........................................................ 15-1 15–4 Format Builder Options – XML Content Model Options ................................................. 15-1 16–1 EDI Importer Options............................................................................................................. 16-1 16–2 XML Schema Importer Options............................................................................................ 16-2 16–3 COBOL Copybook Importer Options .................................................................................. 16-2 16–4 COBOL Copybook Importer Options – Byte Order .......................................................... 16-2 16–5 COBOL Copybook Importer Options – Character Set ...................................................... 16-3 16–6 COBOL Copybook Importer Options – Action Buttons ................................................... 16-3 16–7 C Structure Importer Options – Input ................................................................................. 16-4 16–8 C Structure Importer Options – Output .............................................................................. 16-4 16–9 FML Field Table Class Sample Files..................................................................................... 16-6 16–10 FML Field Table Class Importer Options ............................................................................ 16-7 16–11 FML Field Table Class Importer Options – FML Field Selector....................................... 16-7 16–12 FML Field Table Class Importer Options – Action Buttons ............................................. 16-7 17–1 File Menu Commands ............................................................................................................ 17-2 17–2 Edit Menu Commands ........................................................................................................... 17-2 17–3 Display Menu Commands..................................................................................................... 17-2 17–4 Generate Menu Commands .................................................................................................. 17-3 17–5 Translate Menu Command.................................................................................................... 17-3 17–6 Shortcut Menu Commands ................................................................................................... 17-3 17–7 Find Options ............................................................................................................................ 17-5 17–8 Goto Options............................................................................................................................ 17-5 18–1 File Menu Commands ............................................................................................................ 18-1 18–2 Edit Menu Commands ........................................................................................................... 18-2 18–3 Insert Menu Commands ........................................................................................................ 18-2 18–4 View Menu Commands ......................................................................................................... 18-3 18–5 Tools Menu Commands......................................................................................................... 18-3 18–6 Help Menu Commands.......................................................................................................... 18-3 18–7 Shortcut Menu Commands ................................................................................................... 18-4 19–1 Character Delimiters............................................................................................................... 19-5 20–1 File Menu Commands ............................................................................................................ 20-2 20–2 Shortcut Menu Commands ................................................................................................... 20-2 21–1 Supported MFL Data Types .................................................................................................. 21-1 21–2 COBOL Data Types ................................................................................................................ 21-5 23–1 Supported Java Method Types for Custom Functions ...................................................... 23-3 24–1 SOA-DIRECT Transport Configuration ............................................................................ 24-12 25–1 JCA Transport Configuration Options .............................................................................. 25-16 26–1 Parameters for Configuring HTTP Transport for Proxy Service .................................... 26-2 xl
  • 41. 26–2 Parameters for Configuring HTTP Transport for Business Service ................................ 26-4 26–3 Response code handling for HTTP business services ....................................................... 26-9 26–4 Parameters for Configuring E-mail Transport for Proxy Services................................ 26-10 26–5 Parameters for Configuring E-mail Transport for Business Services............................ 26-11 26–6 Parameters for Configuring File Transport for Proxy Services...................................... 26-12 26–7 Parameters for Configuring File Transport for Business Services................................. 26-13 26–8 Parameters for Configuring FTP Transport for Business Services ............................... 26-14 26–9 Parameters for Configuring FTP Transport for Business Service.................................. 26-16 26–10 Environment Values ............................................................................................................. 26-17 26–11 Configuring SFTP Proxy Service ........................................................................................ 26-22 26–12 Transport Headers and Metadata....................................................................................... 26-24 26–13 Configuring SFTP Business Service ................................................................................... 26-26 26–14 Properties Imported from UDDI Registry......................................................................... 26-28 27–1 Environment Values ............................................................................................................... 27-2 27–2 Fields for Configuring SB Transport for Proxy Services ................................................... 27-3 27–3 Fields for Configuring SB Transport for Business Services ............................................. 27-4 28–1 EJB Transport Configuration Options for Business Services............................................ 28-4 29–1 JEJB Transport Configuration for Proxy Services ............................................................ 29-10 29–2 JEJB Transport Configuration for Business Services ....................................................... 29-11 30–1 Differences Between Message ID and Correlation ID Patterns...................................... 30-10 30–2 JMS Transport Headers........................................................................................................ 30-15 32–1 Fields Required to Configure a Proxy Service to Use the WS Transport ....................... 32-7 32–2 Fields Required to Configure WS Transport for a Proxy Service .................................... 32-7 32–3 Configuring a Business Service to use WS Transport ..................................................... 32-16 32–4 Configuring WS Transport for Business Service.............................................................. 32-16 33–1 MQ Proxy Service Configuration ......................................................................................... 33-7 33–2 MQ Business Service Configuration .................................................................................. 33-10 33–3 Transport Headers ................................................................................................................ 33-13 34–1 BPEL transport environment variables................................................................................ 34-3 34–2 Specifying an Endpoint URI.................................................................................................. 34-9 34–3 BPEL transport configuration ............................................................................................. 34-10 35–1 Tuxedo Exceptions.................................................................................................................. 35-9 35–2 Buffer Transformation for Any XML Service ................................................................... 35-14 35–3 Buffer Transformation for Messaging Service .................................................................. 35-15 38–1 Built-In Transformations...................................................................................................... 38-21 39–1 Context IDs for Transport Configuration Pages .............................................................. 39-30 42–1 Key Sample Transport Provider Directories....................................................................... 42-4 45–1 Options for Identity Propagation ......................................................................................... 45-4 45–2 Combinations of Transport-Level Security Requirements ............................................... 45-5 45–3 Combinations of Message-Level Security Requirements.................................................. 45-7 45–4 Authentication Providers..................................................................................................... 45-16 45–5 ContextHandler Properties for HTTP Transport Authentication.................................. 45-19 45–6 ContextHandler Properties for Message-Level Custom Authentication and Access Control.................................................................................................................................... 45-20 45–7 Additional Message-Level Security ContextHandler Properties for HTTP Proxy Services ................................................................................................................................... 45-21 47–1 Oracle Service Bus Administrative Security Roles............................................................. 47-1 47–2 Oracle WebLogic Server Security Roles............................................................................... 47-2 47–3 Role-Based Operations Access in Oracle Service Bus Administration Console ............ 47-3 47–4 Role-Based Resource Browser Access in Oracle Service Bus Administration Console 47-3 47–5 Role-Based Project Explorer Access in Oracle Service Bus Administration Console ... 47-5 47–6 Role-Based Security Configuration Access in Oracle Service Bus Administration Console ..................................................................................................................................... 47-6 47–7 Role-Based System Administration Access in Oracle Service Bus Administration Console ..................................................................................................................................... 47-6 xli
  • 42. 47–8 Role-Based Change Center Access in Oracle Service Bus Administration Console ..... 47-7 47–9 Oracle Service Bus Groups .................................................................................................... 47-8 49–1 WS Transport Authentication Matrix ................................................................................ 49-18 50–1 Valid and Invalid Combinations of the &wsp and &wssp Query Parameters.............. 50-7 50–2 Supported OWSM Seed Policies........................................................................................... 50-9 50–3 Unsupported assertions ....................................................................................................... 50-12 51–1 WSDL Elements That Can Be Protected in Oracle Service Bus........................................ 51-8 xlii
  • 43. Preface This preface describes the document accessibility features and conventions of this guide--Oracle Fusion Middleware Developer's Guide for Oracle Service Bus. Documentation Accessibility For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc. Access to Oracle Support Oracle customers have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired. Conventions The following text conventions are used in this document: Convention Meaning boldface Boldface type indicates graphical user interface elements associated with an action, or terms defined in text or the glossary. italic Italic type indicates book titles, emphasis, or placeholder variables for which you supply particular values. monospace Monospace type indicates commands within a paragraph, URLs, code in examples, text that appears on the screen, or text that you enter. xliii
  • 44. xliv
  • 45. What's New in This Guide for Release 11.1.1.6.x For Release 11.1.1.6.x, this guide has been updated in several ways. The following table lists the sections that have been added or changed. If a feature was not available in the first release of 11.1.1.6.x, the last columns denote which documentation release contains the update. For a list of known issues (release notes), see the "Known Issues for Oracle SOA Products and Oracle AIA Foundation Pack" at http://www.oracle.com/technetwork/middleware/docs/soa-aiafp-know nissuesindex-364630.html. Sections Changes Made 11.1.1.6.0 11.1.1.6.1 11.1.1.6.2 11.1.1.6.3 Chapter 22 Development Environment Setup Section 22.1, "Running Section revised to include support X Multiple Development Servers for multiple development domains with Derby" using Derby. Chapter 25 JCA Transport Section 25.2.8, "Using Custom Section added to describe how to use X JCA Adapters" custom JCA adapters with Oracle Service Bus. Chapter 26 HTTP and Poller Transports Section 26.1.3.2.1, "Response Section revised to document the X Codes and Error Handling for improved HTTP Response status HTTP Business Services" code handling. Chapter 31 Local Transport Section 31.5, "Using OWSM Section added to describe how X Security with Local Proxies" Oracle Service Bus handles Oracle Web Service Manager (OWSM) policies on proxy-to-proxy invocations. Chapter 50 Securing Oracle Service Bus with Oracle Web Services Manager Section 50.2.8, "Supported Section revised to include added X Seed Policies and support for OWSM transport Unsupported Assertions" policies. xlv
  • 46. xlvi
  • 47. Part I Part I IDE Help for Oracle Service Bus This part contains the Oracle Service Bus IDE help, which includes the following chapters: ■ Chapter 1, "Introduction to Oracle Service Bus" ■ Chapter 2, "Tasks" ■ Chapter 3, "Transport Configuration" ■ Chapter 4, "User Interface Reference"
  • 49. 1 1Introduction to Oracle Service Bus This part tells how to use the Oracle Service Bus plug-ins for Eclipse to configure services and other service bus resources. These are design-time activities that, except where noted, do not require a running Oracle WebLogic Server instance. The Web-based Oracle Service Bus Administration Console, also provided with Oracle Service Bus, provides the same design tools as the Oracle Service Bus plug-ins, and it also provides run-time activities such as monitoring. You need a running Oracle WebLogic Server instance to use the Oracle Service Bus Administration Console. Oracle Service Bus is a configuration-based, policy-driven enterprise service bus. It provides highly scalable and reliable service-oriented integration, service management, and traditional message brokering across heterogeneous IT environments. It combines intelligent message brokering with routing and transformation of messages, along with service monitoring and administration in a unified software product. For more information, see the Oracle Fusion Middleware Concepts and Architecture for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBCA. Introduction to Oracle Service Bus 1-1
  • 50. 1-2 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 51. 2 Tasks 2 This chapter describes how to perform tasks in the Oracle Service Bus IDE, such as working with projects and resources, business and proxy services, Split-Joins, message flows, and global resources. This chapter includes the following sections: ■ Section 2.1, "Working with Projects, Folders, Resources, and Configurations" ■ Section 2.2, "Working with Business Services" ■ Section 2.3, "Working with Proxy Services" ■ Section 2.4, "Working with Proxy Service Message Flows" ■ Section 2.5, "Working with Alert Destinations" ■ Section 2.6, "Working with MQ Connections" ■ Section 2.7, "Working with Oracle Enterprise Repository and Harvester." ■ Section 2.8, "Working with UDDI Registries" ■ Section 2.9, "Working with Split-Join" ■ Section 2.10, "Using the Oracle Service Bus Debugger" 2.1 Working with Projects, Folders, Resources, and Configurations This section tells how to perform the following tasks: ■ Section 2.1.1, "Resource Naming Restrictions" ■ Section 2.1.2, "Editing Resources" ■ Section 2.1.3, "Cloning Oracle Service Bus Projects and Folders" ■ Section 2.1.4, "Creating Oracle Service Bus Configuration Projects" ■ Section 2.1.5, "Creating Oracle Service Bus Projects" ■ Section 2.1.6, "Creating Servers" ■ Section 2.1.7, "Creating Custom Resources" ■ Section 2.1.8, "Creating and Editing JNDI Provider Resources" ■ Section 2.1.9, "Creating Proxy Server Resources" ■ Section 2.1.10, "Creating Message Format Files" ■ Section 2.1.11, "Exporting Resources" ■ Section 2.1.12, "Generating an Effective WSDL" Tasks 2-1
  • 52. Working with Projects, Folders, Resources, and Configurations ■ Section 2.1.13, "Modifying JAR Dependencies" ■ Section 2.1.14, "Importing Resources" ■ Section 2.1.15, "Creating Service Account Resources" ■ Section 2.1.16, "Creating Service Key Provider Resources" ■ Section 2.1.17, "Creating SMTP Server Resources" ■ Section 2.1.18, "Creating XQuery Transformations" ■ Section 2.1.19, "Creating XSL Transformations" 2.1.1 Resource Naming Restrictions When naming any directory or resource in an Oracle Service Bus configuration, the following characters are allowed: ■ All Java identifier characters, including Java keywords, as described in the "Identifiers" and "Keywords" sections of the Java Language Specification at http://java.sun.com/docs/books/jls/third_ edition/html/lexical.html#3.8 ■ Blanks, periods, and hyphens within the names (not leading or trailing) Characters such as / * : " < > ? | are not allowed. 2.1.2 Editing Resources Edit resources using the built-in editors. For example, edit a proxy service by double-clicking its name in the Project Explorer. Do not manually edit resource files as text or XML files. This can result in unpredictable behavior. Do not manually edit these resource types: ■ Alert Destination ■ Business Service ■ Custom Resources ■ Proxy Service ■ Service Account ■ Service Key Provider ■ Split-Join ■ JNDI Provider ■ SMTP Server ■ Proxy Server ■ UDDI Registry 2.1.3 Cloning Oracle Service Bus Projects and Folders To clone Oracle Service Bus projects and folders: 1. In the Project Explorer, right-click the Oracle Service Bus project or folder you want to clone. 2. From the menu, select Oracle Service Bus > Clone to display the Select Clone Target Dialog. 2-2 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 53. Working with Projects, Folders, Resources, and Configurations 2.1.4 Creating Oracle Service Bus Configuration Projects In the Oracle Service Bus perspective, select File > New > Oracle Service Bus Configuration Project to display the New Oracle Service Bus Configuration Project Wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. For configuration details, see Section 4.4.3, "Oracle Service Bus Configuration Page." 2.1.5 Creating Oracle Service Bus Projects In the Oracle Service Bus perspective, select File > New > Oracle Service Bus Project to display the New Oracle Service Bus Project Wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Note: You can create an Oracle Service Bus project in an Oracle Service Bus configuration project only. For configuration details, see Section 4.4.4, "New Oracle Service Bus Project." 2.1.6 Creating Servers You can deploy (publish) and test your Oracle Service Bus configuration on a running server in Eclipse. When connected to a running server in development, you can also connect to resources in the run-time environment such as JNDI resources and remote EJBs. If you have an existing Oracle WebLogic Server you want to connect to, the server creation process simply involves you pointing at the existing server domain. If you want to create a new server, the new server wizard lets you create one using the Oracle Fusion Middleware Configuration Wizard. To Create a Server in Eclipse 1. In the Oracle Service Bus perspective, select File > New > Server. The New Server wizard appears. 2. Select the server type/version you want to create or connect to. 3. For Server’s host name, enter localhost for a local server or enter the name or IP address of the remote machine hosting an existing server. 4. The Server name is for display purposes in Eclipse. 5. Click Next. 6. For WebLogic home, click Browse and select the WL_HOME in the Oracle Fusion Middleware installation where the server domain is to reside (or already resides). For example, if you are creating a new server in MW_HOME_1, select the MW_ HOME_1/WL_HOME; or if you are connecting to an existing server domain in MW_HOME_2, select the MW_HOME_2/WL_HOME. Note: You cannot reference a WL_HOME that is outside of the server’s installation MW_HOME, even if the external MW_HOME is the same product version. Tasks 2-3
  • 54. Working with Projects, Folders, Resources, and Configurations 7. The Java home should be populated automatically. If you want to use a different JRE, such as the default Oracle JRockit JRE, click Browse and select the JRE under the same MW_HOME as the server. 8. Click Next. 9. Select whether the server is Local or Remote. Remote implies an existing remote server. ■ If Local, either select an existing server in the Domain Directory field or click the link to create a new domain. After creating a new domain, select it in the Domain Directory field. Set other options as desired, such as automatic publishing and debug mode. For information on creating a new Oracle Service Bus domain, see "Installing and Configuring Oracle Service Bus 11g" in the Oracle Fusion Middleware Installation Guide for Oracle Service Bus Installation Guide at http://www.oracle.com/pls/as1111/lookup?id=OSBIN1255. ■ If Remote, enter the connection settings to an existing remote server. 10. Click Next. 11. Move any Oracle Service Bus configuration(s) you want to publish on the server to the Configured pane. You can modify this targeting after you create the server by right-clicking the server and selecting Add and Remove. 12. Click Finish. The new server appears in the Servers view in Eclipse, where you can start, stop, and publish to the server. For information on running a server in debug mode, for which the Oracle Service Bus plug-ins for Eclipse provide special functionality, see Section 2.10, "Using the Oracle Service Bus Debugger." 2.1.7 Creating Custom Resources In the Oracle Service Bus perspective, select File > New > Custom Resource to display New Custom Resource Wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Note: You can create a custom resource in an Oracle Service Bus project only. For configuration details, see Section 4.5, "Custom Resources." 2.1.8 Creating and Editing JNDI Provider Resources In the Oracle Service Bus perspective, select File > New > JNDI Provider to display the New JNDI Provider Resource Wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Note: You can create a JNDI provider resource in an Oracle Service Bus configuration project only. To edit JNDI provider resources: 2-4 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 55. Working with Projects, Folders, Resources, and Configurations 1. In the Project Explorer, find the Oracle Service Bus configuration project containing the JNDI provider resource you want to edit. 2. Double-click the name of the JNDI provider to display the JNDI Provider Editor. For configuration details, see Section 4.8, "JNDI Providers." 2.1.9 Creating Proxy Server Resources In the Oracle Service Bus perspective, select File > New > Proxy Server to display the New Proxy Server Resource wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Note: You can create a proxy server resource in an Oracle Service Bus configuration project only. To edit proxy server resources: 1. In the Project Explorer, find the Oracle Service Bus configuration project containing the proxy server resource you want to edit. 2. Double-click the name of the proxy server to display the Proxy Server Editor. For configuration details, see Section 4.9, "Proxy Servers." 2.1.10 Creating Message Format Files In the Oracle Service Bus perspective, select File > New > MFL to display the New Message Format File wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Note: You can create a message format file in an Oracle Service Bus project only. For configuration details, see Section 4.11.16, "MFL Transform Action Properties." 2.1.11 Exporting Resources This section describes different ways to export Oracle Service Bus resources from Eclipse. Since these procedures require an Eclipse installation, you can only perform these procedures on platforms that support the Oracle Service Bus plug-ins for Oracle Enterprise Pack for Eclipse. For unsupported platforms, export using the Oracle Service Bus Administration Console. See "Import/Export" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1311. This section includes the following topics: ■ Section 2.1.11.1, "Using the Export Wizard" ■ Section 2.1.11.2, "Using the Command Line or a Script to Export an Oracle Service Bus Configuration" Tasks 2-5
  • 56. Working with Projects, Folders, Resources, and Configurations Note: XML files, which are a type of Oracle Service Bus resource, are automatically exported from Eclipse when you use any of the following export procedures. If you do not want to export XML files, exclude them using the Eclipse Resource Filter feature on a project or folder. The Export Wizard also lets you exclude files and resources from export. 2.1.11.1 Using the Export Wizard In the Oracle Service Bus perspective, select File > Export to display the Export wizard. See the following topics for more information: ■ Section 4.6.1, "Export Wizard - Oracle Service Bus Configuration JAR Export Page" ■ Section 4.6.2, "Export Wizard - Export to Server - Select Resources Page" 2.1.11.2 Using the Command Line or a Script to Export an Oracle Service Bus Configuration This section describes scripting and command-line options for exporting an Oracle Service Bus configuration: ■ Section 2.1.11.2.1, "Before You Begin" ■ Section 2.1.11.2.2, "Exporting a Configuration Using the Command Line" ■ Section 2.1.11.2.3, "Exporting a Configuration Using Ant" ■ Section 2.1.11.2.4, "Exporting a Configuration Using WLST" 2.1.11.2.1 Before You Begin Refer to the following prerequisites and guidance before you begin. ■ Be sure OSB_ORACLE_HOME/lib/sb-kernel-api.jar is in your classpath. ■ Be sure the resource JAR names in your scripts contain the correct version numbers. ■ Java 1.6 is required. ■ Oracle Service Bus 10gR3 MP1 or later and Eclipse must be installed. ■ You may see exception stack traces in the output or the workspace log file if workspace files are read-only. ■ An exit value of 0 means the export succeeded. ■ See Section 2.1.1, "Resource Naming Restrictions" for JAR naming guidance. 2.1.11.2.2 Exporting a Configuration Using the Command Line Oracle Service Bus provides a ConfigExport class that you can configure and launch using the following command line arguments. Command line export is for more advanced users who need more flexibility. Exporting from the command line generates an Oracle Service Bus configuration JAR from the Eclipse workspace. java -Xms384m -Xmx768m -Dosgi.bundlefile.limit=500 -Dosgi.nl=en_US -Dosb.home=OSB_ORACLE_HOME -Dweblogic.home=WEBLOGIC_HOME -Dharvester.home=${osb.home}/HARVESTER_HOME 2-6 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 57. Working with Projects, Folders, Resources, and Configurations -Dsun.lang.ClassLoader.allowArraySyntax=true -jar ECLIPSE_HOME/eclipse/plugins/org.eclipse.equinox.launcher_launcher_ version.jar -data WORKSPACE_DIR -application com.bea.alsb.core.ConfigExport -configProject PROJECT_NAME -configJar config_filename.jar -configSubProjects projects_to_export -includeDependencies true/false where ■ OSB_ORACLE_HOME is the top-level Oracle Service Bus directory in the Oracle Fusion Middleware home. ■ WEBLOGIC_HOME is the location of the installed Oracle WebLogic Server. ■ HARVESTER_HOME is the location of Harvester, an Oracle Enterprise Repository tool that lets you harvest enterprise artifacts into Oracle Enterprise Repository from multiple sources, including Oracle Service Bus. An Oracle Service Bus installation includes Harvester. ■ ECLIPSE_HOME is the location of the installed Eclipse that is linked to the Oracle Service Bus IDE plug-ins. ■ launcher_version is the version of the Eclipse launcher JAR. ■ WORKSPACE_DIR is the location that contains Oracle Service Bus artifacts to be exported. For example, c:/oracle/user_projects/workspaces/default. If this location contains an Eclipse workspace, the workspace is used and the configuration jar is exported from the workspace projects. If this location does not contain a workspace, but instead contains only Eclipse Oracle Service Bus projects, the utility imports the projects into a temporary workspace for the configuration JAR export. ■ PROJECT_NAME is the name of the Oracle Service Bus Configuration project to be exported. For example, "OSB Configuration." If you do not specify this argument, the first Oracle Service Bus Configuration Project found in the workspace is exported. ■ config_filename.jar is the name and location of the Oracle Service Bus Configuration JAR to be exported. For example, c:/sbconfig.jar. ■ configSubProjects projects_to_export is one or more specific projects within a configuration to export. If you do not specify configSubProjects, all projects in the configuration are exported. ■ includeDependencies true/false determines whether configuration-level dependencies such as JNDI Providers and Proxy Servers are included in the export. Following is an example of exporting an Oracle Service Bus Configuration from the command line. Note: Following is a sample command line operation. If you use this sample, be sure to check paths and file names against your current installation for accuracy. java -Xms384m -Xmx768m -Dosgi.bundlefile.limit=500 Tasks 2-7
  • 58. Working with Projects, Folders, Resources, and Configurations -Dosgi.nl=en_US -Dosb.home=D:/oracle/Oracle_OSB1 -Dweblogic.home=D:/oracle/wlserver_10.3 -Dharvester.home=${osb.home}/harvester -Dsun.lang.ClassLoader.allowArraySyntax=true -jar D:/oracle/oepe_11gR1PS1/eclipse/plugins/org.eclipse.equinox.launcher_ 1.0.201.R35x_v20090715.jar -data D:/oracle/user_projects/myWorkspace -application com.bea.alsb.core.ConfigExport -configProject config -configJar sbconfig.jar -configSubProjects OSB Project 1,OSB Project 2 -includeDependencies true 2.1.11.2.3 Exporting a Configuration Using Ant You can export an Oracle Service Bus configuration using an Apache Ant buildfile. Exporting with Ant generates an Oracle Service Bus configuration JAR from the Eclipse workspace. Following is a sample Ant buildfile with an accompanying properties file. Note: Following is a sample script. If you use this sample script, be sure to check paths and file names against your current installation for accuracy. Ant Buildfile Example <project name="ConfigExport"> <property file="./build.properties"/> <property name="eclipse.home" value="${oracle.home}/oepe_11gR1PS2"/> <property name="weblogic.home" value= "${oracle.home}/wlserver_10.3"/> <property name="metadata.dir" value="${workspace.dir}/.metadata"/> <target name="export"> <available file="${metadata.dir}" type="dir" property="metadata.dir.exists"/> <java dir="${eclipse.home}" jar="${eclipse.home}/plugins/org.eclipse.equinox.launcher_1.0.201.R35x_ v20090715.jar" fork="true" failonerror="true" maxmemory="768m"> <arg line="-data ${workspace.dir}"/> <arg line="-application com.bea.alsb.core.ConfigExport"/> <arg line="-configProject ${config.project}"/> <arg line="-configJar ${config.jar}"/> <arg line="-configSubProjects ${config.subprojects}"/> <arg line="-includeDependencies ${config.includeDependencies}"/> <sysproperty key="weblogic.home" value="${weblogic.home}"/> <sysproperty key="osb.home" value="${osb.home}"/> <sysproperty key="osgi.bundlefile.limit" value="500"/> <sysproperty key="harvester.home" value="${osb.home}/harvester"/> <sysproperty key="osgi.nl" value="en_US"/> <sysproperty key="sun.lang.ClassLoader.allowArraySyntax" value="true"/> </java> <antcall target="deleteMetadata"/> </target> <target name="deleteMetadata" unless="metadata.dir.exists"> <delete failonerror="false" includeemptydirs="true" dir="${metadata.dir}"/> </target> 2-8 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 59. Working with Projects, Folders, Resources, and Configurations </project> build.properties Example oracle.home=c:/oracle workspace.dir=c:/oracle/user_projects/workspaces/default config.project="OSB Configuration" config.jar=c:/sbconfig.jar config.subprojects="OSB Project 1,OSB Project 2" config.includeDependencies=true Running "ant export" (after you run the setDomainEnv script) results in exporting the project "OSB Configuration" from the default workspace to c:sbconfig.jar. 2.1.11.2.4 Exporting a Configuration Using WLST You can export an Oracle Service Bus configuration using the WebLogic Scripting Tool (WLST). Exporting with WLST generates an Oracle Service Bus configuration JAR from a running Oracle Service Bus server. For more information, see "WLST scripts to import/export and customize OSB configuration jar" on the Oracle Service Bus Samples page at http://www.oracle.com/technetwork/middleware/service-bus/learnmo re/index.html. 2.1.12 Generating an Effective WSDL To generate an effective WSDL: 1. In the Project Explorer, find the proxy service or business service from which you want to generate the effective WSDL. 2. Right-click the name of the service and select Oracle Service Bus > Generate Effective WSDL from the menu. 3. Select a location and save the file. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. 2.1.13 Modifying JAR Dependencies To modify JAR dependencies: 1. In the Project Explorer, find the JAR file whose dependencies you want to modify. 2. Right-click the name of the file and select Oracle Service Bus > Modify JAR Dependencies from the menu. 3. Make modifications in the Modify JAR Dependencies Dialog. 2.1.14 Importing Resources This section describes different ways to import resources into Oracle Service Bus. Since these procedures require an Eclipse installation, you can only perform these procedures on platforms that support the Oracle Service Bus plug-ins for Oracle Enterprise Pack for Eclipse. For unsupported platforms, import using the Oracle Service Bus Administration Console. See "Import/Export" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1311. This section includes the following topics: Tasks 2-9
  • 60. Working with Projects, Folders, Resources, and Configurations ■ Section 2.1.14.1, "Using the Import Wizard" ■ Section 2.1.14.2, "Using the Command Line or a Script to Import an Oracle Service Bus Configuration" 2.1.14.1 Using the Import Wizard In the Oracle Service Bus perspective, select File > Import to display the Import wizard. See: ■ Section 4.7.1, "Import Wizard - Config JAR Import - Load Resources Page" ■ Section 4.7.2, "Import Wizard - Config JAR Import - Review Resources Page" ■ Section 4.7.3, "Import Wizard - Config ZIP Import - Load Resources Page" ■ Section 4.7.4, "Import Wizard - Config ZIP Import - Review Resources Page" ■ Section 4.7.5, "Import Wizard - URL Import - Load Resources Page" ■ Section 4.7.6, "Import Wizard - URL Import - Review Resources Page" 2.1.14.2 Using the Command Line or a Script to Import an Oracle Service Bus Configuration You can use scripting or the command line to importing an Oracle Service Bus configuration. Importing from the command line or with an Ant script imports an Oracle Service Bus configuration JAR into an Eclipse workspace. Use the examples in Section 2.1.11.2.3, "Exporting a Configuration Using Ant" and Section 2.1.11.2.2, "Exporting a Configuration Using the Command Line" for guidance on importing. You can also import an Oracle Service Bus configuration using the WebLogic Scripting Tool (WLST). Importing with WLST imports an Oracle Service Bus configuration JAR into the Oracle Service Bus run-time environment. For more information, see "WLST scripts to import/export and customize OSB configuration jar" on the Oracle Service Bus Samples page at http://www.oracle.com/technetwork/middleware/service-bus/learnmo re/index.html. 2.1.15 Creating Service Account Resources In the Oracle Service Bus perspective, select File > New > Service Account to display the New Service Account Resource Wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Note: You can create a service account resource in an Oracle Service Bus project only. For configuration details, see Section 4.19, "Service Accounts." 2.1.16 Creating Service Key Provider Resources In the Oracle Service Bus perspective, select File > New > Service Key Provider to display the New Service Key Provider Resource Wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. 2-10 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 61. Working with Business Services Note: You can create a service key provider resource in an Oracle Service Bus project only. For configuration details, see Section 4.17, "New Service Key Provider Resource." 2.1.17 Creating SMTP Server Resources In the Oracle Service Bus perspective, select File > New > SMTP Server to display the New SMTP Server Resource Wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Note: You can create an SMTP server resource in an Oracle Service Bus configuration project only. For configuration details, see Section 4.13, "SMTP Servers." 2.1.18 Creating XQuery Transformations In the Oracle Service Bus perspective, select File > New > XQuery Transformation to display the XQuery/XSLT Expression Editor. For more information, see Part II, "XQuery Mapper". See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Note: You can create an XQuery transformation resource in an Oracle Service Bus project only. 2.1.19 Creating XSL Transformations In the Oracle Service Bus perspective, select File > New > XSL Transformation to display the XPath Expression Editor. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Note: You can create an XSL transformation resource in an Oracle Service Bus project only. For configuration details, see Section 4.20, "Expression Editors." 2.2 Working with Business Services The following topics describe how to create and work with business services in the Oracle Service Bus plug-ins. ■ Section 2.2.1, "Creating Business Services" ■ Appendix 2.2.2, "Generating a JCA Business Service from an Outbound JCA File" ■ Section 2.2.3, "Generating a Business Service from Oracle Enterprise Repository" ■ Section 2.2.4, "Editing Business Services" Tasks 2-11
  • 62. Working with Business Services 2.2.1 Creating Business Services In the Oracle Service Bus perspective, select File > New > Business Service to display the New Business Service wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. For information on business service configuration, see: ■ Section 4.2.1, "Business Service General Configuration Page" ■ Section 4.2.2, "Business Service Message Type Configuration Page" ■ Section 4.2.6, "Business Service - Service Policy Configuration Page" ■ Section 4.2.3, "Business Service SOAP Binding Configuration Page" ■ Section 4.2.4, "Business Service Transport Configuration Page" Note: You can create a business service in an Oracle Service Bus project only. 2.2.1.1 Generating a Business Service from an Existing Service To generate a business service from an existing proxy or business service: 1. In the Project Explorer, right-click the existing service and select Oracle Service Bus > Generate Business Service. 2. Name and configure the service. 2.2.2 Generating a JCA Business Service from an Outbound JCA File Oracle Service Bus lets you generate business services from outbound JCA files. JCA services, which use the Oracle Service Bus JCA transport, communicate with back-end Enterprise Information Systems (EIS) through a JCA adapter framework and JCA-compliant adapters. For example, you could update back-end database records using an Oracle Service Bus JCA business service that communicates with the Oracle Database Adapter. To create a JCA business service in Oracle Service Bus: 1. In Oracle JDeveloper, create a JCA file, its associated abstract WSDL, and any other required resources, such as a TopLink mapping file. For more information, see the Oracle Fusion Middleware User's Guide for Technology Adapters. 2. Import the JCA resource files into an Oracle Service Bus project so that all references to dependencies are maintained. For more information, see Section 2.1.14, "Importing Resources." 3. In Eclipse, right-click the outbound JCA file and choose Oracle Service Bus > Generate Service. 4. In the JCA Generate Business Service window, select the folder location for the new service, and, if desired, change the default service name. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. 5. Click OK. Oracle Service Bus generates the business service and the concrete WSDL that is used by the business service. For more information on the Oracle Service Bus JCA transport, see "JCA Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV910. 2-12 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 63. Working with Proxy Services 2.2.3 Generating a Business Service from Oracle Enterprise Repository You can generate business services from service artifacts in Oracle Enterprise Repository. For more information, see Section 2.7.1, "Generating Business Services from Oracle Enterprise Repository." You can also upload Oracle Service Bus projects to Oracle Enterprise Repository with Harvester, described in Section 2.7, "Working with Oracle Enterprise Repository and Harvester." 2.2.3.1 Re-generating an Existing Business Service from Oracle Enterprise Repository You can re-generate a business service you previously generated from Oracle Enterprise Repository by following the same process described in Section 2.2.3, "Generating a Business Service from Oracle Enterprise Repository." Re-generating lets you pick up service updates in your development environment. When you re-generate a service, Oracle Service Bus merges the service definitions, updating the existing service with changes in the Oracle Enterprise Repository but retaining service account and large message support configurations you have made in the development environment. 2.2.4 Editing Business Services To edit business services: 1. In the Project Explorer, find the business service you want to edit. 2. Double-click the name of the service. 3. Select the page containing the options you want to edit. See: ■ Section 4.2.1, "Business Service General Configuration Page" ■ Section 4.2.2, "Business Service Message Type Configuration Page" ■ Section 4.2.6, "Business Service - Service Policy Configuration Page" ■ Section 4.2.3, "Business Service SOAP Binding Configuration Page" ■ Section 4.2.4, "Business Service Transport Configuration Page" ■ Section 4.2.5, "Business Service Message Handling Configuration Page" 2.3 Working with Proxy Services The following topics describe how to create and work with proxy services in the Oracle Service Bus plug-ins. ■ Section 2.3.1, "Creating Proxy Services" ■ Section 2.3.2, "Generating a JCA Proxy Service from an Inbound JCA File" ■ Section 2.3.3, "Consuming Oracle Service Bus Proxy Services in Oracle JDeveloper with WSIL" ■ Section 2.3.4, "Editing Proxy Services" 2.3.1 Creating Proxy Services In the Oracle Service Bus perspective, select File > New > Proxy Service to display the New Proxy Service wizard. Tasks 2-13
  • 64. Working with Proxy Services See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Do not use the following characters in your service names: leading space, trailing space, / * : " < > ? | For information on proxy service configuration, see: ■ Section 4.3.1, "Proxy Service General Configuration Page" ■ Section 4.3.8, "Proxy Service Security Configuration Page" ■ Section 4.3.2, "Proxy Service Message Type Configuration Page" ■ Section 4.3.3, "Proxy Service Operation Selection Configuration Page" ■ Section 4.3.4, "Proxy Service Message Handling Configuration Page" ■ Section 4.3.7, "Proxy Service - Service Policy Configuration Page" ■ Section 4.3.5, "Proxy Service SOAP Binding Configuration Page" ■ Section 4.3.6, "Proxy Service Transport Configuration Page" Note: You can create a proxy service in an Oracle Service Bus project only. 2.3.1.1 Generating a Proxy Service from an Existing Service To generate a proxy service from an existing business or proxy service: 1. In the Project Explorer, right-click the existing service and select Oracle Service Bus > Generate Proxy Service. 2. Name and configure the service. For a proxy services generated from a business service, the message flow automatically includes a route node to the business service. 2.3.2 Generating a JCA Proxy Service from an Inbound JCA File Oracle Service Bus lets you generate proxy services from inbound JCA files. JCA services, which use the Oracle Service Bus JCA transport, communicate with Enterprise Information Systems (EIS) through a JCA adapter framework and JCA-compliant adapters. For example, you could invoke an external service from an EIS application through Oracle Service Bus using JCA. To create a JCA proxy service in Oracle Service Bus: 1. In Oracle JDeveloper, create a JCA file, its associated abstract WSDL, and any other required resources, such as a TopLink mapping file. For more information, see the Oracle Fusion Middleware User's Guide for Technology Adapters. 2. Import the JCA resource files into an Oracle Service Bus project so that all references to dependencies are maintained. For more information, see Section 2.1.14, "Importing Resources." 3. In Eclipse, right-click the inbound JCA file and choose Oracle Service Bus > Generate Service. 4. In the JCA Generate Proxy Service window, select the folder location for the new service, and, if desired, change the default service name. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. 2-14 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 65. Working with Proxy Services 5. Click OK. Oracle Service Bus generates the proxy service and the concrete WSDL that is used by the proxy service. For more information on the Oracle Service Bus JCA transport, see "JCA Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV910. 2.3.3 Consuming Oracle Service Bus Proxy Services in Oracle JDeveloper with WSIL Oracle Service Bus makes its WSDL-based proxy services available through the Web Services Inspection Language (WSIL), letting you consume Oracle Service Bus WSDL proxy services in Oracle JDeveloper for service orchestration in Oracle SOA Suite. The Oracle Service Bus WSIL servlet automatically registers WSDL-based proxy services deployed in the Oracle Service Bus run-time environment. By creating a WSIL connection in JDeveloper, you can access those proxy services through different URL patterns that map to different hierarchy levels, such as project, folder, and individual service. For example, when you connect to the Oracle Service Bus WSIL servlet with a project-level URL, you can see all the child folders and WSDL-based proxy services in that project in Oracle JDeveloper. The following procedure guides you through the process of creating a WSIL connection in JDeveloper and generating Web service references out of Oracle Service Bus WSDL proxy services for use in SOA applications. 1. In Oracle JDeveloper, open or create a SOA application. 2. Create a new WSIL connection. In the Resource Palette, click the New icon and choose New Connection > WSIL. In the Create WSIL Connection window: ■ Enter the connection name. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. ■ Enter the credentials for one of the following Oracle Service Bus roles: IntegrationAdmin, IntegrationDeployer, IntegrationOperator, or IntegrationMonitor. ■ Enter the URL to the Oracle Service Bus WSIL in one of the following formats: – Domain (gets all projects, folders, and WSDL proxy services) – http://host:port/sbinspection.wsil – Project (gets all child folders and WSDL proxy services) – http://host:port/sbinspection.wsil?refpath=project_name – Folder (in a project, gets the folder, all child folders, and WSDL proxy services) – http://host:port/sbinspection.wsil?refpath=project_name/folder_ path. For example: http://localhost:7021/sbinspection.wsil?refpath=MortgageBroker/ProxyS ervices – Proxy Service (gets an individual WSDL proxy service) – http://host:port/sbinspection.wsil?refpath=project_name/folder_path/wsdl_ proxy_service. For example: http://localhost:7021/sbinspection.wsil?refpath=MortgageBroker/ProxyS ervices/loanGateway1 In a cluster, the WSIL servlet is deployed on Managed Servers and not the Admin Server. Use a Managed Server host name and port in the URL. Tasks 2-15
  • 66. Working with Proxy Service Message Flows When finished, click OK. The WSIL connection is displayed in the Resource Palette in the hierarchy determined by the URL you entered. 3. To use an Oracle Service Bus WSDL proxy service in your SOA application, create a Web service reference to it. In the Component Palette, create a new Web service. In the Create Web Service window, click the WSDL URL browse icon. In the SOA Resource Browser, select Resource Palette, and select the Oracle Service Bus WSDL proxy service in the WSIL connection created in the previous step. When you create the Web service reference to an Oracle Service Bus WSDL proxy service, you can use it as an external reference in your SOA application. The Oracle Service Bus WSIL servlet leverages the SBResource servlet. If the SBResource is undeployed, the WSIL connection is not available. 2.3.4 Editing Proxy Services To edit proxy services: 1. In the Project Explorer, find the proxy service you want to edit. 2. Double-click the name of the service. 3. Select the page containing the options you want to edit. See: ■ Section 4.3.1, "Proxy Service General Configuration Page" ■ Section 4.3.8, "Proxy Service Security Configuration Page" ■ Section 4.3.2, "Proxy Service Message Type Configuration Page" ■ Section 4.3.3, "Proxy Service Operation Selection Configuration Page" ■ Section 4.3.4, "Proxy Service Message Handling Configuration Page" ■ Section 4.3.7, "Proxy Service - Service Policy Configuration Page" ■ Section 4.3.5, "Proxy Service SOAP Binding Configuration Page" ■ Section 4.3.6, "Proxy Service Transport Configuration Page" 2.4 Working with Proxy Service Message Flows The following topics describe how to add and configure nodes and actions to proxy service message flows. ■ Section 2.4.1, "Constructing Proxy Service Message Flows" ■ Section 2.4.2, "Adding and Configuring Alert Actions in Message Flows" ■ Section 2.4.3, "Adding and Configuring Assign Actions in Message Flows" ■ Section 2.4.4, "Adding and Configuring Conditional Branch Nodes in Message Flows" ■ Section 2.4.6, "Adding and Configuring Dynamic Publish Actions in Message Flows" ■ Section 2.4.7, "Adding and Configuring Dynamic Routing Actions in Message Flows" ■ Section 2.4.8, "Adding and Configuring Error Handlers in Message Flows" 2-16 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 67. Working with Proxy Service Message Flows ■ Section 2.4.9, "Adding and Configuring For-Each Actions in Message Flows" ■ Section 2.4.10, "Adding and Configuring If-Then Actions in Message Flows" ■ Section 2.4.11, "Adding and Configuring Insert Actions in Message Flows" ■ Section 2.4.12, "Adding and Configuring Java Callout Actions in Message Flows" ■ Section 2.4.13, "Adding and Configuring Log Actions in Message Flows" ■ Section 2.4.14, "Adding and Configuring MFL Transform Actions in Message Flows" ■ Section 2.4.15, "Adding and Configuring Operational Branch Nodes in Message Flows" ■ Section 2.4.16, "Adding and Configuring Pipeline Pair Nodes in Message Flows" ■ Section 2.4.17, "Adding and Configuring Publish Actions in Message Flows" ■ Section 2.4.18, "Adding and Configuring Publish Table Actions in Message Flows" ■ Section 2.4.19, "Adding and Configuring Raise Error Actions in Message Flows" ■ Section 2.4.20, "Adding and Configuring Rename Actions in Message Flows" ■ Section 2.4.21, "Adding and Configuring Replace Actions in Message Flows" ■ Section 2.4.23, "Adding and Configuring Report Actions in Message Flows" ■ Section 2.4.21, "Adding and Configuring Replace Actions in Message Flows" ■ Section 2.4.22, "Adding and Configuring Reply Actions in Message Flows" ■ Section 2.4.24, "Adding and Configuring Resume Actions in Message Flows" ■ Section 2.4.25, "Adding and Configuring Route Nodes in Message Flows" ■ Section 2.4.26, "Adding and Configuring Routing Actions in Message Flows" ■ Section 2.4.27, "Adding and Configuring Routing Options Actions in Message Flows" ■ Section 2.4.28, "Adding and Configuring Routing Table Actions in Message Flows" ■ Section 2.4.29, "Adding and Configuring Service Callout Actions in Message Flows" ■ Section 2.4.30, "Adding and Configuring Skip Actions in Message Flows" ■ Section 2.4.31, "Adding and Configuring Stages in Message Flows" ■ Section 2.4.32, "Adding and Configuring Transport Headers Actions in Message Flows" ■ Section 2.4.33, "Adding and Configuring Validate Actions in Message Flows" 2.4.1 Constructing Proxy Service Message Flows When you create a proxy service, a message flow is created by default, with an empty starting node. The process for constructing the message flow follows this general pattern: 1. Open the Message Flow Editor for the proxy service. To open the proxy service, double-click its name in Project Explorer. The Message Flow Editor appears as a tab in the proxy service view. 2. Open the Message Flow Design Palette. To open the palette, in the Oracle Service Bus perspective, select Window > Show View > Design Palette. Tasks 2-17
  • 68. Working with Proxy Service Message Flows 3. Open the Properties view, if it is not already open: a. In the Oracle Service Bus perspective, select Window > Show View > Other. b. In the Show View dialog, select General > Properties. 4. Drag nodes and actions from the Message Flow Design Palette to the Message Flow Editor. Alternatively, you can right-click a node or action in the Message Flow Editor to display menus of nodes and actions that can be inserted in that location. The menu contains one or more the following: ■ Insert > (list of nodes and actions) ■ Insert Into > (list of nodes and actions) ■ Insert After > (list of nodes and actions) ■ Add Error Handler 5. Configure nodes and actions: a. In the Proxy Service Editor, select the node or action by clicking it. Alternatively, you can select a node or an action from the Outline view. To open the Outline view, in the Oracle Service Bus perspective, select Window > Show View > Outline. b. In the Properties view, set the properties for the selected node or action. For instructions on how to configure the nodes and actions, click the Properties view for a node or action, and press F1 for help. 2.4.2 Adding and Configuring Alert Actions in Message Flows Use the alert action to generate alerts based on message context in a pipeline, to send to an alert destination. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add an alert action 1. In the Message Flow Design Palette, open the Stage Actions > Reporting list, if it is not already open. 2. Drag the alert action to the desired location in the message flow. To configure the alert action 1. In the Message Flow Editor, click the alert action, if it is not already selected. 2. On the Alert Action Properties page, edit properties. For configuration details, see Section 4.11.1, "Alert Action Properties." 2.4.3 Adding and Configuring Assign Actions in Message Flows Use an assign action to assign the result of an XQuery expression to a context variable. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows". 2-18 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 69. Working with Proxy Service Message Flows To add an assign action 1. In the Message Flow Design Palette, open the Stage Actions > Message Processing list, if it is not already open. 2. Drag the assign action to the desired location in the message flow. To configure the assign action 1. In the Message Flow Editor, click the assign action, if it is not already selected. 2. On the Assign Action Properties page, edit the desired properties. For configuration details, see Section 4.11.2, "Assign Action Properties." 2.4.4 Adding and Configuring Conditional Branch Nodes in Message Flows Use a conditional branch node to specify that message processing is to proceed along exactly one of several possible paths, based on a result returned by an XPath condition. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a conditional branch node 1. In the Message Flow Design Palette, open the Oracle Service Bus Message Flow > Nodes list, if it is not already open. 2. Drag the conditional branch node to the desired location in the message flow. To configure the conditional branch node 1. In the Message Flow Editor, click the conditional branch node, if it is not already selected. 2. On the Conditional Branch Node Properties page, edit the desired properties. For configuration details, see Section 4.11.3, "Conditional Branch Node Properties." 2.4.5 Adding and Configuring Delete Actions in Message Flows Use a delete action to delete a context variable or a set of nodes specified by an XPath expression. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a delete action 1. In the Message Flow Design Palette, open the Stage Actions > Message Processing list, if it is not already open. 2. Drag the delete action to the desired location in a stage action in the message flow. To configure the delete action 1. In the Message Flow Editor, click the delete action, if it is not already selected. 2. On the Delete Action Properties page, edit the desired properties. For configuration details, see Section 4.11.4, "Delete Action Properties." Tasks 2-19
  • 70. Working with Proxy Service Message Flows 2.4.6 Adding and Configuring Dynamic Publish Actions in Message Flows Use a dynamic publish action to publish a message to a service specified by an XQuery expression. For more information on publish behavior, see "Performing Transformations in Message Flows" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG205. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a dynamic publish action 1. In the Message Flow Design Palette, open the Stage Actions > Communication list, if it is not already open. 2. Drag the dynamic publish action to the desired location in the message flow. To configure the dynamic publish action 1. In the Message Flow Editor, click the dynamic publish action, if it is not already selected. 2. On the Dynamic Publish Action Properties page, edit the desired properties. For configuration details, see Section 4.11.5, "Dynamic Publish Action Properties." 2.4.7 Adding and Configuring Dynamic Routing Actions in Message Flows Use a dynamic routing action to assign a route for a message based on routing information available in an XQuery resource. For more information on routing, see "Modeling Message Flow in Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG181. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a dynamic routing action 1. In the Message Flow Design Palette, open the Route Actions > Communication list, if it is not already open. 2. Drag the dynamic routing action to the route action in the message flow. To configure the dynamic routing action 1. In the Message Flow Editor, click the dynamic routing action, if it is not already selected. 2. On the Dynamic Routing Action Properties page, edit the desired properties. For configuration details, see Section 4.11.6, "Dynamic Routing Action Properties." 2.4.8 Adding and Configuring Error Handlers in Message Flows Use an error handler to specify what should happen if an error occurs in a specific location in the message flow. Before you begin 2-20 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 71. Working with Proxy Service Message Flows Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add an error handler 1. In the Message Flow Design Palette, open the Oracle Service Bus Message Flow > Nodes list, if it is not already open. 2. Drag the error handler to the desired location in the message flow. 3. Drag a stage node to the error handler. 4. Add actions to the stage to define the error handler. To configure the error handler 1. In the Message Flow Editor, click the error handler, if it is not already selected. 2. On the Error Handler Node Properties page, edit the properties. 3. Click the stage node, if it is not already selected. 4. On the Stage Node Properties page, edit the properties. 5. Select and edit any desired actions contained by the stage. For configuration details, see Section 4.11.7, "Error Handler Node Properties." 2.4.9 Adding and Configuring For-Each Actions in Message Flows Use the for-each action to iterate over a sequence of values and execute a block of actions. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a for-each action 1. In the Message Flow Design Palette, open the Stage Actions > Flow Control list, if it is not already open. 2. Drag the for-each action to the desired stage action in the message flow. To configure the for-each action 1. In the Message Flow Editor, click the for-each action, if it is not already selected. 2. On the For-Each Action Properties page, edit the desired properties. For configuration details, see Section 4.11.8, "For-Each Action Properties." 2.4.10 Adding and Configuring If-Then Actions in Message Flows Use an if-then action to perform an action or a set of actions conditionally, based on the Boolean result of an XQuery expression. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add an if-then action 1. In the Message Flow Design Palette, do one of the following: Tasks 2-21
  • 72. Working with Proxy Service Message Flows ■ For an if-then action in a route node, open the Route Actions > Flow Control list, if it is not already open. ■ For an if-then action in a stage node, open the Stage Actions > Flow Control list, if it is not already open. 2. Drag the if-then action to the route node or to the desired stage action in the message flow. To configure the if-then action In the Message Flow Editor, click each if condition and else-if condition contained by the if-then action, and define the conditions in the Condition Editor, as described in Section 4.11.9, "If-Then Action Properties." 2.4.11 Adding and Configuring Insert Actions in Message Flows Use an insert action to insert the result of an XQuery expression at an identified place relative to nodes selected by an XPath expression. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add an insert action 1. In the Message Flow Design Palette, open the Stage Actions > Message Processing list, if it is not already open. 2. Drag the insert action to the desired location in the message flow. To configure the insert action 1. In the Message Flow Editor, click the insert action, if it is not already selected. 2. On the Insert Action Properties page, edit the desired properties. For configuration details, see Section 4.11.10, "Insert Action Properties." 2.4.12 Adding and Configuring Java Callout Actions in Message Flows Use a Java callout action to invoke a Java method or an EJB business service from within the message flow. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add an Java callout action 1. In the Message Flow Design Palette, open the Stage Actions > Message Processing list, if it is not already open. 2. Drag the Java callout action to the desired location in the message flow. To configure the Java callout action 1. In the Message Flow Editor, click the Java callout action, if it is not already selected. 2. On the Java Callout Action Properties page, edit the desired properties. For configuration details, see Section 4.11.11, "Java Callout Action Properties." 2-22 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 73. Working with Proxy Service Message Flows 2.4.13 Adding and Configuring Log Actions in Message Flows Use the log action to construct a message to be logged and to define a set of attributes with which it will be logged. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a log action 1. In the Message Flow Design Palette, open the Stage Actions > Reporting list, if it is not already open. 2. Drag the log action to the desired location in the message flow. To configure the log action 1. In the Message Flow Editor, click the log action, if it is not already selected. 2. On the Log Action Properties page, edit the desired properties. For configuration details, see Section 4.11.12, "Log Action Properties." 2.4.14 Adding and Configuring MFL Transform Actions in Message Flows Use a MFL (Message Format Language) transform action to convert message content from XML to non-XML, or vice versa, in the message pipeline. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a MFL transform action 1. In the Message Flow Design Palette, open the Stage Actions > Message Processing list, if it is not already open. 2. Drag the MFL transform action to the desired location in the message flow. To configure the MFL transform action 1. In the Message Flow Editor, click the MFL transform action, if it is not already selected. 2. On the MFL Transform Action Properties page, edit the desired properties. For configuration details, see Section 4.11.16, "MFL Transform Action Properties." 2.4.15 Adding and Configuring Operational Branch Nodes in Message Flows Use an operational branch node to configure branching based on operations defined in a WSDL. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add an operational branch node 1. In the Message Flow Design Palette, open the Oracle Service Bus Message Flow > Nodes list, if it is not already open. 2. Drag the operational branch node to the desired location in the message flow. Tasks 2-23
  • 74. Working with Proxy Service Message Flows To configure the operational branch node 1. In the Message Flow Editor, click the operational branch node, if it is not already selected. 2. On the Operational Branch Node Properties page, edit the desired properties. For configuration details, see Section 4.11.17, "Operational Branch Node Properties." 2.4.16 Adding and Configuring Pipeline Pair Nodes in Message Flows Use a pipeline pair node to define request and response processing. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a pipeline pair node 1. In the Message Flow Design Palette, open the Oracle Service Bus Message Flow > Nodes list, if it is not already open. 2. Drag the pipeline pair node to the desired location in the message flow. To configure the pipeline pair node 1. In the Message Flow Editor, click the pipeline pair node, if it is not already selected. 2. On the Pipeline Pair Node Properties page, edit the desired properties. For configuration details, see Section 4.11.18, "Pipeline Pair Node Properties." 2.4.17 Adding and Configuring Publish Actions in Message Flows Use a publish action to identify a statically specified target service for a message and to configure how the message is packaged and sent to that service. For more information on publish behavior, see "Performing Transformations in Message Flows" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG205. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a publish action 1. In the Message Flow Design Palette, open the Stage Actions > Communication list, if it is not already open. 2. Drag the publish action to the desired location in the message flow. To configure the publish action 1. In the Message Flow Editor, click the publish action, if it is not already selected. 2. On the Publish Action Properties page, edit the desired properties. For configuration details, see Section 4.11.19, "Publish Action Properties." 2-24 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 75. Working with Proxy Service Message Flows 2.4.18 Adding and Configuring Publish Table Actions in Message Flows Use a publish table action to publish a message to zero or more statically specified services. For more information on publish behavior, see "Performing Transformations in Message Flows" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG205. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a publish table action 1. In the Message Flow Design Palette, open the Stage Actions > Communication list, if it is not already open. 2. Drag the publish table action to the desired location in the message flow. To configure the publish table action 1. In the Message Flow Editor, click the publish table action, if it is not already selected. 2. On the Publish Table Action Properties page, click <Expression> to display the XQuery/XSLT Expression Editor. Create an XQuery expression, which at run time returns the value upon which the routing decision will be made. 3. In the Message Flow Editor, select a case action. 4. From the Operator list on the Publish Table Action Properties page, select a comparison operator. Then, in the Value field, enter a value against which the value returned from the XQuery expression will be evaluated. 5. In the Message Flow Editor, click one of the publish table’s publish actions to select it. 6. On the Publish Action Properties page, click Browse to select a service. Select the service to which messages are to be published if the expression evaluates true for the value you specified. The Select a Service Resource dialog is displayed. 7. Select a service from the list, then click OK. This is the target service for the message. 8. If the service has operations defined, you can specify the operation to be invoked by selecting it from the invoking list. 9. If you want the outbound operation to be the same as the inbound operation, select the Use inbound operation for outbound check box. 10. In the Request Actions field, to configure how the message is packaged and sent to the service, click Add an Action, then select one or more actions that you want to associate with the service. Note: There is a nesting limit of four cumulative levels in the stage editor. If you attempt to add a fifth level, nesting action is not displayed. Cumulative levels include all branching actions: if... then... conditions, publish tables, and route tables. For example, you can have 2 levels of conditionals, then a publish table with a route table inside of it, bringing the total to 4 levels. If you attempt to add another conditional (to the last publish table), the conditional is not displayed. Tasks 2-25
  • 76. Working with Proxy Service Message Flows 11. To insert a new case, click the Case icon, then select Insert New Case. 12. Repeat steps 4-8 for the new case. 13. Add additional cases as dictated by your business logic. 14. Click the Case icon of the last case you define in the sequence, then select Insert Default Case to add a default case at the end. 15. Configure the default case—the configuration of this case specifies the routing behavior in the event that none of the preceding cases is satisfied. For more information, see Section 4.11.20, "Publish Table Action Properties." 2.4.19 Adding and Configuring Raise Error Actions in Message Flows Use the raise error action to raise an exception with a specified error code (a string) and description. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a raise error action 1. In the Message Flow Design Palette, open the Stage Actions > Flow Control list, if it is not already open. 2. Drag the raise error action to the desired location in the message flow. To configure the raise error action 1. In the Message Flow Editor, click the raise error action, if it is not already selected. 2. On the Raise Error Action Properties page, edit the desired properties. For configuration details, see Section 4.11.21, "Raise Error Action Properties." 2.4.20 Adding and Configuring Rename Actions in Message Flows Use the rename action to rename elements selected by an XPath expression without modifying the contents of the element. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add an rename action 1. In the Message Flow Design Palette, open the Stage Actions > Message Processing list, if it is not already open. 2. Drag the rename action to the desired location in the message flow. To configure the rename action 1. In the Message Flow Editor, click the rename action, if it is not already selected. 2. On the Rename Action Properties page, edit the desired properties. For configuration details, see Section 4.11.22, "Rename Action Properties." 2-26 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 77. Working with Proxy Service Message Flows 2.4.21 Adding and Configuring Replace Actions in Message Flows Use a replace action to replace a node or the contents of a node specified by an XPath expression. The node or its contents are replaced with the value returned by an XQuery expression. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a replace action 1. In the Message Flow Design Palette, open the Stage Actions > Message Processing list, if it is not already open. 2. Drag the replace action to the desired location in the message flow. To configure the replace action 1. In the Message Flow Editor, click the replace action, if it is not already selected. 2. On the Replace Action Properties page, edit the desired properties. For configuration details, see Section 4.11.23, "Replace Action Properties." 2.4.22 Adding and Configuring Reply Actions in Message Flows Use the reply action to specify that an immediate reply be sent to the invoker. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a reply action 1. In the Message Flow Design Palette, open the Stage Actions > Flow Control list, if it is not already open. 2. Drag the reply action to the desired location in the message flow. To configure the reply action 1. In the Message Flow Editor, click the reply action, if it is not already selected. 2. On the Reply Action Properties page, edit the desired properties. For configuration details, see Section 4.11.24, "Reply Action Properties." 2.4.23 Adding and Configuring Report Actions in Message Flows Use the report action to enable message reporting for a proxy service. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a report action 1. In the Message Flow Design Palette, open the Stage Actions > Reporting list, if it is not already open. 2. Drag the report action to the desired location in the message flow. To configure the report action Tasks 2-27
  • 78. Working with Proxy Service Message Flows 1. In the Message Flow Editor, click the report action, if it is not already selected. 2. On the Report Action Properties page, edit the desired properties. For configuration details, see Section 4.11.25, "Report Action Properties." 2.4.24 Adding and Configuring Resume Actions in Message Flows Use the resume action to resume message flow after an error is handled by an error handler. This action has no parameters and can only be used in error pipelines. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a resume action 1. In the Message Flow Design Palette, open the Stage Actions > Flow Control list, if it is not already open. 2. Drag the resume action to the desired location in the message flow. To configure the resume action 1. In the Message Flow Editor, click the resume action, if it is not already selected. 2. On the Resume Action Properties page, edit the desired properties. For configuration details, see Section 4.11.26, "Resume Action Properties." 2.4.25 Adding and Configuring Route Nodes in Message Flows Use the route node to handle request and response dispatching of messages to and from business services. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a route node 1. In the Message Flow Design Palette, open the Oracle Service Bus Message Flow > Nodes list, if it is not already open. 2. Drag the route node to the desired location in the message flow. To configure the route node 1. In the Message Flow Editor, click the route node action, if it is not already selected. 2. On the Route Node Properties page, edit the desired properties. For configuration details, see Section 4.11.27, "Route Node Properties." 2.4.26 Adding and Configuring Routing Actions in Message Flows Use a routing action to identify a target service for the message and configure how the message is routed to that service. For more information on routing, see "Modeling Message Flow in Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG181. Before you begin 2-28 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 79. Working with Proxy Service Message Flows Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a routing action 1. In the Message Flow Design Palette, open the Route Actions > Communication list, if it is not already open. 2. Drag the routing action to the desired location in the message flow. To configure the routing action 1. In the Message Flow Editor, click the routing action, if it is not already selected. 2. On the Routing Action Properties page, edit the desired properties. For configuration details, see Section 4.11.28, "Routing Action Properties." 2.4.27 Adding and Configuring Routing Options Actions in Message Flows Use a routing options action to modify any or all of the following properties in the outbound request: URI, Quality of Service, Mode, Retry parameters, message Priority. For more information on routing, see "Modeling Message Flow in Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG181. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a routing options action 1. In the Message Flow Design Palette, open the Stage Actions > Communication list, if it is not already open. 2. Drag the routing options action to the desired location in the message flow. To configure the routing options action 1. In the Message Flow Editor, click the routing options action, if it is not already selected. 2. On the Routing Options Action Properties page, edit the desired properties. For configuration details, see Section 4.11.29, "Routing Options Action Properties." 2.4.28 Adding and Configuring Routing Table Actions in Message Flows Use a routing table to select different routes based upon the results of a single XQuery expression. A routing table action contains a set of routes wrapped in a switch-style condition table. For more information on routing, see "Modeling Message Flow in Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG181. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a routing table action Tasks 2-29
  • 80. Working with Proxy Service Message Flows 1. In the Message Flow Design Palette, open the Route Actions > Communication list, if it is not already open. 2. Drag the routing table action to the desired location in the message flow. To configure the routing table action 1. In the Message Flow Editor, click the routing table action, if it is not already selected. 2. On the Routing Table Action Properties page, edit the desired properties. For configuration details, see Section 4.11.30, "Routing Table Action Properties." 2.4.29 Adding and Configuring Service Callout Actions in Message Flows Use a service callout action to configure a synchronous (blocking) callout to an Oracle Service Bus-registered proxy or business service. For more information on service callout actions, see "Constructing Service Callout Messages" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1124. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a service callout action 1. In the Message Flow Design Palette, open the Stage Actions > Communication list, if it is not already open. 2. Drag the service callout action to the desired location in the message flow. To configure the service callout action 1. In the Message Flow Editor, click the service callout action, if it is not already selected. 2. On the Service Callout Action Properties page, edit the desired properties. For configuration details, see Section 4.11.31, "Service Callout Action Properties." 2.4.30 Adding and Configuring Skip Actions in Message Flows Use the skip action to specify that at run time, the execution of the current stage is skipped and the processing proceeds to the next stage in the message flow. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a skip action 1. In the Message Flow Design Palette, open the Stage Actions > Flow Control list, if it is not already open. 2. Drag the skip action to the desired location in the message flow. To configure the skip action 1. In the Message Flow Editor, click the skip action, if it is not already selected. 2. On the Skip Action Properties page, edit the desired properties. 2-30 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 81. Working with Proxy Service Message Flows For configuration details, see Section 4.11.32, "Skip Action Properties." 2.4.31 Adding and Configuring Stages in Message Flows Use a stage node as a container for actions in a message flow. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a stage 1. In the Message Flow Design Palette, open the Oracle Service Bus Message Flow > Nodes list, if it is not already open. 2. Drag the stage to the desired location in the message flow. 3. Add actions to the stage for your configuration. To configure the stage 1. In the Message Flow Editor, click the stage, if it is not already selected. 2. On the Stage Node Properties page, edit the desired properties. For configuration details, see Section 4.11.33, "Stage Node Properties." 2.4.32 Adding and Configuring Transport Headers Actions in Message Flows Use a transport header action to set header values in messages. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a transport headers action 1. In the Message Flow Design Palette, open the Stage Actions > Communication list, if it is not already open. 2. Drag the transport headers action to the desired location in the message flow. To configure the transport headers action 1. In the Message Flow Editor, click the transport headers action, if it is not already selected. 2. On the Transport Headers Action Properties page, edit the desired properties. For configuration details, see Section 4.11.34, "Transport Headers Action Properties." 2.4.33 Adding and Configuring Validate Actions in Message Flows Use a validate action to validate elements selected by an XPath expression against an XML schema element or a WSDL resource. Before you begin Display the message flow for the desired proxy service. See Section 2.4.1, "Constructing Proxy Service Message Flows." To add a validate action Tasks 2-31
  • 82. Working with Alert Destinations 1. In the Message Flow Design Palette, open the Stage Actions > Message Processing list, if it is not already open. 2. Drag the validate action to the desired location in the message flow. To configure the validate action 1. In the Message Flow Editor, click the validate action, if it is not already selected. 2. On the Validate Action Properties page, edit the desired properties. For configuration details, see Section 4.11.35, "Validate Action Properties." 2.5 Working with Alert Destinations The following topics describe how to create and work with alert destinations in the Oracle Service Bus plug-ins. ■ Section 2.5.1, "Creating and Editing Alert Destinations" ■ Section 2.5.2, "Adding E-mail Recipients to Alert Destinations" ■ Section 2.5.3, "Adding JMS Destinations to Alert Destinations" 2.5.1 Creating and Editing Alert Destinations To create alert destinations: 1. In the Project Explorer in the Oracle Service Bus perspective, right-click a project or folder in which you want to create an alert destination. 2. From the menu, select File > New > Alert Destination to display the New Alert Destination Resource wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Note: You can create an alert destination in an Oracle Service Bus project only. To edit alert destinations: 1. In the Project Explorer, find the project folder containing the alert destination you want to edit. 2. Double-click the name of the alert destination to display the Alert Destination Editor. Edit information, as desired. For configuration details, see Section 4.1.1, "Alert Destination Editor." 2.5.2 Adding E-mail Recipients to Alert Destinations To add e-mail recipients to alert destinations: 1. Create or edit an alert destination, as described in Section 2.5.1, "Creating and Editing Alert Destinations." 2. In the E-mail Recipients field of the Alert Destination Editor, click Add to display the Edit E-mail Recipient Page. 2.5.3 Adding JMS Destinations to Alert Destinations To add JMS destinations to alert destinations: 2-32 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 83. Working with MQ Connections 1. Create or edit an alert destination, as described in Section 2.5.1, "Creating and Editing Alert Destinations." 2. In the JMS Destinations field of the Alert Destination Editor, click Add to display the Edit JMS Destination Page. 2.6 Working with MQ Connections MQ connections are sharable resources that can be reused across multiple MQ proxy and business services. MQ proxy and business services must connect to a MQ queue manager before accessing an MQ queue. MQ Connection resources provide the connection required for connecting to an MQ queue manager. Each MQ Connection resource has a connection pool. Every business or proxy service using a given MQ Connection resource to get a connection to a given queue manager uses the same connection pool that was created for that resource. Thus, multiple business services and proxy services using the same queue manager share a connection pool. To learn more about Oracle Service Bus MQ Connection resources and the native MQ transport, see "MQ Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117. To learn more about WebSphere MQ Fundamentals, see http://www.redbooks.ibm.com/redbooks/SG247128/wwhelp/wwhimpl/jav a/html/wwhelp.htm. 2.6.1 Adding and Editing MQ Connections In Oracle Service Bus, MQ connections are created as custom resources. Therefore, to add an MQ connection, you must create it as a custom resource, as follows: 1. In the Oracle Service Bus perspective, select File > New > Custom Resource to display New Custom Resource Wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. 2. On the Create a New Custom Resource page, in the Resource Type field, select MQ Connection. 3. Enter configuration information, on the Custom MQ Resource Configuration Page. Note: Do not include spaces in the MQ Connection resource name. To edit MQ connections: 1. In the Project Explorer, find the Oracle Service Bus configuration folder containing the MQ connection resource you want to edit. 2. Double-click the name of the MQ connection to display the Custom MQ Resource Configuration Page. For configuration details, see Section 4.5.4, "Custom MQ Resource Configuration Page." Tasks 2-33
  • 84. Working with Oracle Enterprise Repository and Harvester 2.7 Working with Oracle Enterprise Repository and Harvester Oracle Enterprise Repository is an enterprise metadata repository for application resources and services. Using Oracle Enterprise Repository in conjunction with Oracle Service Registry, Oracle’s UDDI solution, is a best-practice approach to locating, using, synchronizing, and governing enterprise-wide services through Oracle Service Bus. Harvester is an Oracle Enterprise Repository tool that lets you harvest enterprise artifacts into Oracle Enterprise Repository from multiple sources, including Oracle Service Bus. Oracle Service Bus provides native connectivity to Oracle Enterprise Repository and Harvester in the development environment, letting you both generate business services from the repository and harvest Oracle Service Bus projects to the repository. Harvester also provides command-line scripting for harvesting Oracle Service Bus projects in the run-time environment. For more information on Oracle Enterprise Repository, see the Oracle Fusion Middleware Quick Start Guide for Oracle Enterprise Repository at http://www.oracle.com/pls/as1111/lookup?id=OERQS. This section includes the following topics: ■ Section 2.7.1, "Generating Business Services from Oracle Enterprise Repository" ■ Section 2.7.2, "Using Harvester" ■ Section 2.7.3, "Performing Queries in Oracle Enterprise Repository from Eclipse" 2.7.1 Generating Business Services from Oracle Enterprise Repository You can generate business services in the Oracle Service Bus development environment from service assets in Oracle Enterprise Repository. In a best-practices deployment scenario, service assets in Oracle Enterprise Repository have associated services stored in Oracle Service Registry. When you generate business services from Oracle Enterprise Repository assets, those services can be synchronized with the associated services stored in the registry through Oracle Service Bus UDDI resources. This section provides instructions on using the development environment to generate business services from service assets in Oracle Enterprise Repository. Note: To generate business services in Oracle Service Bus, Oracle Enterprise Repository assets must be SOAP/XML WSDL-based services using HTTP. 1. Perform a query in Oracle Enterprise Repository to locate the service from which you want to generate a business service. See Section 2.7.3, "Performing Queries in Oracle Enterprise Repository from Eclipse." 2. Right-click the service asset from which you want to generate the new business service, and choose Oracle Service Bus > Generate Business Service. 3. In the Generate Business Service window, select a location in Eclipse for the new business service, and select an endpoint. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. 2-34 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 85. Working with Oracle Enterprise Repository and Harvester Note: Service assets must have an endpoint in order to generate business services in Oracle Service Bus. 4. If the Oracle Enterprise Repository asset is associated with Oracle Service Registry, you can click Next to configure an Oracle Service Bus UDDI Registry resource that at run time connects to Oracle Service Registry (otherwise, skip to the next step). The Oracle Enterprise Repository asset automatically provides the Inquiry URL to Oracle Service Registry. The Configure UDDI Registry window provides the following options: Select a matching UDDI Registry Resource, select a non-matching UDDI Registry resource or create a new one, or not use UDDI. If you select the option to create a new UDDI Registry resource, see Section 4.14, "UDDI Registry Configuration Page" for guidance. 5. Click Finish to generate the business service. A new HTTP business service and its associated WSDL and XSD are added to your development environment. If the Oracle Enterprise Repository asset endpoint is associated with a service in Oracle Service Registry, the business service configuration contains UDDI connection details to the Oracle Service Registry instance. 6. If the Oracle Enterprise Repository asset references an Oracle Web Services Manager policy or a WS-Policy, the generated business services does not automatically include the policy. You must manually add Oracle Web Services Manager policies and WS-Policies. WSDL-based policies, however, are automatically included. In the development environment, you do not establish a subscription to Oracle Service Registry. The subscription and service synchronization to Oracle Service Registry occurs when you deploy the business service to the Oracle Service Bus run-time environment. Service synchronization is determined by the UDDI Registry resource’s Auto-Import setting. For more information on UDDI, see "UDDI" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG392. 2.7.2 Using Harvester Harvester lets you submit Oracle Service Bus projects to Oracle Enterprise Repository from Eclipse, the command line, with an Ant task, or with a WSLT script). Two concepts in harvesting are local harvesting and remote harvesting. Local harvesting, performed from Eclipse and from specific command-line scripts, submits projects from the file system to the repository. Remote harvesting, performed from command-line scripts, submits projects from a run-time environment. When you harvest resources, the dependency relationships are maintained in Oracle Enterprise Repository. Table 2–1 describes differences between harvesting scenarios to help you decide which scenario is appropriate. Tasks 2-35
  • 86. Working with Oracle Enterprise Repository and Harvester Table 2–1 Differences in Harvesting Scenarios Eclipse Harvests Local Harvests Remote Harvests You can harvest a single You can use the You can use the project or an Oracle Service command-line scripts to command-line scripts to Bus configuration containing harvest Oracle Service Bus harvest Oracle Service Bus multiple projects. artifacts from a configuration artifacts from a configuration JAR on the file system. You JAR in the run-time can harvest all the projects in environment. You can harvest the configuration jar or all the projects in the selected projects. configuration jar or selected projects. Proxy service endpoint assets Proxy service endpoint assets Proxy service endpoint assets are not created in the are not created in the are created in the repository. repository. repository. If you perform a remote harvest on the same services you harvested from Eclipse or a local harvest, the newly created service endpoints are added to the same services that were harvested locally. Service WSDLs (effective Service WSDLs (effective Service WSDLs (effective WSDLs) are generated in the WSDLs) are generated in the WSDLs) are generated in the repository with a local repository with a local repository with the server addresses, such as addresses, such as run-time address. localhost:7001. localhost:7001. Before using Oracle Service Bus with Harvester, be sure to install the Harvester Solution Pack, as described in "Configuring and Using Automated Harvesting in Design-time and Runtime Environments" in the Oracle Fusion Middleware Configuration Guide for Oracle Enterprise Repository at http://www.oracle.com/pls/as1111/lookup?id=OERCG. The following sections describe Eclipse, local, and remote harvesting. 2.7.2.1 Using Harvester from Eclipse The Oracle Service Bus plug-ins for Eclipse provide built-in functionality for Harvesting projects to Oracle Enterprise Repository. For information on how the assets are harvested from Eclipse, see Table 2–1. To Harvest an Oracle Service Bus project from Eclipse: 1. In Project Explorer view, right-click the project you want to harvest and select Submit Project to Enterprise Repository. You can also right-click an Oracle Service Bus configuration project to harvest all projects in the configuration. 2. In the Submit window, enter the connection details to the repository, including the repository URI and login credentials. If you have previously configured a connection to Oracle Enterprise Repository, as described in Section 2.7.3, "Performing Queries in Oracle Enterprise Repository from Eclipse," those connection details appear by default. Optionally: ■ Enter a namespace for the project and its artifacts. The namespace prepends the name of service assets in Oracle Enterprise Repository query results. 2-36 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 87. Working with Oracle Enterprise Repository and Harvester ■ Select a Registration Status for the artifacts. For example, if you are harvesting the artifacts for testing, select an appropriate status, such as Unsubmitted. ■ Modify the default connection timeout in milliseconds. ■ Modify the default description of the project(s). 3. Click Submit. An activity bar scrolls while the upload proceeds. When the upload finishes, click Close. 4. To see your harvested resources, perform a query in Oracle Enterprise Repository, described in Section 2.7.3, "Performing Queries in Oracle Enterprise Repository from Eclipse." 2.7.2.2 Using Harvester from the Command Line or a Script Oracle Service Bus provides built-in Harvester resources necessary to harvest Oracle Service Bus projects from the command line, using Ant tasks, or using WSLT scripts. These resources are located at: OSB_ORACLE_HOME/harvester The main configuration file in the directory is HarvesterSettings.xml, which contains placeholder configurations for the connection to Oracle Enterprise Repository, local harvest settings, and remote harvest settings. Command-line Harvester uses the configuration details in that file to perform harvests in conjunction with any override configuration switches you provide. Following are basic descriptions of local and remote harvesting: ■ Local Harvesting – A local harvest involves generating an Oracle Service Bus configuration JAR on the file system and targeting that JAR for harvest. All projects in the JAR are harvested. For information on generating an Oracle Service Bus configuration JAR, see Section 2.1.11, "Exporting Resources" or "Exporting Resources" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1320. ■ Remote Harvesting – A remote harvest involves pointing the script at a running Oracle Service Bus instance and targeting a single project or a full Oracle Service Bus configuration for harvest. To help you decide which harvesting option you want to use, see Table 2–1. Oracle Service Bus provides guidance and resource files for command-line, Ant, and WSLT harvesting. For details, see the OSB_ORACLE_ HOME/harvester/README.TXT file. The README.TXT file provides Oracle Service Bus-specific guidance. Use that information and the Oracle Service Bus Harvester resources in conjunction with the full set of command-line and scripting instructions in "Configuring and Using Automated Harvesting in Design-time and Runtime Environments" in the Oracle Fusion Middleware Configuration Guide for Oracle Enterprise Repository at http://www.oracle.com/pls/as1111/lookup?id=OERCG. Use only the options mentioned in the README.TXT file, as those are the only supported options with Oracle Service Bus. After you harvest projects, you can query Oracle Enterprise Repository in Eclipse to view the harvested resources. See Section 2.7.3, "Performing Queries in Oracle Enterprise Repository from Eclipse." Tasks 2-37
  • 88. Working with UDDI Registries Note: Besides the Oracle Service Bus harvester, which harvests full projects, the command-line framework also supports built-in harvesters for individual resources such as WSDLs, XSDs, XSLTs, and WS-Policies. However, Oracle Service Bus does not support the use of those harvesters for Oracle Service Bus 11g and later resources. For harvesting individual resources, such as those in Oracle SOA Suite, Oracle WebLogic Server, or plain WSDLs, download and use the Harvester Base Data Pack. 2.7.3 Performing Queries in Oracle Enterprise Repository from Eclipse The following steps show you how to connect to and query Oracle Enterprise Repository in Eclipse. Querying lets you locate service assets from which you can generate business services, browse assets in the repository, and view asset details and relationships. 1. In Eclipse, choose Window > Show View > Other, then choose Oracle Enterprise Repository > Enterprise Repository Access. 2. In Enterprise Repository Access view, click the Connect to enterprise repository icon. 3. In the Enterprise Repository Connection window, enter the repository URL and login credentials, and click Establish Connection. 4. On successful connection, click Finish. 5. When connected to Oracle Enterprise Repository, you can query the repository to locate the services and assets you want. For example, if you want to find service assets, select Service in the All Types field of the Query screen, then click the Perform query icon. The Enterprise Repository Access view switches to the Results screen to display query results. You can also open the Enterprise Repository Asset Relationships view in Eclipse to see graphical relationships among selected assets: Window > Show View > Other, then choose Oracle Enterprise Repository > Enterprise Repository Asset Relationships. For more information on working with Oracle Enterprise Repository in Eclipse, see the Oracle Fusion Middleware Integration Guide for Oracle Enterprise Repository at http://www.oracle.com/pls/as1111/lookup?id=OERIN. 2.8 Working with UDDI Registries Universal Description, Discovery and Integration (UDDI) registries are used in an enterprise to share Web Services. UDDI provides a framework in which to classify your business, its services, and the technical details about the services you want to expose. Publishing a service to a registry requires knowledge of the service type and the data structure representing that service in the registry. A registry entry has certain properties associated with it and these property types are defined when the registry is created. You can publish your service to a registry and make it available for other organizations to discover and use. Proxy services developed in Oracle Service Bus can be published to a UDDI registry. Oracle Service Bus can interact with any UDDI version 3.0-compliant registry. 2-38 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 89. Working with Split-Join See also "UDDI" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus. 2.8.1 Adding and Configuring UDDI Registries To add UDDI registries: 1. In the Oracle Service Bus perspective, select File > New > UDDI Registry to display the New UDDI Resource wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Note: You can add a UDDI registry only to an Oracle Service Bus configuration project only. 2. After choosing a location and entering a name, configure the registry on the UDDI Registry Configuration Page. Note: You can add a UDDI registry in an Oracle Service Bus configuration project only. To configure UDDI registries: 1. In the Project Explorer, find the UDDI registry you want to configure. 2. Double-click the name of the registry. 3. Set configure options on the UDDI Registry Configuration Page. For configuration details, see Section 4.14, "UDDI Registry Configuration Page." 2.8.2 Importing Business Services From a UDDI Registry Note: In addition to importing business services directly from a UDDI registry, you can generate business services from Oracle Enterprise Repository. For more information see Section 2.2.3, "Generating a Business Service from Oracle Enterprise Repository." To import business services from a UDDI registry: 1. Create a business service, as described in Section 2.2.1, "Creating Business Services." 2. In the New Business Service wizard Business Service General Configuration Page, select WSDL Web Service. then click Browse. 3. In the Select a WSDL dialog, click Consume. 4. In the Service Consumption dialog, select UDDI. 2.9 Working with Split-Join This section provides instructions for creating and configuring Split-Joins. Following are the primary topics in this section: ■ Section 2.9.1, "Introduction to Split-Join" Tasks 2-39
  • 90. Working with Split-Join ■ Section 2.9.2, "Designing a Split-Join" ■ Section 2.9.3, "Designing a Static Split-Join" ■ Section 2.9.4, "Designing a Dynamic Split-Join" For specific configuration details, see Section 4.22, "Split-Join User Interface Reference." 2.9.1 Introduction to Split-Join The Split-Join is a mediation pattern that can be used by a transport typed business service in an Oracle Service Bus message flow. Split-Join allows you to send message requests to multiple services concurrently, thus enhancing performance in comparison to sending them sequentially. Split-Join achieves this task by splitting an input message into individual messages, routing them concurrently to their destinations, and then aggregating the responses into one overall message. You design a Split-Join in the Eclipse Split-Join editor, then export it to the Oracle Service Bus Administration Console for testing and production. Note: In the Oracle Service Bus Administration Console, a Split-Join is associated with a business service using the Flow transport protocol. Therefore, the Split-Join has a .flow file name extension in Eclipse even though it is always referred to simply as a "Split-Join" in this document. There are two types of Split-Join pattern: static Split-Join and dynamic Split-Join, as described in Section 2.9.2, "Designing a Split-Join." For more information on invoking a business service from an Oracle Service Bus message flow, see "Proxy Services: Message Flow" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1102. 2.9.1.1 Using Split-Join with Content in SOAP Headers You can use Split-Join to enhance the performance of services that put message content in the SOAP header. Proxy services can pass SOAP headers into Split-Joins, and Split-Joins can pass SOAP headers to proxy and business services as an invocation or response. To enable this capability, you must declare the header parts along with the body parts in a single request/response message in the Split-Join WSDL and in the WSDL of the proxy or business services invoked by the Split-Join. With the message parts declared in the WSDLs, SOAP header content is available to Split-Joins in the request/response message variables. Following is an example of the message and binding definitions in the WSDL. Message <wsdl:message name="retrieveCustomerOverviewByIdRequestMessage"> <wsdl:part name="retrieveCustomerOverviewByIdRequest" element="co:retrieveCustomerOverviewByIdRequest"/> <wsdl:part name="serviceContext" element="sc:serviceContext"/> </wsdl:message> Binding 2-40 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 91. Working with Split-Join <wsdl:input> <soap:body use="literal" parts="retrieveCustomerOverviewByIdRequest"/> <soap:header message="tns:retrieveCustomerOverviewByIdRequestMessage" part="serviceContext" use="literal"/> </wsdl:input> 2.9.1.2 Transaction Support Split-Joins provide support for propagating transactions. Many Split-Join operations provide an option for setting a specific quality of service (QoS) values, which control transaction support. The QoS value of Exactly Once on a Split-Join operation ensures the operation executes in the context of a transaction if one exists. Setting QoS on individual operations gives you the flexibility to execute multiple operations in the context of a transaction and execute other operations outside of a transaction in a single Split-Join. Operations set with a QoS of Exactly Once are executed in the transaction. Operations set with a QoS of Best Effort do not execute in the context of a transaction. Split-Joins do not handle transaction rollback in the case of exceptions. It is the responsibility service component that called the Split-Join to handle transaction exceptions and rollback. The following Split-Join operations support transaction propagation: ■ Invoke Service ■ Assign ■ Delete ■ Insert ■ Java Callout ■ Replace 2.9.1.3 Security with Split-Joins Split-Joins do not enforce security policies, which means you cannot create a Split-Join with a WSDL that includes policies, and from a Split-Join you cannot call a WSDL-based business service that contains WSDL policies. To ensure security enforcement when using Split-Joins, use proxy services to handle security enforcement in the following ways: ■ Use the inbound proxy, which invokes the Split-Join, to enforce policies. ■ If the Split-Join needs to invoke a WSDL business service that contains policies, have the Split-Join call a local proxy (configured without the security policies), which in turn invokes the business service with the required policies. 2.9.2 Designing a Split-Join There are two Split-Join patterns, the Static Split-Join and the Dynamic Split Join. The Static Split-Join can be used to create a fixed number of message requests (as opposed to an unknown number). For instance, a customer places an order for a cable package that includes three separate services: internet service, TV service, and telephone service. In the Static use case, you could execute all three requests in separate parallel branches to improve performance time over the standard sequential execution. Tasks 2-41
  • 92. Working with Split-Join The Dynamic Split-Join can be used to create a variable number of message requests. For instance, a retailer places a batch order containing a variable number of individual purchase orders. In the Dynamic use case, you could parse the batch order and create a separate message request for each purchase. Like the Static use case, these messages can then be executed in parallel for improved performance. 2.9.2.1 Initial Setup Split-Joins potentially include the following tasks as part of their initial setup: 2.9.2.1.1 Creating/Importing a WSDL Containing the Base Operation Every Split-Join is based upon a WSDL operation. When you first create a Split-Join, you will be asked to browse to the appropriate WSDL file and to select this operation as part of the creation process. You can create this WSDL file in Eclipse. 2.9.2.1.2 Creating/Importing a Business Service to Use the Split-Join Every Split-Join will be used by a transport typed business service, which, in turn, is invoked by a proxy service. You cannot export or test your Split-Join until you have created this business service. If it already exists, you can import it into Eclipse, or, if it does not exist, you can create it in Eclipse or the Oracle Service Bus Administration Console. If you want to get started on your Split-Join before you create the business service, you can generate the business service automatically after you create the Split-Join. 2.9.3 Designing a Static Split-Join Suppose you want to design a new Split-Join called Service Availability that handles orders for a telco’s cable service package including TV, phone, and internet service. The idea is for the Split-Join to receive an incoming package order and to reply with an order acknowledgement for each type of service. In this case, Service Availability is designed as a Static Split-Join because there are three message requests per order, one for each type of service. In this particular example the customer requests only TV and DSL service. Creating the Service Availability Split-Join may include the following tasks: Section 2.9.3.1, "1. Creating a New Split-Join" Section 2.9.3.2, "2. Adding an Assign" Section 2.9.3.3, "3. Adding a Parallel Node" Section 2.9.3.4, "4. Adding an Assign for Each Branch" Section 2.9.3.5, "5. Adding an Invoke Service" Section 2.9.3.6, "6. Adding an Assign for Each Branch" Section 2.9.3.7, "7. Exporting and Testing the Split-Join" 2.9.3.1 1. Creating a New Split-Join Create a new Split Join based on the WSDL operation you want to use for placing the order. In this case the WSDL operation we want is called "telecom." See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. After you select the WSDL operation, a skeleton of the newly created Split-Join appears in the Split-Join editor, as shown in the following figure. It consists of a Start Node, a Receive, a Reply. The labels are then edited in the general properties tab to better reflect the specific function of each node in this particular Split-Join. 2-42 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 93. Working with Split-Join Figure 2–1 New Split-Join The Start Node contains both a Request Variable and a Response Variable that have been determined by the WSDL operation initially selected. The Receive receives the incoming request message (in this case for the three or fewer different kinds of cable service), and the Reply generates a response message and sends it back to the client. Note: The Receive node requires no further configuration. Similarly the Reply requires no further configuration, unless to generate an error fault, which is not the case in this scenario (see Section 2.9.15, "Configuring a Reply"for more information on generating faults). 2.9.3.2 2. Adding an Assign The first Assign, Prepare Output Message, contains an Assign operation that prepares the Response Variable in a form such that the later nodes can work on the data within it (that is, Copy/Insert/Assign/Replace/Delete/Java Callout/Log the data). This output message is relayed to the final Reply node in the Split-Join and, in turn, returned to the original client. 2.9.3.3 3. Adding a Parallel Node The Parallel Node contains two main branches, one to check cable TV availability and one to check DSL availability. Each branch is composed of a number of actions, the sequence and general configuration being the same for both branches. Tasks 2-43
  • 94. Working with Split-Join Figure 2–2 Parallel Node 2.9.3.4 4. Adding an Assign for Each Branch The first Assign in each Parallel Branch, Prepare Input Address, copies the incoming customer address data into a Variable that is referenced to check the availability of the service at that location. The Assigns are the same for each branch and would be for additional branches as well. 2.9.3.5 5. Adding an Invoke Service An External Service is then invoked to check whether the requested service type is available at the customer’s location. Each branch contains one Invoke Service, Check Cable TV Availability and Check DSL Availability. Each invocation calls an External Service, which compares the customer’s address (stored in the Variable initialized in the previous step) to the availability of the service at that location. The result is then stored in an output Variable that is passed on to the final Assign in the Branch below. 2.9.3.6 6. Adding an Assign for Each Branch The final two Assigns, Update Cable TV Status in Output Message and Update DSL Status in Output Message, take the results of the external service invocations and put them into the output message using a Replace operation. The aggregated response are then sent to the original client in the final Reply node, which requires no further configuration. 2.9.3.7 7. Exporting and Testing the Split-Join After you design the Split-Join, you can export it to the Oracle Service Bus Administration Console for testing and production. 2-44 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 95. Working with Split-Join Figure 2–3 Completed Split-Join Ready for Testing Related Topics ■ Section 2.9.5, "Creating a New Split-Join" ■ Section 2.9.6, "Configuring the Start Node" ■ Section 2.9.8, "Creating an Assign" ■ Section 2.9.9, "Invoking a Service" ■ Section 2.9.10, "Creating a Parallel" ■ Section 2.9.17, "Exporting and Testing a Split-Join" 2.9.4 Designing a Dynamic Split-Join Suppose that you want to design a Split-Join that handles a batch order from a retailer containing a variable number of individual purchase orders (as opposed to a fixed number of orders). The idea is for the Split-Join to receive the batch order and to reply with an order acknowledgement for each order within. This would be a Dynamic Split-Join because the number of individual purchase order requests is variable and unknown at design time. Creating this Split-Join may include the following tasks: Section 2.9.4.1, "1. Creating a New Split-Join" Section 2.9.4.2, "2. Adding an Assign" Tasks 2-45
  • 96. Working with Split-Join Section 2.9.4.3, "3. Adding a For Each" Section 2.9.4.4, "4. Adding an Assign" Section 2.9.4.5, "5. Adding an Invoke Service" Section 2.9.4.6, "6. Adding an Assign" Section 2.9.4.7, "7. Adding an Error Handler" Section 2.9.4.8, "8. Exporting and Testing the Split-Join" 2.9.4.1 1. Creating a New Split-Join Create a new Split Join based off of the WSDL operation you want to use for placing the order. In this case the WSDL operation we want is called "batchOrders." See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. After the operation is selected, a skeleton of the newly created Split-Join appears in the Split-Join editor consisting of a Start Node, a Receive, a Reply. The labels are then edited in the general properties tab to better reflect the specific function of each node in this particular Split-Join. Figure 2–4 New Split-Join With Edited Labels The Start Node, Order Placement, contains both a request variable, inputVar, and an response variable, outputVar. The Receive, Receive Batch Order Request, will initialize the contents of the Request Variable (in this case purchase orders), and the Reply, Reply Order Placement, will send a response, based on the order acknowledgements aggregated into the Response Variable, back to the client. In this example Order Placement also contains a callout to an External Service, "Order" that will be invoked to approve individual orders. Note: The Receive node requires no further configuration. Similarly, the Reply requires no further configuration, unless you would like to generate an error fault—which is not the case in this scenario (see Section 2.9.15, "Configuring a Reply"for more information on generating faults). 2-46 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 97. Working with Split-Join 2.9.4.2 2. Adding an Assign The first Assign, Prepare Output Message, contains an Assign operation that prepares the response variable (here labeled an "Output Message" for readability) in a form such that the later nodes can work on the data captured within it (that is, Copy/Insert/Assign/Replace/Delete into the Variable). In this case, that data would consist of order acknowledgments and/or errors.This Output Message is relayed to the final Reply node in the Split-Join and, in turn, returned to the original client. 2.9.4.3 3. Adding a For Each The For Each, Iterate Through Orders, contains logic that will parse through each order in the batch, send it to an external proxy for approval, and capture an order acknowledgment in response. If there is a problem with an order, an error is sent from the invoked proxy and captured in the Error Handler. The following figure depicts the entire scope of the For Each logic. Figure 2–5 For Each Node Labeled "Iterate Through Orders" 2.9.4.4 4. Adding an Assign The Assign, Prepare Purchase Order, copies the incoming purchase order requests into a variable that is referenced to check approval of the order in the next step. 2.9.4.5 5. Adding an Invoke Service An external service, Check Order Availability, is then invoked to approve each individual purchase order. If the order is accepted, the service responds with an order acknowledgment. If the order is not accepted, the service responds with an error.The Tasks 2-47
  • 98. Working with Split-Join result is then stored in an output variable that is passed on to the final Assign in the next step. 2.9.4.6 6. Adding an Assign The final Assign, Update Order Status in Output Message, takes the results of the external service invocation and copies them into the output message using an Insert operation. The aggregated response is then sent to the original client in the final Reply node, which requires no further configuration. 2.9.4.7 7. Adding an Error Handler The Error Handler captures any Errors returned by the invoked service. It takes these errors and inserts them into the output message using an Assign operation. Figure 2–6 Error Handler 2.9.4.8 8. Exporting and Testing the Split-Join After you design the Split-Join, you can export it to the Oracle Service Bus Administration Console for testing and production. 2-48 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 99. Working with Split-Join Figure 2–7 Completed Split-Join Ready for Testing Related Topics ■ Section 2.9.5, "Creating a New Split-Join" ■ Section 2.9.6, "Configuring the Start Node" ■ Section 2.9.13, "Creating an Error Handler" ■ Section 2.9.10, "Creating a Parallel" ■ Section 2.9.15, "Configuring a Reply" ■ Section 2.9.17, "Exporting and Testing a Split-Join" 2.9.5 Creating a New Split-Join In order to create a new Split/Join, you must have access to a WSDL containing the operation upon which to base the Split-Join. The Split Join must be created in an existing Oracle Service Bus project within an existing Oracle Service Bus configuration project. To create a new Split-Join: 1. In the Oracle Service Bus perspective, select File > New > Split-Join. This opens the New Split-Join Wizard. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. Tasks 2-49
  • 100. Working with Split-Join 2. In the New Split-Join Wizard, type or select an Oracle Service Bus project location and enter a file name for the new Split-Join. When you have finished, click Next. 3. In the next screen, you must select a binding and then an operation on which to implement the Split-Join. There are two ways to make your selection: a. Choose your operation from one of the WSDLs displayed in the Select Operation tree. All of the WSDLs in your current Oracle Service Bus configuration project are available. b. Import your WSDL into the Oracle Service Bus configuration project using the Consume button. Consumption imports a new WSDL into your configuration from an outside source, as described in the following step. 4. If you choose to consume the base WSDL, go through the following steps: a. Click Consume. b. Browse for the location, or "Artifact Folder," wherein you wish to generate the consumed WSDL. The default artifact folder is your current Oracle Service Bus project. c. If you want to overwrite existing local files, select the checkbox. d. Choose the service resource in which the WSDL to be consumed resides: Enterprise Repository, File System, UDDI, URI, or Workspace. e. Select The WSDL that you want to consume from that Service Resource. After you have made your selection the workspace will rebuild momentarily and the Service Consumption Status dialog will appear depicting the status of your consume. If it was successful, click OK to close the dialog. f. The consumed WSDL is now in your Oracle Service Bus configuration project, and you can select an operation from it upon which to base your Split-Join. 5. Click Finish. A basic Split-Join is created and visually represented as a diagram in the Design View. By default, it consists of a Start Node, a Receive, and a Reply. The Start Node contains the Request and Response Variables introspected from the WSDL operation. The Receive is used to receive incoming request messages. The Reply is used to send response messages. Related Topics ■ Section 2.9.6, "Configuring the Start Node" ■ Section 2.9.7, "Configuring a Receive" ■ Section 2.9.10, "Creating a Parallel" ■ Section 4.22.31, "Split-Join Wizard - New Split-Join" 2.9.6 Configuring the Start Node The Start Node is generated automatically whenever you create a new Split-Join. It is the starting point from which all the other nodes proceed. Configuring a Start Node can include the following tasks: ■ Add General Information ■ Define Global Variables ■ View External Services Related Topics 2-50 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 101. Working with Split-Join ■ Section 2.9.9, "Invoking a Service" ■ Section 4.22.2, "Global / Start Node Properties" 2.9.6.1 Adding General Information General information is useful for making a node more legible. It includes the ability to add a unique identifier, or Label, to the node and to supplement it with notes, or Documentation. General information is optional. 1. To add a Label to a node, select the General tab in the Properties view and enter a unique, identifying string in the Label field. The Label that you enter appears underneath the node in the Split-Join editor. 2. In the Documentation field enter any notes that you think are important. 2.9.6.2 Defining Global Variables Variables in the Start Node store data that can be referenced globally, that is by any node in the Split-Join. By default, every Start Node is assigned both a request and a response variable when the Split-Join is initially created. From the Start Node, you can either create a new global variable or edit an existing global variable. For information on the relationship between global and local variables, see Section 2.9.16.1, "Scope and Variables." To create a new global variable 1. Right-click the Start Node and select Create Variable to open the Create Variable Dialog. 2. Enter a name for the variable. 3. Select the Variable Type (Builtin, Schema, or Message). 4. Choose a Variable. Note: You may need to drill down into the hierarchy to select a Schema or Message Type variable. 5. Click OK. If it is not already open, expand the content area to the left by clicking the arrow to the left of the Start Node icon. The newly created variable appears in the Variables field along with any other global variables. To view the details of any variable, simply select it and its structure will appear in the Properties view. To edit an existing global Variable 1. Open the Edit Variable Dialog in one of the following ways: ■ Right-click the selected variable and select Edit Variable from the context menu. ■ Select a variable and click Edit in the variable Properties view. 2. Enter a name for the Variable. 3. Select the Variable Type: Builtin, Schema, or Message. 4. Choose a variable. Tasks 2-51
  • 102. Working with Split-Join Note: You may need to drill down into the hierarchy to select a Schema or Message Type variable. 5. Click OK. If it is not already open, expand the content area to the left of the Start Node icon. The newly created variable appears in the Variables field along with any other global variables. To view the details of any variable, simply select it and its structure will appear in the Properties view. 2.9.6.3 Viewing External Services The External Services listed in the Start Node are those invoked outside of the context of the Split-Join. They are specified in an Invoke Service but listed here for convenience. To view External Services, expand the content area to the left of the Start Node by clicking the arrow to the left of the Start Node icon. When an External Service is selected, a dashed blue arrow appears pointing to the Invoke Service associated with the service, and the service’s location appears in the Properties view. 2.9.7 Configuring a Receive A Receive is generated automatically whenever you create a new Split-Join. The purpose of the Receive is to place incoming request data in a variable and make the contents available for later nodes to use. Configuring a Receive can include the following tasks: ■ View the Operation ■ Define the Receive Variable ■ Add General Information Related Topics Section 4.22.24, "Receive Properties" 2.9.7.1 Viewing the Operation The Operation is based upon the initial WSDL selection for the overall Split-Join. It is displayed in the Properties View for reference. 2.9.7.2 Defining the Receive Variable You must define the Incoming Message Variable the Receive will initialize. 1. Select the Receive operation. 2. Create a new Message Variable (following steps). Note: If there are no available Message Variables associated with the previously chosen Operation, you must create a new Message Variable. To create a new Message Variable, select Create Message Variable from the Message Variable menu, enter a variable name in the Create Variable dialog, and click OK. 2-52 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 103. Working with Split-Join Note that Message Type Namespace and Message Type are displayed automatically on the Properties page once the variable is defined. 2.9.7.3 Adding General Information General information is useful for making a node more legible. It includes the ability to add a unique identifier, or Label, to the node and to supplement it with notes, or Documentation. General information is optional. 1. To add a Label to a node, select the General tab in the Properties view and enter a unique, identifying string in the Label field. The Label that you enter appears underneath the node in the Split-Join editor. 2. In the Documentation field enter any notes that you think are important. 2.9.8 Creating an Assign The Assign is used for data-manipulation including initializing and updating a variable. It is composed of a set of one or more operations that can be added from the Assign toolbar. Configuring an Assign can include the following tasks: ■ Add and Configure Assign Operations ■ Add General Information Related Topics Section 4.22.17, "Assign Properties" 2.9.8.1 Adding and Configuring Assign Operations Assign operations include Assign, Copy, Delete, Insert, Java Callout, Log, and Replace. Every Assign is composed of one or more of these operations, which you can add to the Assign using the Design Palette view. Note: The Assign operations in the Split-Join editor are essentially the same as the corresponding actions in the Eclipse Message Flow editor. However, one important difference is that when you are using the XQueryXSLT or XPath Editors to edit expressions in the Split-Join context, only variables and namespaces internal to the Split-Join are available. A brief explanation of each operation follows: ■ Assign the result of an XQuery Expression to a Variable. For more information on configuring the Assign, see Section 4.22.17, "Assign Properties". ■ Copy the information specified by an XPath expression from a source document to a destination document. (This operation is unique to Split-Join and has no corresponding Action in the Eclipse Message Flow editor, as described in Section 2.9.8.1.2, "Adding a Copy Operation"). ■ Delete a set of nodes specified by an XPath expression. Tasks 2-53
  • 104. Working with Split-Join Note: Unlike the Oracle Service Bus delete, only an XPath expression may be deleted in a Split-Join, not the entire variable. For more information on configuring the Delete operation, see Section 4.22.19, "Delete Properties." ■ Insert the result of an XQuery Expression at an identified place relative to nodes selected by an XPath expression. For more information on configuring the Insert operation, see Section 4.22.20, "Insert Properties." ■ Java Callout lets you invoke a Java method for processing such as validation, transformation, and logging. For more information on configuring the Java Callout operation, see Section 4.22.21, "Java Callout Properties." ■ Log lets you log Split-Join data at a specified severity to the server log file. For more information on configuring the Log operation, see Section 4.22.22, "Log Properties." ■ Replace a node or the contents of a node specified by an XPath expression. For more information on configuring the Replace operation, see Section 4.22.23, "Replace Properties." 2.9.8.1.1 Adding an Operation to an Assign Adding an operation to the Assign involves the following steps: 1. Drag the operation from the Design Palette into the Assign node in the Split-Join editor. 2. Configure the operation in the Properties view. 3. Save the Split-Join. You can edit an operation by selecting it and modifying the properties in the Properties view. 2.9.8.1.2 Adding a Copy Operation The Copy operation lets you copy the information specified by an XPath expression from a source document to a destination document. It is an operation unique to the Split-Join editor. Adding a Copy operation to the Assign involves the following steps: 1. Add a Copy to the Assign from the Design Palette. 2. In the Properties view, select a Copy From type and a Copy To type. 3. If the type is an expression, enter the expression manually or click Browse to launch the XQuery Expression Builder. 4. In the type is a variable, drill down to and select the desired element. The resulting query will be displayed in the Query field below. 5. If the Copy From type is a Literal, enter the literal in the text field. 6. If the Copy From type is an XML fragment, enter [or paste] the fragment in the text field. 2-54 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 105. Working with Split-Join 2.9.8.2 Adding General Information General information is useful for making a node more legible. It includes the ability to add a unique identifier, or Label, to the node and to supplement it with notes, or Documentation. General information is optional. 1. To add a Label to a node, select the General tab in the Properties view and enter a unique, identifying string in the Label field. The Label that you enter appears underneath the node in the Split-Join editor. 2. In the Documentation field enter any notes that you think are important. 2.9.9 Invoking a Service The Invoke Service is used to invoke external, WSDL-based business services, WSDL-based proxy services, and Split-Joins. Configuring an Invoke Service can include the following tasks: ■ Select an Operation ■ Define Input and Output Variables ■ Add General Information Related Topics ■ Section 2.9.6, "Configuring the Start Node" ■ Section 2.9.16, "About Scope" ■ Section 4.22.5, "Invoke Service Properties" 2.9.9.1 Selecting an Operation An operation must be selected upon which to base the Invoke Service. You must select this operation before you can configure Input and Output variables. To select an operation: 1. Add an Invoke Service operation to the Split-Join from the Design Palette. 2. From the Operations tab in the Properties view, click Browse to launch the Service Browser. 3. In the Service Browser, drill down to the desired service and select a Binding, then an operation. 4. Click OK. The selected operation and its Service Location appear in the Properties view. Note: Clicking a Service Location in the Properties view will open the external service file. 2.9.9.2 Defining Input and Output Variables An Invoke Service requires both an Input Variable and an Output Variable, unless it is a one-way invocation. The procedure to configure these variables is essentially the same. Either type of variable can be global (that is, available within the entire Split-Join) or local (that is, available within a particular context Scope.) To define either an Input or Output variable: In the Input Variable and Output Variable tabs in the Properties view, define the Message Variable for each. This can be done in two ways: Tasks 2-55
  • 106. Working with Split-Join ■ Select a pre-existing variable from the Message Variable menu. ■ Create a new Message Variable (following steps). Note: If there are no available Message Variables associated with the previously chosen operation, you must create a new Message Variable. To create a new Message Variable 1. Select Create Message Variable from the Message Variable menu. The Create Message Variable Dialog appears. 2. Provide a name for the variable. 3. Make the variable either global or local. Global variables are accessible within the entire Split-Join, whereas local variables are restricted to the current Scope. Message Type Namespace and Message Type are displayed automatically on the Properties view once a variable is defined. 2.9.9.3 Adding General Information General information is useful for making a node more legible. It includes the ability to add a unique identifier, or Label, to the node and to supplement it with notes, or Documentation. General information is optional. 1. To add a Label to a node, select the General tab in the Properties view and enter a unique, identifying string in the Label field. The Label that you enter appears underneath the node in the Split-Join editor. 2. In the Documentation field enter any notes that you think are important. 2.9.10 Creating a Parallel The Parallel creates a fixed number of configured parallel branches. Each branch has its own Scope which in turn can contain any number of nodes. Configuring a Parallel can include the following tasks: ■ Add Nodes ■ Add General Information Related Topics ■ Section 2.9.16, "About Scope" ■ Section 4.22.10, "Parallel Properties" 2.9.10.1 Adding Nodes The Parallel is essentially a placeholder for a fixed number of processing branches, each with its own scope. Two branches are automatically generated by default. An individual scope may contain unique processing logic according to your construction; simply drag the appropriate nodes into the Scope. You may add additional branches with the Add Scope button. 2-56 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 107. Working with Split-Join Figure 2–8 Add Scope Button 2.9.10.2 Adding General Information General information is useful for making a node more legible. It includes the ability to add a unique identifier, or Label, to the node and to supplement it with notes, or Documentation. General information is optional. 1. To add a Label to a node, select the General tab in the Properties view and enter a unique, identifying string in the Label field. The Label that you enter appears underneath the node in the Split-Join editor. 2. In the Documentation field enter any notes that you think are important. 2.9.11 Creating a For Each The For Each is used to create conditional logic for iterating through a variable number of requests. It is primarily used to create dynamic Split-Joins. Configuring a For Each can include the following tasks: ■ Define the For Each Logic ■ Add General Information Related Topics ■ Section 2.9.9, "Invoking a Service" ■ Section 4.22.7, "For Each Properties" 2.9.11.1 Defining the For Each Logic To define the For Each logic: 1. Add a For Each node to the Split-Join, and select it. 2. In the Properties view, select the Counter Variables tab, and set the Parallel property to yes or no. If you choose yes, individual branches will be processed in parallel. If you select no, they are processed sequentially. 3. Define the Counter Variable Name by clicking the Counter Name link. 4. Enter the Start Counter Value. If necessary, use the browse button to create a new value in the XPath Expression Builder. Note: The lowest possible starting counter value is "1." 5. Enter the Final Counter Value. If necessary, use the browse button to create a new value in the XPath Expression Builder. Tasks 2-57
  • 108. Working with Split-Join Note: The lowest possible starting counter value is "1." 2.9.11.2 Adding General Information General information is useful for making a node more legible. It includes the ability to add a unique identifier, or Label, to the node and to supplement it with notes, or Documentation. General information is optional. 1. To add a Label to a node, select the General tab in the Properties view and enter a unique, identifying string in the Label field. The Label that you enter appears underneath the node in the Split-Join editor. 2. In the Documentation field enter any notes that you think are important. 2.9.12 Creating an If Activity The If Activity is used to provide conditional logic within a Split-Join. It is composed of a number of nodes that determine the behavior for the overall If activity. Each node must be individually configured. When you create an If activity, an If and an Else are automatically generated within it. You can add an unlimited number of Else If nodes with the Add Else If button. Figure 2–9 Add Else If Button Configuring an If Activity can include the following tasks: ■ Configure the If ■ Add and Configure Else If ■ Configure the Else Related Topics ■ Section 2.9.16, "About Scope" ■ Section 2.9.4, "Designing a Dynamic Split-Join" ■ Section 4.22.8, "If Properties" ■ Section 4.22.12, "Repeat Until Properties" ■ Section 4.22.15, "While Properties" 2.9.12.1 Configuring the If The If provides a unit of conditional logic within the overall If activity. It is automatically generated when you create an If activity. Configuring an If can include the following tasks: ■ Write the logic of the condition ■ Add resulting nodes 2-58 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 109. Working with Split-Join ■ Add General Information Related Topics ■ Section 4.22.9, "If and Else If Properties" ■ Section 4.22.12, "Repeat Until Properties" ■ Section 4.22.15, "While Properties" 2.9.12.1.1 Writing the logic of the condition The If Activity executes conditional logic defined by an XPath expression. Enter this condition in the Condition text field of the Condition tab, or click the browse button to launch and write the expression in the expression builder. 2.9.12.1.2 Adding resulting nodes If the condition in the If logic is met, a subsequent node or string of nodes will result. Add and configure any resulting nodes by dragging them in sequential order to a drop point beneath the If icon. 2.9.12.1.3 Adding General Information General information is useful for making a node more legible. It includes the ability to add a unique identifier, or Label, to the node and to supplement it with notes, or Documentation. General information is optional. 1. To add a Label to a node, select the General tab in the Properties view and enter a unique, identifying string in the Label field. The Label that you enter appears underneath the node in the Split-Join editor. 2. In the Documentation field enter any notes that you think are important. 2.9.12.2 Adding and Configuring Else If The Else If is used to provide additional logic within the context of an overall If. You can add an Else If every time you press the "Add Else If" button. Figure 2–10 Add Else If Button Configuring an Else If can include the following tasks: ■ Write the Logic of the Condition ■ Add Resulting Nodes ■ Add General Information Related Topics ■ Section 4.22.9, "If and Else If Properties" ■ Section 4.22.12, "Repeat Until Properties" ■ Section 4.22.15, "While Properties" 2.9.12.2.1 Writing the Logic of the Condition The Else If uses conditional logic defined by an XPath expression. Enter this condition in the Condition text field of the Condition Tasks 2-59
  • 110. Working with Split-Join tab or click the browse button to launch and write the expression in the expression builder. 2.9.12.2.2 Adding Resulting Nodes If the condition in the Else If logic is met, a subsequent node or string of nodes will result. Add and configure any resulting nodes by dragging them in sequential order to a drop point beneath the Else If icon. 2.9.12.2.3 Adding General Information General information is useful for making a node more legible. It includes the ability to add a unique identifier, or Label, to the node and to supplement it with notes, or Documentation. General information is optional. 1. To add a Label to a node, select the General tab in the Properties view and enter a unique, identifying string in the Label field. The Label that you enter appears underneath the node in the Split-Join editor. 2. In the Documentation field enter any notes that you think are important. 2.9.12.3 Configuring the Else The Else provides a final case of logic within the context of an overall If. It is automatically generated when an If is created. Configuring an Else can include the following tasks: ■ Add Resulting Nodes ■ Add General Information Related Topics ■ Section 4.22.9, "If and Else If Properties" ■ Section 4.22.12, "Repeat Until Properties" ■ Section 4.22.15, "While Properties" 2.9.12.3.1 Adding Resulting Nodes As the final case in the If’s logic, the Else requires no conditions to be met in order to execute. It will automatically execute resulting activities when invoked. Add and configure any resulting nodes by dragging them in sequential order to a drop point beneath the Else icon. 2.9.12.4 Adding General Information General information is useful for making a node more legible. It includes the ability to add a unique identifier, or Label, to the node and to supplement it with notes, or Documentation. General information is optional. 1. To add a Label to a node, select the General tab in the Properties view and enter a unique, identifying string in the Label field. The Label that you enter appears underneath the node in the Split-Join editor. 2. In the Documentation field enter any notes that you think are important. 2.9.13 Creating an Error Handler The Error Handler receives and handles errors. If it is attached to a Start Node, it is a "global" Error Handler and serves as a catch-all for the output of all local Raise Error nodes. If it is attached to a Scope, it only handles errors raised locally. To create an Error Handler: 1. Select the start node or Scope node to which the Error Handler will be added. 2. Right-click the selected icon and select Add Catch or Add CatchAll. 2-60 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 111. Working with Split-Join 3. If you are invoking a SOAP Fault, in the Catch All tab of the Properties View, select SOAP Fault Variable Name to define a SOAP Fault variable associated with the Error Handler. The basic Error Handler is now configured, but you may need to add additional Assign, If, and/or Reply nodes to it depending on whether you wish to execute logic upon the received faults before sending a response. Related Topics ■ Section 2.9.8, "Creating an Assign" ■ Section 2.9.12, "Creating an If Activity" ■ Section 2.9.10, "Creating a Parallel" ■ Section 2.9.16, "About Scope" ■ Section 4.22.4, "Error Handler Properties" 2.9.14 Creating a Raise Error The Raise Error generates an error that causes the Split-Join to stop normal processing. If the error is not handled using an Error Handler, the Split-Join will terminate and a Fault will be sent to the Oracle Service Bus message flow. Configuring a Raise Error can optionally include documenting the nature of the error in the General Information tab. You can also add a Re-Raise Error operation to an Error Handler. Configuration involves modifying Label and adding Documentation. Related Topics Section 4.22.11, "Raise Error Properties" General information is useful for making a node more legible. It includes the ability to add a unique identifier, or Label, to the node and to supplement it with developer notes, or Documentation. General information is optional. 1. To add a Label to an node, open the Properties view and enter a unique, identifying string in the Label field. The Label that you enter appears underneath the node Icon in the Canvas area. 2. In the Documentation field enter any notes that you think are important. 2.9.15 Configuring a Reply A global Reply is generated automatically whenever you create a new Split-Join. The purpose of the global Reply is to send a response back to the invoking Oracle Service Bus message flow. However, you may also create a Reply elsewhere in the Split-Join, including within Error Handlers. Configuring the Reply can include the following tasks: ■ View the Operation ■ Define the Reply Variable ■ Add General Information Related Topics Section 4.22.6, "Reply Properties" Tasks 2-61
  • 112. Working with Split-Join 2.9.15.1 Viewing the Operation The operation is based upon the initial WSDL selection for the overall Split-Join. It is displayed in the Properties view for reference. 2.9.15.2 Defining the Reply Variable The Reply can either send a Response or a Fault back to the client depending on how you configure the variable. The Fault options available vary depending upon whether the Reply is global or local. ■ A global Reply (that is, a Reply in a Split-Join outside of an Error Handler) can never have a SOAP Fault but can have a WSDL Fault. This is why the SOAP Fault option is always disabled. ■ A local Reply (that is, a Reply attached to an Error Handler) can have either a WSDL Fault or a SOAP Fault. WSDL Faults will be available only if they were defined in the WSDL upon which the Split-Join is based. The SOAP Fault option will always be available provided one has been previously defined in the Error Handler. Note: Switching back and forth between the Response and Fault buttons will clear either configuration. For instance, if you have previously selected "Propagate SOAP Fault" for Fault configuration and you then switch to the "Response" configuration, "Propagate SOAP Fault" will be deselected. Given the available options as outlined above, select either a Response or a Fault for your Reply Variable. If you select Response, you must define the Message Variable the Response will be assigned to. This can be done in two ways: 1. Select the Reply, and in the Properties view, select the Variable tab. 2. Select a pre-existing variable from the Message Variable menu. 3. Create a new Message Variable (following steps). Note: If there are no available Message Variables associated with the previously chosen operation, you must create a new Message Variable. To create a new Message Variable, select Create Message Variable from the Message Variable menu. The Create Message Variable Dialog appears: 1. Provide a name for the variable. 2. Click OK. Note that Message Type Namespace and Message Type are displayed automatically in the Properties view once the variable is defined. If you select Fault, you must specify either a WSDL Fault or propagate a SOAP Fault. Note: In some circumstances, no Faults or only a SOAP Fault will be available. See previous notes. 2-62 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 113. Working with Split-Join If you select a WSDL Fault, you must specify the Fault by name and define the Message Variable that it will be assigned to. 1. Select WSDL Fault Name and choose a name from those available. Note: There may only be one name available in which case no choice is necessary. 2. Define a Message Variable. This can be done in two ways: a. Select a pre-existing variable from the Message Variable menu. b. Create a new Message Variable (following steps). Note: If there are no available Message Variables associated with the previously chosen operation, you must create a new Message Variable. To create a new Message Variable, select Create Message Variable from the Message Variable menu. The Create Message Variable Dialog opens: 1. Provide a name for the variable. 2. Click OK. Message Type Namespace and Message Type are displayed automatically on the properties page once a variable is defined. If you select Propagate SOAP Fault, the SOAP Fault specified in the parent Error Handler will automatically be propagated in the Reply. There is nothing else to configure. 2.9.15.3 Adding General Information General information is useful for making a node more legible. It includes the ability to add a unique identifier, or Label, to the node and to supplement it with notes, or Documentation. General information is optional. 1. To add a Label to a node, select the General tab in the Properties view and enter a unique, identifying string in the Label field. The Label that you enter appears underneath the node in the Split-Join editor. 2. In the Documentation field enter any notes that you think are important. 2.9.16 About Scope A Scope is a container that groups various elements together. The container creates a context that influences the behavior of its enclosed elements. Local Variables and the Error Handler defined within the Scope are restricted to this context. However, some nodes within the scope may operate both locally (that is, within the Scope) and globally (that is, outside of the Scope.) For instance, an Invoke Service within a certain Scope might call upon an service external to the Scope’s context. 2.9.16.1 Scope and Variables Although variables are visible in the scope in which they are defined and in all scopes nested within that scope, a variable declared in an outer scope is hidden when you declare a variable with an identical name in an inner scope. For example, if you define variable myVar in an outer scope (So) and then define variable myVar again in an Tasks 2-63
  • 114. Working with Split-Join inner scope (Si) which is contained by scope So, then you can only access the myVar you defined in the inner scope Si. This myVar overrides the myVar you defined in scope So. Related Topics Section 4.22.14, "Scope Properties" 2.9.17 Exporting and Testing a Split-Join You can export and test a Split-Join on an Oracle Service Bus server provided that it is associated with a transport typed business service. Exporting and testing a Split-Join can include the following tasks: ■ Creating a Transport Typed Business Service ■ Exporting the Split-Join Files ■ Testing the Split-Join in the Test Console 2.9.17.1 Creating a Transport Typed Business Service A Split-Join is used by a particular transport typed business service. If you do not have an appropriate business service, you must create one before you can export or test your Split-Join. There are two ways to create a business service: 1. Create the business service manually in Eclipse or the Oracle Service Bus Administration Console. 2. Generate the business service automatically from the Split-Join (.flow) menu: a. Right click on the Split-Join (.flow) file in the Project Explorer to open the Split-Join menu. b. Select Oracle Service Bus. c. Select Generate Business Service. d. Name and save the new service in a project. See Section 2.1.1, "Resource Naming Restrictions" for naming guidance. After you create the business service, you can export the Split-Join provided that it has no errors. Note: It is a helpful practice to place the associated business service in the same Oracle Service Bus project as the Split-Join. It can also be useful to give the business service the same name as the Split-Join so that they are easily correlated. 2.9.17.2 Exporting the Split-Join Files Split-Joins without errors can be exported to an Oracle Service Bus server. Note: Errors appear in the Problems view of the Split-Join editor. If you try to export a Split-Join with errors, the export fails. There are three ways to export a Split-Join: 1. Export from the Business Service Menu 2-64 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 115. Working with Split-Join 2. Auto-export 3. Manual export 2.9.17.2.1 Exporting from the Business Service Menu It is possible to export a Split-Join directly from the Business Service menu. However, because exporting by this method automatically launches the Oracle Service Bus Test Console, it is useful if you want to both export and test. Exporting from the Business Service menu involves the following steps: 1. In the Project Explorer, right click on the Business Service (.biz file) to be exported/tested. 2. Select Run as. 3. Select Run on server. The Run on Server Dialog opens. 4. Select an existing server or define a new one and go to the next step. 5. In the Add and Remove Projects window, the Oracle Service Bus project containing the business service and any other dependent files have been pre-selected for configuration/export. They can not be removed because the business service can not be tested without its dependent files. The entire Split-Join will therefore be exported. 6. Select Finish, and the Oracle Service Bus Test Console will launch. You can now test the business service. 2.9.17.2.2 Auto-export A Split-Join can be auto-exported to an Oracle Service Bus server. If you use this method, you must manually launch the Oracle Service Bus Administration Console in order to test the exported files. Auto-exporting involves the following steps: 1. Select File > Export. 2. Select Oracle Service Bus. 3. Select Resources to Oracle Service Bus Server. This will export the resources to the Oracle Service Bus server, but it will not launch the Oracle Service Bus Test Console. You must launch the Test Console manually within the Oracle Service Bus Administration Console application. 2.9.17.2.3 Manual export A Split-Join can be manually exported to an Oracle Service Bus server. If you use this method, you must manually launch the Oracle Service Bus Administration Console to test the exported files. Manually exporting involves the following steps: 1. Select File > Export. 2. Select Oracle Service Bus. 3. Select Resources as Configuration JAR and go to the next step. 4. In the Oracle Service Bus Configuration JAR Export window, configure the following options: a. Select the Oracle Service Bus Configuration file containing the files to be exported. b. Set the Export Level to Project or Resource depending upon whether you wish to export entire projects or individual files. The selection available in the tree below will change based upon the Export Level. c. Select the projects and/or resources to be exported in the configuration JAR. Tasks 2-65
  • 116. Using the Oracle Service Bus Debugger d. Select Include Dependencies if you want to export any file dependencies associated with the selected files. e. Browse to a destination for the exported JAR file. f. Click Finish to export the JAR file. 5. Import the JAR file via the Oracle Service Bus Administration Console. Note: A quick way to access the Oracle Service Bus Administration Console from Eclipse is to right-click the server and select Launch Service Bus Console. 2.9.17.3 Testing the Split-Join in the Test Console You can test a Split-Join by executing the business service that uses it in the Oracle Service Bus Test Console. This can either be done within the Split-Join editor or by exporting the Split-Join to an Oracle Service Bus server. To test the Split-Join within the IDE, you need to export the files using the menu for the business service that uses the Split-Join. 2.9.17.3.1 Exporting from the Business Service Menu You can export and test a Split-Join directly from the Business Service menu. If you use this method, the export happens in the background while the Oracle Service Bus Test Console launches. Exporting from the Business Service menu involves the following steps: 1. In the Project Explorer, right click on the Business Service (.biz file) to be exported/tested. 2. Select Run as. 3. Select Run on server. The Run on Server Dialog appears. 4. Select an existing server or define a new one and go to the next step. 5. In the Add and Remove Projects window, the Oracle Service Bus project containing the business service and any other dependent files have been pre-selected for configuration/export. The dependent files cannot be removed because the business service cannot be tested without its dependent files. Click Finish, and the Oracle Service Bus Test Console will launch. You can now test the business service. Note: Although only the Oracle Service Bus Test Console is displayed at this point, the entire Split-Join has been exported to the Oracle Service Bus server. 2.10 Using the Oracle Service Bus Debugger Oracle Service Bus extends the Eclipse debugging framework to provide debugging functionality for proxy service message flows and Split-Joins. The Oracle Service Bus Debugger can handle Java callouts and supports multi-threaded debugging on Split-Joins that use parallel processing. You can also perform debugging on remote servers. You can use the Oracle Service Bus Debugger in two different ways: ■ Section 2.10.2, "Using Standard Debugging" – Provides automated service debugging features for debugging on a local machine. 2-66 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 117. Using the Oracle Service Bus Debugger ■ Section 2.10.3, "Using the Oracle Service Bus Debugger Launch Configuration" – Provides more manual control of the Oracle Service Bus Debugger environment. 2.10.1 Enabling Debugging Oracle Service Bus debugging is enabled automatically on a server running in development mode. When you create a new domain, the following entries are included in the <domain>/bin/setDomainEnv script: set ALSB_DEBUG_FLAG=true set ALSB_DEBUG_PORT=7453 If you want to turn Oracle Service Bus debugging functionality off, set ALSB_DEBUG_ FLAG=false. If you start the server in production mode, Oracle Service Bus debugging is automatically disabled. 2.10.2 Using Standard Debugging To debug a proxy service or a Split-Join, you must execute it while in debug mode (unless you are using the debugger launch configuration described in Section 2.10.3, "Using the Oracle Service Bus Debugger Launch Configuration".) To debug a proxy service or Split-Join: 1. Set breakpoints in your message flow or Split-Join to automatically pause the test execution at those points. Right-click an action in the flow editor and choose Toggle Breakpoint. 2. Start the server in debug mode. On server startup, Eclipse automatically switches to the Debug perspective, shown in Figure 2–11. 3. With the proxy or business service file open and active, select Run > Debug As > Debug on Server in Eclipse. In the Debug on Server window, select the server on which your Oracle Service Bus configuration is deployed, or is to be deployed, and complete the steps in the wizard. The Debug As option automatically enables the Java debugger in order to handle Java callouts in services. 4. The Oracle Service Bus Test Console appears. Execute your test, looking at and interacting with the execution threads in the Debug view. As you move through the test, the debugger highlights the current stage of the test in the service’s flow view, as shown in Figure 2–11. You are not required to use the Test Console to execute a service test and use the debugger. You can also execute your service in other ways, such as posting a JMS message or dropping a file in the directory of a file proxy service. For debugging on remote servers, execute the service on the remote server and step through the test in Debug view. If the remote server is running in normal mode rather than debug mode, use the debugger launch configuration, as described in Section 2.10.3, "Using the Oracle Service Bus Debugger Launch Configuration." See the Section 2.10.2.1, "Debug Views" section for descriptions of different debug views for Oracle Service Bus Debugger. Tasks 2-67
  • 118. Using the Oracle Service Bus Debugger 2.10.2.1 Debug Views This section describes the different views you can use while debugging a service, illustrated in Figure 2–11. Figure 2–11 Debugging a Proxy Service The Debug perspective provides the following key views for debugging a service: ■ Debug view – The Debug view shows the Oracle Service Bus call stack, displaying the current execution thread. The Debug view also provides a toolbar that lets you resume the test from its current location or perform step actions (Step Into, Step Over, Step Return). As you step through a test, if you are testing a local service, the current operation is highlighted in the service’s flow view. Errors appear in the Console view. ■ Console view – The Console view, which displays server messages, shows any run-time errors that occur as your service runs. ■ Variables view – The Variables view shows the variable names and values in your service at each stage of the test. Variables are read-only while debugging. Select the call stack at a specific breakpoint to see the current variables and values. ■ Breakpoints view – The Breakpoints view lists the breakpoints you have manually inserted into your service’s flow. The test stops at each breakpoint, letting you view the state of the service at that point. You can enable and disable breakpoints 2-68 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 119. Using the Oracle Service Bus Debugger in the Breakpoints view. Disabling a breakpoint by deselecting it keeps the breakpoint in place, but the debugger ignores it. ■ Service editor, flow view – As the test runs, if you are testing a local service, the test progress is graphically highlighted in the service’s flow view. The flow view also shows the breakpoints you have set (by right-clicking actions in the service’s flow view editor and choosing Toggle Breakpoint). ■ Oracle Service Bus Test Console – The Test Console lets you execute local proxy and business services. For more detailed information on using the Test Console, see "Using the Test Console" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG357. 2.10.2.2 Step Actions and Breakpoints The Eclipse debugging framework lets you debug incrementally by performing step actions to debug code. See "Execution Control Commands" in the Eclipse help system (Java Development User Guide). If you use step actions to debug, the Oracle Service Bus Debugger still stops at each breakpoint you have set, ignoring the current step action being performed. 2.10.3 Using the Oracle Service Bus Debugger Launch Configuration If you want more manual control of the Oracle Service Bus Debugger environment, use the Oracle Service Bus Debugger launch configuration. Launch configurations are an Eclipse feature. The Oracle Service Bus Debugger launch configuration removes the automation of running the debugger with the Debug As option (Debug perspective launching, server restarting in debug mode, Java debugger starting), letting you connect and disconnect the debugger as needed on a server running in either normal or debug mode. If you want to use the Java debugger in conjunction with the Oracle Service Bus Debugger to handle Java callouts, the server must be running in debug mode. To use the Oracle Service Bus Debugger launch configuration: 1. Set breakpoints in your proxy service message flow or Split-Join. 2. Start the server in normal or debug mode. However, if you want to use the Java debugger to handle Java callouts from your flow, start the server in debug mode. 3. In the Eclipse menu, select Run > Debug Configurations. 4. Double-click Oracle Service Bus Debugger. A "New_configuration" sub-item appears. You need only perform this step once for each debug configuration you want to create. The right pane displays the default server and port. Make sure the port matches the value of the ALSB_DEBUG_PORT in your domain’s setDomainEnv script. You can also rename the launch configuration in the right pane, as well as add the debug configuration to the Debug toolbar item as a shortcut. If your services use Java callouts, enable the Java debugger by double-clicking Remote Java Application and configuring the "New_configuration." 5. With your launch configuration selected, click Debug in the Debug dialog. The debugger is connected. If you are using the Java debugger as well, select it and click Debug. Tasks 2-69
  • 120. Using the Oracle Service Bus Debugger 6. Open the Debug perspective or the debug views you want, such as Debug, Breakpoints, and Variables. 7. Run the service. ■ To execute the service in the Test Console, use Run As > Run on Server. ■ You can also execute your service in other ways, such as through a custom test client. 8. Step through the test. To disconnect the debugger, click the Disconnect icon in the Debug view. Reconnect the debugger in the Debug dialog by selecting the launch configuration and clicking Debug, or by creating a shortcut in the Debug toolbar item as described in the previous steps. 2.10.3.1 Remote Debugging If you are debugging remote services, you can select a remote server in the server configuration window (for Debug As) or set the remote server and port in the launch configuration. After you connect the debugger to the remote server, execute the services on the remote server and step through the test in your local Debug perspective. 2.10.3.2 Debugging Oracle Service Bus Running Stand-Alone on a Managed Server If you want to debug on an Oracle Service Bus instance that is running stand-alone on a Managed Server in a non-clustered environment, follow these steps: 1. In Eclipse, in Servers view, add a server for the domain to which the Oracle Service Bus Managed Server belongs. 2. Make sure that both the domain’s Admin Server and the Oracle Service Bus Managed Server are running. The Admin Server must be running in normal mode, not debug mode. 3. Follow the debug configuration and debug steps Section 2.10.3, "Using the Oracle Service Bus Debugger Launch Configuration." If you set up a Remove Java Application configuration to test Java callouts, be sure to target the configuration to the Managed Server. 2.10.3.3 Server Sharing If multiple users share a single server instance for debugging, only one user at a time can have the debugger connected. Other users trying to connect a debugger will get a connection refused error. 2-70 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 121. 3 Transport Configuration 3 This chapter describes how to configure transports on business and proxy services in the Oracle Service Bus IDE. When you configure a business service or a proxy service, you must configure the transport used by the service. Each transport is configured on its own configuration page. 3.1 Protocol-Specific Transport Configuration Pages Each transport available for business services and proxy services has its own configuration page. Oracle Service Bus provides the following transports: ■ Section 3.1.1, "BPEL-10g Transport Configuration Page (Business Services)" ■ Section 3.1.2, "DSP Transport Configuration Page (Business Services)" ■ Section 3.1.3, "EJB Transport Configuration Page (Business Services)" ■ Section 3.1.4, "E-Mail Transport Configuration Page (Business Services)" ■ Section 3.1.5, "E-Mail Transport Configuration Page (Proxy Services)" ■ Section 3.1.6, "File Transport Configuration Page (Business Services)" ■ Section 3.1.7, "File Transport Configuration Page (Proxy Services)" ■ Section 3.1.8, "FTP Transport Configuration Page (Business Services)" ■ Section 3.1.9, "FTP Transport Configuration Page (Proxy Services)" ■ Section 3.1.10, "HTTP Transport Configuration Page (Business Services)" ■ Section 3.1.11, "HTTP Transport Configuration Page (Proxy Services)" ■ Section 3.1.12, "JCA Transport Configuration Page (Proxy and Business Services)" ■ Section 3.1.13, "JEJB Transport Configuration Page (Business Services)" ■ Section 3.1.14, "JEJB Transport Configuration Page (Proxy Services)" ■ Section 3.1.15, "JMS Transport Configuration Page (Business Services)" ■ Section 3.1.16, "JMS Transport Configuration Page (Proxy Services)" ■ Section 3.1.17, "MQ Transport Configuration Page (Business Services)" ■ Section 3.1.18, "MQ Transport Configuration Page (Proxy Services)" ■ Section 3.1.19, "SB Transport Configuration Page (Business Services)" ■ Section 3.1.20, "SB Transport Configuration Page (Proxy Services)" Transport Configuration 3-1
  • 122. Protocol-Specific Transport Configuration Pages ■ Section 3.1.21, "SFTP Transport Configuration Page (Business Services)" ■ Section 3.1.22, "SFTP Transport Configuration Page (Proxy Services)" ■ Section 3.1.23, "SOA-DIRECT Transport Configuration Page (Business Services)" ■ Section 3.1.24, "Tuxedo Transport Configuration Page (Business Services)" ■ Section 3.1.25, "Tuxedo Transport Configuration Page (Proxy Services)" ■ Section 3.1.26, "WS Transport Configuration Page (Business Services)" ■ Section 3.1.27, "WS Transport Configuration Page (Proxy Services)" 3.1.1 BPEL-10g Transport Configuration Page (Business Services) Use this page to configure transport settings for a business service using the BPEL-10g (Oracle BPEL Process Manager) transport protocol. For more information on using Oracle Service Bus with Oracle BPEL Process Manager, see the "Oracle BPEL Process Manager Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1147. Table 3–1 BPEL-10g Transport Configuration Options for Business Services Property Description Role The BPEL transport is used to send request messages from Oracle Service Bus to Oracle BPEL Process Manager. The business service can serve one of the following roles: ■ Synchronous Client For synchronous communication with an Oracle Service Bus client, the only location information that is required is the BPEL address. This address is captured statically as the endpoint URI and/or dynamically through URI rewriting. ■ Asynchronous Client For asynchronous communication with an Oracle Service Bus client, a callback from Oracle BPEL Process Manager to Oracle Service Bus is sent on a different connection than the request, and you must configure Oracle Service Bus to provide the correct callback address. ■ Service Callback If the business service is designed to be a service callback to Oracle BPEL Process Manager (where Oracle BPEL Process Manager is calling an external service through Oracle Service Bus), the callback address is known only at run time. Use an Endpoint URI of bpel://callback. If you configure the business service with the marker URI, configure your pipeline logic to dynamically set the URI on $outbound; for example, using the TransportHeader action. Note: A Service Callback business service does not support load balancing or failover. Callback Proxy This optional field is available only for the Asynchronous Client role. This field lets you select the proxy service (must be either an SB or HTTP proxy of type Any SOAP) that will be used to route callbacks to the Oracle Service Bus client that made the request. Service Account For JNDI context security, used to access the Oracle BPEL Process Manager delivery service. Click Browse and select a service account. If no service account is specified, an anonymous subject is used. There is no restriction on the type of service account that can be configured, such as static or pass-through, but the run time must be able to access a user name and password. 3-2 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 123. Protocol-Specific Transport Configuration Pages Table 3–1 (Cont.) BPEL-10g Transport Configuration Options for Business Services Property Description Suspend Selecting Suspend Transaction makes the business service Transaction non-transactional even if the business service is invoked by a transaction. If you do not select Suspend Transaction: ■ If the protocol indicates an Oracle WebLogic Server-supported protocol (t3, iiop, http), the transaction is propagated. ■ If the protocol indicates an OC4J server (ormi, opmn), the BPEL transport throws an exception, since OC4J does not support transaction propagation. The BPEL transport ignores the Suspend Transaction option in the following situations: ■ The business service is called with quality of service (QoS) "best-effort." The BPEL transport automatically suspends any transaction that does not support QoS. ■ The business service is called with QoS set to "exactly-once" and there is no transaction. Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CNFGD112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1428 3.1.2 DSP Transport Configuration Page (Business Services) Use this page to configure transport settings for a business service using the DSP (Oracle Data Service Integrator) transport protocol. For more information on accessing Oracle Data Service Integrator from Oracle Service Bus, see "DSP and Oracle Data Service Integrator Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1229. Table 3–2 DSP Transport Configuration Options for Business Services Option To create or edit... Debug Level Specify one of the following ■ 0 - for no debug information ■ 1 - to output information on the request message ■ 3 - to output information on the request and the response message Service Account Click Browse and select a service account from the list displayed. If no service account is specified, an anonymous subject is used. Transport Configuration 3-3
  • 124. Protocol-Specific Transport Configuration Pages Table 3–2 (Cont.) DSP Transport Configuration Options for Business Services Option To create or edit... Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. The Work Manager is used to post the reply message for response processing. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CNFGD112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG142 8 3.1.3 EJB Transport Configuration Page (Business Services) Use this page to configure transport settings for a business service using the EJB transport protocol. For more information on the EJB transport, see "EJB Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1009. Table 3–3 EJB Transport Configuration Options for Business Services Option To create or edit... Pass Caller’s Select this check box to have Oracle Service Bus pass the authenticated Subject subject from the proxy service when invoking the EJB and no service accounts are configured. Note that the Service Account field is disabled when this option is selected. Service Account Click Browse and select a service account from the list displayed. If no service account is specified, an anonymous subject is used. This option is not available if you use the Pass Caller’s Subject option. Supports Select this check box to specify transaction support. Transaction Client Jar Click Browse and select an EJB client JAR resource from the list displayed. Converter Jar Click Browse and select an EJB converter class JAR resource from the list displayed. Home Interface EJB 2.1 only – Select the required EJBHome interface from the options populated by the JAR. The JNDI name in this URI sample must be associated with the EJBHome interface you select here. If the EJB is not of the required type or an EJBHome interface is not specified in the client-jar, Oracle Service Bus displays a warning. Remote Interface EJB 2.1 only – This field is automatically populated depending on the configuration of the Home Interface. Business EJB 3.0 only – Select the business interface in the client JAR that you want Interface to invoke. Target This field is populated by information picked up from the JAR. Namespace 3-4 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 125. Protocol-Specific Transport Configuration Pages Table 3–3 (Cont.) EJB Transport Configuration Options for Business Services Option To create or edit... Style Select Document Wrapped or RPC according to your requirements. If two or more methods of your stateless session EJB have the same number and data type of parameters, and you want the operations to be document-oriented, you must specify that they be document-wrapped. The style is important because when routing or publishing to the EJB, $body must have content that matches the style. Also when calling out to an EJB, the style affects the parameter contents, especially for document wrapped. Secondly one usage pattern is to define an EJB business service and then create a proxy service with the same WSDL that routes to the EJB. In this case care must be taken on the style of the WSDL because the client tool used to invoke the proxy might have limitations on the style of the WSDL. Encoding Select Encoded or Literal. Methods The methods displayed are those of the EJB remote or business interface you selected. Select the required methods (you can select multiple methods). Click + to expand the method. Edit the default parameter values and select a converter if provided (or required). You must exclude the methods with parameters or return types that are not supported by the JAX-RPC stack or you must associate such arguments with converter classes. You can change the default operation name for a given method. (By default, the operation name is the method name.) If an EJB contains methods with same name, you must change the operation names so that they are unique—WSDLs require unique operation names. Note: If the credentials or transaction settings are different between the methods for a given EJB, you can customize the methods for a given business service, and create a business service per method. This gives you fine-grained control over transactions and credentials. Exceptions This field appears if a method throws a business exception. If an EJB method throws an exception that has data types not supported by Java Web Services (JWS), such as an ArrayList, use the Exceptions field to select a converter class that converts the exception to a type supported by JWS. Your converter class must implement com.bea.wli.sb.transports.ejb.ITypeConverter. Converter classes can only be configured for checked exceptions and not for run-time exceptions. Package the converter class and the converted exception class in the client or converter JAR. For more information, see "EJB Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1009. 3.1.4 E-Mail Transport Configuration Page (Business Services) Use this page to configure transport settings for a business service using the e-mail transport protocol. Transport Configuration 3-5
  • 126. Protocol-Specific Transport Configuration Pages Table 3–4 E-Mail Transport Configuration Options for Business Services Option To create or edit... SMTP Server Select the default SMTP Server to use for endpoint URI entries of name@domain_name.com. If you provide SMTP server parameters in the endpoint URI, as described in Table 4–6, those server resources are used instead of this SMTP Server setting. Do not select an SMTP server if you use the Mail Session option. You must first create the SMTP Server resource. For more information, see Section 2.1.17, "Creating SMTP Server Resources." Mail Session Enter the JNDI name of the configured mail session to use for endpoint URI entries of name@domain_name.com. If you provide JNDI mail session parameters in the endpoint URI, as described in Table 4–6, those mail sessions are used instead of this Mail Session setting. Do not enter a Mail Session if you use the SMTP Server option. From Name Enter a display name for the originating e-mail account for this service. From Address Enter the originating e-mail account for this service. Reply To Name Enter a display name for the reply to e-mail account. Reply To Address Enter an e-mail address to reply to. Connection Enter the timeout interval, in seconds, before the connection is dropped. If Timeout you enter 0, there is no timeout. Request Accept the default ISO-8859-1 as the character set encoding for requests Encoding in e-mail transports, or enter a different character set encoding. 3.1.5 E-Mail Transport Configuration Page (Proxy Services) Use this page to configure transport settings for a proxy service using the e-mail transport protocol. Table 3–5 E-Mail Transport Configuration Options for Proxy Services Option To create or edit... Service Account Enter a service account name, or click Browse to select service accounts from a browser. Managed Server Select the Managed Server for polling in a clustered domain. This field is available only in a clustered domain. Polling Interval Enter a polling interval, in seconds. E-Mail Protocol Select POP3 or IMAP as the server type for the e-mail account. Read Limit Specify the maximum number of messages to read per polling sweep. Enter 0 to specify no limit. Pass By Select this check box to stage the file in the archive directory and pass it as Reference a reference in the headers. By default when you create a new service, the Pass By Reference option is selected and you must specify the archive directory location. Pass Attachments Select this check box to stage the attachments in the archive directory and by Reference pass them as a reference in the headers. By default, when the Pass By Reference option is selected, the Pass Attachments By Reference option is implicitly true and you must specify the archive directory location. 3-6 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 127. Protocol-Specific Transport Configuration Pages Table 3–5 (Cont.) E-Mail Transport Configuration Options for Proxy Services Option To create or edit... Post Read Action Select what happens to a message after it has been read: ■ Archive - The message is archived. ■ Delete - The message is deleted. ■ Move - The message is moved. Move is only available with the IMAP protocol. Attachments Select how attachments are handled: ■ Archive - Attachments are saved to the archive directory. ■ Ignore - Attachments are ignored. IMAP Move Enter the folder to which the message is moved if the Post Read Action Folder field is set to Move. Download Enter a temporary location for downloading e-mails. Directory Archive Specify the path to the archive location if the Post Read Action field is set Directory to Archive. This field is required if the Pass By Reference or Pass Attachments By Reference option is selected. Error Directory Enter the file system directory path to write the message and any attachments if there is a problem. Request Accept the default ISO-8859-1 as the character set encoding for requests Encoding in E-mail transports, or enter a different character set encoding. 3.1.6 File Transport Configuration Page (Business Services) Use this page to configure transport settings for a business service using the file transport protocol. Table 3–6 File Transport Configuration Options for Business Services Option To create or edit... Prefix Enter a prefix to be prepended to the file name. Do not enter * in this field. This character causes a run-time exception. Suffix Enter a suffix to be appended to the file name. This is a required field. Do not enter * in this field. This character causes a run-time exception. Request Accept the default utf-8 as the character set encoding for requests in File Encoding transports, or enter a different character set encoding. 3.1.7 File Transport Configuration Page (Proxy Services) Use this page to configure transport settings for a proxy service using the file transport protocol. Table 3–7 File Transport Configuration Options for Proxy Services Option To create or edit... File Mask Specify the files that the proxy service should poll. If the URI is a directory and you specify *.*, the service polls for all the files in the directory. Only the wildcard characters * and ? are allowed in the File Mask. Regular expressions are not supported. Transport Configuration 3-7
  • 128. Protocol-Specific Transport Configuration Pages Table 3–7 (Cont.) File Transport Configuration Options for Proxy Services Option To create or edit... Managed Server Select the Managed Server for polling in a clustered domain. This field is available only in a clustered domain. Polling Interval Enter a polling interval, in seconds. The default is 60. Read Limit Specify the maximum number of messages to read per polling sweep. Enter 0 to specify no limit. The default is 10. Sort By Arrival Select this check box to specify that events are delivered in the order of arrival. Note that when this option is selected for a proxy service that is executed in a clustered environment, messages are always sent to the same server. In other words, load balancing across servers is ignored when this option is selected. Scan Select this check box to recursively scan all the directories. Subdirectories Pass By Select this check box to stage the file in the archive directory and pass it as Reference a reference in the headers. Post Read Action Select what happens to a message after it has been read: ■ Archive - The message is archived. ■ Delete - The message is deleted. Stage Directory Enter an intermediate directory to temporarily stage the files while processing them. Do not put the stage directory inside of the polling directory (the directory identified in the URL of the file transport proxy service; for example, file:///c:/dir1/dir2). Archive Specify the path to the archive location if the Post Read Action option is set Directory to Archive. The Archive Directory field is also a required field if you have selected the Pass By Reference field. Do not put the archive directory inside of the polling directory. Error Directory Enter the location where messages and attachments are posted if there is a problem. Do not put the error directory inside of the polling directory. Request Accept the default UTF-8 as the character set encoding for requests in file Encoding transports, or enter a different character set encoding. 3.1.8 FTP Transport Configuration Page (Business Services) Use this page to configure transport settings for a business service using the ftp transport protocol. Table 3–8 FTP Transport Configuration Options for Business Services Option To create or edit... User Authentication Select anonymous if the user of the FTP server is anonymous, or select external user if the user of the FTP server is an externally configured account. Identity (E-mail id) This field is available only if the User Authentication option is set to anonymous. Enter the mail ID for the anonymous user. 3-8 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 129. Protocol-Specific Transport Configuration Pages Table 3–8 (Cont.) FTP Transport Configuration Options for Business Services Option To create or edit... Service Account This field is available only if the User Authentication option is set to external user. Enter the service account for the external user. Timeout Enter the socket timeout interval, in seconds, before the connection is dropped. The default is 60 seconds. Prefix for destination Enter an optional prefix that the transport prepends to the file name on File Name the remote server. Do not enter * in this field. This character causes a run-time exception. Suffix for the Enter an optional suffix that the transport appends to the file name on destination File Name the remote server. Do not enter * in this field. This character causes a run-time exception. Transfer Mode Select ASCII or binary as the transfer mode. Request Encoding Accept the default UTF-8 as the character set encoding for requests in ftp transports, or enter a different character set encoding. 3.1.9 FTP Transport Configuration Page (Proxy Services) Use this page to configure transport settings for a proxy service using the ftp transport protocol. Table 3–9 FTP Transport Configuration Options for Proxy Services Option To create or edit... User Authentication Select anonymous if the user of the FTP server is anonymous, or select external user if the user of the FTP server is an externally configured account. Identity (E-Mail ID) This field is available only if the User Authentication option is set to anonymous. Enter the mail ID for the anonymous user. Service Account This field is available only if the User Authentication option is set to external user. Enter the service account for the user. This is a required field when the User Authentication option is set to external user. Pass By Reference Select this check box to stage the file in the archive directory and pass it as a reference in the headers. Remote Streaming Select this check box to stream the FTP files directly from the remote server at the time of processing. When you select this option, the archive directory is the remote directory on the remote FTP server machine. Therefore, you should specify the archive directory as relative to the FTP user directory. File Mask Enter the regular expression for the files to be picked. The default is *.*. Managed Server Select the Managed Server for polling in a clustered domain. This field is available only in a clustered domain. Polling Interval Enter a polling interval, in seconds. The default is 60. Read Limit Specify the maximum number of messages to read per polling sweep. Enter 0 to specify no limit. The default is 10. Transport Configuration 3-9
  • 130. Protocol-Specific Transport Configuration Pages Table 3–9 (Cont.) FTP Transport Configuration Options for Proxy Services Option To create or edit... Post Read Action Select what happens to a message after it has been read. ■ Archive - The message is archived. ■ Delete - The message is deleted. Transfer Mode Select ASCII or binary as the transfer mode. Archive Directory Specify the path to the archive location if the Post Read Action option is set to Archive. This field is required if the Pass By Reference option is selected. Note: The Archive, Download, and Error directories are absolute paths, and they are automatically created. If you specify a relative path, the files are created relative to the Java process that starts the Oracle WebLogic Server. Download Directory Enter the directory on your local machine where files are downloaded during the file transfer. Note: The Archive, Download, and Error directories are absolute paths, and they are automatically created. If you specify a relative path, the files are created relative to the Java process that starts the Oracle WebLogic Server. Error Directory Enter the location where messages are posted if there is a problem. Note: The Archive, Download, and Error directories are absolute paths, and they are automatically created. If you specify a relative path, the files are created relative to the Java process that starts the Oracle WebLogic Server. Request Encoding Accept the default UTF-8 as the character set encoding for requests in FTP transports. Scan Subdirectories Select this check box to recursively scan all directories Sort By Arrival Select this check box to deliver events in the order of arrival. Timeout Enter the socket timeout interval, in seconds, before the connection is dropped. If you enter 0, there is no timeout. Retry Count Specify the number of retries for FTP connection failures. 3.1.10 HTTP Transport Configuration Page (Business Services) Use this page to configure transport settings for a business service using the HTTP transport protocol. The HTTP transport supports both HTTP and HTTPS endpoints. Table 3–10 HTTP Transport Configuration Options for Business Services Option To create or edit... Read Timeout Enter the read timeout interval in seconds. A zero (0) value indicates no timeout. Connection Enter the connection timeout interval in seconds. If the timeout expires Timeout before the connection can be established, Oracle Service Bus raises a connection error. A zero (0) value indicates no timeout. 3-10 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 131. Protocol-Specific Transport Configuration Pages Table 3–10 (Cont.) HTTP Transport Configuration Options for Business Services Option To create or edit... HTTP Request This parameter lets you to use one of the following HTTP methods in a Method request: ■ POST – Passes all its data, of unlimited length, directly over the socket connection as part of its HTTP request body. The exchange is invisible to the client, and the URL does not change. For REST-based requests, POST tells the transport to perform a create/replace operation or perform an action with the request. ■ GET – You can include as part of the request some of its own information that better describes what to get. This information is passed as a sequence of characters appended to the request URL in a query string. You can use GET in a business service with a Service Type of "Any XML Service," or with a Service Type of "Messaging Service" when the Request Message Type is set to "None." For REST-based requests, GET retrieves a representation of a remote resource. ■ PUT – You can use PUT in a business service with a Service Type of "Any XML Service" or "Messaging Service." PUT tells the transport to perform a create/replace operation with a REST-based request, such as uploading a file to a known location. ■ HEAD – You can use HEAD in a business service with a Service Type of "Any XML Service," or with a Service Type of "Messaging Service" when the Response Message Type is set to "None." HEAD tells the transport to get header information for a remote resource rather than getting a full representation of the resource in a REST-based request. ■ DELETE – You can use PUT in a business service with a Service Type of "Any XML Service" or "Messaging Service." DELETE tells the transport to perform a delete operation with a REST-based request. Note: If a method is already set in the $outbound/transport/request/http:http-method variable, that value takes precedence over any method you select for HTTP Request Method. Transport Configuration 3-11
  • 132. Protocol-Specific Transport Configuration Pages Table 3–10 (Cont.) HTTP Transport Configuration Options for Business Services Option To create or edit... Authentication Select one of the following: ■ None - Specifies that authentication is not required to access this service. ■ Basic - Specifies that basic authentication is required to access this service. Basic authentication instructs Oracle WebLogic Server to authenticate the client using a user name and password against the authentication providers configured in the security realm, such as a Lightweight Directory Access Protocol (LDAP) directory service and Windows Active Directory. The client must send its user name and password on the HTTP request header. Basic authentication is strongly discouraged over HTTP because the password is sent in clear text. However, it is safe to send passwords over HTTPS because HTTPS provides an encrypted channel. Warning: By default, all users (authorized and anonymous) can access a business service. To limit the users who can access a business service, create a transport-level authorization policy. See "Editing Transport-Level Access Policies" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG120 8. Client Certificate - Specifies encrypted communication and strong client authentication (two-way SSL). To use this option, all endpoint URIs in the service definition must be HTTPS. To learn more, see "Configuring Transport-Level Security" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV155 7. Service Account Enter a service account. A service account is an alias resource for a user name and password. This is a required field if you selected the Basic Authentication Required field. Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CNFGD112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG142 8 Request Accept the default iso-8859-1 as the character set encoding for requests Encoding in HTTP transports, or enter a different character set encoding. Response Accept the default iso-8859-1 as the character set encoding for Encoding responses in HTTP transports, or enter a different character set encoding. Proxy Server Enter a proxy server resource or click Browse to choose an entry from the list of configured proxy server resources. 3-12 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 133. Protocol-Specific Transport Configuration Pages Table 3–10 (Cont.) HTTP Transport Configuration Options for Business Services Option To create or edit... Follow HTTP Select this check box to specify that HTTP redirects (which are requests redirects with a response code 3xx) should be automatically followed. A redirect occurs when you send an outbound request to the URL of a business service, and that service returns a response code (for example, 302) that says the URL is no longer valid and this request needs to be sent to another URL. If you select the Follow HTTP Redirects check box, Oracle Service Bus automatically re-sends the request to the new URL without any action on your part. Deselect this check box if you do not want the HTTP redirects to be automatically followed. Use Chunked Select this option if you want to use HTTP chunked transfer encoding to Streaming Mode send messages. Note: Do not use chunked streaming with if you use the Follow HTTP Redirects option. Redirection and authentication cannot be handled automatically in chunked mode. 3.1.11 HTTP Transport Configuration Page (Proxy Services) Use this page to configure transport settings for a proxy service using the HTTP transport protocol. The HTTP transport supports both HTTP and HTTPS endpoints. Table 3–11 HTTP Transport Configuration Options for Proxy Services Option To create or edit... HTTPS required Select this check box for inbound HTTPS endpoints. To learn more, see "Configuring Transport-Level Security" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1557. Transport Configuration 3-13
  • 134. Protocol-Specific Transport Configuration Pages Table 3–11 (Cont.) HTTP Transport Configuration Options for Proxy Services Option To create or edit... Authentication Select one of the following: ■ None - Specifies that authentication is not required. ■ Basic - Specifies that basic authentication is required to access this service. Basic authentication instructs Oracle WebLogic Server to authenticate the client using a user name and password against the authentication providers configured in the security realm, such as a Lightweight Directory Access Protocol (LDAP) directory service and Windows Active Directory. The client must send its user name and password on the HTTP request header. Basic authentication is strongly discouraged over HTTP because the password is sent in clear text. However, it is safe to send passwords over HTTPS because HTTPS provides an encrypted channel. Caution: By default, all users (authorized and anonymous) can access a proxy service. To limit the users who can access a proxy service, create a transport-level authorization policy. See "Editing Transport-Level Access Policies" under "Security Configuration" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG117 6. ■ Client Certificate - Specifies encrypted communication and strong client authentication (two-way SSL). To learn more, see "Configuring Transport-Level Security" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV155 7. ■ Custom Authentication - Specifies that an authentication token is contained in an HTTP header. The client's identity is established through the use of this client-supplied token. You must configure an Identity Assertion provider that maps the token to an Oracle Service Bus user. The custom authentication token can be of any active token type supported by a configured Oracle WebLogic Server Identity Assertion provider. Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CNFGD112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG142 8 3-14 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 135. Protocol-Specific Transport Configuration Pages Table 3–11 (Cont.) HTTP Transport Configuration Options for Proxy Services Option To create or edit... Request ■ For HTTP inbound transports: Encoding If the character set encoding parameter of the Content-Type header is not specified in Client Request, enter a character set encoding parameter. If you do not enter a value, the field defaults to ISO-8859-1. ■ For HTTP outbound transports: If you have not configured a request encoding, the Oracle Service Bus run time decides the most appropriate encoding while it makes a request to the business service. In the case of a non-passthrough scenario, the default character encoding is UTF-8 at run time. However if it is a passthrough scenario, the run time will pass through the encoding received with the outbound response. Response Accept the default ISO-8859-1 as the character set encoding for Encoding responses in HTTP transports, or enter a different character set encoding. Authentication Enter the HTTP header (any except Authorization) from which Oracle Header Service Bus is to extract the token. This field is available only if you selected the Custom Authentication check box. For example, client-xyz-token. Authentication Select an authentication token type. Only the active token types Token Type configured for an Identity Assertion provider are available. This field is available only if you selected the Custom Authentication check box. 3.1.12 JCA Transport Configuration Page (Proxy and Business Services) Use this page to configure transport settings using the JCA transport protocol. For more information on using the JCA transport, see "JCA Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV910. Table 3–12 JCA Transport Configuration Options Option Description JCA File Click Browse to select a JCA resource. The JCA resource defines different aspects of the service, such as details about the adapter used, a binding to the WSDL and TopLink or EclipseLink mapping file, and the activation/interaction spec properties required by the service. Once you select a valid JCA resource, the remaining transport configuration fields become available. Adapter Name A read-only value showing the name of the adapter that the JCA service will use. Adapter Type A read-only value showing the adapter type. Transport Configuration 3-15
  • 136. Protocol-Specific Transport Configuration Pages Table 3–12 (Cont.) JCA Transport Configuration Options Option Description Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CNFGD 112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG 1428 JNDI Service Account JNDI Service Account is for JNDI context security, used to access the EIS adapter managed connection factory. Click Browse and select a service account. If no service account is specified, an anonymous subject is used. For JCA business services, there is no restriction on the type of JNDI service account that can be configured, such as static or pass-through, but the run time must be able to access a user name and password. JCA proxy services can use only static JNDI service accounts. For more information on JNDI service accounts, see “Security” in the “JCA Transport” chapter of the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV916 . EndPoint Properties This field lets you assign values to endpoint properties such as retries for the type of adapter the service uses. For a list of supported endpoint properties, see "Endpoint Properties in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV184 1. Dynamic EndPoint This option lets you pass request parameters to JCA-compliant Properties services. For example, you can use a dynamic endpoint property to pass database query parameters to the Oracle JCA Adapter for Database. For more information on querying with parameters, see “Oracle JCA Adapter for Database” in the Oracle Fusion Middleware User's Guide for Technology Adapters at http://www.oracle.com/pls/as1111/lookup?id=TKADP211 7. Enter a name/value pair for each dynamic endpoint property you want to provide. The endpoint property key matches the query parameter name. Use this section to add and configure endpoint properties for custom adapters. 3-16 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 137. Protocol-Specific Transport Configuration Pages Table 3–12 (Cont.) JCA Transport Configuration Options Option Description Always use This option determines whether or not Activation Spec Properties configuration from JCA (proxy services) and Interaction Spec Properties (business services) file are always used from the JCA file. If this option is selected (default), the JCA transport interacts with the JCA framework using the activation/interaction spec properties in the JCA file. If this option is deselected, you can override the Activation/Interaction Spec Properties. For the redeployment impact of using this option, see “Endpoint Redeployment” in the “JCA Transport” chapter of the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV940 . Operation Name Displays a read-only name of the selected WSDL operation. An operation can have its own activation/interaction spec properties, shown in the Activation/Interaction Spec Properties field. Activation/Interaction Activation Spec Properties is the field name for proxy services; Spec Properties Interaction Spec Properties is the field name for business services. If this service is an inbound service invoked by an EIS application, this field displays the activation spec properties for the JCA inbound operation shown in Operation Name field. You can override the activation/interaction spec properties if you deselect Always use configuration from JCA file. Note: For Oracle Adapter Suite adapters, activation/interaction spec properties are displayed as read-only. The Oracle Adapter Suite adapters store their own configurations, which you must change in the Oracle Adapter Suite management tools. Connection properties For legacy JCA services that use non-managed mode connection (legacy) properties (deprecated in this release), see the connection configuration options at http://download.oracle.com/docs/cd/E13159_ 01/osb/docs10gr3/jcatransport/transport.html#wp1105 451. For more information on endpoint and activation/interaction spec properties, see the Oracle Fusion Middleware User's Guide for Technology Adapters at http://www.oracle.com/pls/as1111/lookup?id=TKADP. 3.1.13 JEJB Transport Configuration Page (Business Services) Use this page to configure transport settings for a business service using the JEJB transport protocol. Transport Configuration 3-17
  • 138. Protocol-Specific Transport Configuration Pages Table 3–13 JEJB Transport Configuration for Business Services Option Description Dispatch Policy Select the instance of the Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=C NFGD112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=O SBAG1428 EJB Spec Version Select the EJB version of the remote EJB interface. Pass XMLBeans by value Select this option if you want the transport to generate an "inlined" XML representation of POJO arguments (an XMLObject) whose parameters you can access and manipulate with XQuery expressions. Note: Type information is not available inline for XMLObjects passed by value. If you use this option, you cannot pass the typed XMLObject as the argument in a Java Callout in a proxy service pipeline. Do not select this option if you want to pass the POJO by reference, which also results in better performance. Pass Caller’s Subject As an alternative to selecting a Service Account, select this option to have Oracle Service Bus pass the authenticated subject from the proxy service when invoking the EJB. Service Account Click Browse and select a JNDI service account from the list displayed. If no service account is specified, an anonymous subject is used. For more information, see Section 4.19, "Service Accounts." Client JAR Click Browse and select an EJB client JAR resource from the list displayed. The client JAR contains the remote or business interface for the remote service. The Client JAR is registered as a generic Archive Resource. Home Interface EJB 2.1 only – Select the required EJBHome interface from the options populated by the JAR. Remote Interface EJB 2.1 only – This field is automatically populated based on the configuration of the Home Interface. Business Interface EJB 3.0 only – Select the business interface from the client JAR that you want to invoke. Target Namespace This field is populated by information picked up from the JAR. Methods Select the required methods. Click + to expand the method, which lets you edit the default parameter values. You can change the default operation name for a given method. By default, the operation name is the method name. If an EJB contains methods with same name (overloaded), you must change the operation names so that they are unique. WSDLs require unique operation names. 3-18 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 139. Protocol-Specific Transport Configuration Pages 3.1.14 JEJB Transport Configuration Page (Proxy Services) Use this page to configure transport settings for a proxy service using the JEJB transport protocol. Table 3–14 JEJB Transport Configuration for Proxy Services Option Description Dispatch Policy Select the instance of the Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=C NFGD112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=O SBAG1428 EJB Spec Version Select the EJB version of the remote EJB interface. Pass XMLBeans by value Select this option if you want the transport to generate an "inlined" XML representation of POJO arguments (an XMLObject) whose parameters you can access and manipulate with XQuery expressions. Note: Type information is not available inline for XMLObjects passed by value. If you use this option, you cannot pass the typed XMLObject as the argument in a Java Callout in a proxy service pipeline. Do not select this option if you want to pass the POJO by reference, which also results in better performance. Transaction Attribute Select one of the following options for handling transactions: ■ Supports – The transport accepts an incoming transaction. Quality of service is exactly-once if the operation is invoked in a transaction and best-effort if the operation is invoked outside of a transaction. ■ Required – The transport accepts an incoming transaction. If no ongoing transaction exists, the transport starts one. Quality of service is exactly-once. ■ RequiresNew – The transport always starts a new transaction, suspending an ongoing transaction. Quality of service is exactly-once. ■ Mandatory – The transport invokes the method in the existing transaction. Quality of service is exactly-once. ■ NotSupported – The transport suspends an existing transaction and resumes it on invocation. Quality of service is best-effort. ■ Never – The transport does not invoke the method in a transaction. Quality of service is best-effort. Client JAR Click Browse and select an EJB client JAR resource from the list displayed. The client JAR contains the remote or business interface for the remote EJB. The Client JAR is registered as a generic Archive Resource. Transport Configuration 3-19
  • 140. Protocol-Specific Transport Configuration Pages Table 3–14 (Cont.) JEJB Transport Configuration for Proxy Services Option Description Home Interface EJB 2.1 only – Select the required EJBHome interface from the options populated by the client JAR. Remote Interface EJB 2.1 only – This field is automatically populated based on the configuration of the Home Interface. Business Interface EJB 3.0 only – Select the business interface from the client JAR that you want to invoke. Target Namespace This field is populated by information picked up from the JAR. Methods Select the required methods. Click + to expand the method, which lets you edit the default parameter values. You can change the default operation name for a given method. By default, the operation name is the method name. If an EJB contains methods with same name (overloaded), you must change the operation names so that they are unique. WSDLs require unique operation names. 3.1.15 JMS Transport Configuration Page (Business Services) Use this page to configure transport settings for a business service using the JMS transport protocol. For more information, see "JMS Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1037. Table 3–15 JMS Transport Configuration Options for Business Services Option To create or edit... Destination Type Select a type for the JMS bridge destination: ■ Queue (for point-to-point) ■ Topic (for publish/subscribe) Message Type Select one of the following: ■ Bytes (for a stream of uninterpreted bytes) ■ Text (for text messages) This option is disabled if you select a Message Type of Java for the response. Response Queues This option is available only when Queue is selected for the Destination Type. Select one of the following response options: ■ None – No response is expected. Set this option for one-way operations. ■ One for all Request URIs – Lets you enter a single URI to handle the response, as well as set other response configuration details such as encoding and timeout, and optionally select a JMS Service Account for passing JMS/JNDI credentials. ■ One per Request URI – This option provides response failover, letting you enter a response URI or destination for each request URI. You can optionally select a service account for JMS/JNDI credentials on each request/response pairing. 3-20 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 141. Protocol-Specific Transport Configuration Pages Table 3–15 (Cont.) JMS Transport Configuration Options for Business Services Option To create or edit... Response Pattern This option is available only when you select a response option in the Response Queue field. Select one of the following: ■ Select JMSCorrelationID for all services other than JAX-RPC services running on Oracle WebLogic Server. ■ Select JMSMessageID for JAX-RPC services running on Oracle WebLogic Server. For more information, see "Message ID and Correlation ID Patterns for JMS Request/Response" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV10 51. Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For example, if the business service has a JMS transport protocol, the business service endpoint is an MDB (message-driven bean) JAR file that you can associate with the specific dispatch policy. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CNFG D112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBA G1428 Request Encoding Enter the character set for encoding requests. The default is UTF-8. Response Encoding This option is available only when one of the response options is selected in the Response Queues field. Enter the character set for encoding responses. The default is UTF-8. Response Timeout This option is available only when one of the response options is selected in the Response Queues field. Enter the amount of time, in seconds, to wait for the response before dropping the connection. The default, zero (0), means the response never times out. Client Jar This option is available when the service is a Messaging Service with a response type of Java. Select the client JAR to be used for dequeueing messages that contain Java Objects. Selecting the client JAR ensures it is on the classpath. For more information, see "Sending and Receiving Java Objects in Messages" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV18 74. Transport Configuration 3-21
  • 142. Protocol-Specific Transport Configuration Pages Table 3–15 (Cont.) JMS Transport Configuration Options for Business Services Option To create or edit... Response URI This option is available when you select the One for all Request URIs response option and the JMSCorrelationID response pattern. Enter a response URI in the format: jms://host:port/connection_factory/jndi_destination To target multiple servers, use the following format: jms://host1:port,host2:port/connection_factory/jndi_destination You can also omit the host and port in the response URI. For example: jms:///connection_factory/jndi_destination When you omit host and port, the connection factory/destination lookup occurs on the local server. This is useful, for example, if the request URI goes to a foreign connection factory/destination, but you want the response sent to the local server. Note: While Oracle WebLogic Server allows forward slashes in JNDI names, such as "myqueues/myqueue", JNDI names with forward slashes interfere with the URI format required by Oracle Service Bus, and you cannot use those names. To work around this issue, define a JMS foreign server and reference that foreign server in the URI. For more information, see "Configure foreign servers" in the Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help at http://www.oracle.com/pls/as1111/lookup?id=WLACH. Request Responses This option is available when you select the One per Request URI response option for the JMSCorrelationID pattern to provide response failover. For each request URI entered on the generic Transport page, enter a Response URI, as described in the previous Response URI field. You can select an optional Service Account for JMS/JNDI credentials that the service uses for both the request and response queues. Target - Responses This option is available when you select the One for all Request URIs response option for the JMSMessageID pattern. Enter the name of the Target server that is to receive responses, and enter a Response URI, as described in the Response URI field. Request Connections This option is available when you select the One per Request URI response option for the JMSMessageID pattern to provide response failover. For each request URI, identified sequentially by number in the Seq.No field, optionally enter a JMS Connection Factory name. If you do not enter a name, the JMS transport uses the connection factory from the request URI. You can select an optional Service Account for JMS/JNDI credentials that the service uses for both the request and response queues. 3-22 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 143. Protocol-Specific Transport Configuration Pages Table 3–15 (Cont.) JMS Transport Configuration Options for Business Services Option To create or edit... Target - Destinations This option is available when you select the One per Request URI response option for the JMSMessageID pattern to provide response failover. Use this field in conjunction with Request Connections. Each Target server listed (determined by the servers in the current domain), such as Managed Servers in a cluster, lists the request URIs by Seq.No, which correspond to those in the Request Connections field. For each request URI on each target, enter the Destination queue on that target server that receives responses. Note: Because the Oracle Service Bus development environment supports only a one-server environment, only one Target is listed. To configure this field in a multi-server environment, deploy this service to the run-time environment and complete the service configuration in the Oracle Service Bus Administration Console. JMS Service Account This option is available when you use the None or One for all Request URIs option in the Response Queues field. Select a service account to use for the JMS resource managed by the JMS server. A service account is an alias resource for a user ID and password, used for both the request and response. The same service account is used for both JMS and JNDI purposes. This field is mutually exclusive with the Pass Caller’s Subject option. Use one or the other for JMS/JNDI authentication. For more information, see Section 2.1.15, "Creating Service Account Resources." Use SSL Select this option only if the requests are made over a TLS/SSL connection. TLS/SSL (Secure Sockets Layer) provides secure connections by allowing two applications connecting over a network to authenticate the other's identity and by encrypting the data exchanged between the applications. Authentication allows a server, and optionally a client, to verify the identity of the application on the other end of a network connection. Additionally, if the administrator has restricted access to individual JMS destinations (queues or topics) by setting access control on the JNDI entry for the destination, the service must authenticate when looking up the entry in the JNDI tree. Authenticate using a Service Account or the Pass Caller’s Subject option. Note: The JMS transport does not support two-way SSL. Expiration The time interval in milliseconds after which the message expires. Default value is 0, which means that the message never expires. Enable Message The JMS delivery mode the service uses, which lets you balance Persistence reliability with throughput. Select this option (default) for guaranteed message delivery. Deselect this option to improve throughput if an occasional lost message is tolerable. Unit of Order Enter a message unit-of-order. Message unit-of-order enables message producers to group messages into a single unit with respect to the processing order. This single unit-of-order requires that all messages in that unit be processed sequentially in the order they were created. Transport Configuration 3-23
  • 144. Protocol-Specific Transport Configuration Pages Table 3–15 (Cont.) JMS Transport Configuration Options for Business Services Option To create or edit... Pass Caller’s Subject Select this check box to have Oracle Service Bus pass the authenticated subject when sending a message. When you enable this field and the business service targets JMS resources in a different domain, enable global trust on both domains. See "Configuring Security for a WebLogic Domain" in Oracle Fusion Middleware Securing Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=SECMG40 2. This field is mutually exclusive with the Service Account option. Use one or the other for JMS/JNDI authentication. JNDI Timeout The JNDI connection timeout (in seconds) used while looking up the destination or connection factory in the JNDI tree. The default, zero (0), means the connection never times out. 3.1.16 JMS Transport Configuration Page (Proxy Services) Use this page to configure transport settings for a proxy service using the JMS transport protocol. For more information, see "JMS Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1037. Table 3–16 JMS Transport Configuration Options for Proxy Services Option To create or edit... Destination Type Select one of the following: ■ Queue (for a point-to-point destination type) ■ Topic (for a publish/subscribe destination) Is Response Required This option is available only when Queue is selected for the Destination Type. Select this option to specify that a response is expected after an outbound message is sent. Response Pattern This option is available only when the Is Response Required check box is selected. Select one of the following: ■ Select JMSMessageID for JAX-RPC services running on Oracle WebLogic Server. ■ Select JMSCorrelationID for all other services. When you select this option, you must also enter a Response URI. Response Message Type This option is available only when the Is Response Required check box is selected. Select one of the following: ■ Bytes (for a stream of uninterpreted bytes) ■ Text (for text messages) This option is disabled if you select a Message Type of Java for the response. 3-24 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 145. Protocol-Specific Transport Configuration Pages Table 3–16 (Cont.) JMS Transport Configuration Options for Proxy Services Option To create or edit... Client Jar This option is available when the service is a Messaging Service with a request type of Java. Select the client JAR to be used for dequeueing messages that contain Java Objects. Selecting the client JAR ensures it is on the classpath. For more information, see "Sending and Receiving Java Objects in Messages" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1 874. Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For example, if the business service has a JMS transport protocol, the business service endpoint is an MDB (message-driven bean) JAR file that you can associate with the specific dispatch policy. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CNF GD112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSB AG1428 Request Encoding Enter the character set for encoding requests. The default is UTF-8. Response Encoding This option is available only when the Is Response Required check box is selected. Enter the character set for encoding responses. The default is UTF-8. Client Response Timeout This option is available only when the Is Response Required check box is selected. Enter the number of seconds to wait for a server response before dropping the connection. This only applies if the client is another proxy service in the same domain. Transport Configuration 3-25
  • 146. Protocol-Specific Transport Configuration Pages Table 3–16 (Cont.) JMS Transport Configuration Options for Proxy Services Option To create or edit... Response URI This option is available only when JMSCorrelationID is selected for the Response Correlation Pattern. Enter a response URI in the format: jms://host:port/connection_factory/jndi_destination To target multiple servers, use the following format: jms://host1:port,host2:port/connection_factory/jndi_destination You can also omit the host and port in the response URI. For example: jms:///connection_factory/jndi_destination When you omit host and port, the connection factory/destination lookup occurs on the local server. This is useful, for example, if the request URI goes to a foreign connection factory/destination, but you want the response sent to the local server. Note: While Oracle WebLogic Server allows forward slashes in JNDI names, such as "myqueues/myqueue", JNDI names with forward slashes interfere with the URI format required by Oracle Service Bus, and you cannot use those names. To work around this issue, define a JMS foreign server and reference that foreign server in the URI. For more information, see "Configure foreign servers" in the Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help at http://www.oracle.com/pls/as1111/lookup?id=WLACH. Response Connection This option is available only when JMSMessageID is selected for Factory the Response Correlation Pattern. Enter a response connection factory URI. If a connection factory is not specified, the connection factory for the request is used for the response. JMS Service Account Select a service account to use for the JMS resource managed by the JMS server. A service account is an alias resource for a user ID and password, used for both the request and response. The same service account is used for both JMS and JNDI purposes. For more information, see Section 2.1.15, "Creating Service Account Resources." Use SSL Select this option only if the requests are made over a TLS/SSL connection. TLS/SSL (Secure Sockets Layer) provides secure connections by allowing two applications connecting over a network to authenticate the other's identity and by encrypting the data exchanged between the applications. Authentication allows a server, and optionally a client, to verify the identity of the application on the other end of a network connection. Additionally, if the administrator has restricted access to individual JMS destinations (queues or topics) by setting access control on the JNDI entry for the destination, the service must authenticate when looking up the entry in the JNDI tree. Note: The JMS transport does not support two-way SSL. Message Selector Enter a message selector expression. Only messages with properties matching the expression are processed 3-26 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 147. Protocol-Specific Transport Configuration Pages Table 3–16 (Cont.) JMS Transport Configuration Options for Proxy Services Option To create or edit... Durable Subscription This option is available only if Topic is selected for the Destination Type. Select this check box if the subscription is durable or leave it blank if the subscription is not durable Retry Count Enter the number of delivery retries a message can have before it is moved to the error destination. This field only applies to Oracle WebLogic Server JMS destinations. Retry Interval Enter the amount of time, in milliseconds, before rolled back or recovered messages are redelivered. This field only applies to Oracle WebLogic Server JMS destinations. Error Destination Enter the name of the target destination for messages that have reached their redelivery limit. This field only applies to Oracle WebLogic Server JMS destinations. Expiration Policy Select an Expiration Policy to use when an expired message is encountered on a destination. This field only applies to Oracle WebLogic Server JMS destinations. Is XA Required Select this check box if your connection factory is XA. This value is into account when the remote connection factory is unavailable. If your connection factory is available and this value is true, make sure that the connection factory is defined as transactional. Topic Messages This option is available when you select Topic for the Destination Distribution Type. Topic Messages Distribution provides different options for handling inbound JMS messages and providing high availability and failover. Select one of the following properties to determine how message-driven beans handle incoming JMS messages: ■ One Copy Per Application (default) – If the JMS proxy service is deployed to a cluster, this option provides high availability and scalability by ensuring that an inbound JMS message is processed on only one of the available servers in a cluster. ■ One Copy Per Server – Select this option if you want inbound JMS messages published to a topic to be received by the proxy service on every member of the cluster. ■ Compatibility – Select this option if you want inbound JMS messages to be processed on a specific Managed Server or all Managed Servers in a cluster. If you select this property, select a Target server. Note: For topic destinations deployed on Oracle WebLogic Server prior to version 10.3.4, the only valid option is Compatibility. The "One Copy" options you select for Topic Messages Distribution override the Subscription Sharing Policy and/or Client ID Policy configured on the JMS Connection Factory. Target This option is available only in an Oracle Service Bus cluster when you select Compatibility for the Topic Messages Distribution option. Select the target server that will handle incoming JMS messages. If you select one of the "One Copy" options for Topic Messages Distribution, this field displays the name of the cluster. If you do not set a target, the JMS proxy service instance (reading messages off the Topic) on each Managed Server in the cluster gets a copy of the message. Transport Configuration 3-27
  • 148. Protocol-Specific Transport Configuration Pages Table 3–16 (Cont.) JMS Transport Configuration Options for Proxy Services Option To create or edit... JNDI Timeout The JNDI connection timeout (in seconds) used while looking up the destination or connection factory in the JNDI tree. 3.1.17 MQ Transport Configuration Page (Business Services) Before you use the MQ transport, you must configure a MQ Connection resource. See Section 2.6, "Working with MQ Connections." For more information about the MQ transport, see "MQ Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117. Use this page to configure transport settings for a proxy service using the native MQ transport protocol. Table 3–17 MQ Transport Configuration Options for Business Services Option To create or edit... Message Type Select one of the following: ■ Bytes (for a stream of uninterpreted bytes) ■ Text (for text messages) Is Response Required Select this option to specify that a response is expected after an outbound message is sent. Polling Interval This option is available only when the Is Response Required check box is selected. Enter a polling interval, in milliseconds. The default is 1000. Response Correlation This option is available only when the Is Response Required check Pattern box is selected. Specify whether the response correlation pattern should be based on: ■ MessageID ■ CorrelationID ■ Dynamic Queue – Select this option if your WebSphere MQ implementation uses dynamic queues for response correlation. The MQ transport supports only temporary dynamic queues. Auto-generate This option is available only when the Is Response Required check Correlation Value box is selected. Select this check box to automatically generate a CorrelationID or MessageID. Model Queue For Dynamic Queue Response Correlation Pattern only. Enter the name of the model queue used to generate the dynamic queue. 3-28 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 149. Protocol-Specific Transport Configuration Pages Table 3–17 (Cont.) MQ Transport Configuration Options for Business Services Option To create or edit... MQ Response URI This option is available only when the Is Response Required option is selected. The destination to which the response should be published. Enter a response URI in the same format as the endpoint URI: mq://local_queue_name?conn=mq_connection_resource or, if you are using dynamic queues: mq://dynamic_queue_prefix?conn=mq_connection_resource The dynamic_queue_prefix, which is limited to 32 characters, is used to create the dynamic queue on the MQ server. The queue name becomes the prefix plus a unique ID. For example, if the dynamic_ queue_prefix is example, the dynamic queue would be named something like example123129083821. You can also use an asterisk (*) as a wildcard in the dynamic queue response URI. For example: mq://dynamic_queue_prefix*?conn=mq_connection_resource mq://dynamic_queue_prefix* mq://* If you do not provide a dynamic_queue_name in the URI, the transport uses the dynamic queue name generated by the MQ server. If you do not provide an explicit mq_connection_resource in the URI (best practice), the transport uses the mq_connection_resource from the endpoint URI. For more detailed information, see "MQ Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV11 17. Response Timeout This option is available only when the Is Response Required check box is selected. Enter the number of seconds to wait for a response before dropping the connection. Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CNFG D112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBA G1428 Dynamic Queue Pooling For Dynamic Queue Response Correlation Pattern only. Select this option if you want the service to use pooled connections to dynamic queues. If you want to use a separate connection pool for dynamic queues, consider configuring a dedicated MQ Connection resource for the dynamic queues. Do not select this option if you want to create a new dynamic queue instance on each request (and destroy the queue after the response). Transport Configuration 3-29
  • 150. Protocol-Specific Transport Configuration Pages Table 3–17 (Cont.) MQ Transport Configuration Options for Business Services Option To create or edit... Endpoint URI ‘PUT’ Enter the MQ PUT message options from among the following: options ■ MQC.MQPMO_ALTERNATE_USER_AUTHORITY ■ MQC.MQPMO_DEFAULT_CONTEXT ■ MQC.MQPMO_FAIL_IF_QUIESCING ■ MQC.MQPMO_LOGICAL_ORDER ■ MQC.MQPMO_NEW_CORREL_ID ■ MQC.MQPMO_NEW_MSG_ID ■ MQC.MQPMO_NO_CONTEXT ■ MQC.MQPMO_NO_SYNCPOINT ■ MQC.MQPMO_NONE ■ MQC.MQPMO_PASS_ALL_CONTEXT ■ MQC.MQPMO_PASS_IDENTITY_CONTEXT ■ MQC.MQPMO_RESOLVE_LOCAL_Q ■ MQC.MQPMO_SET_ALL_CONTEXT ■ MQC.MQPMO_SET_IDENTITY_CONTEXT ■ MQC.MQPMO_SYNCPOINT ■ MQC.MQPMO_VERSION_1 ■ MQC.MQPMO_VERSION_2 You can use either "|" or "+" to separate multiple options. For example, you can specify the following: MQC.MQPMO_LOGICAL_ORDER | MQC.MQPMO_NEW_MSG_ ID The MQ PUT message options are applied when the message is placed in the outbound queue. MQ Unrecognized Enter the URI representing the queue to which unrecognized Response URI response messages should be sent. Note that this setting is enabled only when the Auto-generate Correlation Value check box is selected. If you do not specify a value for this field, unrecognized response messages are deleted. Process RFH2 Headers Select this option to parse WebSphere MQ RFH2 headers from a message payload and automatically generate an RFH2Headers transport header containing the RFH2 data. If you do not select this option, the payload is passed through as received. For information about how the MQ transport handles RFH2 headers, see "About RFH2 Headers" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV11 36. 3.1.18 MQ Transport Configuration Page (Proxy Services) Before you use the MQ transport, you must configure a MQ Connection resource. See Section 2.6, "Working with MQ Connections." For more information about the MQ transport, see "MQ Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117. 3-30 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 151. Protocol-Specific Transport Configuration Pages Use this page to configure transport settings for a proxy service using the native MQ transport protocol. Table 3–18 MQ Transport Configuration Options for Proxy Services Option To create or edit... Polling Interval Enter a polling interval, in milliseconds. The default is 1000. Is Response Required Select this option to specify that a response is expected after an outbound message is sent. Response Correlation This option is available only when the Is Response Required check Pattern box is selected. Specify whether the response correlation pattern should be based on MessageID or CorrelationID. MQ Response URI This option is available only when the Is Response Required check box is selected. The destination to which the response should be published. Enter a response URI in the same format as the endpoint URI: mq://<local-queue-name>?conn=<mq-connection-resou rce-ref> Response Message Type This option is available only when the Is Response Required check box is selected. Select one of the following: ■ Bytes (for a stream of uninterpreted bytes) ■ Text (for text messages) Client Response Timeout This option is available only when the Is Response Required check box is selected. Enter the number of seconds to wait for a response before dropping the connection. Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CNF GD112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSB AG1428 Backout Threshold Enter a value representing the number of times the pipeline should retry a message before redirecting the message to the queue specified in the Dead Letter URI field. If you do not specify a value for this field, the message is redirected to the dead letter queue without attempting any retries. MQ Dead Letter URI Enter the URI of the dead letter queue to which request messages should be redirected after attempting the number of retries specified in the Backout Threshold field. If you do not specify a value for this field, the message is discarded after retrying the number of times specified in the Backout Threshold field. The Dead Letter URI uses the same format as the EndPoint URI. Transport Configuration 3-31
  • 152. Protocol-Specific Transport Configuration Pages Table 3–18 (Cont.) MQ Transport Configuration Options for Proxy Services Option To create or edit... Endpoint URI ‘GET’ Enter the MQ GET message options from among the following: options ■ MQC.MQGMO_ACCEPT_TRUNCATED_MSG ■ MQC.MQGMO_ALL_MSGS_AVAILABLE ■ MQC.MQGMO_BROWSE_FIRST ■ MQC.MQGMO_BROWSE_NEXT ■ MQC.MQGMO_COMPLETE_MSG ■ MQC.MQGMO_CONVERT ■ MQC.MQGMO_FAIL_IF_QUIESCING ■ MQC.MQGMO_LOCK ■ MQC.MQGMO_LOGICAL_ORDER ■ MQC.MQGMO_MARK_BROWSE_CO_OP ■ MQC.MQGMO_MARK_SKIP_BACKOUT ■ MQC.MQGMO_NO_SYNCPOINT ■ MQC.MQGMO_NONE ■ MQC.MQGMO_NO_WAIT ■ MQC.MQGMO_SYNCPOINT ■ MQC.MQGMO_SYNCPOINT_IF_PERSISTENT ■ MQC.MQGMO_UNLOCK ■ MQC.MQGMO_UNMARK_BROWSE_CO_OP ■ MQC.MQGMO_UNMARK_BROWSE_HANDLE ■ MQC.MQGMO_UNMARKED_BROWSE_MSG ■ MQC.MQGMO_VERSION_1 ■ MQC.MQGMO_VERSION_2 ■ MQC.MQGMO_VERSION_3 ■ MQC.MQGMO_WAIT You can use either "|" or "+" to separate multiple options. For example, you can specify the following: MQC.MQGMO_ACCEPT_TRUNCATED_MSG | MQC.MQGMO_ LOCK The MQ GET message options are applied when reading a message from the inbound queue. Process RFH2 Headers Select this option to parse WebSphere MQ RFH2 headers from a message payload and automatically generate an RFH2Headers transport header containing the RFH2 data. If you do not select this option, the payload is passed through as received. For information about how the MQ transport handles RFH2 headers, see "About RFH2 Headers" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1 136. 3.1.19 SB Transport Configuration Page (Business Services) Use this page to configure transport settings for a proxy service using the SB (Service Bus) transport protocol. For more information about the SB transport, see "SB 3-32 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 153. Protocol-Specific Transport Configuration Pages Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV997. Table 3–19 SB Transport Configuration Options for Business Services Option To create or edit... Dispatch policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CN FGD112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OS BAG1428 Timeout The amount of time in seconds it takes the service to time out. Note: The timeout will be ignored when the quality of service is Exactly-Once. Service Account Click Browse and select a service account from the list displayed. If no service account is specified, an anonymous subject is used. 3.1.20 SB Transport Configuration Page (Proxy Services) Use this page to configure transport settings for a proxy service using the SB (Service Bus) transport protocol. For more information about the SB transport, see "SB Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV997. Table 3–20 SB Transport Configuration Options for Proxy Services Option To create or edit... Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CNFGD11 2 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG14 28 Use SSL When specified, requests must be sent over an SSL connection. However, unsecured connections are not forbidden. The administrator must close all unsecured protocols on the server (for example, t3 or http) to strictly enforce secured client connections. Transport Configuration 3-33
  • 154. Protocol-Specific Transport Configuration Pages 3.1.21 SFTP Transport Configuration Page (Business Services) Use this page to configure transport settings for a proxy service using the sftp transport protocol. For more information about the SFTP transport, see "SFTP Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV975. Table 3–21 SFTP Transport Configuration Options for Business Services Option To create or edit... User Authentication Select one of the following: ■ Username Password Authentication - Specifies that a static service account is associated with this authentication method and the client is authenticated using the provided credentials. ■ Host Based Authentication - Specifies that a user name and service key provider is required to use this authentication method. Any user connecting from a known host is authenticated using the private key of the host. ■ Public Key Authentication - Specifies that a user name and service key provider is required to use this authentication method. Every user has their own private key. Note: The Oracle Service Bus service does not use the service key provider to authenticate any credentials from the SFTP server. It uses only the known_hosts file to authenticate the SFTP server, as described in "Configuring Transport-Level Security for SFTP Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus. Service Account Enter the service account for the user, or click Browse to select service accounts from a browser. Service Key Provider This option is available only when Host Based or Public Key Authentication is selected. Enter a service key provider in the Service Key Provider field. You can click Browse to select service key providers from a browser. This is a required field. Username This option is available only when Host Based or Public Key Authentication is selected. Enter the user name. Timeout Enter the socket timeout interval, in seconds, before the connection is dropped. If you enter 0, there is no timeout. The default value is 60. Prefix for destination Enter an optional prefix that the transport prepends to the file name File Name on the remote server. Do not enter * in this field. This character causes a run-time exception. Suffix for the Enter an optional suffix that the transport appends to the file name on destination File Name the remote server. Do not enter * in this field. This character causes a run-time exception. Request Encoding Accept the default UTF-8 as the character set encoding for requests in SFTP transports. 3.1.22 SFTP Transport Configuration Page (Proxy Services) Use this page to configure transport settings for a proxy service using the sftp transport protocol. For more information about the SFTP transport, see "SFTP Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV975. 3-34 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 155. Protocol-Specific Transport Configuration Pages Table 3–22 SFTP Transport Configuration Options for Proxy Services Option To create or edit... User Authentication Select one of the following: ■ Username Password Authentication - Specifies that a static service account is associated with this authentication method and the client is authenticated using the provided credentials. ■ Host Based Authentication - Specifies that a user name and service key provider is required to use this authentication method. Any user connecting from a known host is authenticated using the private key of the host. ■ Public Key Authentication - Specifies that a user name and service key provider is required to use this authentication method. Every user has their own private key. Note: The Oracle Service Bus service does not use the service key provider to authenticate any credentials from the SFTP server. It uses only the known_hosts file to authenticate the SFTP server, as described in "Configuring Transport-Level Security for SFTP Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus. Service Account Enter the service account for the user, or click Browse to select service accounts from a browser. Service Key Provider This option is available only when Host Based or Public Key Authentication is selected. Enter a service key provider in the Service Key Provider field. You can click Browse to select service key providers from a browser. This is a required field. Username This option is available only when Host Based or Public Key Authentication is selected. Enter the user name. Pass By Reference Select this check box to stage the file in the archive directory and pass it as a reference in the headers. Remote Streaming Select this check box to stream the SFTP files directly from the remote server at the time of processing. When you select this option, the archive directory is the remote directory on the remote SFTP server machine. Therefore, you should specify the archive directory as relative to the SFTP user directory. File Mask Enter the regular expression for the files to be picked. The default is *.*. Managed Server This field is available only in a clustered domain. Select the Managed Server to act as the polling server. All of the Managed Servers can process the message, but only one can poll for the message. Polling Interval Enter the interval in seconds at which the file is polled from the specified location. The default is 60. Read Limit Specify the maximum number of messages to read per polling sweep. Enter 0 to specify no limit. The default is 10. Post Read Action Select what happens to a message after it has been read. ■ Archive - The message is archived. ■ Delete - The message is deleted. Transport Configuration 3-35
  • 156. Protocol-Specific Transport Configuration Pages Table 3–22 (Cont.) SFTP Transport Configuration Options for Proxy Services Option To create or edit... Archive Directory Specify the path to the archive location if the Post Read Action option is set to Archive. This field is required if the Pass By Reference option is selected. Note: The Archive, Download, and Error directories are absolute paths, and they are automatically created. If you specify a relative path, the files are created relative to the Java process that starts the Oracle WebLogic Server. Download Directory Enter the directory on your local machine where files are downloaded during the file transfer. Note: The Archive, Download, and Error directories are absolute paths, and they are automatically created. If you specify a relative path, the files are created relative to the Java process that starts the Oracle WebLogic Server. Error Directory Enter the location where messages are posted if there is a problem. Note: The Archive, Download, and Error directories are absolute paths, and they are automatically created. If you specify a relative path, the files are created relative to the Java process that starts the Oracle WebLogic Server. Request Encoding Accept the default UTF-8 as the character set encoding for requests in SFTP transports. Scan Subdirectories Select this check box to recursively scan all directories Sort By Arrival Select this check box to deliver events in the order of arrival. Timeout Enter the socket timeout interval, in seconds, before the connection is dropped. If you enter 0, there is no timeout. The default value is 60. Retry Count Specify the number of retries for SFTP connection failures. 3.1.23 SOA-DIRECT Transport Configuration Page (Business Services) Table 3–23 describes the transport-specific configuration options for the SOA-DIRECT transport. Table 3–23 SOA-DIRECT Transport Configuration Property Description JNDI Service Account Optional. Specifies the security credentials for the JNDI lookup of the target SOA service. The service account must be static. Click Browse and select a service account. If you do not specify a service account, an anonymous subject is used. 3-36 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 157. Protocol-Specific Transport Configuration Pages Table 3–23 (Cont.) SOA-DIRECT Transport Configuration Property Description Role Required. Identifies the communication pattern the service uses. Select one of the following options: ■ Synchronous Client (default) – In this role, because there is no asynchronous callback, the Callback Proxy option is disabled. The WS-Addressing Version option is also disabled. ■ Asynchronous Client – In this role, because asynchronous callback is usually required, you can identify a Callback Proxy, and you must select a WS-Addressing Version. The asynchronous option is enabled only when the WSDL service is of type SOAP. ■ Service Callback – This role is for returning the asynchronous callback to an SOA service after an external service invocation. There is no load balancing or failover for Callback services. Callback Proxy Optional. Enabled only for the Asynchronous Client role. This option lets you specify the proxy service that receives callbacks. When you select a callback proxy, if no WS-Addressing is provided by the request or the proxy service pipeline, Oracle Service Bus automatically populates the ReplyTo property in the SOAP header. You must select a WSDL proxy service that uses the SB transport (for RMI), and the callback proxy service must understand WS-Addressing. WS-Addressing properties that are sent in the request or set in the proxy service pipeline are used instead of the callback proxy you set in this option. If you do not specify a Callback Proxy, and the request does not contain ReplyTo properties, you must provide ReplyTo properties in the SOAP header through the proxy service pipeline. Fault Proxy This option is not currently supported. You must configure your callback services to handle faults in an asynchronous pattern. WS-Addressing Version Required. Enabled only for the Asynchronous Client role. Specify the default WS-Addressing version to use when no WS-Addressing is provided in the request or the proxy service pipeline. WS-Addressing properties that are sent in the request or set in the proxy service pipeline are used instead of the WS-Addressing version you set in this option. For WS-Addressing version mismatches between environments, perform any necessary transformations in the proxy service pipeline. Transport Configuration 3-37
  • 158. Protocol-Specific Transport Configuration Pages Table 3–23 (Cont.) SOA-DIRECT Transport Configuration Property Description Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=C NFGD112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=O SBAG1428 Pass Caller’s Subject Optional. Select this option to have Oracle Service Bus pass the authenticated subject from the proxy service when invoking the SOA service. The Invocation Service Account option, an alternative to Pass Caller’s Subject, is disabled when you select this option. Note: Make sure that domain trust is enabled between client and target server if they are in different domains. For more information, see "Important Information Regarding Cross-Domain Security Support" in Oracle Fusion Middleware Securing Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=SECM G403. Invocation Service Account Optional. Alternative to Pass Caller’s Subject, which lets you specify custom security credentials by selecting a service account for RMI invocation. You can specify any type of service account (Pass Through, Static, Mapping). Click Browse and select a service account. If you do not specify a service account, an anonymous subject is used. 3.1.24 Tuxedo Transport Configuration Page (Business Services) Use this page to configure transport settings for a proxy service using the Tuxedo transport protocol. For more information about the Tuxedo transport, see "Tuxedo Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1200. Table 3–24 Tuxedo Transport Configuration Options for Business Services Option To create or edit... Field Table Enter the name of the class or classes describing the FML/FML32 buffer Classes received. These are used for the FML/FML32-to-XML conversion routines to map field names to element names. This is a space separated list of fully qualified class names. View Classes Enter the name of the class or classes describing the VIEW/VIEW32 buffer received or sent. These are used for the VIEW-to-XML or VIEW32-to-XML conversion routines to map field names to element names. This is a space separated list of fully qualified class names. Classes Jar Select a JAR Resource that contains a JAR file with the FML/FML32 or VIEW/VIEW32 classes necessary for this endpoint operation. 3-38 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 159. Protocol-Specific Transport Configuration Pages Table 3–24 (Cont.) Tuxedo Transport Configuration Options for Business Services Option To create or edit... Remote Access Select a remote access point from the drop down list that is associated with Point(s) the Import. The list contains remote access points configured in WTC. A business service cannot be created if there is no associated remote access point. If no remote access points exist or to create a new one, select New. Enter the corresponding Access Point Name and Network Address in the adjacent fields. Upon validation of the endpoint, the access point is added to the WTC configuration for each WTC server. If no WTC server exists, one is created. If more than one URI has been specified, there will be one remote access point field per URI and the URI displays for informative purposes. If more than one URI exists, each requires a different remote access point. If the URI specified already corresponds to an existing WTC resource, the corresponding remote access point displays, but cannot be modified. Local Access This field appears only when you select New in the Remote Access Point Point(s) field. From the list, select a local access point to be associated with the newly created remote access point. If none exist or to create a new one, select New. Enter the corresponding Local Access Point Name and Local Network Address in the adjacent fields. Request Buffer Select the type of buffer that the remote Tuxedo service will receive. Type Request Buffer This option is enabled if the previous Request Buffer Type value is VIEW Subtype or VIEW32. Enter the buffer subtype with which to associate the request buffer. Response Select this check box to indicate a bidirectional call. If not checked, the Required? underlying tpcall is invoked with TPNOREPLY flag, and a null response is posted asynchronously. Suspend Select this check box to suspend the transaction, if it exists. This is useful Transaction? when the remote service does not support transactions. Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. This Work Manager is used to asynchronously post a null reply in the case of a one-way invocation. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CNFGD112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1428 Request Specify a character set encoding for requests in Tuxedo transports. Encoding Response Specify a character set encoding for responses in Tuxedo transports. Encoding Timeout Specify the maximum amount of time (in seconds) that the transport run time waits for replies; an integer value that is greater than or equal to 0. If not specified or set to zero (default), replies will time out at BLOCKTIME, the maximum number of seconds that the local WTC access point allows for a blocking call. Transport Configuration 3-39
  • 160. Protocol-Specific Transport Configuration Pages Table 3–24 (Cont.) Tuxedo Transport Configuration Options for Business Services Option To create or edit... Transformation Select one of the following: Style ■ None - (default) The order of fields may not be respected. ■ Ordered - The fields are presented with all their occurrences in the correct order. ■ Ordered and Grouped - If the fields are logically structured as records, the fields are ordered by occurrence and grouped by record. 3.1.25 Tuxedo Transport Configuration Page (Proxy Services) Use this page to configure transport settings for a proxy service using the Tuxedo transport protocol. For more information about the Tuxedo transport, see "Tuxedo Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1200. Table 3–25 Tuxedo Transport Configuration Options for Proxy Services Option To create or edit... Field Table Enter the name of the class or classes describing the FML/FML32 buffer Classes received. These are used for the FML/FML32-to-XML conversion routines to map field names to element names. This is a space separated list of fully qualified class names. View Classes Enter the name of the class or classes describing the VIEW/VIEW32 buffer received or sent. These are used for the VIEW-to-XML or VIEW32-to-XML conversion routines to map field names to element names. This is a space separated list of fully qualified class names. X_C_TYPE and X_COMMON Tuxedo buffer types are handled in the same manner as VIEW/VIEW32 buffers. If an incoming request contains a VIEW, then the corresponding VIEW class should be specified in the Oracle Service Bus CLASSPATH. Classes Jar Select a JAR resource that contains a JAR file with the FML/FML32 or VIEW/VIEW32 classes necessary for this endpoint operation. Local Access Select a local access point from the list that is associated with the export. Point The list contains local access points configured in WTC. A proxy service cannot be created if there is not an associated local access point. If no local access points exist or to create a new one, select New. Enter the corresponding Local Access Point Name and Local Network Address in the adjacent fields. Upon validation of the endpoint, the access point is added to the WTC configuration for each WTC server. If no WTC server exists, one is created. You can enter an existing access point name after selecting the New option. This causes the existing information to be updated with the new parameters. You can change only the host name and port number. 3-40 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 161. Protocol-Specific Transport Configuration Pages Table 3–25 (Cont.) Tuxedo Transport Configuration Options for Proxy Services Option To create or edit... Remote Access This field appears only when you select New in the Local Access Point Point field. From the list, select a remote access point to be associated with the newly created local access point. If none exist or to create a new one, select New. Enter the corresponding Access Point Name and Network Address in the adjacent fields. You can enter an existing access point name after selecting the New option. This causes the existing information to be updated with the new parameters. You can change only the host name and port number. The remote access point will also be the authentication principal for the WTC connection for inbound requests. Optionally, you can create a user with the same access point ID in the default security realm to allow incoming calls. To do so, select Yes from the Create User? list. The password will be randomly generated using a temporary variable to avoid security issues. Reply Buffer This option is available only if the Response Required? field is selected. Type Select the type of buffer that the remote Tuxedo client will receive. Reply Buffer This option is available only when the Response Required? option is Subtype selected and the Reply Buffer Type value is VIEW or VIEW32. Enter the buffer subtype with which to associate the reply buffer. Response Select this check box if this service is expected to send a response. Required? The default status is that this option is selected. This option is cleared and the unavailable if the service type is Messaging Service and the response message type is None. Request Specify a character set encoding for requests in Tuxedo transports. Encoding Response Specify a character set encoding for responses in Tuxedo transports. Encoding Transformation Select one of the following: Style ■ None - (default) The order of fields may not be respected. ■ Ordered - The fields are presented with all their occurrences in the correct order. ■ Ordered and Grouped - If the fields are logically structured as records, the fields are ordered by occurrence and grouped by record. 3.1.26 WS Transport Configuration Page (Business Services) Use this page to configure transport settings for a proxy service using the WS transport protocol. For more information about the WS transport, see "WS Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1083. Transport Configuration 3-41
  • 162. Protocol-Specific Transport Configuration Pages Table 3–26 WS Transport Configuration Options for Business Services Option To create or edit... Response Timeout Enter the number of seconds to wait for a response. Leaving this field blank indicates that there is no response timeout. The business service will wait for the duration of the sequence timeout configured in the RM policy. If you enter a zero (0) value, there is no timeout; as such, it will never time out. Service Account Enter a service account or click Browse to select one from the list displayed. The service account specifies the credentials to use when there is an HTTP basic authentication policy on this service. Queue Error Messages Select the check box to enable sending error messages to the configured error queue. Error Queue URI This option is available only when the Queue Error Messages check box is selected. Enter the URI of JMS queue for storing error messages, in the following format: jms://host:port/connFactoryJndiName/queueJndiName Note: While Oracle WebLogic Server allows forward slashes in JNDI names, such as "myqueues/myqueue", JNDI names with forward slashes interfere with the URI format required by Oracle Service Bus, and you cannot use those names. To work around this issue, define a JMS foreign server and reference that foreign server in the URI. For more information, see "Configure foreign servers" in the Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help at http://www.oracle.com/pls/as1111/lookup?id=WLACH. JMS Error Queue Service This option is available only when the Queue Error Messages check Account box is selected. Enter a service account or click Browse to select one from the list displayed. The service account specifies the credentials to use for JNDI lookups and sending error messages to the error queue. Use SSL for Error Queue This option is available only when the Queue Error Messages check box is selected. Select the check box to use SSL for connecting to the error queue. 3.1.27 WS Transport Configuration Page (Proxy Services) Use this page to configure transport settings for a proxy service using the WS transport protocol. For more information about the WS transport, see "WS Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1083. 3-42 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 163. Protocol-Specific Transport Configuration Pages Table 3–27 WS Transport Configuration Options for Proxy Services Option To create or edit... Dispatch Policy Select the instance of Oracle WebLogic Server Work Manager that you want to use for the dispatch policy for this endpoint. The default Work Manager is used if no other Work Manager exists. For information about Work Managers, see: ■ "Using Work Managers to Optimize Scheduled Work" in Oracle Fusion Middleware Configuring Server Environments for Oracle WebLogic Server at http://www.oracle.com/pls/as1111/lookup?id=CNFG D112 ■ "Using Work Managers with Oracle Service Bus" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBA G1428 Retry Count The number of times to retry delivery of a message to the pipeline. If an unhandled exception occurs in the request pipeline of a proxy service, the incoming WS transport message will be redelivered to the pipeline up to the number of times specified by the retry count. This value is important for reliably processing WS transport messages. Retry Delay The number of seconds the system pauses before retrying to send a message to the pipeline after an error. Transport Configuration 3-43
  • 164. Protocol-Specific Transport Configuration Pages 3-44 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 165. 4 User Interface Reference 4 This chapter describes all the views, dialogs, wizards, and other user interface objects in the Oracle Service Bus IDE. This chapter includes the following sections: ■ Section 4.1, "Alerts" ■ Section 4.2, "Business Service Configuration" ■ Section 4.3, "Proxy Service Configuration" ■ Section 4.4, "Oracle Service Bus Configurations and Projects" ■ Section 4.5, "Custom Resources" ■ Section 4.6, "Export Wizard" ■ Section 4.7, "Import Wizard" ■ Section 4.8, "JNDI Providers" ■ Section 4.9, "Proxy Servers" ■ Section 4.10, "Message Flow Design Palette" ■ Section 4.11, "Message Flow Editor" ■ Section 4.12, "Modify JAR Dependencies Dialog" ■ Section 4.13, "SMTP Servers" ■ Section 4.14, "UDDI Registry Configuration Page" ■ Section 4.15, "Outline view - Oracle Service Bus" ■ Section 4.16, "Resource Management" ■ Section 4.17, "New Service Key Provider Resource" ■ Section 4.18, "New WS-Policy" ■ Section 4.19, "Service Accounts" ■ Section 4.20, "Expression Editors" ■ Section 4.21, "New XSL Transformation" ■ Section 4.22, "Split-Join User Interface Reference" 4.1 Alerts The following pages are provided for managing alerts: User Interface Reference 4-1
  • 166. Alerts ■ Section 4.1.1, "Alert Destination Editor" ■ Section 4.1.2, "Edit E-mail Recipient Page" ■ Section 4.1.3, "Edit JMS Destination Page" 4.1.1 Alert Destination Editor An alert destination is a destination address for alert notifications in Oracle Service Bus. Use this page to configure an alert destination resource. Table 4–1 Alert Destination Editor Options Option Description Description Enter a description for this alert destination. SNMP Trap If you specify SNMP Trap, alerts are sent as SNMP traps, and can be processed by any third-party enterprise monitoring systems (ESM). Reporting If you specify Reporting, alerts are sent to the Oracle Service Bus Reporting module and can be captured using a custom reporting provider that can developed using the reporting APIs provider by Oracle Service Bus. This allows third-parties to receive and process alerts in custom Java code. Alert Logging If you select Yes, alerts sent to this alert destination are logged to the alert log. Continue in the Edit Alert Destination page. Click Add to add e-mail and JMS recipients to an alert destination. See: ■ Section 4.1.2, "Edit E-mail Recipient Page" ■ Section 4.1.3, "Edit JMS Destination Page" 4.1.2 Edit E-mail Recipient Page Use this page to configure the destination target for an alert sent via e-mail (that is, using the e-mail transport). Table 4–2 E-mail Recipient Options Option Description Mail Recipients Enter an e-mail recipient in the format: mailto:username@hostname You can specify multiple e-mail recipients by entering the user names and hostnames in a comma-separated list. For example, mailto:username@hostname [,username_1@hostname_1]...[,username_n@hostname_n] Only the first mail recipient needs to be prefixed with the text "mailto:". However doing so is optional; the code will add it if it is missing. SMTP Server Select the name of the SMTP server for the outgoing e-mail. This field is not required if Mail Session is selected in the next field. These fields are mutually exclusive; it is an error to configure both. Mail Session Select an available mail session. This field is not required if an SMTP Server is selected in the previous field. These fields are mutually exclusive; it is an error to configure both. 4-2 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 167. Business Service Configuration Table 4–2 (Cont.) E-mail Recipient Options Option Description From Name Provide a sender’s name for the alert notification. This field is optional. From Address Provide a valid e-mail address. This field is required if a value for the From Name field is specified. Reply To Name Provide a name to which a reply may be addressed. This field is optional. Reply To Address Provide an e-mail address to which a reply may be sent. This field is required if a value for the Reply To Name field is specified. Connection Timeout Enter the number of seconds a connection must wait for a response from the server before timing out. The default value is 0. Request Encoding Enter a character set encoding value. The default encoding value is iso-8859-1. 4.1.3 Edit JMS Destination Page Use this page to configure the destination target for an alert sent via JMS (that is, using the JMS transport). Table 4–3 JMS Destination Options Option Description Destination URI Enter a JMS destination URI in the format: jms://host:port/connection_factory/jndi_destination Note: While Oracle WebLogic Server allows forward slashes in JNDI names, such as "myqueues/myqueue", JNDI names with forward slashes interfere with the URI format required by Oracle Service Bus, and you cannot use those names. To work around this issue, define a JMS foreign server and reference that foreign server in the URI. For more information, see "Configure foreign servers" in the Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help at http://www.oracle.com/pls/as1111/lookup?id=WLACH. Destination Type Select Queue or Topic. Message Type Select Bytes or Text. Request Encoding Enter a character set encoding value. The default encoding value is iso-8859-1. 4.2 Business Service Configuration You configure business services in the business service editor after you create the business service. You can view and modify those settings in the Business Service editor: The business service configuration pages are: ■ Section 4.2.1, "Business Service General Configuration Page" ■ Section 4.2.2, "Business Service Message Type Configuration Page" ■ Section 4.2.3, "Business Service SOAP Binding Configuration Page" ■ Section 4.2.4, "Business Service Transport Configuration Page" ■ Section 4.2.5, "Business Service Message Handling Configuration Page" ■ Section 4.2.6, "Business Service - Service Policy Configuration Page" User Interface Reference 4-3
  • 168. Business Service Configuration ■ Section 4.2.7, "Business Service Security Configuration Page" 4.2.1 Business Service General Configuration Page Use the Business Service General Configuration page to specify general configuration settings for a business service. 4.2.1.1 Business Service Editor Options The following table describes the options in the editor: Table 4–4 Business Service Editor Options Option Description Description Enter or modify a description for this service. Service Type (editor This option shows the service type of the business service. You can only) change only some of the properties of some of the service types: ■ WSDL Web Service - Select this option to create a business service based on a WSDL. Then, enter the WSDL name, qualified by its path (for example, myProject/myFolder/myWSDL). Alternatively, click Browse to select a WSDL resource. You can also specify a different WSDL, but by doing so, you are effectively creating a new service and you will have to configure it as if it were a new service. (port or binding) - Enter the name of a port (defined in the WSDL) to describe an actual transport address, or enter the name of a binding (defined in the WSDL) to map to a transport address. If you use Browse to select a WSDL, as described above, the Select a WSDL Definition dialog lists any ports and bindings defined in the WSDL. When you choose a port or a binding on that page, the (port or binding) field is filled with the selected name. ■ Transport Typed Service - Select this option to create a service that uses the EJB, JEJB, or Flow (Split-Join) transport. ■ Messaging Service - Select this option to create a service that exchanges messages of different content-types. These exchanges can be either request/response or one-way. They can also have a response with no request when used with the HTTP ‘GET’ option for the HTTP transport. Unlike Web Services, the content-type of the request and response need not be the same. ■ Any SOAP Service - Select this option to create a SOAP service that does not have an explicitly defined, concrete interface. You can change the SOAP version (SOAP 1.1 or SOAP 1.2) ■ Any XML Service - Select this option to create an XML service that does not have an explicitly defined, concrete interface. HTTP GET is only supported for messaging services and this service type. 4.2.2 Business Service Message Type Configuration Page Use the Business Service Message Type Configuration page to configure message types for a business service whose type is Messaging Service. The binding definition for messaging services consists of configuring the content-types of the messages that are exchanged. The content-type for the response does not need to be the same as for the request; therefore, the response is configured separately (for 4-4 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 169. Business Service Configuration example, the service could accept an MFL message and return an XML acknowledgment receipt). Note: E-mail, File, FTP, or SFTP transport business services whose type is Messaging Service support one-way messaging only; the Response Message Type should be None. If you select an option other than None, the file, ftp, or sftp protocol will not be available on the Transport Configuration page. Table 4–5 Message Type Business Service Options Option Description Request Message Type Select a message type for the request message: ■ None - Select this option if there is no request message (HTTP GET example) ■ Binary - Select this option if the content-type of the message is unknown or not important. ■ Text - Select this option if the message can be restricted to text. ■ MFL - Select this option if the message is a binary document conforming to an MFL definition. Enter the MFL file name (qualified by its path), or click Browse to select a file. You can configure only one MFL file. Note: To support multiple MFL files, define the content as binary or text and use the MFL action in the message flow to convert to XML. ■ XML - Select this option if the message is an XML document. Enter the XML file name (qualified by its path), or click Browse to select a file. Optionally provide some type information by declaring (in the element or type field) the XML schema type of the XML document exchanged. ■ Java - Select this option if a Java Object is being sent in the request. The JMS transport is used for Java Object messages. For more information, see "Sending and Receiving Java Objects in Messages" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSB DV1874. User Interface Reference 4-5
  • 170. Business Service Configuration Table 4–5 (Cont.) Message Type Business Service Options Option Description Response Message Type Select a message type for the response message: ■ None - Select this option if there is no response message. ■ Binary - Select this option if the content-type of the message is unknown or not important. ■ Text - Select this option if the message can be restricted to text. ■ MFL - Select this option if the message is a binary document conforming to an MFL definition. Enter the MFL file name (qualified by its path), or click Browse to select a file. You can configure only one MFL file. Note: To support multiple MFL files, define the content as binary or text and use the MFL action in the message flow to convert to XML. ■ XML - Select this option if the message is an XML document. Enter the XML file name (qualified by its path), or click Browse to select a file. Optionally provide some type information by declaring (in the element or type field) the XML schema type of the XML document exchanged. ■ Java - Select this option if a Java Object is being received in the response. The JMS transport is used for Java Object messages. For more information, see "Sending and Receiving Java Objects in Messages" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSB DV1874. 4.2.3 Business Service SOAP Binding Configuration Page Use Business Service SOAP Binding Configuration page to configure the SOAP Binding for a business service based on a WSDL. Select or deselect Enforce WS-I Compliance to specify whether or not the service is to conform to the Basic Profile defined by the Web Services Interoperability Organization. This option is available for or SOAP 1.1 services only When a service is marked WS-I compliant, checks are performed against the messages sent to and from that service. 4.2.4 Business Service Transport Configuration Page Use the Business Service Transport Configuration page to select, review, or change the service’s transport protocol and to set, review, or change general transport configuration settings. Outbound transport-level security applies to the connections between Oracle Service Bus proxy services and business services. For more information about transport-level security, see "Configuring Transport-Level Security" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1557. 4-6 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 171. Business Service Configuration Table 4–6 Business Service Transport Configuration Options Option Description Protocol Select a transport protocol from the list. The protocols available differ, depending on the service type: ■ WSDL Web Service: soa-direct, bpel-10g, dsp, http, jca, jms, sb, soa-direct, ws ■ Transport-Typed Service: ejb, flow, jejb ■ Messaging Service: email, file, ftp, http, jms, mq (if available), sftp, tuxedo ■ Any SOAP Service: dsp, http, jms, sb ■ Any XML Service: dsp, email, file, ftp, http, jms, mq (if available), sb, sftp, tuxedo Load Select one of these load-balancing algorithms: Balancing ■ Round-robin - This algorithm dynamically orders the URLs that you enter in the Endpoint Algorithm URI field for this business service. If the first one fails, it tries the next one, and so on until the retry count is exhausted. For every new message, there is a new order of URLs. ■ Random - This algorithm randomly orders the list of URLs that you enter in the Endpoint URI field for this business service. If the first one fails, it tries the next one, and so on until the retry count is exhausted. ■ Random-weighted - This algorithm randomly orders the list of URLs that you enter in the Endpoint URI field for this business service, but some are retried more than others based on the value you enter in the Weight field. ■ None - This algorithm orders the list of URLs that you enter in the Endpoint URI field for this business service from top to bottom. User Interface Reference 4-7
  • 172. Business Service Configuration Table 4–6 (Cont.) Business Service Transport Configuration Options Option Description Endpoint URI Enter an endpoint URL in the format based on the transport protocol you selected in the Protocol field. Following are descriptions of the URI formats for each transport. Optional URI elements are shown in brackets []. For more information on transport URIs, see the respective transport chapters in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus. ■ bpel-10g – protocol://host[:port] [/protocol-path]/domain/process[/version[/partnerlink/role]] ■ dsp - t3://dsp-ip-address:port/dsp-app-name ■ ejb - ejb:jndi_provider_name:ejb_jndi_name In the URI, jndi_provider_name is the name of the Oracle Service Bus JNDI provider resource, and ejb_jndi_name is the JNDI name in the JNDI server for the EJB. If the JNDI provider is located on the same server, the JNDI provider need not be specified. The URI then would be ejb::ejb_jndi_name Note: If your EJBs are running on IBM WebSphere, ejb_jndi_name must be in the following format: cell/nodes/node_name/servers/server_name/ejb_jndi_name or cell/clusters/cluster_name/ejb_jndi_name as described in the IBM WebSphere documentation at http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic =/com.ibm.websphere.nd.iseries.doc/info/iseriesnd/ae/rnam_example_ prop3.html ■ email - You can enter multiple endpoint URIs in any combination of the following formats: mailto:name@domain_name.com mailto:name@domain_name.com?smtp=smtp_server_resource mailto:name@domain_name.com?mailsession=jndi_mail_session ■ file - file:///root-dir/dir1 ■ ftp - ftp://hostname:port/directory ■ http - http://host:port/someService The HTTP transport supports both HTTP and HTTPS endpoints. ■ jca - jca://<resource_adapter_jndi> ■ jejb - jndi_provider_name:ejb_jndi_name In the URI, jndi_provider_name is the name of the Oracle Service Bus JNDI provider resource, and ejb_jndi_name is the JNDI name in the JNDI server for the EJB. EJB 2.1 example: jejb:myProvider:osb.jejb.myJejbBiz21 EJB 3.0 example: jejb:myProvider:myBiz31#osb.jejb.myJejbBiz Note: If your EJBs are running on IBM WebSphere, ejb_jndi_name must be in the following format: cell/nodes/node_name/servers/server_name/ejb_jndi_name or cell/clusters/cluster_name/ejb_jndi_name as described in the IBM WebSphere documentation at http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic =/com.ibm.websphere.nd.iseries.doc/info/iseriesnd/ae/rnam_example_ prop3.html 4-8 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 173. Business Service Configuration Table 4–6 (Cont.) Business Service Transport Configuration Options Option Description Endpoint URI ■ jms - jms://host:port[,host:port]*/connection_factory/jndi_destination (continued) To target a JMS destination to multiple servers, use the following URI format: jms://host1:port,host2:port/connection_factory/jndi_destination You can also omit host and port from the URI to have the lookup performed on the local machine. For example: jms:///connection_factory/jndi_destination Note: While Oracle WebLogic Server allows forward slashes in JNDI names, such as "myqueues/myqueue", JNDI names with forward slashes interfere with the URI format required by Oracle Service Bus, and you cannot use those names. To work around this issue, define a JMS foreign server and reference that foreign server in the URI. For more information, see "Configure foreign servers" in the Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help at http://www.oracle.com/pls/as1111/lookup?id=WLACH. In a cluster: The host names in the JMS URI must exactly match the host names of the cluster servers as they are configured in Oracle WebLogic Server. ■ mq - mq://local-queue-name?conn=mq-connection-resource-ref local-queue-name is the name of the MQ queue from which the business service reads messages. mq-connection-resource-ref is the path (project/folder) and name of the MQ connection resource; for example, default/my_MQconnection. Note: The Endpoint URI cannot contain spaces, so do not create MQ Connection resources or projects/folders with spaces in the names. To make the MQ transport available in Oracle Service Bus, see "MQ Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117. ■ sb - sb://<jndi_provider_name/>service_name jndi_provider_name (optional) is the name of the Oracle Service Bus JNDI provider resource. When omitted, the default context is used. service_name is a target service and corresponds to the remote proxy service URI. ■ sftp - sftp://hostname:port/directory ■ soa-direct – [protocol://authority]/default/compositeName[!versionNumber[*label]]/ serviceName The protocol and authority are optional when the SOA services are co-located on the same server as Oracle Service Bus. ■ tuxedo - tuxedo:resourcename/remotename tuxedo-queue:sendQSpace/sendQName[/[rcvQspace:]rvcQname][/failureQnam e] In the URI, resourcename corresponds to a WTC Import name and remotename corresponds to the service name exported by the remote Tuxedo domain. The URI resourcename is required, and the remotename is optional. If more than one URI is specified, you must have unique resource names for the endpoints. If no remote name is specified, its value is the value of the resource name. If no remote name is entered or if remote and resource name are the same, only one URI is allowed. In this case resource name and remote name have the same value. This allows already defined WTC Imports to make use of WTC load-balancing and failover. ■ ws - http://host:port/someService Note: Oracle Service Bus no longer supports duplicate endpoint URIs within the same business service. Click Add to add one or more additional URIs. At run time, the URLs are selected based on the load balancing algorithm you selected in the Load Balancing Algorithm field. If you selected Random-weighted in the Load Balancing Algorithm field, you can also enter a weight in the Endpoint URI field. The default is 1. If you have multiple endpoint defined, and you selected None in User Interface Reference 4-9 the Load Balancing Algorithm field, the order of endpoints is significant. You can reorder the endpoints using the Up and Down buttons.
  • 174. Business Service Configuration Table 4–6 (Cont.) Business Service Transport Configuration Options Option Description Retry count In case of delivery failure when sending outbound requests, specify the number of times to retry individual URL endpoints; in other words, the number of failover attempts. For example, a business service has one configured URI (U1) and the number of retries is set to 3. If U1 fails on the first attempt, the system retries the U1 endpoint 3 more times. If a business service has 2 configured URIs (U1 and U2) and a retry count of 3, if the first attempt (for example, to U1) fails, the system tries (fails over to) the next URI (U2). If that also fails, the system makes two more attempts, once to U1 and once to U2. Retry Specify the number of seconds the system pauses before iterating over all the endpoint URIs in the Iteration list again. Interval For example, a business service has two configured URIs (U1 and U2) and a retry count of 2 with a retry iteration interval of 5 seconds. If the first attempt (to U1) fails, the system tries U2 right away. But if U2 also fails, the system waits for 5 seconds and retries U1 once more. Retry Select Yes or No. Application In case of delivery failure when sending outbound requests, specify whether or not to retry Errors endpoint URIs based on application errors (for example, a SOAP fault). 4.2.5 Business Service Message Handling Configuration Page Use the Business Service Message Handling Configuration page to specify how Oracle Service Bus is to encode outbound messages sent by business services and whether Oracle Service Bus should stream attachments in outbound response messages instead of buffering the attachment contents in memory. Using this page, you can enable the business service to encode outbound messages in MTOM/XOP format. SOAP Message Transmission Optimization Mechanism (MTOM) is a method of sending binary data to and from Web services. MTOM uses XML-binary Optimized Packaging (XOP) to transfer the binary data. Using this page, you can also enable the business service to store attachments in outbound response messages to a disk file and then process the data in a streaming fashion without buffering the attachment contents in memory. This enables the business service to process large attachments robustly and efficiently. 4-10 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 175. Business Service Configuration Table 4–7 Business Service Message Handling Options Option Description XOP/MTOM Support Oracle Service Bus supports XOP/MTOM using the following transports: ■ HTTP/S ■ Local ■ SB Select the Enabled check box to enable the business service to encode outbound messages in MTOM/XOP format. Note that this option is disabled for imported business services that are based on previous release configurations. If XOP/MTOM Support is enabled, select how to handle binary data in the $header and $body message context variables from among the following options: ■ Include Binary Data by Reference: (Default) In an outbound response message, replace xop:Include elements with ctx:binary-content elements when setting up the $body message context variable. ■ Include Binary Data by Value: In an outbound response message, replace xop:Include elements with base64-encoded text versions of corresponding binary data when setting up the $body message context variable. Note that if XOP/MTOM Support is enabled for a business service, it is not required that every outbound message be in the MTOM format. Instead, this setting specifies that the business service is capable of handling an MTOM payload. Since Oracle Service Bus does not support a combination of MTOM and SwA, the system issues a runtime error when Oracle Service Bus attempts to dispatch an outbound request to a business service and the business service is both MTOM/XOP-enabled and the $attachments message context variable is not null. Attachments Oracle Service Bus supports streaming MIME attachments using the HTTP/S transport. Select the Page Attachments to Disk check box to enable the business service to stream attachments in outbound response messages. Note that if you enable XOP/MTOM Support, the Attachments option is only available if you choose the Include Binary Data by Reference option under XOP/MTOM Support. Note also that payloads that contain attachments must conform to RFC 822. Specifically, lines containing Internet headers need to be terminated with CRLF (carriage return line feed). User Interface Reference 4-11
  • 176. Business Service Configuration Table 4–7 (Cont.) Business Service Message Handling Options Option Description Result Caching If you invoke business services whose results seldom change, result caching improves business service performance by returning cached results to the client instead of invoking an external service directly. To use result caching for business services, you must first enable it globally, as described in "Enabling Result Caching Globally" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1 294. Configure result caching in the Advanced Settings section using the following guidelines: ■ Select the Supported option. When you do, the remaining fields are enabled. ■ Cache Token Expression – Oracle Service Bus uses a cache key to identify cached results for retrieval or population, and the cache token portion of the cache key provides the unique identifier. You can use an expression—the Cache Token Expression—to generate the cache token part of the cache key to uniquely identify a cached result for the business service. Click Expression to build the expression. To generate the cache token from a value in the request, use an expression that gets the value from the message $body, $header, $operation, or $transportMetaData ($outbound/ctx:transport/ctx:request or $outbound/ctx:transport/ctx:response). For example, you can populate the cache-token from a customer ID in the $body. In the Service Result Caching Expression builder, you can also select the namespace for the expression in the Namespace Definitions tab. The Cache Token Expression must resolve to a String or the value of simple content, such as an attribute or an element with no child elements. If the expression evaluates to null or causes an error, results are not cached. Note: You can also generate the cache token from the request (in the proxy service message flow that invokes the business service), without setting a Cache Token Expression in the business service configuration. To do this, include a value in $outbound/ctx:transport/ctx:request/ctx:cache-token in the proxy service pipeline. Any value in that cache-token overrides the Cache Token Expression in the business service configuration. 4-12 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 177. Business Service Configuration Table 4–7 (Cont.) Business Service Message Handling Options Option Description Result Caching ■ Expiration Time – Expiration Time, or time-to-live (TTL), continued determines when an entry in the business service’s result cache is flushed. A duration of zero (0) means no expiration. A negative duration means do not cache. Select one of the following: Use Default – The default is the expiry-delay value in DOMAIN_ HOME/config/osb/coherence/osb-coherence-config.xml. The default is 5 minutes. Duration – Set a specific length of time. XQuery Expression – You can enter an XQuery expression that gets an Expiration Time value from the request or response. Select Request or Response. To generate the expiration time from a value in the request or response, use an expression that gets the value from the $body, $header, $operation, or $transportMetaData ($outbound/ctx:transport/ctx:request or $outbound/ctx:transport/ctx:response). For example, use a value you have set in the Cache-Control HTTP header. In the Caching Expression builder, you can also select the namespace for the expression using the Namespace Definitions tab. Expiration Time must resolve to an Integer (representing seconds), an XQuery dayTimeDuration (XSD type), or the integer value of simple content representing seconds, such as an attribute or an element with no child elements. If the expression evaluates to null or causes an error, results are not cached. Note: You can also generate the expiration from the request, without setting an Expiration Time in the business service configuration. To do this, include a value in $outbound/ctx:transport/ctx:request/ctx:cache-ttl in the proxy service pipeline. Any value in the cache-ttl element overrides the Expiration Time in the business service configuration. For a more detailed description of result caching, see “Improving Performance by Caching Business Service Results” in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1 70. 4.2.6 Business Service - Service Policy Configuration Page Use the Business Service - Service Policy Configuration page to configure service policy settings for a business service. Note: The policy binding models are mutually exclusive. You must use only one type of policy in a service. If you bind policies directly to the service, all WSDL-based policies are ignored. User Interface Reference 4-13
  • 178. Business Service Configuration Table 4–8 Business Service Service Policy Configuration Options Option Description From OWSM Policy Policies are defined in the central Oracle Web Services Manager Store Policy Store managed by Oracle Enterprise Manager. These policies support WS-Security 1.0/1.1, SAML 1.1/2.0, KerberosToken Profile, and other industry standards. To add Oracle Web Services Manager policies to services in the IDE, you must be connected to a running server that has Oracle Web Services Manager enabled. For information, see "Securing Oracle Service Bus with Oracle Web Services Manager" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV16 81. Note: When working with multiple servers in Eclipse, Eclipse chooses the first valid Oracle Service Bus server in the list of servers for retrieval of Oracle Web Services Manager policies. Use category filtering to help you find the policy you want. For business services, only client-side policies are displayed. If a WSDL used to create a business service contains embedded standard WS-Security policies, Oracle Service Bus throws an error and displays a conflict. To resolve this conflict, replace the embedded WSDL policies with compatible Oracle Web Services Manager policies by selecting From OWSM Policy Store and clicking Add Compatible Policies. Oracle Service Bus makes a best-effort attempt at finding the closest matching policy from the Oracle Web Services Manager policy store based on the standard policy embedded in the WSDL. The algorithm may return zero, one, or multiple matching policies. If after clicking Add Compatible Policies Oracle Service Bus finds no compatible policies, click Add and select the appropriate Oracle Web Services Manager policies. If Oracle Service Bus returns more than one compatible policy, delete the policies you do not want to use. After adding policies, you can provide overrides on the Security page. From WSDL Select this option if the service policy is associated with the WSDL upon which the service is based. These policies support WS-Security 1.0, SAML 1.1, and other industry standards. Note: If you receive an error in the business service configuration about WS-Security Policies not supported by Oracle Service Bus, use the From OWSM Policy Store option to replace the embedded WSDL policies with compatible OWSM policies. From Pre-defined Policy Select this option to add service-level policies, operation-level or WS-Policy Resource policies (in which case the policy applies to both the request and response messages), request policies, and response policies directly. Policies are either pre-defined in Oracle WebLogic Server or user-defined in Oracle Service Bus with a WS-Policy resource. These policies support WS-Security 1.0, SAML 1.1, and other industry standards. 4.2.7 Business Service Security Configuration Page Use the Security configuration page to provide overrides to security policies used in the business service. 4-14 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 179. Proxy Service Configuration Table 4–9 Business Service Security Configuration Options Option Description Service Account Click Browse and select a service account from the list displayed. If no service account is specified, an anonymous subject is used. Note: This option is not available for services that use Oracle Web Services Manager policies, because user credentials are provided by override keys. For more information, see Section 4.19, "Service Accounts". Policy Overrides For OWSM policies, provide any desired overrides that are allowed. For more information, see Table 4–8 and "Securing Oracle Service Bus with Oracle Web Services Manager" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBD V1681. 4.3 Proxy Service Configuration You configure new proxy services in the proxy service editor after you create a new proxy service. You can view and modify those settings in the Proxy Service editor: The proxy service configuration pages are: ■ Section 4.3.1, "Proxy Service General Configuration Page" ■ Section 4.3.2, "Proxy Service Message Type Configuration Page" ■ Section 4.3.3, "Proxy Service Operation Selection Configuration Page" ■ Section 4.3.4, "Proxy Service Message Handling Configuration Page" ■ Section 4.3.5, "Proxy Service SOAP Binding Configuration Page" ■ Section 4.3.6, "Proxy Service Transport Configuration Page" ■ Section 4.3.7, "Proxy Service - Service Policy Configuration Page" ■ Section 4.3.8, "Proxy Service Security Configuration Page" 4.3.1 Proxy Service General Configuration Page Use the Proxy Service General Configuration page to set or modify general configuration properties for a proxy service. 4.3.1.1 Proxy Service Editor Options The following table describes the options in the editor: Table 4–10 Proxy Service Editor Options Option Description Description Enter a description for this proxy service. User Interface Reference 4-15
  • 180. Proxy Service Configuration Table 4–10 (Cont.) Proxy Service Editor Options Option Description Service Type (editor This option shows the service type of the proxy service. You can only) change only some of the properties of some of the service types: ■ WSDL Web Service - Select this option to create a proxy service based on a WSDL. Then enter the WSDL name, qualified by its path (for example, myProject/myFolder/myWSDL). Alternatively, click Browse to select a WSDL resource. You can enter (or click Browse to select) a different port or binding from the same WSDL. You can also specify a different WSDL, but by doing so, you are effectively creating a new service and you will have to configure it as if it were a new service. (port or binding) - Enter the name of a port (defined in the WSDL) to describe an actual transport address, or enter the name of a binding (defined in the WSDL) to map to a transport address. If you use Browse to select a WSDL, the Select a WSDL Definition dialog lists any defined ports and bindings. Note: If you are going to use the SOAP Body Type for operations, ensure that the WSDL does not have two operations with the same input message. The SOAP Body Type operation cannot be uniquely identified by inspecting the input message. ■ Transport Typed Service - Select this option to create a JEJB proxy service. ■ Messaging Service - Select this option to create a service that can receive messages of one data type and respond with messages of a different data type. These exchanges can be either request/response or one-way. (HTTP GET is supported only in the Any XML Service and Messaging Service service types.) ■ Any SOAP Service - Select this option to create a SOAP service that does not have an explicitly defined, concrete interface. You can change the SOAP version (SOAP 1.1 or SOAP 1.2) ■ Any XML Service - Select this option to create an XML service that does not have an explicitly defined, concrete interface. (HTTP GET is supported only in the Any XML Service and Messaging Service service types.) 4.3.2 Proxy Service Message Type Configuration Page Use Proxy Service Message Type Configuration page to configure message types for a proxy service whose type is Messaging Service. The binding definition for messaging services consists of configuring the content-types of the messages that are exchanged. The content-type for the response does not have to be the same as for the request; therefore, the response is configured separately (for example, the service could accept an MFL message and return an XML acknowledgment receipt). 4-16 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 181. Proxy Service Configuration Note: E-mail, File, FTP, or SFTP transport proxy services whose type is Messaging Service support one-way messaging only; the Response Message Type should be None. If you select an option other than None, the E-mail, File, FTP, or SFTP protocols will not be available on the Transport Configuration page. Table 4–11 Proxy Service Message Type Options Option Description Request Message Type Select a message type for the request message: ■ None - Select this option if there is no request message. ■ Binary - Select this option if the content-type of the message is unknown or not important. ■ Text - Select this option if the message can be restricted to text. ■ MFL - Select this option if the message is a binary document conforming to an MFL definition. Enter the MFL file name (qualified by its path), or click Browse to select a file. You can configure only one MFL file. Note: To support multiple MFL files, define the content as binary or text and use the MFL action in the message flow to convert to XML. ■ XML - Select this option if the message is an XML document. Enter the XML file name (qualified by its path), or click Browse to select a file. Optionally provide some type information by declaring (in the element or type field) the XML schema type of the XML document exchanged. ■ Java - Select this option if a Java Object is being sent in the request. The JMS transport is used for Java Object messages. For more information, see "Sending and Receiving Java Objects in Messages" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSB DV1874. User Interface Reference 4-17
  • 182. Proxy Service Configuration Table 4–11 (Cont.) Proxy Service Message Type Options Option Description Response Message Type Select a message type for the response message: ■ None - Select this option if there is no response message. Note: If you are using a Reply action in the pipeline to propagate success or failure messages from a service to the calling client, select an option other than None. The None option blocks the reply. ■ Binary - Select this option if the content-type of the message is unknown or not important. ■ Text - Select this option if the message can be restricted to text. ■ MFL - Select this option if the message is a binary document conforming to an MFL definition. Enter the MFL file name (qualified by its path), or click Browse to select a file. You can configure only one MFL file. Note: To support multiple MFL files, define the content as binary or text and use the MFL action in the message flow to convert to XML. ■ XML - Select this option if the message is an XML document. Enter the XML file name (qualified by its path), or click Browse to select a file. Optionally provide some type information by declaring (in the element or type field) the XML schema type of the XML document exchanged. ■ Java - Select this option if a Java Object is being received in the response. The JMS transport is used for Java Object messages. For more information, see "Sending and Receiving Java Objects in Messages" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSB DV1874. 4.3.3 Proxy Service Operation Selection Configuration Page Use Proxy Service Operation Selection Configuration page to enforce WS-I compliance (for SOAP 1.1 services only) and select the selection algorithm to use to determine the operation called by this proxy service. This option is only available for SOAP or XML services defined from a WSDL. The WSDL specification defines a default algorithm to compute which operation is called based on the type of the SOAP message received. However, there are cases (for example, performance issues, signature/encryption issues, or the default algorithm is not applicable) when you may need to select the operation based on other means. Oracle Service Bus provides additional algorithms. Each of them follows the same pattern and are based on the evaluation of an expression to get a value that is then used to lookup the corresponding operation in a static table. Oracle Service Bus is generally very forgiving if an inbound message is either missing data such that the operation cannot be determined, or has data that does not correspond to a valid operation. Both of these conditions result in $operation being empty. Rather than reject all such messages, Oracle Service Bus does not initialize the operation variable in the context but otherwise continues to process the message. However, security requirements are enforced if the proxy service is WSDL-based and at least one of the following conditions is true: 4-18 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 183. Proxy Service Configuration ■ The WSDL has a WS-Security policy and the proxy is an active intermediary. ■ The proxy has message-level custom authentication (either custom token or username/password). If these conditions are met, then there is a runtime check to make sure the operation selection algorithm returns a valid operation name. If the operation selection returns null or an operation that is not in the WSDL, then the message is rejected and an error is raised. Table 4–12 Proxy Service Operation Selection Options Option Description Enforce WS-I Select or deselect this check box to specify whether or not the Compliance service is to conform to the Basic Profile defined by the Web Services Interoperability Organization. This option is available for or SOAP 1.1 services only When a service is marked WS-I compliant, checks are performed against the messages sent to and from that service. For proxies, checks are performed against request messages received by the proxy. For invoked services (i.e. services invoked by a proxy via service callout action or route node), checks are performed against the response messages received from those services. Note that it is the WS-I compliance property of the invoked service and not the proxy that determines whether or not checks are performed against messages received from the invoked service. If you specify WS-I compliance testing for an invoked service, the message flow generates a fault for response errors. User Interface Reference 4-19
  • 184. Proxy Service Configuration Table 4–12 (Cont.) Proxy Service Operation Selection Options Option Description Selection Algorithm Select one of the following and perform any required additional steps: ■ Transport Header - Select this algorithm to define the transport header that contains the lookup value. Then: ■ In the Header Name field, enter the transport header that extracts the value used as a key to select the operation being invoked. ■ Under the Operation Mapping field, specify the value for each operation in the Value field. The value is used as the key of the operation. ■ SOAPAction Header - Select this algorithm to specify that operation mapping be done automatically from the WSDL associated with this proxy service. ■ WS-Addressing - Select this algorithm to specify that the lookup value is contained by the WS-Addressing Action tag located in the SOAP headers of the SOAP message. Then, under the Operation Mapping field, specify the value for each operation in the Value field. The value is used as the key of the operation. ■ SOAP Header - Select this algorithm to define an XPath expression to be evaluated against the SOAP headers. This allows you to get the lookup value. Then: ■ In the XPath Expression field, specify the XPath expression that extracts the value used as a key to select the operation being invoked. ■ In the Operation Mapping field, specify the value for each operation in the Value field. The value is used as the key of the operation. ■ SOAP Body Type - This is the default algorithm defined by the WSDL specification to compute which operation is called based on the type of the SOAP message received. If the proxy service is configured for a Web Service security pass-through scenario with an encrypted body, you cannot select this algorithm. A similar caveat applies to pass-through encrypted SOAP headers. If you have a WSDL that has two operations with the same input message, do not select this algorithm for operations, because the operation cannot be uniquely identified by inspecting the input message. ■ Payload Type - Available only for XML services based on a WSDL port or WSDL binding. Header Name This option is available only when the Selection Algorithm option is set to Transport Header. Enter the transport header that extracts the value used as a key to select the operation being invoked. XPath Expression This option is available only when the Selection Algorithm option is set to SOAPHeader. Specify the XPath expression that extracts the value used as a key to select the operation being invoked. Operation Mapping This option is available only when the Selection Algorithm option is set to Transport Header, WS-Addressing, or SOAP Body Type. Specify the value for each operation in the Value field. The value is used as the key of the operation. 4-20 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 185. Proxy Service Configuration 4.3.4 Proxy Service Message Handling Configuration Page Use the Proxy Service Message Handling Configuration page to specify different aspects of message handling, as described in Table 4–13. Table 4–13 Proxy Service Message Handling Options Option Description Transaction Required Select this option to ensure Oracle Service Bus executes the proxy service message flow in the context of a transaction. If a global transaction already exists, the transport provider propagates it in the request (even if you do not select this option). If no global transaction exists, the message flow run time starts a transaction. If the message flow run time starts a transaction, the transaction context begins before the service configuration is validated or run (for example, security checking or WS-I validation), and before message flow execution, ensuring that all processing and execution occurs in the transaction context. If the message flow run time starts a transaction, quality of service is exactly-once. However, if Service Callouts or Publish actions have the outbound quality of service parameter set to best-effort (the default), Oracle Service Bus executes those actions outside of the transaction context. To have Oracle Service Bus execute those actions in the same request transaction context, set quality of service on those actions to exactly-once. The service maintains its messaging pattern (synchronous, asynchronous, one-way) regardless of the setting on this option. For transaction timeouts, the global transaction timeout value configured in the Oracle WebLogic Server Console applies. Exceptions in Transactions Oracle Service Bus invokes the system error handler for failed transactions. You cannot catch failed transaction exceptions in a user-configured error handler. For synchronous patterns, a transaction exception is returned through the response. For asynchronous patterns, where the transaction is designed to be committed in the request, the exception is sent back on the request thread. Note that in asynchronous patterns, an error in the response that occurs after transaction committal in the request does not affect the transaction. Same Transaction for This option applies only to one-way and asynchronous messaging Response patterns. If you select this option, Oracle Service Bus propagates the transaction context from the request thread to the response thread. If you select this option, the message pattern becomes synchronous automatically, regardless of the initial message pattern setting (such as asynchronous or one-way). You would not use this option, for example, if the business service in the request required a transaction committal before sending the response, such as in a one-way pattern. For transaction timeouts, the global transaction timeout value configured in the Oracle WebLogic Server Console applies. User Interface Reference 4-21
  • 186. Proxy Service Configuration Table 4–13 (Cont.) Proxy Service Message Handling Options Option Description Content Streaming Select this option to stream message content rather than store it in memory. Select the Enabled check box and choose the following: ■ Whether to buffer the intermediate content in memory (Memory Buffer) or to a disk file (Disk Buffer) ■ Whether to enable Compression For more information, see "Streaming body Content" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG314 . 4-22 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 187. Proxy Service Configuration Table 4–13 (Cont.) Proxy Service Message Handling Options Option Description XOP/MTOM Support SOAP Message Transmission Optimization Mechanism (MTOM) is a method of sending binary data to and from Web services. MTOM uses XML-binary Optimized Packaging (XOP) to transfer the binary data. Use this option to decode and parse inbound messages in MTOM/XOP format and to send responses using the MTOM/XOP format, when appropriate. Oracle Service Bus supports XOP/MTOM using the following transports: ■ HTTP/S ■ Local ■ SB Select the Enabled check box to enable the proxy service to decode and parse inbound messages in MTOM/XOP format and to send responses using the MTOM/XOP format, when appropriate. Note that this option is disabled for imported proxy services that are based on previous release configurations. If XOP/MTOM Support is enabled, select how to handle binary data in the $header and $body message context variables from among the following options: ■ Include Binary Data by Reference: (Default) In an inbound request message, replace xop:Include elements with ctx:binary-content elements when setting up the $header and $body message context variables. ■ Include Binary Data by Value: In an inbound request message, replace xop:Include elements with base64-encoded text versions of corresponding binary data when setting up the $header and $body message context variables. Use Include Binary Data by Reference when you need direct access to binary data, for example to pass data to a Java callout or Message Format Language (MFL) transform. Use Include Binary Data by Value in the following cases: ■ To bridge between MTOM and non-MTOM services. For example, consider an MTOM-enabled proxy service that receives a request that is then routed to a non-MTOM-enabled service. You could use this option to comply with existing standards for sending binary data in XML in base64-encoded form. ■ To validate the contents of the message against an XML schema that requires a base64binary element to be used in place of binary data Note that if XOP/MTOM Support is enabled for a proxy service, it is not required that every inbound message be in the MTOM format. Instead, this setting specifies that when an MTOM-formatted message arrives, the proxy service should handle it accordingly. Note also that when proxy services not enabled for XOP/MTOM Support receive an MTOM-formatted message, the service rejects the message and issues a runtime error. User Interface Reference 4-23
  • 188. Proxy Service Configuration Table 4–13 (Cont.) Proxy Service Message Handling Options Option Description Attachments Use this option to have the proxy service store MIME attachment content to a disk file and then process the data in a streaming fashion without buffering the attachment contents in memory. This enables the proxy service to process large attachments robustly and efficiently. Oracle Service Bus supports streaming MIME attachments using the following transports: ■ HTTP/S ■ Local (when chained through an HTTP proxy with streaming attachments enabled) Select the Page Attachments to Disk check box to enable the proxy service to stream MIME attachments. When enabled for HTTP proxy services, the option applies to proxy service inbound request messages. Note that if you select XOP/MTOM Support, the Attachments option is only available if you choose the Include Binary Data by Reference option under XOP/MTOM Support. Note also that payloads that contain attachments must conform to RFC 822. Specifically, lines containing Internet headers need to be terminated with CRLF (carriage return line feed). 4.3.5 Proxy Service SOAP Binding Configuration Page This page is displayed only if the service you are creating has operations. Use the Proxy Service SOAP Binding Configuration page to enforce WS-I compliance (for SOAP 1.1 services only) and select the selection algorithm to use to determine the operation called by this proxy service. This option is only available for SOAP or XML services defined from a WSDL. The WSDL specification defines a default algorithm to compute which operation is called based on the type of the SOAP message received. However, there are cases (for example, performance issues, signature/encryption issues, or the default algorithm is not applicable) when you may need to select the operation based on other means. Oracle Service Bus provides additional algorithms. Each of them follows the same pattern and are based on the evaluation of an expression to get a value that is then used to lookup the corresponding operation in a static table. Oracle Service Bus is generally very forgiving if an inbound message is either missing data such that the operation cannot be determined, or has data that does not correspond to a valid operation. Both of these conditions result in $operation being empty. Rather than reject all such messages, Oracle Service Bus does not initialize the operation variable in the context but otherwise continues to process the message. However, security requirements are enforced if the proxy service is WSDL-based and at least one of the following conditions is true: ■ The WSDL has a WS-Security policy and the proxy is an active intermediary. ■ The proxy has message-level custom authentication (either custom token or user name/password). If these conditions are met, then there is a runtime check to make sure the operation selection algorithm returns a valid operation name. If the operation selection returns null or an operation that is not in the WSDL, then the message is rejected and an error is raised. 4-24 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 189. Proxy Service Configuration Table 4–14 Proxy Service SOAP Binding Options Option Description Enforce WS-I For SOAP 1.1 services only: Compliance Select or deselect this check box if you want to specify whether or not the service is to conform to the Basic Profile defined by the Web Services Interoperability Organization. When a service is marked WS-I compliant, checks are performed against the messages sent to and from that service. For proxies, checks are performed against request messages received by the proxy. For invoked services (i.e. services invoked by a proxy via service callout action or route node), checks are performed against the response messages received from those services. Note that it is the WS-I compliance property of the invoked service and not the proxy that determines whether or not checks are performed against messages received from the invoked service. If you specify WS-I compliance testing for an invoked service, the message flow generates a fault for response errors. 4.3.6 Proxy Service Transport Configuration Page Use the Proxy Service Transport Configuration page to select a transport protocol for the proxy service and to set other general transport configuration settings. Note: Inbound transport-level security applies to the client applications and Oracle Service Bus proxy services. Outbound transport-level security applies to the connections between Oracle Service Bus proxy services and business services. Table 4–15 Proxy Service Transport Configuration Options Option Description Protocol Select a transport protocol from the list. The protocols available differ, depending on the service type you are creating: ■ WSDL Web Service: http, jca, jms, local, sb, ws ■ Transport Typed Service: jejb ■ Messaging Service: email, file, ftp, http, jms, local, mq (if available), sftp, tuxedo ■ Any SOAP Service: http, jms, local, sb ■ Any XML Service: email, file, ftp, http, jms, local, mq (if available), sb, sftp, tuxedo User Interface Reference 4-25
  • 190. Proxy Service Configuration Table 4–15 (Cont.) Proxy Service Transport Configuration Options Option Description Endpoint URI Enter an endpoint URI in the format based on the transport protocol you selected in the Protocol field, above: The formats are: ■ email - mailfrom:mail-server-host:port ■ file - file:///root-dir/dir1 ■ ftp - ftp://hostname:port/directory ■ http - /someName The HTTP transport supports both HTTP and HTTPS endpoints. ■ jca - jca://<resource_adapter_jndi> ■ jejb – The URL format is ejb_jndi_name. The URI configured for a JEJB proxy service becomes the global JNDI name for locating the stateless session bean generated by the JEJB transport from the remote/business interface in the client JAR. Note: For EJB 3.0, ejb_jndi_name is the mappedName attribute of the @javax.ejb.Stateless annotation in the generated bean. The lookup JNDI name for the generated EJB service is suffixed with #interface_class, which is the fully qualified name of the business interface. You can access the JEJB proxy service as: EJB 2.1 - protocol://host:port/_ejb_jndi_name EJB 3.0 - protocol://host:port/ejb_jndi_name#interface_class Note: If your EJBs are running on IBM WebSphere, ejb_jndi_name must be in the following format: cell/nodes/node_name/servers/server_name/ejb_jndi_name or cell/clusters/cluster_name/ejb_jndi_name as described in the IBM WebSphere documentation at http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topi c=/com.ibm.websphere.nd.iseries.doc/info/iseriesnd/ae/rnam_example_ prop3.html ■ jms - jms://host:port[,host:port]*/connection_factory/jndi_destination To target a target a JMS destination to multiple servers, use the following URI format: jms://host1:port,host2:port/QueueConnectionFactory/DestName Note that when you create a proxy service, you can configure a JMS endpoint URI even if the server at that endpoint if not available. However, in the case of JMS, when you activate the session, the endpoint must be available. You can also omit host and port from the URI to have the lookup performed on the local machine. For example: jms:///connection_factory/jndi_destination Note: While Oracle WebLogic Server allows forward slashes in JNDI names, such as "myqueues/myqueue", JNDI names with forward slashes interfere with the URI format required by Oracle Service Bus, and you cannot use those names. To work around this issue, define a JMS foreign server and reference that foreign server in the URI. For more information, see "Configure foreign servers" in the Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help at http://www.oracle.com/pls/as1111/lookup?id=WLACH. In a cluster: The host names in the JMS URI must exactly match the host names of the cluster servers as they are configured in Oracle WebLogic Server. ■ local This transport does not require an endpoint URI. 4-26 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 191. Proxy Service Configuration Table 4–15 (Cont.) Proxy Service Transport Configuration Options Option Description Endpoint URI ■ mq - mq://local-queue-name?conn=mq-connection-resource-ref (continued) local-queue-name is the name of the MQ queue from which the proxy service reads messages. mq-connection-resource-ref is the path (project/folder) and name of the MQ connection resource; for example, default/my_MQconnection. Note: The Endpoint URI cannot contain spaces, so do not create MQ Connection resources or projects/folders with spaces in the names. To make the MQ transport available in Oracle Service Bus, see "MQ Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117. ■ sb - service_name service_name is the unique identifier for the proxy service. By default, this name will be the proxy service name. service_name must only contain characters permitted in URIs (as described in RFC2396 at http://www.ietf.org/rfc/rfc2396.txt), except it cannot contain forward slash (/) or colon (:) characters. ■ sftp - sftp://hostname:port/directory ■ tuxedo - servicename The URI servicename corresponds to a WTC Export that the remote Tuxedo domain identifies as a Tuxedo service. If more than one URI is specified, you must have unique resource names for the endpoints. If no remote name is specified, its value is the value of the resource name. If no remote name is entered or if remote and resource name are the same, only one URI is allowed. In this case resource name and remote name will have the same value. This allows users using already defined WTC Imports to make use of WTC load-balancing and failover. Note: If you configure two identical URIs, an error indicates that the service name already exists. ■ ws - /contextPath contextPath must be unique for proxy services that use either HTTP or WS transport. Get All Select Yes to retrieve all the headers from the transport. Headers Select No to retrieve a defined set of headers. If you select No, enter a set of headers in the Header field, then click Add. (This step does not apply to Local transport.) Note: Oracle Service Bus does not pass the HTTP Authorization header from the request to the pipeline because it opens a security vulnerability. You could inadvertently create a log action that writes the user name and unencrypted password to a log file. If your design pattern requires the HTTP Authorization header to be in the pipeline, do the following: 1. In the startup command for Oracle Service Bus, set the following system property to true: com.bea.wli.sb.transports.http.GetHttpAuthorizationHeaderAllowed 2. In Eclipse, on the Transport Configuration page, select Yes for Get All Headers or select No and specify Authorization. 3. Restart Oracle Service Bus. Oracle Service Bus will pass the Authorization header to the pipeline. 4.3.7 Proxy Service - Service Policy Configuration Page Use Proxy Service - Service Policy Configuration page to configure service policies for a proxy service. User Interface Reference 4-27
  • 192. Proxy Service Configuration Table 4–16 Proxy Service Service Policy Options Option Description From OWSM Policy Policies are defined in the central Oracle Web Services Manager Store Policy Store managed by Oracle Enterprise Manager. These policies support WS-Security 1.0/1.1, SAML 1.1/2.0, KerberosToken Profile, and other industry standards. To add Oracle Web Services Manager policies to services in the IDE, you must be connected to a running server that has Oracle Web Services Manager enabled. Note: When working with multiple servers in Eclipse, Eclipse chooses the first valid Oracle Service Bus server in the list of servers for retrieval of Oracle Web Services Manager policies. Use category filtering to help you find the policy you want. For proxy services, only service policies are displayed. After adding policies, you can provide overrides on the Security page. For information, see "Securing Oracle Service Bus with Oracle Web Services Manager" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1 681. From WSDL Select this option if the service policy is associated with the WSDL upon which the service is based. These policies support WS-Security 1.0, SAML 1.1, and other industry standards. From Pre-defined Policy Select this option to add service-level policies, operation-level or WS-Policy Resource policies (in which case the policy applies to both the request and response messages), request policies, and response policies directly. Policies are either pre-defined in Oracle WebLogic Server or user-defined in Oracle Service Bus with a WS-Policy resource. These policies support WS-Security 1.0, SAML 1.1, and other industry standards. 4.3.8 Proxy Service Security Configuration Page Use the Proxy Service Message Level Security Configuration page to configure security for proxy services. For WLS 9.2 policies, message-level custom tokens and message-level user name and password are supported on proxy services of the following binding types: ■ WSDL-SOAP ■ WSDL-XML ■ Abstract SOAP ■ Abstract XML ■ Mixed - XML (in the request) ■ Mixed - MFL (in the request) The configuration for both custom user name/password and custom token is similar. In both cases, you specify XPath expressions that enable Oracle Service Bus to locate the necessary information. The root of these XPath expressions is as follows: ■ Use soap-env:Envelope/soap-env:Header if the service binding is AnySOAP or WSDL-SOAP. ■ Use soap-env:Body if the service binding is not SOAP based. 4-28 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 193. Proxy Service Configuration All XPath expressions must be in a valid XPath 2.0 format. The XPath expressions must use the XPath "declare namespace" syntax to declare any namespaces used, as follows: declare namespace ns='http://webservices.mycompany.com/MyExampleService';) Table 4–17 Proxy Service Message-Level Security Options Option Description Service Key Provider The name of a service key provider to be used by the service. You can enter the path (project/folder) and name of a service key provider, or click Browse to select one. A service key provider is only required in certain cases: ■ Outbound two-way TLS/SSL, where the proxy service routes messages to HTTPS services that require client-certificate authentication. ■ In some Web Service security scenarios, for example, if the proxy service requires messages to be encrypted. To add a Web service security-enabled proxy service, you must create the proxy service from a WSDL (port or binding) with WS-Policy attachments. Policy Overrides For OWSM policies, provide any desired overrides that are allowed. For more information, see Table 4–16 and "Securing Oracle Service Bus with Oracle Web Services Manager" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1 681. Process WS-Security If a client request includes a WS-Security security header, decide Header whether or not to process this header: ■ Select Yes: In an active intermediary scenario, the client applies WS-Security to the request and/or response messages. The proxy service processes the security header and enforces the WS-Security policy. This option is automatically set to Yes when a proxy service is based on a WSDL that has a security policy or when you attach a policy to the service on the Service Policy Configuration page. ■ Select No: In a WS-Security pass-through scenario, the client applies WS-Security to the request and/or response messages. The proxy service does not process the security header. Instead, it passes the secured request message untouched to a business service. Custom Authentication Select one of the following: Settings ■ None - if the service will not use custom authentication. ■ Custom User Name and Password - if the service will use a custom name and password, specified as XPath expressions ■ Custom Token - if the service will use a custom token Custom User Name and The user name, specified as an XPath expression. Password - User Name The XPath expression is evaluated against the message headers or XPath payload, as appropriate, which allows Oracle Service Bus to obtain the user name and for custom authentication. User Interface Reference 4-29
  • 194. Oracle Service Bus Configurations and Projects Table 4–17 (Cont.) Proxy Service Message-Level Security Options Option Description Custom User Name and The password, specified as an XPath expression. Password - User The XPath expression is evaluated against the message headers or Password XPath payload, as appropriate, which allows Oracle Service Bus to obtain the password values for custom authentication. Custom Token - Token Enter the type for the custom token type. Only the active token Type types configured for an Oracle WebLogic Server Identity Assertion provider can be used. Custom Token - Token An XPath expression that specifies a path to the custom token. XPath Oracle Service Bus evaluates the Token XPath expression against the message headers or payload, as appropriate, to obtain the token for custom authentication. To create or edit an expression, click <XPath> (or the expression_ fragment, if one is already defined) to display the XPath Expression Editor. Custom User Name and Optionally, specify one or more context properties to pass Password - Context additional context information to the Authentication (Custom User Properties Name and Password) or Identity Assertion (Custom Token) security provider. or Context Properties provide a way (the ContextHandler Custom Token - Context interface) to pass additional information to the WebLogic Security Properties Framework so that a security provider can obtain contextual information. Enter the Property Name as a literal string, and the Value Selector as a valid XPath expression. (XPath expressions can also be literal strings.) The XPath expressions are evaluated against the same message-part that is used for the custom token or custom user name/password. That is, the Value Selector XPath expressions for SOAP-based proxy services evaluate against the header and against the payload for non-SOAP-based proxy services. The XPath expression is evaluated at runtime to produce the property's value. A ContextHandler is essentially a name/value list and, as such, it requires that a security provider know what names to look for. Therefore, the XPath expressions are evaluated only if a security provider asks for the value of one of these user-defined properties. Click Add Property to add this context property. You can add multiple context properties. 4.4 Oracle Service Bus Configurations and Projects The following are provided for working with Oracle Service Bus configurations and projects. ■ Section 4.4.1, "Oracle Service Bus Configurations View" ■ Section 4.4.2, "New Oracle Service Bus Configuration Project Wizard" ■ Section 4.4.4, "New Oracle Service Bus Project" 4.4.1 Oracle Service Bus Configurations View This view displays a hierarchical list of all your Oracle Service Bus configurations and the projects they contain. See also Section 4.4.2, "New Oracle Service Bus Configuration Project Wizard." 4-30 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 195. Oracle Service Bus Configurations and Projects You can do the following in the Configurations view: ■ Edit the configuration: 1. Right click the configuration you want to edit. 2. Select Properties from the menu. 3. Modify information as needed in the Oracle Service Bus Configuration Page. ■ Create a new configuration: 1. Right-click anywhere in the view. 2. Select New Oracle Service Bus Configuration from the menu. 3. Enter information as needed in the Oracle Service Bus Configuration Page. ■ Move a project from one configuration to another by dragging it from the source configuration to the target configuration. You can also drag a project from the Project Explorer. ■ Delete a configuration project: 1. Right-click the configuration you want to delete. 2. Select Delete from the menu. 4.4.2 New Oracle Service Bus Configuration Project Wizard Use this wizard to create an Oracle Service Bus configuration project. For configuration options, see Section 4.4.3, "Oracle Service Bus Configuration Page." 4.4.3 Oracle Service Bus Configuration Page An Oracle Service Bus configuration project is a grouping of Oracle Service Bus projects and resources destined for a server, a location for system resources (SMTP, UDDI, and such), and a container for validation; for example, a resource in a project associated with one Oracle Service Bus configuration cannot refer to a resource in a project associated to another Oracle Service Bus configuration. Use this page to create a new Oracle Service Bus configuration project (in the New Oracle Service Bus Configuration Project wizard) or to configure an existing one (in the Properties for Oracle Service Bus Configuration editor). The preserve, session, and customization file settings are used when publishing an Oracle Service Bus configuration to the server, and used as defaults when configuring the Export Wizard - Export to Server - Select Resources Page. Table 4–18 Oracle Service Bus Configuration Options Option Description Configuration name Enter a name for this Oracle Service Bus configuration or keep the default. Preserve environment Select this check box when you are re-importing a resource but variable values want to preserve environment variable values in the existing resource. Preserve security and Select this check box to preserve the security configuration policy settings (excluding access control policies) and the references to the WS-policies bound directly to the service (instead of bound to the WSDL). User Interface Reference 4-31
  • 196. Custom Resources Table 4–18 (Cont.) Oracle Service Bus Configuration Options Option Description Preserve credentials (user Select this check box to preserve PKI credentials in service key name and password) providers, user name and passwords in service accounts, and user name and password credentials in SMTP servers, JNDI providers, and UDDI registries. Discard session if Select this check box to discard the session if the activation fails activation fails (for example, due to conflicts). Session Name The session name. Description The session description. Deployment Specify a customization.xml file or click Browse, locate the file, then customization file click Open. For information on customization, see "Creating Customization Files" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1 360. Keystore file Specify a keystore.jks file or click Browse, locate the file, then click Open. The key store settings are used when configuring a service key provider. Password Enter the password that you use to secure access to the key store. Server The name of the server associated with this Oracle Service Bus configuration. This setting is automatically configured unless there is more than one server from which to choose. When multiple servers are associated with the same Oracle Service Bus configuration, use the list to select the server you want to associate with this Oracle Service Bus configuration. The server setting is only used for transport specific configuration, when the transport benefits from being connected to a server (for example, when configuring the dispatch policy setting in the HTTP transport). 4.4.4 New Oracle Service Bus Project Use this page to create a new Oracle Service Bus project. Table 4–19 New Oracle Service Bus Project Options Option Description Project name Enter a unique name for the project. Oracle Service Bus Select an existing Oracle Service Bus configuration or click New to Configuration open the New Oracle Service Bus Configuration Project Wizard, where you can create a new configuration. 4.5 Custom Resources You can define custom resources for use by Oracle Service Bus using the New Custom Resource wizard and the Custom Resource editor, as described in the following topics: ■ Section 4.5.1, "New Custom Resource Wizard" ■ Section 4.5.1, "New Custom Resource Wizard" ■ Section 4.5.3, "New Custom Resource - Resource Type Page" 4-32 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 197. Custom Resources 4.5.1 New Custom Resource Wizard Use this wizard to create a new custom resource. 4.5.2 New Custom Resource Editor Use this editor to modify the configuration of a custom resource. The General page identifies the type of custom resource. The Custom page provides options for editing the configuration for that type of custom resource. 4.5.3 New Custom Resource - Resource Type Page Use this page to select the type of custom resource to create. Select the type of custom resource to create from the list of available resource type. 4.5.4 Custom MQ Resource Configuration Page Use this page to configure a custom MQ connection resource. For information on MQ connection resources and MQ transports, see the following: ■ "MQ Connections" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG909 ■ "MQ Transport" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117. Table 4–20 MQ Resource Options Option Description Connection Type Select one of the following modes for connecting to the MQ queue manager: ■ tcp mode—Use TCP/IP to connect to a queue manager that does not reside on the same machine as Oracle Service Bus. ■ binding mode—Use the bindings mode to connect to a queue manager that is located on the same machine as Oracle Service Bus. MQ Host Name For tcp mode connections only: Enter the host name of the MQ queue manager. MQ Port Number For tcp mode connections only: Enter the port number of the MQ queue manager listener. MQ Queue Manager Enter the name of the MQ queue manager to which to connect. Name Queue Manager CCSID For tcp mode connections only: The coded character set identifier (CCSID) to be used when establishing a connection. The CCSID is used mainly for internationalization support. To learn more, see IBM’s WebSphere MQ Fundamentals at http://www.redbooks.ibm.com/redbooks/SG247128/wwh elp/wwhimpl/java/html/wwhelp.htm. MQ Queue Manager For tcp mode connections only: Channel Name Enter the queue manager server connection channel name. User Interface Reference 4-33
  • 198. Export Wizard Table 4–20 (Cont.) MQ Resource Options Option Description SSL Required For tcp mode connections: Select the check box to use SSL for sending messages. Only server-side SSL is enabled when the 2-way SSL Required option is not selected. Cipher Suite This option is available only when the SSL Required check box is selected. Select the Cipher Suite algorithm to be used by SSL. The Cipher Suite algorithm is used to encrypt and decrypt message communications between the WebSphere MQ server and the WebSphere MQ client. Thus a Cipher Suite algorithm must be specified when using SSL to communicate with a WebSphere MQ server. 2-way SSL Required This option is available only when the SSL Required check box is selected. Select the check box to enable both client-side and server-side SSL authentication. Reference to the Service If you selected 2-way SSL Required, you must provide a reference Key Provider to the service key provider for obtaining the appropriate key store and trust store information. Enter the path (project/folder) and name of a service key provider, or click Browse to select one from the Select Service Key Provider page. Reference to the Static For tcp mode connections only: Service Account Required for user name and password authentication. Enter the path (project/folder) and name of a static service account, or click Browse to select service accounts from a browser. WebSphere MQ Version Select the WebSphere MQ version: ■ 5.3 ■ 6.0 ■ 7.0 MQ Connection Pool Enter the size of the MQ connection pool. Size MQ Connection Timeout Enter the time interval in seconds after which unused connections are destroyed. The default is 1800 seconds. MQ Connection Max Enter the Max Wait in seconds for the amount of time to wait for a Wait connection to become available. If a connection is not made within that time interval, Oracle Service Bus throws an exception. The default is 3 seconds. 4.6 Export Wizard The Export wizard contains the following pages: ■ Section 4.6.1, "Export Wizard - Oracle Service Bus Configuration JAR Export Page" ■ Section 4.6.2, "Export Wizard - Export to Server - Select Resources Page" ■ Section 4.6.3, "Export Wizard - Export to Server - Review Resources Page" 4-34 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 199. Export Wizard 4.6.1 Export Wizard - Oracle Service Bus Configuration JAR Export Page Use this page to export Oracle Service Bus resources to a configuration JAR file. For more information, see "Exporting Resources" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1320. Table 4–21 Configuration JAR Export Options Option Description Oracle Service Bus Select an existing Oracle Service Bus configuration and resources to Configuration export. Deselect resources you do not want to export. Export Level Select whether to export projects or resources. Notes A System project cannot be exported at the project level. Exporting projects might cause resource deletion when you import the full project JAR file. Include Dependencies If you selected to export resources, select or clear this check box. Use the Include Dependencies option to export any other resources that this resource references Export Destination Enter the fully qualified name of a JAR file to export, or click Browse to select it. 4.6.2 Export Wizard - Export to Server - Select Resources Page Use this page to select the projects or resources you want to export. Clear the check boxes next to any resources that you do not want to include in this export. Table 4–22 Resource Export Options Option Description Resource The name of the project and resource. Deselect resources you do not want to export. Operation Create or update. The operation that will be performed on the resource. Include Dependencies Select this check box if you are exporting resources (not projects) and want to ensure that all the associated resources are exported. Preserve environment Select this check box when you want to preserve (protect against variable values overwriting) the environment variables values in the resource you are exporting. Preserve security and Select this check box to preserve the security configuration policy settings (excluding access control policies) and the references to the WS-policies bound directly to the service (instead of bound to the WSDL). Preserve credentials (user Select this check box to preserve PKI credentials in service key name and password) providers, user name and passwords in service accounts, and user name and password credentials in SMTP servers, JNDI providers, and UDDI registries. Activate session after Select this check box to create and activate a session in the Oracle publish Service Bus Administration Console. Discard session if Select this check box to discard the session if the activation fails activation fails (for example, due to conflicts). Description The session description. User Interface Reference 4-35
  • 200. Import Wizard Table 4–22 (Cont.) Resource Export Options Option Description Customization File Specify a customization file or click Browse, locate the file, then click Open. For information on customization, see "Creating Customization Files" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1 360. 4.6.3 Export Wizard - Export to Server - Review Resources Page Use this page to select the projects or resources you want to export. Table 4–23 Resource Export Options Option Description Oracle Service Bus Select an existing Oracle Service Bus configuration and resources to Configuration export. Export Level Select whether to export projects or resources. Server From the list, select an Oracle Service Bus destination server. Session The session name. 4.7 Import Wizard The Import wizard has the following pages: ■ Section 4.7.1, "Import Wizard - Config JAR Import - Load Resources Page" ■ Section 4.7.2, "Import Wizard - Config JAR Import - Review Resources Page" ■ Section 4.7.3, "Import Wizard - Config ZIP Import - Load Resources Page" ■ Section 4.7.4, "Import Wizard - Config ZIP Import - Review Resources Page" ■ Section 4.7.5, "Import Wizard - URL Import - Load Resources Page" ■ Section 4.7.6, "Import Wizard - URL Import - Review Resources Page" 4.7.1 Import Wizard - Config JAR Import - Load Resources Page Use this page to select a configuration JAR to import and an import destination. For more information, see "Importing Resources" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG1312. Table 4–24 Configuration JAR Import Option Description Oracle Service Bus Select an existing Oracle Service Bus configuration or click New to Configuration open the New Oracle Service Bus Configuration Project Wizard, where you can create a new configuration. Jar Select a full project JAR file or a resource JAR file that has been previously exported from another Oracle Service Bus domain. 4-36 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 201. Import Wizard 4.7.2 Import Wizard - Config JAR Import - Review Resources Page Use this page to select the objects on which you want to operate (create, update, or delete). Resources are only scheduled for deletion when the JAR being imported is a full project JAR and there are project resources in the importing system that are not present in the imported JAR file. To prevent resources from being deleted, deselect them. Table 4–25 Configuration JAR Import Options Option Description Resources The name of the project and resource. Operation Expand the Project folder to display the operations (create, update, delete) that will be performed on the resources. To prevent resources from being deleted, deselect them. Resources are only scheduled for deletion when the JAR being imported is a full project JAR and there are project resources in the importing system that are not present in the imported JAR file. Include Dependencies Select this check box if you are importing a resource JAR file and want to ensure that all its associated resources are imported. Passphrase Enter the password that was used to encrypt the data. Preserve environment Select this check box when you are re-importing a resource but variable values want to preserve environment variable values in the existing resource. Preserve security and Select this check box to preserve the security configuration policy settings (excluding access control policies) and the references to the WS-Policies bound directly to the service (instead of bound to the WSDL). Preserve credentials (user Select this check box to preserve PKI credentials in service key name and password) providers, user name and passwords in service accounts, and user name and password credentials in SMTP servers, JNDI providers, and UDDI registries. 4.7.3 Import Wizard - Config ZIP Import - Load Resources Page Use this page to select a ZIP file with resources to import and an import destination. Table 4–26 Configuration ZIP Import Option Description Oracle Service Bus Select an existing Oracle Service Bus configuration and an import Configuration destination (project or folder). File Name Enter the fully qualified name of a ZIP file to import, or click Browse to select it. 4.7.4 Import Wizard - Config ZIP Import - Review Resources Page Use this page to select the objects you want to import. Clear the check boxes next to any resources that you do not want to include in this import. Table 4–27 Configuration ZIP Import Options Option Description Resource The name of the project and resource. User Interface Reference 4-37
  • 202. JNDI Providers Table 4–27 (Cont.) Configuration ZIP Import Options Option Description Operation Create or update. The operation that will be performed on the resource. File Name The file name of the resource, including the file extension. 4.7.5 Import Wizard - URL Import - Load Resources Page Use this page to import resources such as WSDLs or XML schemas that are available on the Web. You can import them, along with all their dependents, by specifying the URL of the root resource. Table 4–28 URL Import Options Option Description Oracle Service Bus Select an existing Oracle Service Bus configuration and an import Configuration destination (project or folder). URL Enter the URL where the file is located. To specify a local resource, you can use the file protocol with a file name fully qualified by its path, for example, file:///c:/alsbresources/ForeachAction.jar. Resource Name Enter a name for the resource. Resource Type Select the type of resource from the list. 4.7.6 Import Wizard - URL Import - Review Resources Page Use this page to select the objects you want to import. Clear the check boxes next to any resources that you do not want to include in this import. Table 4–29 URL Import Options Option Description Resource The name of the project and resource. Operation Create or update. The operation that will be performed on the resource. URL Enter the URL where the file is located. To specify a local resource, you can use the file protocol with a file name fully qualified by its path, for example, file:///c:/alsbresources/ForeachAction.jar. 4.8 JNDI Providers The following are provided for working with JNDI providers: ■ Section 4.8.1, "JNDI Provider Editor" ■ Section 4.8.2, "New JNDI Provider Resource Wizard" 4.8.1 JNDI Provider Editor Use this editor to modify an existing JNDI provider configuration. For descriptions of the fields, see the Section 4.8.2, "New JNDI Provider Resource Wizard." 4-38 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 203. Proxy Servers 4.8.2 New JNDI Provider Resource Wizard Use this page to configure a new JNDI provider resource. Table 4–30 New JNDI Provider Resource Options Option Description Description Enter a description for the JNDI provider. JNDI Cache Keep the default Enabled option or select Disabled. When enabled, the JNDI context and JNDI objects are cached locally which improves performance when doing an object lookup. Oracle recommends that you keep the JNDI cache enabled. Provider URL Enter the URL for the JNDI provider in the format: protocol://host:port You can use any protocol, for example: http, https, t3, t3s, iiop, iiops JNDI Request Timeout The JNDI request timeout in milliseconds. The default of zero (0) means no timeout. User Name If access to the target JNDI provider requires a user name and password, enter a user name in the User Name field, and the associated password in the Password and Confirm Password fields. These fields are optional, and required only if the JNDI tree is secured. Password Enter the associated password. Confirm Password Enter the same password you entered for the Password field. 4.9 Proxy Servers Use this page to configure and edit a proxy server resource after you create a new proxy server. Table 4–31 Proxy Server Configuration Options Option Description Description Enter a description of the proxy server resource. User Name Enter the user name used for proxy authentication. Password Enter the password associated with the user name. Confirm Password Enter the same password you entered for the Password field. User Interface Reference 4-39
  • 204. Message Flow Design Palette Table 4–31 (Cont.) Proxy Server Configuration Options Option Description Host-Port Parameters The list of proxy server hosts. You can configure multiple proxy servers for each proxy server resource. This enables Oracle Service Bus to perform load balancing and offer fault tolerance features for the proxy server resource. The following options are available: ■ Click Add and specify the following information to configure a new proxy server for the resource: ■ Server Host: The host name or IP address of the proxy server. The Server Host name for the Oracle Service Bus proxy server must be identical to the server host name of the actual proxy server. ■ Clear Text Port: The proxy server clear-text port number. ■ SSL Port: The proxy server SSL port number. ■ Select a proxy server in the list and edit the Host-Port Parameters. ■ Select a proxy server in the list and click Delete to remove it from the resource configuration. 4.10 Message Flow Design Palette The Message Flow Design Palette lists all the nodes and actions you can use to construct a message flow for a proxy service. To insert a node or an action into a message flow, drag the item from the palette to the Message Flow Editor. When you drag an item to the palette, one or more target icons indicate that you can drop the dragged item in that position on the palette. When you drag the item onto a target, the target icon is highlighted to show that you can drop the item there. You can also add nodes and actions to message flows by right-clicking an object in the Message Flow Editor and choosing a node or action from the Insert, Insert Into, or Insert After submenus. You can also add an error handler by selecting the Add Error Handler command. These submenus and commands are context sensitive. That is, they appear only when it is legal to add the item into the selected context in the message flow. The Message Flow Design Palette is organized into the following categories: ■ Section 4.10.1, "Message Flow Nodes" ■ Section 4.10.2, "Message Flow Route Actions - Communication Actions" ■ Section 4.10.3, "Message Flow Route Actions - Flow Control Actions" ■ Section 4.10.4, "Message Flow Stage Actions - Communication Actions" ■ Section 4.10.5, "Message Flow Stage Actions - Flow Control Actions" ■ Section 4.10.6, "Message Flow Stage Actions - Message Processing Actions" ■ Section 4.10.7, "Message Flow Stage Actions - Reporting Actions" 4.10.1 Message Flow Nodes The following table describes the nodes you can add to a message flow: 4-40 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 205. Message Flow Design Palette Table 4–32 Message Flow Nodes Node Description Conditional branch A branch node allows processing to proceed down exactly one of several possible paths. For configuration properties, see Section 4.11.3, "Conditional Branch Node Properties." Operational branch An operational branch node determines what branch to follow based on specified operations. For configuration properties, see Section 4.11.17, "Operational Branch Node Properties." Pipeline pair A pipeline pair node consists of a request pipeline and a response pipeline. For configuration properties, see Section 4.11.18, "Pipeline Pair Node Properties." Route Route node actions define the handling of messages as they flow through the route node. For configuration properties, see Section 4.11.27, "Route Node Properties." Stage A stage node is a container of actions. For configuration properties, see Section 4.11.33, "Stage Node Properties." Error handler An error handler provides the logic for resending errors in the message flow. For configuration properties, see Section 4.11.7, "Error Handler Node Properties." 4.10.2 Message Flow Route Actions - Communication Actions The following table describes the communication actions you can add to a route in a message flow: Table 4–33 Message Flow Route Node Communication Actions Action Description Dynamic routing A dynamic routing action assigns a route for a message based on routing information available in an XQuery resource. For configuration properties, see Section 4.11.6, "Dynamic Routing Action Properties." Routing A routing action identifies a target service for the message and configures how the message is routed to that service: For configuration properties, see Section 4.11.28, "Routing Action Properties." Routing table A routing table action assigns a set of routes wrapped in a switch-style condition table. Different routes are selected based upon the results of a single XQuery expression. For configuration properties, see Section 4.11.30, "Routing Table Action Properties." 4.10.3 Message Flow Route Actions - Flow Control Actions The following table describes the flow control action you can add to a route in a message flow: User Interface Reference 4-41
  • 206. Message Flow Design Palette Table 4–34 Message Flow Route Node Flow Control Actions Action Description If-then An if-then action performs an action or a set of actions conditionally, based on the Boolean result of an XQuery expression. For configuration properties, see Section 4.11.9, "If-Then Action Properties." 4.10.4 Message Flow Stage Actions - Communication Actions The following table describes the communication actions you can add to a stage in a message flow: Table 4–35 Message Flow Stage Node Communication Actions Action Description Dynamic Publish A dynamic publish action publishes a message to a service identified by an XQuery expression For configuration properties, see Section 4.11.5, "Dynamic Publish Action Properties." Publish A publish action publishes a message to a statically specified service. For configuration properties, see Section 4.11.19, "Publish Action Properties." Publish Table A publish table action publishes a message to zero or more statically specified services. Switch-style condition logic is used to determine at run time which services will be used for the publish. For configuration properties, see Section 4.11.20, "Publish Table Action Properties." Routing Options A routing options action modifies any or all of the following properties in the outbound request: URI, Quality of Service, Mode, Retry parameters, Message Priority. For configuration properties, see Section 4.11.29, "Routing Options Action Properties." Service Callout A service callout action configures a synchronous (blocking) callout to an Oracle Service Bus-registered proxy or business service. For configuration properties, see Section 4.11.31, "Service Callout Action Properties." Transport Headers A transport header action sets the transport header values in messages For configuration properties, see Section 4.11.34, "Transport Headers Action Properties." 4.10.5 Message Flow Stage Actions - Flow Control Actions The following table describes the flow control actions you can add to a stage in a message flow: 4-42 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 207. Message Flow Design Palette Table 4–36 Message Flow Stage Node Flow Control Actions Action Description For-Each A for-each action iterates over a sequence of values and executes a block of actions For configuration properties, see Section 4.11.8, "For-Each Action Properties." If-Then An if-then action performs an action or set of actions conditionally, based on the Boolean result of an XQuery expression. For configuration properties, see Section 4.11.9.1, "If Action and Else-If Action Properties." Raise error A raise-error action raises an exception with a specified error code (a string) and description. For configuration properties, see Section 4.11.21, "Raise Error Action Properties." Reply A reply action specifies that an immediate reply be sent to the invoker. For configuration properties, see Section 4.11.24, "Reply Action Properties." Skip A skip action specifies that at run time, the execution of the current stage is skipped and the processing proceeds to the next stage in the message flow. For configuration properties, see Section 4.11.32, "Skip Action Properties." Resume A resume action resumes message flow after an error is handled by an error handler. For configuration properties, see Section 4.11.26, "Resume Action Properties." 4.10.6 Message Flow Stage Actions - Message Processing Actions The following table describes the message processing actions you can add to a stage in a message flow: Table 4–37 Message Flow Stage Node Message Processing Actions Action Description Assign An assign action assigns the result of an XQuery expression to a context variable. For configuration properties, see Section 4.11.2, "Assign Action Properties." Delete A delete action deletes a context variable or a set of nodes specified by an XPath expression. For configuration properties, see Section 4.11.4, "Delete Action Properties." Insert An insert action inserts the result of an XQuery expression at an identified place relative to nodes selected by an XPath expression. For configuration properties, see Section 4.11.10, "Insert Action Properties." Java callout A Java callout action invokes a Java method from the pipeline. For configuration properties, see Section 4.11.11, "Java Callout Action Properties." User Interface Reference 4-43
  • 208. Message Flow Editor Table 4–37 (Cont.) Message Flow Stage Node Message Processing Actions Action Description MFL transform A MFL transform action converts non-XML to XML or XML to non-XML in the pipeline. For configuration properties, see Section 4.11.16, "MFL Transform Action Properties." Rename A rename action renames elements selected by an XPath expression without modifying the contents of the element. For configuration properties, see Section 4.11.22, "Rename Action Properties." Replace A replace action replaces a node or the contents of a node specified by an XPath expression. For configuration properties, see Section 4.11.23, "Replace Action Properties." Validate A validate action validates elements selected by an XPath expression against an XML schema element or a WSDL resource. For configuration properties, see Section 4.11.35, "Validate Action Properties." 4.10.7 Message Flow Stage Actions - Reporting Actions The following table describes the reporting actions you can add to a stage in a message flow: Table 4–38 Message Flow Stage Node Reporting Actions Action Description Alert An alert action ends an alert notification based on pipeline message context. For configuration properties, see Section 4.11.1, "Alert Action Properties." Log A log action constructs a message to be logged. For configuration properties, see Section 4.11.12, "Log Action Properties." Report A report action enables message reporting for a proxy service. For configuration properties, see Section 4.11.25, "Report Action Properties." 4.11 Message Flow Editor Use this editor to construct a proxy service message flow. To insert a node or an action into a message flow, drag the item from the Message Flow Design Palette to the editor. When you drag an item to the editor, one or more target icons indicate that you can drop the dragged item in that position on the palette. When you drag the item onto a target, the target icon is highlighted to show that you can drop the item there. You can also add nodes and actions to message flows by right-clicking an object in the Message Flow Editor and choosing a node or action from the Insert, Insert Into, or Insert After submenus. You can also add an error handler by selecting the Add Error Handler command. These submenus and commands are context sensitive. That is, they appear only when it is legal to add the item into the selected context in the message flow. 4-44 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 209. Message Flow Editor When you select a node or action in the editor, a configuration page for that item is displayed in the Properties view. You can add or modify configuration properties in those pages. The message flow node and action properties configuration pages are: ■ Section 4.11.1, "Alert Action Properties" ■ Section 4.11.13, "Message Flow Properties - Comment" ■ Section 4.11.2, "Assign Action Properties" ■ Section 4.11.3, "Conditional Branch Node Properties" ■ Section 4.11.3, "Conditional Branch Node Properties" ■ Section 4.11.4, "Delete Action Properties" ■ Section 4.11.5, "Dynamic Publish Action Properties" ■ Section 4.11.6, "Dynamic Routing Action Properties" ■ Section 4.11.7, "Error Handler Node Properties" ■ Section 4.11.7, "Error Handler Node Properties" ■ Section 4.11.8, "For-Each Action Properties" ■ Section 4.11.9.1, "If Action and Else-If Action Properties" ■ Section 4.11.9, "If-Then Action Properties" ■ Section 4.11.10, "Insert Action Properties" ■ Section 4.11.11, "Java Callout Action Properties" ■ Section 4.11.12, "Log Action Properties" ■ Section 4.11.16, "MFL Transform Action Properties" ■ Section 4.11.14, "Message Flow Properties - Namespaces" ■ Section 4.11.17, "Operational Branch Node Properties" ■ Section 4.11.18, "Pipeline Pair Node Properties" ■ Section 4.11.19, "Publish Action Properties" ■ Section 4.11.20, "Publish Table Action Properties" ■ Section 4.11.21, "Raise Error Action Properties" ■ Section 4.11.22, "Rename Action Properties" ■ Section 4.11.23, "Replace Action Properties" ■ Section 4.11.24, "Reply Action Properties" ■ Section 4.11.25, "Report Action Properties" ■ Section 4.11.26, "Resume Action Properties" ■ Section 4.11.27, "Route Node Properties" ■ Section 4.11.28, "Routing Action Properties" ■ Section 4.11.29, "Routing Options Action Properties" ■ Section 4.11.30, "Routing Table Action Properties" ■ Section 4.11.31, "Service Callout Action Properties" ■ Section 4.11.32, "Skip Action Properties" ■ Section 4.11.33, "Stage Node Properties" User Interface Reference 4-45
  • 210. Message Flow Editor ■ Section 4.11.34, "Transport Headers Action Properties" ■ Section 4.11.35, "Validate Action Properties" ■ Section 4.11.15, "Message Flow Properties - Variables" 4.11.1 Alert Action Properties In a message flow, use the alert action to generate alerts based on message context in a pipeline, to send to an alert destination. Unlike SLA alerts, notifications generated by the alert action are primarily intended for business purposes, or to report errors, and not for monitoring system health. Alert destinations should be configured and chosen with this in mind. To learn more about alert destinations, see Section 4.1.1, "Alert Destination Editor." If pipeline alerting is not enabled for the service or at the domain level, the configured alert action is bypassed during message processing. In the Message Flow Editor, click an alert action to display its properties in the Properties view. Use these properties pages to configure the selected alert action. The pages are: ■ Alert ■ Comment ■ Namespaces ■ Variables The Alert page has the following options: Table 4–39 Alert Action Options Option Description Expression An XQuery expression that specifies the message context to be added to the alert message. To create or edit an expression, click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor. Summary A short description of the alert. This will be the subject line in the case of an e-mail notification and can contain no more than 80 characters. If no description is provided, a predefined subject line that reads, "ALSB Alert," will be used instead. Severity The severity level for this alert. Select a level from the list. Destination The destination for the alert. To specify a destination, click Browse to select an appropriate resource. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.2 Assign Action Properties In a message flow, use an assign action to assign the result of an XQuery expression to a context variable. 4-46 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 211. Message Flow Editor In the Message Flow Editor, click an assign action to display its properties in the Properties view. Use these properties pages to configure the selected assign action. The pages are: ■ Assign ■ Comment ■ Namespaces ■ Variables The Assign page has the following options: Table 4–40 Assign Action Options Option Description Expression An expression that creates the data that is assigned to variable named in the Variable field, described below. To create or edit an expression, click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor. Variable The variable to which the value created in the XQuery expression described above is assigned. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.3 Conditional Branch Node Properties In a message flow, use a conditional branch node to specify that message processing is to proceed along exactly one of several possible paths, based on a result returned by an XPath condition. Conditional branching is driven by a lookup table with each branch tagged with a simple, but unique, string value. A variable in the message context is designated as the lookup variable for that node, and at run time, its value is used to determine which branch to follow. If no branch matches the value of the lookup variable, the default branch is followed. You should design the proxy service in such a way that the value of the lookup variable is set before reaching the branch node. In the Message Flow Editor, click a conditional branch node to display its properties in the Properties view. Use these properties pages to configure the selected conditional branch node. The pages are: ■ Flow ■ Conditional Branch The Flow page has the following options: Table 4–41 Flow Options Option Description Name Enter a name for the conditional branch node. Description Enter a description for the conditional branch node. User Interface Reference 4-47
  • 212. Message Flow Editor The Conditional Branch page has the following options: Table 4–42 Conditional Branch Options Option Description XPath The XPath expression that defines the condition to be evaluated for determining the branch to follow. To create or edit the XPath expression, click <XPath> (or the XPath_fragment, if one is already defined) to display the XPath Expression Editor. Variable Enter a context variable. A conditional branch node also always contains one or more branches, which are configured as part of the node. Click a Branch icon in a conditional branch node to display the Branch properties page in the Properties view. Use these properties pages to configure the selected branch node in a message flow. This page has the following options. Table 4–43 Branch Options Option Description Label A label for the branch. This label appears as the label for the branch in the Message Flow Editor. Operator Select an operator from the list to be used with the value in the next field, for creating the condition on which the branch is based. Value Enter a value to be used with the operator in the previous field, for creating the condition 4.11.4 Delete Action Properties In a message flow, use a delete action to delete a context variable or a set of nodes specified by an XPath expression. In the Message Flow Editor, click a delete action to display its properties in the Properties view. Use these properties pages to configure the selected delete action. The pages are: ■ Delete ■ Comment ■ Namespaces ■ Variables The Delete page has the following options. Select Variable to delete a variable, or select XPath to delete an XPath expression. Table 4–44 Delete Action Options Option Description Variable Select this radio button to delete a context variable. Enter the name of the context variable to delete in the adjacent text field. 4-48 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 213. Message Flow Editor Table 4–44 (Cont.) Delete Action Options Option Description XPath Select this radio button to delete all nodes selected by an XPath expression. Then: ■ To create or edit the XPath expression, click <XPath> (or the XPath_fragment, if one is already defined) to display the XPath Expression Editor. ■ After saving the expression, in the In Variable field, enter the context variable containing the nodes specified in the XPath expression. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.5 Dynamic Publish Action Properties In a message flow, use a dynamic publish action to publish a message to a service specified by an XQuery expression. In the Message Flow Editor, click a dynamic publish action to display its properties in the Properties view. Use these properties pages to configure the selected dynamic publish action. The pages are: ■ Dynamic Publish ■ Comment ■ Namespaces ■ Variables The Dynamic Publish page has the following options: Table 4–45 Dynamic Publish Action Options Option Description Service An XQuery expression that defines the service to which a message is to be published. To create or edit the expression, click <Expression> (or the expression_ fragment, if one is already defined) to display the XQuery/XSLT Expression Editor. In the editor, enter an Xquery expression or select an XQuery resource that provides a result similar to: <ctx:route> <ctx:service isProxy="false">project/folder/businessservicename</ctx:servic e> <ctx:operation>foo</ctx:operation> </ctx:route> Note: The element operation is optional. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. User Interface Reference 4-49
  • 214. Message Flow Editor 4.11.6 Dynamic Routing Action Properties In a message flow, use a dynamic routing action to assign a route for a message based on routing information available in an XQuery resource. This is a terminal action, which means you cannot add another action after this one. However, this action can contain request and response actions. In the Message Flow Editor, click a dynamic routing action to display its properties in the Properties view. Use these properties pages to configure the selected dynamic routing action. The pages are: ■ Dynamic Routing ■ Comment ■ Namespaces ■ Variables The Dynamic Routing page has the following option: Table 4–46 Dynamic Routing Action Properties Option Description Service An XQuery expression that defines the route to be taken by a message. To create or edit an expression, click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor. In the XQuery/XSLT Expression editor, enter an Xquery expression, the result of which is similar to: <ctx:route> <ctx:service isProxy='true'>{$service}</ctx:service> <ctx:operation>{$operation}</ctx:operation> </ctx:route> Note: If a proxy service is being invoked, isProxy attribute should be set to true. ■ The service name is the fully qualified service name. ■ The operation element is optional Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.7 Error Handler Node Properties Use an error handler to specify what should happen if an error occurs in a specific location in the message flow. All configuration for an error handler is in one or more stages contained by the error handler. See Section 4.11.33, "Stage Node Properties." 4.11.8 For-Each Action Properties In a message flow, use the for-each action to iterate over a sequence of values and execute a block of actions. 4-50 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 215. Message Flow Editor In the Message Flow Editor, click a for-each action to display its properties in the Properties view. Use these properties pages to configure the selected for-each action. The pages are: ■ For Each ■ Comment ■ Namespaces ■ Variables The For Each page has the following options: Table 4–47 For-Each Action Properties Option Description For Each Variable Enter the name of the variable on whose contents the for-each action(s) will be executed. XPath An XPath expression that specifies where in the structure of the containing context variable the variable specified in the For Each Variable field is located. To create or edit the XPath expression, click <XPath> (or the XPath_fragment, if one is already defined) to display the XPath Expression Editor. In Variable The context variable containing the variable on whose contents the for-each action(s) will be executed. Index Variable A variable containing the current number of iterations in the loop. Count Variable A variable containing the total number of iterations. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.9 If-Then Action Properties In a message flow, use an if-then action to perform an action or a set of actions conditionally, based on the Boolean result of an XQuery expression. In the Message Flow Editor, click an if-then action to display its properties in the Properties view. Use this page to review and configure general properties of the if-then action. The pages are: ■ Comment ■ Namespaces ■ Variables An if-then action always contains an if condition plus zero or more else-if condition, where you define the conditions for the if-then action. An if-then action also always contains an else condition, which defines the default path when no other condition is met. Click an If:condition icon or an Else-If:condition icon in an if-then action to display their properties in the Properties view. Use these properties pages to configure the selected condition. This If condition properties page has the following option. User Interface Reference 4-51
  • 216. Message Flow Editor 4.11.9.1 If Action and Else-If Action Properties If actions and else-if actions are always contained by an if-then action. The message follows the path associated with the first if action or else-id action that returns true. Table 4–48 If and Else-If Action Options Option Description Condition A condition in an if action or an if-else action that contains one of the tests for following alternative paths in the flow. To add or edit a condition 1. Click <Condition> (or condition_fragment, if one is already defined) to display the Condition Editor. Define a condition to be evaluated in the if-then action. 2. When you finish editing the condition, add one or more action that will be executed when the condition evaluates to true. To add an action, drag it from the Design Palette to associate with the condition. In the route node, you can select only the routing, dynamic routing, or routing table actions. However, these actions can contain request and response actions. To add an Else-If condition: Click add condition. Then add one or more actions to this else-if condition, as described above for the If condition. Continue with as many else-if conditions as your logic requires. Condition actions can be nested. 4.11.9.2 Else Action Properties The else action does not have associate properties. When all if and else-if conditions return false, the message proceeds down the path associated with the else action. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.10 Insert Action Properties In a message flow, use an insert action to insert the result of an XQuery expression at an identified place relative to nodes selected by an XPath expression. In the Message Flow Editor, click an insert action to display its properties in the Properties view. Use these properties pages to configure the selected insert action. The pages are: ■ Insert ■ Comment ■ Namespaces ■ Variables The Insert page has the following options: 4-52 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 217. Message Flow Editor Table 4–49 Insert Action Options Option Description Expression The XQuery expression used to create the data that will be inserted at a specified location in a named variable. To create or edit an expression, click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor. Location The location where the insert is performed, relative to the result of the XPath expression: Options are: ■ Before—as sibling before each element or attribute selected by the XPath expression ■ After—as sibling after each element or attribute selected by the XPath expression ■ As first child of—as first child of each element identified by the XPath expression. An error occurs if the result of the XPath returns attributes. ■ As last child of—as last child of each element identified by the XPath expression. An error occurs if the XPath returns attributes. XPath Valid configurations include those in which: ■ XQuery and XPath expressions both return elements. ■ The XQuery and XPath expressions both return attributes—in which case, the XQuery expression must return attributes. To create or edit the XPath expression, click <XPath> (or the XPath_fragment, if one is already defined) to display the XPath Expression Editor. Variable The context variable whose contents are evaluated by the XPath variable defined above. Enter the name of the variable in the text field. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.11 Java Callout Action Properties In a message flow, use a Java callout action to invoke a Java method or an EJB business service from within the message flow. In the Message Flow Editor, click a Java Callout action to display its properties in the Properties view. Use these properties pages to configure the selected Java callout action. The pages are: ■ Java Callout ■ Comment ■ Namespaces ■ Variables The Java Callout page has the following options: User Interface Reference 4-53
  • 218. Message Flow Editor Table 4–50 Java Callout Action Options Option Description Method An external Java method to be called from the message flow. Click Browse to select a class and a static method from an archived resource. Once you have selected the class and method, a table appears on the Java Callout Properties page: The Name column lists all the method’s arguments. The Action column provides an <Expression> or expression_ fragment link to the XQuery/XSLT Expression Editor, where you can create an expression to retrieve a value for the argument. Data types for the arguments must be one of the following: ■ Java.lang.String ■ Primitive types, and their corresponding class types (e.g., int vs. java.lang.Integer) ■ java.lang.BigDecimal, and java.lang.BigInteger (these types are used in financial calculations where round-off errors or overflows are not tolerable) ■ only org.apache.xbeans.XmlObject and no typed XML beans. ■ byte[] ■ java.lang.String[] (INPUT ONLY) ■ XmlObject [ ] (INPUT ONLY) ■ javax.activation.DataSource If the type of the input value you enter does not match the declared input argument type, Oracle Service Bus tries to automatically typecast input values to the declared type of the input argument. For example a string value of "123" will be converted to integer 123 if the declared type of the input argument is java primitive int. Return Parameter as Return Parameter as Reference: This option makes the return Reference value of a Java Callout invocation a <java-content ref="jcid"> reference element regardless of its actual type, where jcid is the key to the object in the pipeline object repository. In the Result value field, enter the name of the variable to contain the java-content reference. This option lets you work with a referenced object in the message flow in addition to the pipeline XML for providing passthrough, performing message enrichment with Java Callout and inline actions, or performing message transformation between Java and non-Java transports. For more information, see "Sending and Receiving Java Objects in Messages" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBDV1 874. Result Type The variable to which the result is assigned. The label for the field indicates the data type of the result. If the result is a byte array (the only possible array returned), the binary-content XML element is returned. 4-54 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 219. Message Flow Editor Table 4–50 (Cont.) Java Callout Action Options Option Description Service Account An optional Service Account, which can be specified if there is a security context for this Java method. Click Browse to select a service account. In the case of fixed and mapped service accounts, the userid/password from the service account is authenticated in the local system and the security context propagated to the Java callout. In the case of passthru, the security context is propagated to the Java callout. This context is the message level context if defined (with WS-Security). Otherwise, it is the transport level context. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.12 Log Action Properties In a message flow, use the log action to construct a message to be logged and to define a set of attributes with which it will be logged. In the Message Flow Editor, click a log action to display its properties in the Properties view. Use these properties pages to configure the selected log action. The pages are: ■ Log ■ Comment ■ Namespaces ■ Variables The Log page has the following options: Table 4–51 Log Action Options Option Description Expression The message context to be logged through XQuery expressions on context variables. To create or edit an expression, click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor. Annotation Notes for this log action. These notes are logged along with the result of the previously defined expression. User Interface Reference 4-55
  • 220. Message Flow Editor Table 4–51 (Cont.) Log Action Options Option Description Severity The severity of the log message. Options are: ■ Debug - While your application is under development, you might find it useful to create and use messages that provide verbose descriptions of low-level activity within the application. ■ Info -Used for reporting normal operations; a low-level informational message. ■ Warning - A suspicious operation or configuration has occurred but it might not affect normal operation. ■ Error - A user error has occurred. The system or application can handle the error with no interruption and limited degradation of service. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.13 Message Flow Properties - Comment In the Message Flow Editor, click a node or an action to display its properties in the Properties view. For most nodes and actions, one of the properties pages displayed (as a tab) is the Comment page. Use this page to add an optional comment about the item selected in the message flow. 4.11.14 Message Flow Properties - Namespaces In the Message Flow Editor, click a node or an action to display its properties in the Properties view. For most nodes and actions, one of the properties pages displayed (as a tab) is the Namespaces page. Use this page to see a list of defined namespaces or to create a new namespace. 4.11.15 Message Flow Properties - Variables In the Message Flow Editor, click a node or an action to display its properties in the Properties view. For many nodes and actions, one of the properties pages displayed (as a tab) is the Variables page. Use this page to see a list of all the predefined and user-defined context variables. Click Add to define a new variable. 4.11.16 MFL Transform Action Properties In a message flow, use a MFL (Message Format Language) transform action to convert message content from XML to non-XML, or vice versa, in the message pipeline. An MFL is a specialized XML document used to describe the layout of binary data. It is an Oracle proprietary language used to define rules to transform formatted binary data into XML data, or vice versa. In the Message Flow Editor, click a MFL transform action to display its properties in the Properties view. Use these properties pages to configure the selected MFL transform action. The pages are: ■ MFL Transform ■ Comment 4-56 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 221. Message Flow Editor ■ Namespaces ■ Variables The MFL Transform page has the following options: Table 4–52 MFL Transform Action Options Option Description Apply Transform The type of transform to be applied. Select XML to Non-XML or Non-XML to XML, according to your requirement. on <Expression> The variable on which the MFL transformation action is to be performed. Click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor, where you can specify the variable. This input must be text or binary when transforming to XML, and must be XML when transforming to non-XML. Binary content in the message context is represented by the binary-content XML element. This XML should be the result of the Xquery expression when the input needs to be binary. Resource Select this option to perform an MFL transform action using a static MFL resource. Click Browse to select the resource. Resource From Select this option to specify an MFL resource that will perform the transform action. Click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor, where you can specify the MFL resource that will perform the action, in the format project/folder/MFLresourcename. Variable The name of the variable to which the result of this transform action is to be assigned. The result will be a binary-content XML element. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.17 Operational Branch Node Properties In a message flow, use an operational branch node to configure branching based on operations defined in a WSDL. When message flows define WSDL-based proxy services, operation-specific processing is required. Instead of configuring a branching node based on operations manually, Oracle Service Bus provides a branching node that automatically branches based on operations. In other words, when you create an operational branch node in a message flow, you can quickly build your branching logic based on the operations defined in the WSDL, because the Oracle Service Bus plug-ins present those operations in the operational branch node configuration page. A branch node allows processing to proceed along exactly one of several possible paths. Branching is driven by an XPath-based switch table. Each branch in the table specifies a condition (for example, <500) that is evaluated in order down the message flow against a single XPath expression (for example, ./ns: PurchaseOrder/ns:totalCost on $body). Whichever condition is satisfied first User Interface Reference 4-57
  • 222. Message Flow Editor determines which branch is followed. If no branch condition is satisfied, then the default branch is followed. A branch node may have several descendants in the message flow: one for each branch, including the default branch. When you add an operational branch node to a message flow in the Message Flow Editor, the node contains an initial conditional branches based on the first operation defined in the WSDL, plus a default branch, as shown in Figure 4–1. Figure 4–1 Branch Node With "Submit" Operation From WSDL and "Default" Branch Click the node itself (the Operational Branch Node icon or the bounding box connected to the icon) to display the Flow properties page in the Properties view. You can provide a name and a description for the node on that page. Click an operational branch icon to display the properties for that operational branch on the Operational Branch page. That page contains a list of all the operations defined in the WSDL. You can select a different operation for that branch. You can also click the plus sign in the operational branch node, in the Message Flow Editor, to add another operation branch. After you have added all the branches, add nodes and stages to them to define the processing for each branch. 4.11.18 Pipeline Pair Node Properties In a message flow, use a pipeline pair node to define request and response processing. Message flows can include zero or more pipeline pair nodes: request and response pipelines for the proxy service (or for the operations on the service), and error handler pipelines that can be defined for stages, pipelines, and proxy services. Pipelines can include one or more stages, which in turn include actions. A pipeline pair always contains a request pipeline and a response pipeline. Add stages and actions to those pipelines, as needed. In the Message Flow Editor, click a pipeline pair node to display its properties in the Properties view. Use this properties page to configure the selected pipeline pair node. The options are: Table 4–53 Pipeline Pair Node Options Option Description Name Enter a name for the pipeline pair node. Description Enter a description for the pipeline pair node. 4-58 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 223. Message Flow Editor 4.11.19 Publish Action Properties In a message flow, use a publish action to identify a statically specified target service for a message and to configure how the message is packaged and sent to that service. In the Message Flow Editor, click a publish action to display its properties in the Properties view. Use these properties pages to configure the selected publish action. The pages are: ■ Publish ■ Comment ■ Namespaces ■ Variables The Publish page has the following options: Table 4–54 Publish Action Options Option Description Service The target service for the publish action. Click Browse to select a proxy service or business service from a list. Invoking The operation to be invoked on the target service. This option appears only if the selected service defines any operations. To configure how the message is packaged and sent to the service, in the Request Actions field, click Add an Action. Then select an action to associate with the service. You can add more than one action. Use inbound operation Select this option to make the outbound operation the same as the for outbound inbound operation. This option appears only if the selected service defines any operations. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.20 Publish Table Action Properties In a message flow, use a publish table action to publish a message to zero or more statically specified services. Switch-style condition logic is used to determine at run time which services will be used for the publish. A publish table action contains one or more case actions to define conditions for following alternative paths (by default, via publish actions), as well as a default path to a default publish action. To fully define a publish table action, you must configure the publish table action, its case actions, and its publish actions (and any other actions you may add). When you add a publish table action to a message flow in the Message Flow Editor, the publish table action contains a case action with a path to a publish action plus a default case action with a path to a default publish action, as shown in Figure 4–2. Click add condition to add another condition to the publish table. User Interface Reference 4-59
  • 224. Message Flow Editor Figure 4–2 Publish Table Action 4.11.20.1 Publish Table Properties In the Message Flow Editor, click the publish table action itself (the Publish Table icon or the bounding box connected to the icon) to display the Publish Tables properties page in the Properties view. Use these properties pages to configure the selected publish table action. The pages are: ■ Publish Table ■ Comment ■ Namespaces ■ Variables The Publish Table properties page has the following option: Table 4–55 Publish Table Options Option Description Expression An XQuery expression, which at run time returns the value upon which the routing decision will be made. To create or edit an XQuery expression, click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.20.2 Case Action Properties In the Message Flow Editor, click a case action to display its properties in the Properties view. Use this properties page to configure the selected case action, as described below: 4-60 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 225. Message Flow Editor Table 4–56 Case Action Options Option Description Operator and Value Select a comparison operator from the list. Then enter a value against which the value returned from the XQuery expression defined for the publish table action will be evaluate 4.11.20.3 Publish Action Properties See Section 4.11.19, "Publish Action Properties." 4.11.21 Raise Error Action Properties In a message flow, use the raise error action to raise an exception with a specified error code (a string) and description. In the Message Flow Editor, click a raise error action to display its properties in the Properties view. Use these properties pages to configure the selected raise error action. The pages are: ■ Raise Error ■ Comment ■ Namespaces ■ Variables The Raise Error page has the following options: Table 4–57 Raise Error Action Options Option Description Code The error code to be raised. Message Description of the error code Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.21.1 Transactions If a service is transactional, a triggered Raise Error action aborts the transaction in the request (asynchronous) or in either the request or response (synchronous). For example, you may introspect messages and determine conditions under which a Raise Error action should occur even if no SOAP fault occurs, and Raise Error causes the transaction to be aborted. 4.11.22 Rename Action Properties In a message flow, use the rename action to rename elements selected by an XPath expression without modifying the contents of the element. In the Message Flow Editor, click a rename action to display its properties in the Properties view. Use these properties pages to configure the selected rename action. The pages are: ■ Rename User Interface Reference 4-61
  • 226. Message Flow Editor ■ Comment ■ Namespaces ■ Variables The Rename page has the following options: Table 4–58 Rename Action Options Option Description XPath An XPath expression used to specify the data (in the named variable) that will be renamed. To create or edit the XPath expression, click <XPath> (or the XPath_fragment, if one is already defined) to display the XPath Expression Editor. In Variable The context variable that holds the element you want to rename. Enter the name of the variable in this field. Localname A local name to use to rename the selected elements. Enter the local name in this field. Namespace A namespace to use when renaming the selected elements. Enter the namespace in this field. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.23 Replace Action Properties In a message flow, use a replace action to replace a node or the contents of a node specified by an XPath expression. The node or its contents are replaced with the value returned by an XQuery expression. A replace action can be used to replace simple values, elements and even attributes. An XQuery expression that returns nothing is equivalent to deleting the identified nodes or making them empty, depending upon whether the action is replacing entire nodes or just node contents. In the Message Flow Editor, click a replace action to display its properties in the Properties view. Use these properties pages to configure the selected replace action. The pages are: ■ Replace ■ Comment ■ Namespaces ■ Variables The Replace page has the following options: 4-62 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 227. Message Flow Editor Table 4–59 Replace Action Options Option Description XPath The XPath expression used to specify the data (in the named variable) that will be replaced. To create or edit the XPath expression, click <XPath> (or the XPath_fragment, if one is already defined) to display the XPath Expression Editor. Variable Enter a context variable. Expression The XQuery expression used to create the data that replaces the data specified by the XPath in the named variable. To create or edit an expression, click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor. Replace entire node When you finish editing the XQuery expression, select one of the options: or ■ Replace entire node—to specify that the nodes selected by the Replace node contents XPath expression you defined are replaced along with all of its contents ■ Replace node contents—to specify that the node is not replaced; only the contents are replaced. Note: Selecting the Replace node contents option and leaving the XPath field blank is more efficient than selecting the Replace entire node option and setting the XPath to ./* Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.24 Reply Action Properties In a message flow, use the reply action to specify that an immediate reply be sent to the invoker. The reply action can be used in the request, response, or error pipeline. You can configure it to result in a reply with success or failure. In the case of reply with failure where the inbound transport is HTTP, the reply action specifies that an immediate reply is sent to the invoker. In the Message Flow Editor, click a reply action to display its properties in the Properties view. Use these properties pages to configure the selected reply action. The pages are: ■ Assign ■ Comment ■ Namespaces ■ Variables The Reply page has the following options: User Interface Reference 4-63
  • 228. Message Flow Editor Table 4–60 Reply Action Options Option Description With Success Select With Success to reply that the message was successful, or select With Failure to reply that the message has a fault. Reply or With Failure will cause a transaction, if started by Oracle Service With Failure Bus, to be aborted. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.25 Report Action Properties In a message flow, use the report action to enable message reporting for a proxy service. In the Message Flow Editor, click a report action to display its properties in the Properties view. Use these properties pages to configure the selected report action. The pages are: ■ Report ■ Comment ■ Namespaces ■ Variables The Report page has the following option: Table 4–61 Report Action Options Option Description Expression The XQuery expression used to create the data that will be reported. To create or edit an expression, click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor. Search Keys When you finish editing the XQuery expression, click Add a Key to add one or more key value pairs to be used to extract key identifiers from any message context variable or message payload. (The rest of the message is ignored.) The keys are a convenient way to identify a message. In the Key Name: Name field enter a name for the key.In the Key Value column, click <XPath> to create the XPath expression in the XPath Expression Editor.In the In variable field, enter the name of the variable on which the expression will be executed. For example, consider a report action configured on an error handler in a stage. The action reports the contents of the fault context variable in the event of an error. The report action is configured as follows: ■ Key name = errorCode ■ Key value = ./ctx:errorCode in variable fault 4-64 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 229. Message Flow Editor Each time this action is executed at run time, a message is reported via the Reporting Data Stream. The following table shows the results after the report action is executed twice. Table 4–62 Report Action Execution Results Report Index DB TimeStamp Inbound Service Error Code errorCode=BEA-382505 04/26/07 9:45 AM MortgageBroker/ProxySvcs/loanGate BEA-382505 way3 errorCode=BEA-382505 04/26/07 9:45 AM same BEA-382505 Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.26 Resume Action Properties In a message flow, use the resume action to resume message flow after an error is handled by an error handler. This action has no parameters and can only be used in error pipelines. In the Message Flow Editor, click a resume action to display its properties in the Properties view. Use these properties pages to configure the selected resume action. The pages are: ■ Comment ■ Namespaces ■ Variables Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.27 Route Node Properties In a message flow, use the route node to handle request and response dispatching of messages to and from business services. No other nodes can follow a route node. In the Message Flow Editor, click a route node to display its properties in the Properties view. Use these properties pages to configure the selected route node. The pages are: ■ Route ■ Namespaces ■ Variables The Route page has the following option: Table 4–63 Route Node Options Option Description Name Enter a name for the route node. Description Enter a description for the route node. User Interface Reference 4-65
  • 230. Message Flow Editor Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.28 Routing Action Properties In a message flow, use a routing action to identify a target service for the message and configure how the message is routed to that service. This is a terminal action, which means you cannot add another action after this one. However, this action can contain request and response actions. In the Message Flow Editor, click a routing action to display its properties in the Properties view. Use these properties pages to configure the selected routing action. The pages are: ■ Routing ■ Comment ■ Namespaces ■ Variables The Routing page has the following option: Table 4–64 Routing Action Options Option Description Service The target service for the routing action. Click Browse to select a proxy service or business service from a list. Invoking The operation to be invoked on the target service. This option appears only if the selected service defines any operations. To configure how the message is packaged and sent to the service, in the Request Actions field, click Add an Action. Then select an action to associate with the service. You can add more than one action. Use inbound operation Select this option to make the outbound operation the same as the for outbound inbound operation. This option appears only if the selected service defines any operations. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.29 Routing Options Action Properties In a message flow, use a routing options action to modify any or all of the following properties in the outbound request: URI, Quality of Service, Mode, Retry parameters, Message Priority. In the Message Flow Editor, click a routing options action to display its properties in the Properties view. Use these properties pages to configure the selected routing options action. The pages are: 4-66 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 231. Message Flow Editor ■ Routing Options ■ Comment ■ Namespaces ■ Variables The Routing Options page has the following option: Table 4–65 Routing Options Action Properties Option Description URI Select this option to set the URI for the outbound message: To create or edit an expression, click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor. Enter an expression that returns a URI. This overrides the URI for the invoked service. Note: When routing to another proxy service, the URI override has no effect. QoS Select this option to set the Quality of Service element: Select a QoS option from the list. This overrides the default. Mode Select this option to set the mode to Request or Request-Response. Select the mode from the list. Note: This is normally already automatically set, based on the interface of the service invoked. However, in some cases like Any Soap or Any XML services, this is not so. Retry Interval Select this option to set the retry interval. Specify the number of seconds between retries. This overrides the default configured with the invoked service. Retry Count Select this option to set the retry count. Specify the number of retries the system must attempt before discontinuing the action. This overrides the default configured with the invoked service. Priority Select this option to set the message priority: To create or edit an expression, click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor. Enter an expression that returns a positive integer. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.30 Routing Table Action Properties In a message flow, use a routing table to select different routes based upon the results of a single XQuery expression. A routing table action contains a set of routes wrapped in a switch-style condition table. This is a terminal action, which means you cannot add another action after this one. However, this action can contain request and response actions. User Interface Reference 4-67
  • 232. Message Flow Editor When you add a routing table action to a message flow in the Message Flow Editor, the routing table action contains a case action with a path to a routing action plus a default case action with a path to a default routing action, as shown in Figure 4–3. Click add condition to add another condition to the routing table. Figure 4–3 Routing Table Action 4.11.30.1 Routing Table Properties In the Message Flow Editor, click the publish table action itself (the Publish Table icon or the bounding box connected to the icon) to display the Publish Tables properties page in the Properties view. Use these properties pages to configure the selected publish table action. The pages are: ■ Routing Table ■ Comment ■ Namespaces ■ Variables The Routing Table properties page has the following option: Table 4–66 Routing Table Options Option Description Expression An XQuery expression, which at run time returns the value upon which the routing decision will be made. To create or edit an XQuery expression, click <Expression> (or the expression_fragment, if one is already defined) to display the XQuery/XSLT Expression Editor. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4-68 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 233. Message Flow Editor 4.11.30.2 Case Action Properties In the Message Flow Editor, click a case action to display its properties in the Properties view. Use this properties page to configure the selected case action, as described below: Table 4–67 Case Action Options Option Description Operator and Value Select a comparison operator from the list. Then enter a value against which the value returned from the XQuery expression defined for the routing table action will be evaluate 4.11.30.3 Routing Action Properties See Section 4.11.28, "Routing Action Properties." 4.11.31 Service Callout Action Properties In a message flow, use a service callout action to configure a synchronous (blocking) callout to an Oracle Service Bus-registered proxy or business service. In the Message Flow Editor, click a service callout action to display its properties in the Properties view. Use these properties pages to configure the selected service callout action. The pages are: ■ Service Callout ■ Comment ■ Namespaces ■ Variables The Service Callout page has the following options: Table 4–68 Service Callout Action Options Option Description Service The target service for the service callout action. Click Browse to select a proxy service or business service from a list. Invoking The operation to be invoked on the target service. This option appears only if the selected service is WSDL-based and has operations that can be invoked on the service. Note: Selecting an operation, which Oracle Service Bus requires for many reasons, does not guarantee that only the selected operation is invoked. For example, if you select OperationA, but a message also contains an invocation for Operation B, then OperationB will be invoked as well. Configure Soap Body Specify how you want to configure the request and response messages by selecting one of the following options: or ■ Select Configure SOAP Body to configure the SOAP Body. Configure Payload Selecting this option allows you to use $body directly. Document This option supports SOAP-RPC encoded, which is not supported when configuring payload parameters or document. ■ Select Configure Payload Parameters or Configure Payload Document to configure the payload. User Interface Reference 4-69
  • 234. Message Flow Editor Subsequent configuration options depend on the kind of service you selected and on the kind of configuration options you chose. Table 4–69 shows the options available for each service type. Table 4–69 SOAP Body, Payload Parameters, and Payload Document Options "Configure Payload Parameters" Selected Service "Configure SOAP Body" Options or "Configure Payload Type Options Document" Options SOAP RPC See "SOAP Request Body See "Request Parameters and and SOAP Response Body" Response Parameters" (optional) in the following table. (Optional) See "SOAP Request (Optional) See "SOAP Header and SOAP Response Header" Request Header and SOAP in the following table. Response Header" in the following table. SOAP Document See "SOAP Request Body See "Request Document and Response and Any SOAP and SOAP Response Body" Document" in the following table. in the following table. (Optional) See "SOAP Request (Optional) See "SOAP Header and SOAP Response Header" Request Header and SOAP in the following table. Response Header" in the following table. XML, Any XML, and See "SOAP Request Body See "Request Document and Response Messaging and SOAP Response Body" Document" in the following table. in the following table. The following table provides instructions for each of the options listed in the previous table. Table 4–70 SOAP Body, Payload Parameters, and Payload Document Option Descriptions For These Options... Follow These Steps... SOAP Request Body and To configure these options: SOAP Response Body ■ In the SOAP Request Body field, enter the name of a variable to hold the XML of the SOAP Body element for the callout request. ■ In the SOAP Response Body field, enter the name of a variable to which the XML of the SOAP Body element on the response will be bound. SOAP Request Header and To configure these options: SOAP Response Header ■ In the SOAP Request Header field, enter the name of a variable to hold the XML of the SOAP Header element for the callout request You must wrap the input document for the SOAP Request Header with <soap-env:Header>...</soap-env:Header>. ■ In the SOAP Response Header field, enter the name of a variable to which the XML of the SOAP Headers on the response, if any, will be bound. 4-70 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 235. Message Flow Editor Table 4–70 (Cont.) SOAP Body, Payload Parameters, and Payload Document Option Descriptions For These Options... Follow These Steps... Request Parameters and To configure options: Response Parameters ■ In the Request Parameters fields, enter names for the variables that will be evaluated at run time to provide values for the request parameters. You must provide only the core payload documents in the input variable—the SOAP package is created for you by Oracle Service Bus. In other words, do not wrap the input document with <soap-env:Body>...</soap-env:Body>. For example, when creating a body input variable that is used for this request parameter, you would define that variable’s contents using the XPath statement body/* (to remove the wrapper soap-env:Body), not $body (which results in keeping the soap-env:Body wrapper). ■ In the Response Parameters fields, enter the names of the variables to which the responses will be assigned at run time. Request Document and To configure these options: Response Document ■ In the Request Document Variable field, enter the name of a variable to assign a request document to. For SOAP Document-type services, the variable is evaluated at runtime to form the body of the SOAP message sent to the service. For Any XML services, the variable is evaluated at runtime to form the body of the XML message sent to the service. For SOAP Document-type services and for Any XML services, you provide only the core payload documents in the input variable—the SOAP package is created for you by Oracle Service Bus. In other words, do not wrap the input document with <soap-env:Body>...</soap-env:Body>. For example, when creating a body input variable that is used for this request parameter, you would define that variable’s contents using the XPath statement body/* (to remove the wrapper soap-env:Body), not $body (which results in keeping the soap-env:Body wrapper). For Messaging services, the variable is evaluated to form the body of the message, based on the type of data expected by the service. The following restrictions apply to variables used with Messaging services: ■ For services that expect binary data, the variables must have a ctx:binary-content element. ■ For services that expect MFL data, the variable must have the XML equivalent. ■ For services that expect text data, the variable is a string. ■ In the Response Document Variable field, enter the name of the variable to which a response document will be assigned at run time. Optionally, add one or more transport header actions. For more information about transport header actions, see Section 4.11.34, "Transport Headers Action Properties." User Interface Reference 4-71
  • 236. Message Flow Editor Note: In addition to the transport headers you specify, headers are added by the Oracle Service Bus binding layer. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. 4.11.32 Skip Action Properties In a message flow, use the skip action to specify that at run time, the execution of the current stage is skipped and the processing proceeds to the next stage in the message flow. This action has no parameters and can be used in the request, response or error pipelines. In the Message Flow Editor, click a skip action to display its properties in the Properties view. Use these properties pages to configure the selected skip action. The pages are: ■ Comment ■ Namespaces ■ Variables Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.33 Stage Node Properties In a message flow, use a stage node as a container for actions in a message flow. You can string multiple stages together, to compartmentalize processing logic. In the Message Flow Editor, click a stage node to display its properties in the Properties view. Use these properties pages to configure the selected stage node. The pages are: ■ Stage ■ Namespaces ■ Variables The Stage page has the following options: Table 4–71 Start Node Options Option Description Name Enter a name for the stage node. Description Enter a description of the stage node. Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.34 Transport Headers Action Properties In a message flow, use a transport header action to set header values in messages. 4-72 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 237. Message Flow Editor In the Message Flow Editor, click a transport headers action to display its properties in the Properties view. Use these properties pages to configure the selected transport headers action. The pages are: ■ Transport Headers ■ Comment ■ Namespaces ■ Variables The Transport Header page has the following options: Table 4–72 Transport Header Action Options Option Description Direction From the Set Transport Headers for list, select one of the following, to specify to the run time which of the message context locations are to be modified: ■ Outbound Request - Select this option to set header values for outbound requests (the messages sent out by a proxy service in route, publish, or service callout actions). This header element is located in the message context as follows: $outbound/ctx:transport/ctx:request/tp:headers ■ Inbound Response - Select this option to set header values for inbound responses (the response messages a proxy service sends back to clients). This header element is located in the message context as follows: $inbound/ctx:transport/ctx:response/tp:headers Pass All Headers Select this option to pass all headers through from the inbound message to the outbound message or vice versa. Every header in the source set of headers will be copied to the target header set, overwriting any existing values in the target header set. Headers Click Add Header to add a header to the Headers table. Then configure each header as described in the following rows. You can add as many headers as necessary to this table. You do not have to order the headers in the table, because the run time declares namespaces and places header elements in their proper order when generating the corresponding XML. Headers: Name: Specify a header by doing either of the following: ■ From the list in the Name column, select a header name. The list contains all of the predefined header names for the target transport (for example, Content-Type for HTTP transports, JMSCorrelationID for JMS transports, etc.). ■ Enter a header name in the Other field. If that header name is not one of the predefined headers for this service’s transport, it becomes a user-header, as defined by the transport specification. User Interface Reference 4-73
  • 238. Message Flow Editor Table 4–72 (Cont.) Transport Header Action Options Option Description Headers: Action Select one of the options in this column to specify how to set the header’s value: ■ Set Header to Expression Selecting this option allows you to use an XQuery or XSLT expression to set the value of the header. The expression can be simple (for example, "text/xml") or a complex XQuery or XSLT expression. Because the Oracle Service Bus transport layer defines the XML representation of all headers as string values, the result of any expression is converted to a string before the header value is set. Expressions that return nothing result in the header value being set to the empty string. You cannot delete a header using an expression. Caution: Not all of the header settings you can specify in this action are honored at run time. ■ Delete Header Specifies that the header is removed from the request or response metadata. ■ Copy Header from Inbound Request (if you are setting transport headers for the Outbound Request) or Copy Header from Outbound Response (if you are setting transport headers for the Inbound Response) Specifies that this header is copied directly from the corresponding header of the same name from the inbound message to the outbound message and vice versa. For example, if you want to set the SOAPAction header for an outbound request, selecting Copy Header from Inbound Request causes the run time to copy the value from the SOAPAction request header of $inbound. In the case of inbound response headers, the source of the header to copy is the response headers of $outbound. If the Copy Header option is selected for a header that does not exist in the source, this option is ignored and no action is performed on the target for this header. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.11.35 Validate Action Properties In a message flow, use a validate action to validate elements selected by an XPath expression against an XML schema element or a WSDL resource. You can validate global elements only; Oracle Service Bus does not support validation against local elements. In the Message Flow Editor, click a validate action to display its properties in the Properties view. Use these properties pages to configure the selected validate action. The pages are: ■ Validate 4-74 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 239. SMTP Servers ■ Comment ■ Namespaces ■ Variables The Validate page has the following options: Table 4–73 Validate Action Options Option Description XPath An XPath expression that specifies the elements to be validated. To create or edit the XPath expression, click <XPath> (or the XPath_fragment, if one is already defined) to display the XPath Expression Editor. In Variable The name of the variable to hold the element to be validated. Enter the name of the variable, or, if Content Assist is on, press Ctrl-Space to display a list of declared variables. Against Resource An XML schema element or a WSDL resource against which the elements selected by the XPath expression (in the XPath field described above) are validated. Save Variable To save the result of this validation (a boolean result), select Save Variable and enter the name of the variable in which you want to or save the result. Raise Error Alternatively, to raise an error if the element fails validation against the WSDL or XML schema element, select Raise Error. Use the Comment page to add a comment, if desired: Use the Namespaces page to see a list of defined namespaces or to create a new one. Use the Variables page to see a list of defined context variables or to create a new one. 4.12 Modify JAR Dependencies Dialog In Oracle Service Bus, JAR resources can contain classes that depend on other classes in different JARs. Use the Modify JAR Dependencies page to add or remove referenced JAR resources. Use the Up and Down buttons to reorder the hierarchy (order of precedence) of referenced JARs. For more information, see "JARs" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG898. Table 4–74 Modify JAR Dependencies Properties Option Description Available JARs The project name and the name of the folder, if applicable, in which the JAR resources reside. This column shows all available JARs in the current workspace. JAR references The name and path of the referenced JAR resources. This column shows all the JARs currently configured as dependencies. 4.13 SMTP Servers The following editor and wizard are provided for working with SMTP servers: ■ Section 4.13.1, "Edit SMTP Server Page" ■ Section 4.13.2, "New SMTP Server Resource Wizard" User Interface Reference 4-75
  • 240. UDDI Registry Configuration Page 4.13.1 Edit SMTP Server Page Use this page to view the details of an SMTP server and edit the configuration, if required. For descriptions of the fields, see the Section 4.13.2, "New SMTP Server Resource Wizard." If you rename an SMTP resource, the new name is automatically updated in the any e-mail business services that reference the SMTP resource in the endpoint URI. 4.13.2 New SMTP Server Resource Wizard Use this page to configure a new SMTP server resource. Table 4–75 New SMTP Server Options Option Description Description Enter a description for this SMTP server resource. Server URL Enter the URL that points to the SMTP server. This is a required field. Port Number Enter a port number for the SMTP server (the default port is 25). This is a required field. User Name If access to the target SMTP server requires a user name and password, enter a user name in the User Name field, and the associated password in the Password and Confirm Password fields. These fields are optional, and required only if the SMTP server is secured. Password Enter the associated password. Confirm Password Enter the same password you entered for the Password field. 4.14 UDDI Registry Configuration Page Use this page to configure a UDDI registry resource. This page is displayed in the New UDDI Registry Resource wizard and in the UDDI Configuration editor. For more information, see "UDDI" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus at http://www.oracle.com/pls/as1111/lookup?id=OSBAG392. Table 4–76 UDDI Registry Options Option Description Description Enter a description of the registry. Inquiry URL The URL of the Inquiry API endpoint used for locating and importing services. Enter an inquiry URL in the format: http://host:port/APPLICATION_SERVER_ CONTEXT/uddi/inquiry Publish URL The URL of the Publish API endpoint used for publishing services. Enter a publish URL in the format: http://host:port/APPLICATION_SERVER_ CONTEXT/uddi/publishing Security URL The URL of the Security API endpoint used for getting an authentication token so that you can publish to the registry. Enter a security URL in the format: http://host:port/APPLICATION_ SERVER_CONTEXT/uddi/security 4-76 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 241. Resource Management Table 4–76 (Cont.) UDDI Registry Options Option Description Subscription URL The URL of the Subscription API endpoint used for subscribing to registry changes, creating a registry subscription, and listening for changes to imported services. Enter a subscription URL in the format: http://host:port/APPLICATION_SERVER_ CONTEXT/uddi/subscription By default, the value for APPLICATION_SERVER_CONTEXT in the installer is registry. User Name Enter the user name to log into the registry console. Password (Confirm Enter the password to log into the registry console. Password) Validate Click Validate to validate that a connection can be made to the configured registry. 4.15 Outline view - Oracle Service Bus This view displays a hierarchical view, or outline, of a structured file that is currently open in the editor area. The contents of this view are editor-specific. In Oracle Service Bus, when the proxy service is editor is open and the Message Flow Editor is selected, the Outline view displays a hierarchical view of the nodes and actions in the message flow. When the Message Flow Editor is displayed, you can switch between the hierarchical view and a thumbnail view of the service. In thumbnail view, when the entire message flow does not fit in the editor, a blue mask appears in the outline view to show what portion of the flow is visible in the editor. To display a different portion of the flow, you can drag the mask to the portion of the flow you want to display in the editor. 4.16 Resource Management The following are provided for managing resources: ■ Section 4.16.1, "Preferences dialog - Oracle Service Bus - Type Associations Page" ■ Section 4.16.2, "References View" ■ Section 4.16.3, "Select Clone Target Dialog" ■ Section 4.16.3, "Select Clone Target Dialog" 4.16.1 Preferences dialog - Oracle Service Bus - Type Associations Page Use this page to associate one or more file extensions with an Oracle Service Bus resource type. Table 4–77 Type Association Properties Option Description Resource Types This pane lists all the available types of Oracle Service Bus resources. Select a type to display its assigned file extension associated with the type. User Interface Reference 4-77
  • 242. New Service Key Provider Resource 4.16.2 References View Use this page to view resource dependencies. This view shows your current selection whether it is in the Project Explorer or the active editor. Table 4–78 Reference Dependency Properties Option Description Referenced By A list of the resources outside of this project, folder, or resource that are dependent on resources inside this project or folder, or this resource. References A list of the resources outside of this project, folder, or resource on which resources inside this project or folder, or this resource depends. 4.16.3 Select Clone Target Dialog Use this dialog to specify where to clone a project, as a new project or as a folder under a different project. Table 4–79 Clone Project Options Option Description Name Enter a name for the new (cloned) project. As project Select As project to clone the project as another project, that is, as a peer to the other projects. or Select As folder in location to convert a project (and its contents) As folder in location into a folder under a project. When you select this option, you must also select the new location. 4.16.4 Select a Resource Dialog Use this dialog to select a resource, appropriate to the context, that has been created in or imported into the Oracle Service Bus plug-ins. When you click Browse from an editor or a wizard, this dialog displays the available resources that are appropriate for the context. The dialog has different names, depending on the type of resource displayed, for example, Select a WSDL, Select a MFL, Select an XML Schema, etc. In some cases, the dialog displays a hierarchical list of items contained in each resource. For example, the Select an XML Schema dialog lists elements and types defined in the schemas. The Select a WSDL dialog displays ports and bindings defined in the WSDLs. In some cases, for example, the Select a WSDL dialog, you can click the Consume button to open the Service Consumption dialog, where you can consume services from the following resource types: Oracle Enterprise Repository, file system, UDDI, URI, workspace: consume a service residing in the current workspace. 4.17 New Service Key Provider Resource Use this page to configure a service key provider resource after you create one. Table 4–80 New Service Key Provider Options Option Description Description Enter a description for the service key provider. 4-78 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 243. Service Accounts Table 4–80 (Cont.) New Service Key Provider Options Option Description Encryption Key To enter an Encryption Key: 1. Next to Encryption Key, select the Key check box. 2. Enter a key alias that maps to an X.509 certificate and that supports encryption, or click Browse to display the key aliases from the key store that your realm’s PKI credential mapper is using. 3. Enter the password that you use to secure access to the key store. (You set the password when you create the key store.) When you associate this service key provider with a proxy service, Oracle Service Bus embeds the X.509 certificate into the proxy service’s WSDL. The proxy service then uses this certificate to encrypt the messages that it sends to its endpoint. The proxy service uses the private key in the PKI credential to decrypt the messages that the endpoint returns. Digital Signature Key To enter a Digital Signature Key: 1. Next to Digital Signature Key, select the Key check box. 2. Enter a key alias, or click Browse to display the key aliases from the key store that your realm’s PKI credential mapper is using. 3. Enter the password that you use to secure access to the key store. (You set the password when you create the key store.) SSL Client To enter an SSL Client Authentication Key: Authentication Key 1. Next to SSL Client Authentication Key, select the Key check box. 2. Enter a key alias, or click Browse to display the key aliases from the key store that your realm’s PKI credential mapper is using. 3. Enter the password that you use to secure access to the key store. (You set the password when you create the key store.) 4.18 New WS-Policy Web Services Policy Framework (WS-Policy) is an extensible XML-based framework that extends the configuration of a Web Service with domain specific security assertions and specifies the security requirements, expectations, and capabilities of the Web Service. In Oracle Service Bus, one of the primary uses of WS-Policy is configuring message-level security in proxy services and business services. Use this page to select a name and location for a new WS-Policy resource. Table 4–81 New WS-Policy Options Option Description Enter or select the parent Enter or select the name of the project or folder in which to locate a folder new WS-Policy resource. File Name Enter a name for this WS-Policy. 4.19 Service Accounts The following are provided for working with service accounts: ■ Section 4.19.1, "New Service Account Resource" User Interface Reference 4-79
  • 244. Service Accounts ■ Section 4.19.2, "Service Account Editor - General Configuration Page" ■ Section 4.19.3, "Service Account Editor - Static User Configuration Page" ■ Section 4.19.4, "Service Account Editor - User Mappings Configuration Page" 4.19.1 New Service Account Resource Use the Service Account Resource editor to configure service account resource after you create it. Table 4–82 New Service Account Options Option Description Description Enter a description for the service account. Resource Type ■ To create a service account that provides the user names and passwords that it receives from incoming client requests, select Pass Through and click Finish. ■ To create a service account that provides a user name and password that you save with the service account configuration, select Static. Continue as described in Section 4.19.3, "Service Account Editor - Static User Configuration Page." ■ To create a service account that maps the user name from one or more authenticated clients to user names and passwords that you specify, select Mapping. Continue as described in Section 4.19.4, "Service Account Editor - User Mappings Configuration Page." 4.19.2 Service Account Editor - General Configuration Page Use this page to configure a service account resource, as described in the following table. Table 4–83 Service Account General Options Option Description Description Enter a description for the service account. Resource Type Leave the resource type as is, or select a different resource type: ■ A Pass Through type provides the user names and passwords that it receives from incoming client requests. ■ A Static type provides a user name and password that you save with the service account configuration. Configure this type on the Service Account Editor - Static User Configuration Page. ■ A Mapping type maps the user name from one or more authenticated clients to user names and passwords that you specify. Configure this type on the Service Account Editor - User Mappings Configuration Page. 4.19.3 Service Account Editor - Static User Configuration Page Use this to page to save a user name and password with the service account configuration. The service account encodes this user name and password in the outbound request. 4-80 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 245. Expression Editors Table 4–84 Service Account Static User Options Option Description User Name Enter a user name for this service account. Password Enter the associated password. Confirm Password Enter the same password you entered for the Password field. 4.19.4 Service Account Editor - User Mappings Configuration Page Use this to page to create a service account that maps the user name from one or more clients to user names and passwords that you specify. Table 4–85 Service Account User Mappings Options Option Description Remote Users In the Remote User Name and Remote Password fields, enter the user name and password that you want to send in outbound requests. (Optional) Add additional remote users in the Remote Users table. Local User Mappings To map authorized clients to remote user names and passwords, in the Local User Name field, enter the name that identifies a client that has been authenticated on its inbound request. If you have not already added this user in the Security Configuration module of the Oracle Service Bus Administration Console, do so before you use this mapping in a runtime environment. Oracle Service Bus lets you create a mapping for a non-existent local user, but the mapping will never match an authenticated user and will never be used. From the Remote User Name list, select the user name that you want to send in outbound requests for the authenticated user you specified in the Local User Name field. Map Anonymous To map anonymous clients to remote user names, select the Map Requests Anonymous Requests check box. From the Select Remote User list, select the user name that you want to send in outbound requests for all anonymous users. 4.20 Expression Editors The following editors help you to write expressions for use in services. ■ Section 4.20.1, "XQuery/XSLT Expression Editor" ■ Section 4.20.2, "XPath Expression Editor" ■ Section 4.20.3, "Condition Editor" 4.20.1 XQuery/XSLT Expression Editor Use the XQuery/XSLT Expression editor to create variable structures, define user namespaces, use predefined message context variables to build inline XQuery expressions, build inline XQuery expressions manually, and select XQuery or XSLT resources for execution as inline XQueries. The XQuery/XSLT Expression editor contains two panels, each containing three tabs. Use the panel on the left to write or construct the expression. The panel contains these pages (tabs): User Interface Reference 4-81
  • 246. Expression Editors ■ Section 4.20.5, "Expression Page" ■ Section 4.20.6, "XQuery Resource Page" ■ Section 4.20.7, "XSLT Resource Page" ■ Section 4.20.8, "Dynamic XQuery Page" Use the tabs in the panel on the right to manage the variables, namespaces, and XQuery functions you can use to construct an XQuery or XSLT. The panel contains these pages (tabs): ■ Section 4.20.9, "Variable Structures Page" ■ Section 4.20.10, "Namespace Definitions Page" ■ Section 4.20.11, "XQuery Functions Page" 4.20.2 XPath Expression Editor Use the XPath Expression Editor to create an XPath expression, which is then inserted into the location from which you launched the editor. The XPath Expression Editor contains these pages: ■ Section 4.20.5, "Expression Page" ■ Section 4.20.9, "Variable Structures Page" ■ Section 4.20.10, "Namespace Definitions Page" ■ Section 4.20.11, "XQuery Functions Page" You can write an expression directly in the Expression text field, or you can drag variables from the Variable Structure page and drag XQuery functions from the XQuery Functions page to construct a valid XPath expression. When you are finished constructing the expression, you can click Test to test the expression on a running server. Or click OK to insert the expression without testing it. 4.20.3 Condition Editor Use the Condition Editor to create an inline XQuery condition. Use the panel on the left to write or construct the condition. The panel contains these tabs, each of which is described below: ■ Section 4.20.5, "Expression Page" ■ Section 4.20.4, "Condition Builder Page" Use the tabs in the panel on the right to manage the variables, namespaces, and XQuery functions you can use to construct a condition. The panel contains the following tabs. They are the same as the tabs in the right-hand panel of the XQuery/XSLT Expression Editor, and the following links display the help for those tabs in the XQuery/XSLT Expression Editor. ■ Section 4.20.9, "Variable Structures Page" ■ Section 4.20.10, "Namespace Definitions Page" ■ Section 4.20.11, "XQuery Functions Page" 4-82 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 247. Expression Editors 4.20.4 Condition Builder Page Use the Condition Builder page to build an inline condition. This page appears only in the Condition Editor. Build an expression in the Condition Builder as follows: 1. Select Comparison Expression to build a comparison expression or select Unary Expression to build a unary expression. 2. If you chose Comparison Expression, do the following: a. In the Operand field, enter the name of the operand you want to compare to a value. Alternatively, drag an item from the Variable Structures tab on the right to the Operand field. b. In the Value field, enter the value against which to compare the operand. Alternatively, drag item from the Variable Structures tab on the right to the Value field. c. Select a comparison operator from the Operator list. d. Go to step 4. 3. If you chose Unary Expression, do the following: a. Select or deselect the Not check box to indicate whether to evaluate the expression as true or not true, that is, to specify whether the expression should be enclosed by not(). b. Enter an expression in the text field, or construct it by dragging items from the Variable Structures tab on the right. 4. Do either of the following: ■ Click Add to add a new statement to the expression in the Condition Expression field. ■ Select a statement in the Condition Expression field, then click Update to modify the statement. 5. Click Test to test the expression in a running server, or click OK to insert the condition in the message flow. 4.20.5 Expression Page This page appears on the XQuery/XSLT Expression Editor, the XPath Expression Editor, and the Condition Editor. The Expression page contains a text field where you can build expressions by typing directly into the field or by dragging items from the Variable Structures Page or the XQuery Functions Page on the right side of the editor. Click Test to test the expression in an Oracle Service Bus domain on a running server. Oracle WebLogic Server is packaged with Oracle Service Bus, so an installation of Oracle Service Bus includes an embedded server you can use for testing purposes. 4.20.6 XQuery Resource Page This page appears in the XQuery/XSLT Expression Editor only. In the message flow of a proxy service, you can assign XQuery expressions to message context variables, assign if-then-else actions based on the Boolean result of an XQuery expression, insert the result of an XQuery expression at an identified place relative to User Interface Reference 4-83
  • 248. Expression Editors an XPath expression, specify the message context that you want to log through XQuery expressions on context variables, and so on. Use the XQuery Resource page to configure an XQuery transformation to be executed in the message flow of a proxy service. Table 4–86 XQuery Resource Options Field Description XQuery The XQuery resource to be executed. Click Browse to find and open an XQuery resource that has been registered in Oracle Service Bus. Bind Variables When you select a resource, each input parameter of the transformation is displayed. Each label corresponds to the name of a parameter, and each text box is for defining an XQuery expression to be mapped to the parameter. You must define a mapping for each parameter. Enter the expression directly, or drag variables and structures from the right panel. 4.20.7 XSLT Resource Page This page appears in the XQuery/XSLT Expression Editor only. Use the XSLT Resource tab to configure an XSLT transformation to be executed in the message flow of a proxy service. Table 4–87 XSLT Resource Options Field Description XSLT The XSLT resource to execute. Click Browse to find and open a resource registered with Oracle Service Bus. Input Document An XQuery expression for the input document to the transformation, for example $body. Bind Variables A label and a corresponding text box is displayed for each input parameter of the transformation. Each label corresponds to the name of a parameter, and each text box is for defining an XQuery expression to be bound to the parameter. You must define a binding for each parameter. For example, if an XSL transformation has two input parameters named one and two, the Variable Name field has two labels one and two, with a text box associated with each into which the XQuery expression is entered. Enter the expression directly, or drag variables and structures from the right panel. The following XQuery expressions are examples of valid input to this field: $body/*[1] $body/po:PurchaseOrder Note: The following variable name is not a valid entry for this field and results in an exception: body 4.20.8 Dynamic XQuery Page This page appears in the XQuery/XSLT Expression Editor only. You can specify a dynamic XQuery expression that evaluates at runtime to the name of a pre-registered XQuery resource. Oracle Service Bus executes this XQuery resource, 4-84 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 249. Expression Editors with optional variable bindings, against the message context to produce the required transformation. Use the XQuery Resource page to configure a dynamic XQuery transformation to be executed in the message flow of a proxy service. Table 4–88 Dynamic XQuery Options Field Description Expression The XQuery expression that will evaluate at runtime to the name of a pre-registered XQuery resource. The following shows the syntax for the XQuery resource (representing the full name of the resource): Project/folder1/folder2/XQueryResourceName Select XQuery Template The resource to serve as a template for the shape of the query (the number and names of the variables). Click Browse to select an existing registered resource. After selecting a template, the variables appear in the Bind Variables area. Note that the template is not persisted with the configuration. Instead, the template serves as a quick start to help you specify the variables for the query. Add Custom Variable An input parameter of the transformation. Type a variable name in the Add Custom Variable field, and click Add. Bind Variables When you add a custom variable, it appears in the Bind Variables area. Similarly, when you select an XQuery template, each input parameter of the transformation is displayed. Each label corresponds to the name of a parameter, and each text box is for defining an XQuery expression to be mapped to the parameter. You must define a mapping for each parameter. Enter the expression directly, or drag variables and structures from the right panel. 4.20.9 Variable Structures Page This page appears in the XQuery/XSLT Expression Editor, the XPath Expression Editor, and the Condition Editor. The Variable Structures page displays variables and their contents as trees. It includes the built-in message context variables attachments, body, header, outbound, and inbound, as well as any user-defined variables. It includes fault if the context of the expression is appropriate (that is, in an error handler). The outbound variable is always listed; even though it is not valid in every context. If outbound is used in invalid contexts, it will be reported when validating. Each variable structure mapping entry has a label and maps a variable or variable path to one or more structures. The scope of these mappings is a stage or a route node. You can drag items from this page to the editor’s Expression Page to insert them into the current expression. They are inserted as XPath expressions. To define a new variable and add it to the variable structure tree, click Add to open the Add Variable Structure Dialog. 4.20.10 Namespace Definitions Page This page appears in the XQuery/XSLT Expression Editor, the XPath Expression Editor, and the Condition Editor. The Namespace Definitions page lists default Oracle Service Bus namespaces, variable namespaces, and user-defined namespaces. Click Add to define a new namespace, User Interface Reference 4-85
  • 250. Expression Editors which is then added to the list of user-defined namespaces. To modify a user-defined namespace, select it in the list, then click Edit. 4.20.11 XQuery Functions Page This page appears in the XQuery/XSLT Expression Editor, the XPath Expression Editor, and the Condition Editor. The XQuery Functions page lists a set of standard XQuery functions, organized alphabetically and by type. You can drag functions from this page to the editor’s Section 4.20.5, "Expression Page" to insert them into the current expression. When you insert a function into an expression, placeholders are used for parameter values you must supply. 4.20.12 Add Variable Structure Dialog Use this dialog to define a variable and add it to the tree of variable structures in the Variable Structures Page of the Expression Editors. You create variable structures in this dialog to define the structure of a variable for design purposes. For example, it is easier to browse the XPath variable in the structure view rather than viewing the XML schema of the XPath variable. Variable structures do not create variables. Variables are created at runtime as the target of the assign action in the stage. You can declare your own variable structures based on: ■ XML types, including – Schema elements – WSDL elements – Schema types – WSDL types ■ MFLs ■ Service interfaces ■ Simple types (string or any XML) You can use this feature directly for all user-defined variables, as well as $inbound, $outbound, and $fault. However, you cannot use it directly to access XML attachments in $attachments, headers in $header, or documents and RPC parameters in $body, with one exception— you can use it directly to access documents and parameters in $body for request messages received by a WSDL proxy service. When you create a variable structure based on XML types, MFLs, or service interfaces, you must enter the following information into the fields at the top of the page: Table 4–89 Variable Structure Options Option Description Structure Label A display name for the variable you want to create. This display name enables you to give a meaningful name to the structure so you can recognize it at design time but it has no impact at run time. Structure Path The path of the variable structure at run time 4-86 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 251. Split-Join User Interface Reference 4.21 New XSL Transformation Transformation maps describe the mapping between two data types. eXtensible Stylesheet Language Transformation (XSLT) maps describe XML-to-XML mappings. Use this page to select a name and location for a new XSL transformation. This wizard creates a skeleton for the XSLT. Add details in the XSLT editor. Table 4–90 New XSL Transformation Options Option Description Enter or select the parent Enter or select the name of the project or folder in which to locate a folder new XSL transformation. File Name Enter a name for this new XSL transformation. 4.22 Split-Join User Interface Reference The following sections describe the fields and user interface components involved with creating and configuring Split-Joins in Oracle Service Bus. ■ Section 4.22.1, "Split-Join Design Palette" ■ Section 4.22.2, "Global / Start Node Properties" ■ Section 4.22.3, "Variable Properties" ■ Section 4.22.4, "Error Handler Properties" ■ Section 4.22.5, "Invoke Service Properties" ■ Section 4.22.6, "Reply Properties" ■ Section 4.22.7, "For Each Properties" ■ Section 4.22.8, "If Properties" ■ Section 4.22.9, "If and Else If Properties" ■ Section 4.22.10, "Parallel Properties" ■ Section 4.22.11, "Raise Error Properties" ■ Section 4.22.12, "Repeat Until Properties" ■ Section 4.22.13, "Re-Raise Error Properties" ■ Section 4.22.14, "Scope Properties" ■ Section 4.22.15, "While Properties" ■ Section 4.22.16, "Wait Properties" ■ Section 4.22.17, "Assign Properties" ■ Section 4.22.18, "Copy Properties" ■ Section 4.22.19, "Delete Properties" ■ Section 4.22.20, "Insert Properties" ■ Section 4.22.21, "Java Callout Properties" ■ Section 4.22.22, "Log Properties" ■ Section 4.22.23, "Replace Properties" ■ Section 4.22.24, "Receive Properties" User Interface Reference 4-87
  • 252. Split-Join User Interface Reference ■ Section 4.22.25, "Counter Variable Dialog" ■ Section 4.22.26, "Create/Edit Variable Dialog" ■ Section 4.22.27, "Create Message Variable Dialog" ■ Section 4.22.28, "Service Browser" ■ Section 4.22.29, "SOAP Fault Variable Dialog" ■ Section 4.22.30, "WSDL Browser" ■ Section 4.22.31, "Split-Join Wizard - New Split-Join" ■ Section 4.22.32, "Split-Join Wizard - Specify Operations" 4.22.1 Split-Join Design Palette The Split-Join Design Palette lists all the operations you can use to construct a Split-Join. To insert a control into a Split-Join, drag the icon from the palette to the Split-Join editor. When you drag an item to the editor, one or more target icons indicate that you can drop the dragged item in that position on the editor. When you drag the item into a target icon, it is highlighted to show that you can drop the item there. 4.22.1.1 Operations The Split-Join Design palette is organized into the following categories: ■ Communication ■ Flow Control ■ Assign Operations The following tables describe the operations you can add to a Split-Join: Table 4–91 Split-Join Communication Operations Operation Description Invoke Service Invoke Service invokes a WSDL-based, non-transport-typed Business Service, a WSDL-based Proxy Service, or a Split-Join. For configuration properties, see Section 4.22.5, "Invoke Service Properties." Reply Reply sends a response or fault back to the Oracle Service Bus Message Flow. For configuration properties, see Section 4.22.6, "Reply Properties." Table 4–92 Split-Join Flow Control Operations Operation Description For Each For Each executes logic configured within its Scope a specified number of times. For configuration properties, see Section 4.22.7, "For Each Properties." If If provides conditional behavior within a Split-Join. For configuration properties, see Section 4.22.8, "If Properties." 4-88 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 253. Split-Join User Interface Reference Table 4–92 (Cont.) Split-Join Flow Control Operations Operation Description Parallel Parallel creates a fixed number of configured parallel branches. For configuration properties, see Section 4.22.10, "Parallel Properties." Raise Error Raise Error generates an error that causes the Split-Join to stop normal processing. If the error is not handled using an Error Handler, the Split-Join will terminate and a Fault will be sent to the Oracle Service Bus Message Flow. For configuration properties, see Section 4.22.11, "Raise Error Properties." Repeat Until Repeat Until lets you repeat operations until a condition evaluates to true within a Split-Join. The condition is evaluated after each loop finishes. For configuration properties, see Section 4.22.12, "Repeat Until Properties." Re-Raise Error Re-Raise Error lets you re-raise an error caught by an Error Handler Catch or CatchAll. For configuration properties, see Section 4.22.13, "Re-Raise Error Properties." Scope Scope creates a context which influences the behavior of its enclosed operations. For configuration properties, see Section 4.22.14, "Scope Properties." While While lets you repeat operations until a condition evaluates to false within a Split-Join. The condition is evaluated before each loop commences. For configuration properties, see Section 4.22.15, "While Properties." Table 4–93 Split-Join Assign Operations Operation Description Assign Lets you assigns the result of an XQuery expression to a Variable. For configuration properties, see Section 4.22.17.1, "Assign Operation Properties." Copy Lets you copy the information specified by an XPath expression from a source document to a destination document. For configuration properties, see Section 4.22.18, "Copy Properties." Delete Lets you delete a set of nodes specified by an XPath Expression. For configuration properties, see Section 4.22.19, "Delete Properties." Insert Lets you insert the result of an XQuery expression at an identified place relative to nodes selected by an XPath Expression. For configuration properties, see Section 4.22.20, "Insert Properties." Java Callout Lets you invoke a static Java method from a Split-Join for custom actions such to be handled in Java such as validation, transformation, and logging. For configuration properties, see Section 4.22.21, "Java Callout Properties." User Interface Reference 4-89
  • 254. Split-Join User Interface Reference Table 4–93 (Cont.) Split-Join Assign Operations Operation Description Log Lets you log data at a specified severity so that administrators can take appropriate action. For configuration properties, see Section 4.22.22, "Log Properties." Replace Lets you replace a node or the contents of a node specified by an XPath expression.s For configuration properties, see Section 4.22.23, "Replace Properties." Operations have a General properties tab for changing the node’s label and providing comments. 4.22.2 Global / Start Node Properties The start node in a Split-Join specifies its global properties. Among these properties, global variables and associated External Services can be reviewed and configured by expanding the left-side arrow. The global Error Handler can be reviewed and configured by expanding the right-side arrow. Use the Properties view to review and configure the Global Properties of the selected Split-Join. This page has two tabs: ■ Imports ■ General The Imports tab has the following options: Table 4–94 Split-Join Start Node Options - Imports Tab Option Description WSDL Imports Displays WSDL Imports used by the Split-Join. Select a WSDL in the list and right-click to delete it. Schema Imports Displays Schema Imports used by the Split-Join. Select a Schema in the list and right-click to delete it. The General tab has the following options: Table 4–95 Split-Join Start Node Options - General Tab Option Description Label Enter a label for the file defining the Process Node. Documentation Enter a description and/or comments. 4.22.3 Variable Properties Use the Properties view to review and configure Variables in the selected Split-Join. Table 4–96 Split-Join Variable Options Option Description (tree) Depicts the hierarchical structure of the Variable’s type. 4-90 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 255. Split-Join User Interface Reference Table 4–96 (Cont.) Split-Join Variable Options Option Description Edit Click to display the Create/Edit Variable Dialog, where you can modify the Variable’s name and type. 4.22.4 Error Handler Properties The Error Handler receives and handles all of the errors that are raised in a Split-Join. An Error Handler lets you add Catch and CatchAll operations. Use the Properties view to review and configure the selected Error Handler in a Split-Join. The Catch tab has the following options. Table 4–97 Split-Join Error Handler Options - Catch Tab Option Description SOAP Fault Variable Defines a variable to contain SOAP (1.1 or 1.2) faults. If the Error Name Handler is executed due to a SOAP fault received from invoked external services, this variable is populated with the received SOAP fault. Fault Name – Define Lets you define a custom local fault. Fault Click Define Fault to enter a Namespace and Fault Name. Fault Name – Predefined Lets you select an existing WSDL, Application, or Standard fault. Click Pick Fault to select an existing fault. The catchAll tab has the following options. Table 4–98 Split-Join Error Handler Options - CatchAll Tab Option Description SOAP Fault Variable Defines a variable to contain SOAP (1.1 or 1.2) faults. If the Error Name Handler is executed due to a SOAP fault received from invoked external services, this variable is populated with the received SOAP fault. 4.22.5 Invoke Service Properties The Invoke Service invokes a WSDL-based, non-transport-typed Business Service, a WSDL-based Proxy Service, or another Split-Join. Use the Properties view to review and configure the selected Invoke Service in a Split-Join. The Operation tab has the following options: Table 4–99 Split-Join Invoke Service Options - Operation Tab Option Description Operation The operation to be invoked by the Service. Click Browse to select the operation you want to invoke. When you select an operation, a dashed blue line appears pointing to the external service in the Split-Join editor. User Interface Reference 4-91
  • 256. Split-Join User Interface Reference Table 4–99 (Cont.) Split-Join Invoke Service Options - Operation Tab Option Description Service Location The location of the invoked Service. Click the location path to open the service file. Qos The quality of service option that controls transaction support. Select one of the following: ■ Best Effort – The operation does not execute in the context of an existing transaction. ■ Exactly Once – The operation executes in the context of an existing transaction. The Input Variable tab has the following options: Table 4–100 Split-Join Invoke Service Options - Input Variable Tab Option Description Message Variable A list of message type variables with the type matching the operation’s input message type. Select Create Message Variable to define a new message variable. Note: If message type variables with the type matching the operation’s input message type do not exist, you must define a new message type variable with the required type. Message Type The namespace of the operation’s input message type. Namespace Message Type The operation’s input message type. The Output Variable tab has the following options: Table 4–101 Split-Join Invoke Service Options - Output Variable Tab Option Description Message Variable A list of message type variables with the type matching the operation’s output message type. Select Create Message Variable to define a new message variable. Note: If message type variables with the type matching the operation’s output message type do not exist, you must define a new message type variable with the required type. Message Type The namespace of the operation’s output message type. Namespace Message Type The operation’s output message type. 4.22.5.1 Invoking Another Split-Join A Split-Join can invoke another Split-Join in the same Oracle Service Bus configuration. This functionality provides more flexibility in service design, letting you split up complex Split-Join functionality into multiple Split-Joins, allowing for componentization and re-use of Split-Join functionality. Performance is maintained, because there is no marshalling and unmarshalling of data between the Split-Joins. You must ensure that you do not create circular Split-Join references. Oracle Service Bus does not check for circular references. 4-92 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 257. Split-Join User Interface Reference 4.22.6 Reply Properties Reply sends a response or fault back to the Oracle Service Bus message flow. Use the Properties view to review and configure the selected Reply in a Split-Join. The Operation tab has the following options: Table 4–102 Split-Join Reply Options - Operation Tab Option Description Operation The operation to be invoked by the Reply. The Variable tab has the following Select options: Table 4–103 Split-Join Reply Options - Variable Tab Response Options Description Message Variable A list of the message variables whose type matches the operation’s output message type. Select Create Message Variable to define a new message variable. Note: If message type variables with the type matching the operation’s output message-type do not exist, you must define a new message type variable with the required type. Message Type The namespace of the operation’s output message type. Namespace Message Type The operation’s output message type. Pick WSDL Fault/SOAP Determine whether the fault reply is a fault message defined in the Fault operation of the WSDL or an explicit SOAP fault message. WSDL Fault Name Select a fault name from the list of faults defined in the operation of the WSDL. Message Variable A list of the Message Variables whose type matches the operation’s output message type. Select Create Message Variable to define a new message variable. Note: If message type variables with the type matching the operation’s output message-type do not exist, you must define a new message type variable with the required type. Message Type The namespace of the operation’s output message type. Namespace Message Type The operation’s output message type. SOAP Fault Select SOAP Fault See Section 4.22.29, "SOAP Fault Variable Dialog." Propagate SOAP Fault Propagate the SOAP fault in the SOAP fault variable defined in the Error Handler. See Section 4.22.4, "Error Handler Properties." Reply automatically includes an implicit Exit operation to end that instance of the flow without triggering a fault. The Exit operation is not visible in the development environment. 4.22.7 For Each Properties For Each executes logic configured within its Scope a specified number of times. User Interface Reference 4-93
  • 258. Split-Join User Interface Reference Use the Properties view to review and configure the selected For Each in a Split-Join. The Counter Variables tab has the following options: Table 4–104 Split-Join For Each Options - Counter Variables Tab Option Description Parallel Select one of the following options: ■ If you select yes, each iteration of For Each is executed in parallel. ■ If no, each iteration of For Each is executed sequentially. Counter Variable Name Defines an implicit variable within the Scope of the For Each. Each iteration of the For Each contains an isolated instance of this variable. In turn, every instance is set to an iteration number; for example, the first iteration has its value set to Start Counter Value, the second iteration to Start Counter Value+1, etc. Start Counter Value The value of the Counter Variable for the first iteration of For Each. Determined as the result of an XPath expression. The result must be "1" or more. ("0" is not a valid Start Counter Value.) The browse button launches the expression builder. The expression should generate an integer for the initial Start Count Value. Final Counter Value The value of the Counter Variable for the final iteration of For Each. Determined as the result of an XPath expression. The result must be "1" or more. ("0" is not a valid Final Counter Value.) The browse button launches the expression builder. The expression should generate an integer for the Final Count Value. The Completion Condition tab has the following options: Table 4–105 Split-Join For Each Options - Completion Condition Option Description Number of Finished An optional expression that determines when to stop creating Branches branches. Depending on the context in the Split-Join, the expression prevents some of the children from executing or forces early termination of some children. The browse button launches the expression builder. Successful Branches Select this option if you want only successfully completed Only? branches to be counted when determining if the completion condition has been met. 4.22.8 If Properties If nodes contain If, Else If, and Else operations. See Section 4.22.9, "If and Else If Properties." Use the Properties view to review and configure the selected If in a Split-Join. 4.22.9 If and Else If Properties The If and Else If operations provide conditional behavior within a Split-Join. Use the Properties view to review and configure the selected If or Else If in a Split-Join. If and Else If have the following options: 4-94 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 259. Split-Join User Interface Reference Table 4–106 Split-Join If and Else If Options Option Description Condition Define an XPath expression that evaluates to true or false. If the condition evaluates to true, the associated If/Else If branch is executed. Click the browse icon to launch the expression builder. 4.22.10 Parallel Properties Parallel lets you create a static Split-Join that handles fixed number of message requests. Parallels contain one or more Scope branches. Use the Properties view to review and configure the selected Parallel in a Split-Join. 4.22.11 Raise Error Properties Raise Error establishes an error condition under which the execution of the process will halt. Use the Properties view to review and configure the selected Raise Error in a Split-Join. The Raise Error tab has the following options: Table 4–107 Split-Join Raise Error Options Option Description Define Fault Lets you specify a custom local fault not contained in the WSDL. Click the Fault link to specify the fault Namespace and Fault Name. Pick Fault From WSDL Lets you select an existing fault specified in the WSDL. Click the Pick Fault link to select the WSDL fault. 4.22.12 Repeat Until Properties Repeat Until lets you repeat operations until a condition evaluates to true within a Split-Join. The condition is evaluated after each loop finishes. Use the Properties view to review and configure the selected Repeat Until in a Split-Join. The Condition tab has the following options: Table 4–108 Split-Join Repeat Until Options Option Description Condition Define an XPath expression that evaluates to true or false. The operation(s) in the Repeat Until are executed until the condition evaluates to true. Click the browse icon to launch the expression builder. 4.22.13 Re-Raise Error Properties Use Re-Raise Error within an Error Handler to re-raise an error caught by a Catch or a CatchAll. In the Properties view you can rename and enter comments about the Re-Raise Error node. User Interface Reference 4-95
  • 260. Split-Join User Interface Reference Use the Properties view to review and configure the selected Re-Raise Error in a Split-Join. 4.22.14 Scope Properties The Scope creates a context which influences the behavior of its enclosed operations. Local variables and the Error Handler defined within the Scope are restricted to this context. Use the Properties view to review and configure the selected Scope in a Split-Join. Related Topics Section 4.22.26.1, "Scope and Variables" 4.22.15 While Properties While lets you repeat operations until a condition evaluates to false within a Split-Join. The condition is evaluated before each loop commences. Use the Properties view to review and configure the selected While in a Split-Join. The Condition tab has the following options: Table 4–109 Split-Join While Options Option Description Condition Define an XPath expression that evaluates to true or false. If the condition evaluates to true, the associated operations is executed. Click the browse icon to launch the expression builder. 4.22.16 Wait Properties Wait lets you insert a pause in the Split-Join flow for a short duration to wait for other dependent jobs to complete. After the short duration, the Wait continues the Split-Join execution. Use the Properties view to review and configure the selected Wait in a Split-Join. The Wait tab has the following options: Table 4–110 Split-Join Wait Options Option Description Duration Define an XPath expression that evaluates to a duration type of xsd:duration in the following format: nYnMnDTnHnMnS (number of years, months, days, hours, minutes, and seconds, with a date/time separator, represented by "T".) Be sure the expression resolves to a correct duration type. The Wait operation does not validate the results of the expression. When the duration is reached, the Wait resumes the Split-Join execution. Click the browse icon to launch the expression builder. 4-96 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 261. Split-Join User Interface Reference 4.22.17 Assign Properties Assign lets you perform data manipulation, including initializing and updating a Variable. You can perform the following operations in an Assign node: Assign, Copy, Delete, Insert, Java Callout, Log, and Replace. Use the Properties view to review and configure the selected Assign in a Split-Join. 4.22.17.1 Assign Operation Properties The Assign tab has the following options: Table 4–111 Split-Join Assign Operation Options Option Description Expression An XQuery expression used to create the data that will be assigned to the Variable. Clicking the expression launches the XQuery editor. When Oracle Service Bus binds variables in an inline XQuery, it assumes the type xs:string. This can cause parser errors in operations with constants that are incompatible with xs:string. To ensure compatible types, use an explicit XQuery cast. For example, the following inline XQuery will fail. Although the $itemsTotal is of type xs:double, it is bound as an xs:string, which is incompatible in the test against 10000. if ($itemsTotal < 10000) then . . . To make this inline XQuery work, explicitly cast the $itemsTotal to an xs:double: if (($itemsTotal cast as xs:double) < 10000) then . . . Also, when creating an Assign action to a String result or variable, ensure that your expression returns a String value. Assigning a non-String value to a String result or String global variable does not cause a MismatchedAssignmentFailure exception, as specified by the WS-BPEL specification. Variable A variable to which the result of the XQuery expression is assigned. Only previously defined Variables, the Counter Variable, and SOAP Fault Variables (for Error Handlers) are available. Qos The quality of service option that controls transaction support. Select one of the following: ■ Best Effort – The operation does not execute in the context of an existing transaction. ■ Exactly Once – The operation executes in the context of an existing transaction. Oracle Service Bus's Assign functionality in Split-Joins conforms to the WS-BPEL specification for resolution of XPath/XQuery expressions to simple type variables. Supported simple types for binding XPath/XQuery expressions to variables in Split-Joins are String, Boolean, and Float. The Assign converts the value you provide the type with which the variable is defined. For example: ■ If you assign <foo><bar>4</bar></foo> to a response variable defined as a String ($response.result), Oracle Service Bus returns <bar>4</bar> as a String in the <result> through a simple copy of the child element and value. User Interface Reference 4-97
  • 262. Split-Join User Interface Reference ■ If you map <foo><bar>4</bar></foo> to a String variable (such as myStr), then assign $myStr to $response.result, Oracle Service Bus returns <result>4</result>, because it first converts the value in $myStr to a String before it makes the assignment to the $response.result String variable. 4.22.18 Copy Properties The Copy operation copies the information specified by an XPath expression from a source document to a destination document. Use the Properties view to configure a Copy Operation in an Assign. Configure Select From and Select To using the following guidance. The Copy tab has the following options: Table 4–112 Split-Join Copy Options Option Description Keep Source Element Lets you determine which element name (source or destination) is used when values are copied from a source to a destination. If you do not select this option, the existing element name in the destination is used to hold the copied value. If you select this option, the name of the source element is used in the destination to hold the copied value. For example, if you are copying a zip code value from <zipCode>80303</zipCode> in the source, selecting Keep Source Element uses the <zipCode> element in the destination. If you do not select the option, the zip code value is copied to the existing destination element, such as <pinCode>80303</pinCode>. Choose Type Allows the user to select the desired type: Variable, Expression, Literal, or XML Fragment. Literals and XML fragments are available only in the Select From menu. Choose Type - Variable Select an XPath on a Variable. Use this option when simple node selection on a Variable is required. When a node is selected by expanding the Variable tree, an Xpath expression is automatically generated. Choose Type - Create an Xpath expression to select a node from a Variable. Use Expression this option when more complex Xpaths (potentially with predicates) are required to select a node on a Variable. Click the Expression link to use the XPath Expression Builder. Note: The entered Xpath expression should only copy to one XML node/element, or there will be run-time errors. Choose Type - Literal A Literal string entered by the user. (Select From only) Click the Literal link to enter the string. Choose Type - XML An XML fragment entered by the user. Fragment (Select From Click the XML Fragment link to enter the fragment. only) 4.22.19 Delete Properties The Delete operation deletes a set of nodes specified by an XPath Expression. Use the Properties view to configure a Delete Operation in an Assign. 4-98 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 263. Split-Join User Interface Reference Note: Unlike a Delete operation in a proxy service message flow, a Delete operation in a Split-Join does not allow deleting a variable directly. The Delete tab has the following options: Table 4–113 Split-Join Delete Options Option Description XPath An XPath Expression that selects the nodes to be deleted. Click the XPath link to launch the expression editor. In Variable Variable on which the XPath expression is executed to select the nodes to be deleted. Qos The quality of service option that controls transaction support. Select one of the following: ■ Best Effort – The operation does not execute in the context of an existing transaction. ■ Exactly Once – The operation executes in the context of an existing transaction. 4.22.20 Insert Properties The Insert operation inserts the result of an XQuery expression at an identified place relative to nodes selected by an XPath Expression. Use the Properties view to configure an Insert Action in an Assign. The Insert tab has the following options: Table 4–114 Split-Join Insert Options Option Description Expression An XQuery expression used to create the data that will be inserted at a specified location in a Variable. Click the Expression link to launch the expression editor. Location The location used to control where the Insert operation is performed relative to the result of the XPath Expression. Options include: ■ before: Immediately before the element specified by the result of the Xpath Expression. ■ after: Immediately after the element specified by the result of the Xpath Expression. ■ as first child of: The first child element of the element specified by the result of the Xpath Expression. ■ as last child of: The last child element belonging to the element specified by the result of the Xpath Expression. XPath An XPath that determines the nodes to be selected. Click the Xpath link to launch the expression editor. Variable A Variable to be evaluated by the XPath. User Interface Reference 4-99
  • 264. Split-Join User Interface Reference Table 4–114 (Cont.) Split-Join Insert Options Option Description Qos The quality of service option that controls transaction support. Select one of the following: ■ Best Effort – The operation does not execute in the context of an existing transaction. ■ Exactly Once – The operation executes in the context of an existing transaction. 4.22.21 Java Callout Properties A Java Callout operation lets you invoke a static Java method from a Split-Join for custom actions such to be handled in Java such as validation, transformation, and logging. Use the Properties view to configure a Java Callout operation in an Assign. The Java Callout tab has the following options: Table 4–115 Split-Join Java Callout Options Option Description Method Package your Java class in a JAR file in your Oracle Service Bus project. Click Browse to first select the JAR, then the method you want to invoke. Using the following guidelines for the Java callout method: ■ The method must be static. Only the following Java types are supported for input parameters: ■ boolean, byte, char, double, float, int, long, short and arrays of these types ■ java.lang.[Boolean | Byte | Character | Double | Float | Integer | Long | Short | String] and arrays of these types ■ java.math.[BigInteger | BigDecimal] and arrays of these types ■ org.apache.xmlbeans.XmlObject and arrays of this type Only the following Java types are supported for method return: ■ All types supported for input parameters except their array equivalent ■ void Expression An XQuery expression used to map data to the input parameters of the static Java method. Click the Expression link to launch the expression editor. Result Value Select the variable to contain the result value for the Java method. Service Account You can use Service Account to put the appropriate subject on the thread when executing the Java callout. Click Browse to select a service account. Qos The quality of service option that controls transaction support. Select one of the following: ■ Best Effort – The operation does not execute in the context of an existing transaction. ■ Exactly Once – The operation executes in the context of an existing transaction. 4-100 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 265. Split-Join User Interface Reference Oracle Service Bus provides the following errors for Java callouts: ■ 2031350 – Received more than one element when only one is expected during conversion to Java ■ 2031351 – Found simple type instead of XmlObject when converting to Java ■ 2031352 – Error converting simple type to its corresponding Java type ■ 2031353 – Received exception during invocation of the Java method ■ 2031354 – Errors setting the security context 4.22.22 Log Properties The Log operation lets you log Split-Join data at a specified severity to the server log file. Administrators can use log information to take appropriate action based on the severity of the data logged. Use the Properties view to configure a Log operation in an Assign. The Log tab has the following options: Table 4–116 Split-Join Log Options Option Description Expression An XQuery expression used to select the data to be logged. Click the Expression link to launch the expression editor. Annotation Optionally specify a note for the log. The annotation is logged along with the data selected by the expression. Severity Select one of the following the severity levels for the log: ■ Debug ■ Info ■ Warning ■ Error 4.22.23 Replace Properties The Replace operation lets you replace a node or the contents of a node specified by an XPath expression. Use the Properties view to configure a Replace operation in an Assign. The Replace tab has the following options: Table 4–117 Split-Join Replace Options Option Description XPath An XPath Expression used to specify the data (in the Variable) that will be replaced. Click the XPath link to launch the expression editor. Variable The Variable that contains the data to be replaced. Expression An XQuery expression used to create the data that replaces the data specified by the XPath in the named Variable. Click the Expression link to launch the expression editor. Replace entire node Specifies that the nodes selected by the expression are replaced along with all of its contents. User Interface Reference 4-101
  • 266. Split-Join User Interface Reference Table 4–117 (Cont.) Split-Join Replace Options Option Description Replace node contents Specifies that the node is not replaced. Only the contents are replaced. Qos The quality of service option that controls transaction support. Select one of the following: ■ Best Effort – The operation does not execute in the context of an existing transaction. ■ Exactly Once – The operation executes in the context of an existing transaction. 4.22.24 Receive Properties Use the Properties view to review and configure the selected Receive in a Split-Join. The Operation tab has the following options: Table 4–118 Split-Join Receive Options - Operation Tab Option Description Operation The operation to be invoked by the Receive. Browse to select an operation from the WSDL Browser. The Variable tab has the following options: Table 4–119 Split-Join Receive Options - Variable Tab Option Description Message Variable A list of the message variables whose type matches the operation’s output message type Select Create New Variable to define a new message variable. Note: If message type variables with the type matching the operation’s output message-type do not exist, you must define a new message type variable with the required type. Message Type The namespace of the operation’s output message type. Namespace Message Type The operation’s output message type. 4.22.25 Counter Variable Dialog Use this dialog to create a Counter Variable. Table 4–120 Split-Join Counter Variable Options Option Description Counter Variable Name The name of the Counter Variable 4.22.26 Create/Edit Variable Dialog Use this dialog to review and/or configure Variables in the Split-Join. 4-102 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 267. Split-Join User Interface Reference 4.22.26.1 Scope and Variables Although variables are visible in the scope in which they are defined and in all scopes nested within that scope, a variable declared in an outer scope is hidden when you declare a variable with an identical name in an inner scope. For example, if you define variable myVar in an outer scope (So) and then define variable myVar again in an inner scope (Si) which is contained by scope So, then you can only access the myVar you defined in the inner scope Si. This myVar overrides the myVar you defined in scope So. Table 4–121 Split-Join Variable Options Option Description Name Enter a name for the Variable that is unique within the Scope. Select Variable Type Select one of the following Variable Types: ■ Built-in Types ■ Schema Types ■ Message Types Select Variable Type - When selected, only Built-in Type Variables are displayed. Built-in Types Select Variable Type- When selected, all Schema Types in the current Oracle Service Bus Schema Types Configuration are displayed. If "Show only applicable schema types/elements for this Split-Join" is selected, only Schema Types directly applicable to the current Split-Join are displayed. This is checked by default. Select Variable Type - When selected, only message types are displayed. Message Types If "Show only applicable schema types/elements for this Split-Join" is selected, only Message Types directly applicable to the current Split-Join are displayed. This is checked by default. Type The Variable type. Namespace The namespace of the Variable’s type. 4.22.27 Create Message Variable Dialog Use this dialog to create a new message variable. Table 4–122 Split-Join New Message Variable Options Option Description Name Enter a unique name for the Variable. Type One of the following Variable types: WSDL message, XSD element, or XSD type (simple, complex, built-in). Namespace The namespace of the Variable’s type. 4.22.28 Service Browser Use this dialog to browse for and select an operation from a business service, a proxy service, or a Split-Join in the tree. 4.22.29 SOAP Fault Variable Dialog Use this dialog to create a SOAP fault variable. User Interface Reference 4-103
  • 268. Split-Join User Interface Reference Table 4–123 Split-Join SOAP Fault Variable Options Option Description SOAP Fault Variable The name of the SOAP fault variable. Name 4.22.30 WSDL Browser Use this dialog to browse for and select an operation from a WSDL in the depicted tree. 4.22.31 Split-Join Wizard - New Split-Join Use this page to locate and name the new Split-Join Table 4–124 New Split-Join Options Option Description Enter or select the parent Enter the name of the folder to contain this Split-Join, or select a folder folder from the list. File Name Enter a name for the file defining the Split-Join. 4.22.32 Split-Join Wizard - Specify Operations Use this page to select an operation for the new Split-Join. Table 4–125 New Split-Join Options - Selecting an Operation Option Description Select Operation Select the operation from those available in the tree. Consume Click this button to import WSDLs from outside your current Oracle Service Bus configuration that can subsequently be used to select an operation. 4-104 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 269. Part II Part II XQuery Mapper This part contains the XQuery Mapper IDE help, which includes the following chapters: ■ Chapter 5, "Introduction" ■ Chapter 6, "Transforming Data Using XQuery Mapper" ■ Chapter 7, "Examples: Data Transformation Using XQuery Mapper"
  • 271. 5 5Introduction This chapter provides an overview of the Oracle XQuery Mapper. Oracle XQuery Mapper is a graphical mapping tool that enables you to transform data between XML, non-XML, and Java data types, allowing you to integrate heterogeneous applications rapidly. For example, you can package data transformations in Oracle WebLogic Integration (WLI) as controls and reuse the controls in multiple business processes and applications. You can also use .xq files created in XQuery Mapper as resources in Oracle Service Bus. The output of XQuery Mapper is a query in the XQuery language, which is defined by the World Wide Web Consortium (W3C). For more information about W3C and the XQuery language, see http://www.w3.org/XML/Query/. 5.1 Overview of XQuery Mapper You can use XQuery Mapper to transform data between XML, non-XML, and Java data types. For example, XML data that is valid against one schema can be converted to XML that is valid against a different schema. The data can be based on XML schemas, Web Service Definition Language (WSDL) file, and Message Format Language (MFL) files. When you select the Simple source type, you can transform standard schema types, such as boolean, byte, double, float, int, long, short, String, and Date, to any other required target data format. A data transformation can have multiple input types, but only one target type. For example, data can be transformed from two sources to one target, as shown in the following figure. Introduction 5-1
  • 272. Support for XQuery 2002 and 2004 Figure 5–1 Data Transformation from Multiple Sources to One Target 5.2 Support for XQuery 2002 and 2004 Oracle Service Bus supports data transformation for the following versions of XQuery: ■ XQuery 2004: Graphical design view (XQuery Mapper), source view, and test view. ■ XQuery 2002: Source view and test view. Note: For XQuery 2002-compliant XQuery files, the source view does not show compilation errors. When you open an XQuery 2002-compliant XQuery file, it opens automatically in the XQuery 2002 Transformation Editor, which has Source and Test views, but no Design view. 5.2.1 Restrictions Applicable to the XQuery Test View Table 5–1 describes restrictions in XQuery test view. Table 5–1 Restrictions Applicable to the XQuery Test View Applicable Applicable to to Restriction XQ2002? XQ2004? If an XQuery calls a Java user function, the Java method must be Yes Yes static. 5-2 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 273. Support for XQuery 2002 and 2004 Table 5–1 (Cont.) Restrictions Applicable to the XQuery Test View Applicable Applicable to to Restriction XQ2002? XQ2004? If an input Java type argument to an XQuery is an abstract class or Yes No an interface, the test view can not process it. An error message is displayed in the results view. The input Java type and its member variables (except those of type Yes No primitive, String, java.sql.Date and java.util.Date) must follow the standard Java Bean guidelines. Introduction 5-3
  • 274. Support for XQuery 2002 and 2004 5-4 Oracle Fusion Middleware Developer's Guide for Oracle Service Bus
  • 275. 6 6Transforming Data Using XQuery Mapper This chapter describes how to use XQuery Mapper to perform data transformation in message flows. You can use the graphical interface of XQuery Mapper to create data transformations by mapping elements in source schemas to elements in a target schema. XQuery Mapper generates an XQuery, which is saved as an .xq file. The procedure to transform data using XQuery Mapper is described in the following sections: ■ Section 6.1, "Launching XQuery Mapper" ■ Section 6.2, "Importing the XQuery Mapper Sample Project" ■ Section 6.3, "Creating an XQuery Mapper Project" ■ Section 6.4, "Importing and Creating Schema Files" ■ Section 6.5, "Selecting Source and Target Data Types" ■ Section 6.6, "Creating Data Transformations" ■ Section 6.7, "Editing Data Transformations" ■ Section 6.8, "Restricting Output of Optional Elements" ■ Section 6.9, "Testing Data Transformations" ■ Section 6.10, "Graphical Features in Design View" ■ Section 6.11, "XML Global Elements, Global Types, Local Elements, and Attributes" 6.1 Launching XQuery Mapper In Oracle Enterprise Pack for Eclipse, open the XQuery transformation perspective by choosing Window > Open Perspective > XQuery Transformation from the Eclipse menu. The XQuery transformation perspective launches automatically when you open an XQuery file. If, however, XQuery Mapper is open and no XQuery file is open, you must launch the XQuery transformation perspective manually. 6.2 Importing the XQuery Mapper Sample Project The XQuery Mapper sample project includes sample schema and XML files, which you can use to create XQuery transformations as described in Chapter 7, "Examples: Data Transformation Using XQuery Mapper." Transforming Data Using XQuery Mapper 6-1
  • 276. Creating an XQuery Mapper Project Use the following procedure to import the sample project. 1. From the Eclipse menu bar, choose File > Import. 2. In the Import window, select General > Existing Projects into Workspace, then click Next. 3. In the Select root directory field, click Browse, then select the following folder: OSB_ORACLE_HOME/eclipse/plugins/com.bea.alsb.common.mapper_ version/samples, and click OK. 4. In the Import window, select Copy projects into workspace, and click Finish. 5. Enter a name for your sample project and click Finish. The samples project is created and displayed in the Project Explorer view. The project contains the following folders: ■ schemas folder: Contains the XML schema (.xsd) files of the sample project. ■ XML folder: Contains test XML files required by some of the samples. ■ XQueryTransformations folder: This is the folder in which you will create the XQuery files for the samples. To learn more about creating projects and importing the files you need for those projects, see the following topics: ■ Section 6.3, "Creating an XQuery Mapper Project" ■ Section 6.4, "Importing and Creating Schema Files" ■ Chapter 7, "Examples: Data Transformation Using XQuery Mapper" Note: You can import project-specific XML schemas, Web Service Definition Language (WSDL) files, and Message Format Language (MFL) files from any location. Before you imp