D87561GC10 Ag PDF
D87561GC10 Ag PDF
Disclaimer
This document contains proprietary information and is protected by copyright and other intellectual property laws. You may copy and
print this document solely for your own use in an Oracle training course. The document may not be modified or altered in any way.
Except where your use constitutes "fair use" under copyright law, you may not use, share, download, upload, copy, print, display,
perform, reproduce, publish, license, post, transmit, or distribute this document in whole or in part without the express authorization
of Oracle.
The information contained in this document is subject to change without notice. If you find any problems in the document, please
report them in writing to: Oracle University, 500 Oracle Parkway, Redwood Shores, California 94065 USA. This document is not
warranted to be error-free.
If this documentation is delivered to the United States Government or anyone using the documentation on behalf of the United
States Government, the following notice is applicable:
Trademark Notice
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective
owners.
Authors
Glenn Stokol, Ron Pinkerton, Armando Hernandez
Oracle SOA Suite 12c: System Architecture and Administration Table of Contents
                                                       iii
   Practice 11-1: Deploying the Stock Update Composite ............................................................................. 11-3
   Practice 11-2: Testing the Subscriber of the StockUpdated Event ............................................................. 11-5
   Practice 11-3: Deploying, Testing, and Monitoring the Event Publishing Composite................................... 11-13
Practices for Lesson 12: The User Messaging Service ............................................................................ 12-1
  Practices for Lesson 12 ........................................................................................................................... 12-2
  Practice 12-1: Configuring the Email Driver .............................................................................................. 12-3
  Practice 12-2: Deploying the Composite Application ................................................................................. 12-8
  Practice 12-3: Instantiating the Composite That Generates Email ............................................................. 12-10
Practices for Lesson 13: Performance Tuning and Troubleshooting ...................................................... 13-1
  Practices for Lesson 13 ........................................................................................................................... 13-2
  Part 1: Performance Tuning..................................................................................................................... 13-3
  Practice 13-1: Deploying an EAR Application ........................................................................................... 13-4
  Practice 13-2: Examining Server Information in the Routing Topology....................................................... 13-8
  Practice 13-3: Observing the Performance of the WebLogic Server JVM Instance ..................................... 13-14
  Practice 13-4: Exploring Metrics for Oracle SOA Suite Components ......................................................... 13-21
  Part 2: Troubleshooting ........................................................................................................................... 13-33
  Practice 13-5: Deploying a Troublesome Composite Application ............................................................... 13-34
  Practice 13-6: Testing the TroubleSomeComposite Interfaces .................................................................. 13-45
Practices for Lesson 14: Backup and Recovery of Oracle SOA Suite ..................................................... 14-1
  Practices for Lesson 14 ........................................................................................................................... 14-2
  Practice 14-1: Backing Up and Breaking the Enterprise Deployment Domain ............................................ 14-3
  Practice 14-2: Restoring the Enterprise Deployment Domain .................................................................... 14-5
Practices for Lesson 15: Securing SOA Composite Applications ........................................................... 15-1
  Practices for Lesson 15 ........................................................................................................................... 15-3
  Practice 15-1: Creating a Simple Username Token Security Policy ........................................................... 15-4
  Practice 15-2: Applying the Security Policy to a Service Endpoint ............................................................. 15-13
  Practice 15-3: Testing the Invocation of the Secured Service Endpoint ..................................................... 15-17
Practices for Lesson 16: Using Enterprise Scheduler ............................................................................. 16-1
  Practices for Lesson 16 ........................................................................................................................... 16-2
  Practice 16-1: Extending the Domain with Oracle Enterprise Scheduler .................................................... 16-3
  Practice 16-2: Activating and Deactivating Adapters by Using ESS ........................................................... 16-17
Appendix A ............................................................................................................................................... 17-1
  Appendix A ............................................................................................................................................. 17-2
  Appendix A-1: Examining the Load Balancer HttpClusterServlets ............................................................. 17-3
Practice Script Source Code…………………………………………………………………………………………. 18-1
Oracle SOA Suite 12c: System Architecture and Administration Table of Contents
                                                       iv
                                                               Course Practice
                                                               Environment: Security
                                                               Credentials
                                                               Chapter I
For the product-specific credentials that are used in this course, see the following table:
Product-Specific Credentials
Product/Application                                         Username                                   Password
Oracle Database                                             SYS                                        oracle
Oracle Database                                             All database schema names                  Welcome1
                                                            beginning with EDG_
Oracle Database                                             SOADEMO                                    soademo
Oracle WebLogic Server Administration                       weblogic                                   Welcome1
Console
Oracle WebLogic Server Administration                       weblogic_soa                               Welcome1
Console
Oracle Enterprise Manager Fusion                            weblogic                                   Welcome1
Middleware Control
Oracle Enterprise Manager Fusion                            weblogic_soa                               Welcome1
Middleware Control
Node Manager instances                                      weblogic                                   Welcome1
Oracle Unified Directory (LDAP Server)                      cn=”Directory Manager”                     Welcome1
Oracle Unified Directory                                    All LDAP users                             Welcome1
Java Mail Server (JES) user accounts and                    All usernames                              Welcome1
Thunderbird email accounts
Email                                                       demoadmin@example.com                      Welcome1
Email                                                       jcooper@example.com                        Welcome1
Email                                                       sking@example.com                          Welcome1
Linux “service” commands                                    Run as the oracle user                     oracle
TigerVNC for host01                                         -                                          oracle
TigerVNC for host02                                         -                                          oracle
Linux user account                                          oracle                                     oracle
Linux access to Desktop for LVC                             oracle                                     oracle
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                               Chapter 2 - Page 1
Overview of Practices for Lesson 2
Practices Overview
In the practices for this lesson, you plan the installation of a clustered Oracle SOA Suite 12c
implementation based on the technical environment that is made available in class. The
planning includes performing the necessary pre-installation checks to verify that the required
software and operating system settings are installed.
Note: About Linux Commands
The Linux command-line instructions that are used in the practice are prefixed with a single
dollar character ($), which represents the command-line prompt. The actual command-line
prompt that is displayed in the Terminal applications sessions that you start may differ from the
prompt that is used in this document.
Saving Time with Practice Documents
Some text and graphics in the practice documents are highlighted with a gray background to
indicate that the information is not part of the practice instructions. For example:
This is additional text that is not part of the instructions!
Therefore, to save time while performing the practice tasks, you can skim through or skip the
text sections with the gray background as shown in the preceding line.
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                               Chapter 2 - Page 2
Practice 2-1: Planning an Enterprise Deployment of Oracle SOA Suite
12c
Overview
In this practice, you edit an Excel spreadsheet called the “Oracle SOA Suite Enterprise
Deployment Workbook for Oracle SOA Suite” to work through the design plan for your
installation and configuration of an Oracle SOA Suite 12c cluster in your classroom
environment.
Assumptions
    •   You have access to the /nfshome/practices/practice02 folder in which
        soa_edg_workbook.xlsx exists, which was downloaded from the Oracle SOA Suite
        12c documentation web page
        (http://docs.oracle.com/middleware/1213/cross/installtasks.htm).
          Note: OpenOffice is installed on your computer to view and edit Excel spreadsheets.
The deployment environment provides two virtual machine (VM) hosts for creating a SOA
cluster. To access each virtual host, you first connect to the OVM Server 3.2 environment and
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                               Chapter 2 - Page 3
use VNC (deskop icons) to create VNC sessions with each VM host. You can work with each
VM through a VNC session or by using secure shell (ssh) and the command line (where
appropriate).
    Note: Both virtual machines have access to the following shared folders that are exported
    from and mounted on NFS disks:
          − The practice files are located in the /practices folder tree.
          − The Oracle Fusion Middleware and Oracle SOA Suite installers are located in the
            /install folder tree.
         − The /u02 folder tree contains some pre-installed software for Oracle JDeveloper
             and Oracle Unified Directory (an LDAP server). This folder tree must be used for the
             WebLogic Administration Server’s configuration files when you create the WebLogic
             domain for the SOA installation.
         Tip: You can access the shared folders from the Dom-0 (host operating system)
         machine by using the /nfshome prefix before /practices and /install,
         respectively. However, except for this practice, all installers and practice files should be
         accessed from within the environment of the Linux guest operating system within each
         virtual machine. The /u02 folder is mounted on an NFS path, /nfsvol02, which is a
         separate virtual disk to be used for the SOA installation configuration files.
To plan your configuration, edit the details for each of the following worksheet (tab) pages in the
Oracle SOA Suite Enterprise Deployment Workbook:
    • Hardware - Host Computers
    • Network - Virtual Hosts & Ports
    • Storage - Directory Variables
    • Database - Connection Details
The following image shows the Start Excel sheet tab page that you see when you open the
soa_edg_workbook.xlsx file that is to be edited (as described in subsequent steps).
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                               Chapter 2 - Page 4
Architecture Plans
Your task is to edit the Oracle SOA Suite Enterprise Deployment Workbook Excel spreadsheet
sections to plan the configuration of a clustered SOA topology. The document plans are used to
install and configure the SOA architecture that is represented in the following diagram:
The following image depicts the physical topology on the actual VM hosts:
Note: In the diagram, the following information is provided to help you document the required
information for planning your configuration:
     a. The architectural design relies on the use of virtual host names, each of which is
         assigned an associated virtual IP address. The use of virtual host names (and virtual IP
         addresses), as recommended by the Oracle SOA Suite Enterprise Deployment Guide,
         is essential for supporting failover capabilities.
     b. The Oracle Database is installed on the host02 instance with the database SID ORCL
         and service name orcl.example.com by using port 1521.
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                               Chapter 2 - Page 5
     c.   Plan the installation folder paths for the Oracle SOA Suite and dependent software
          components on each host.
     d.   Plan your Oracle WebLogic Domain cluster structure based on the diagram, where:
          1) The machine called host01 has:
              a) A WebLogic Server (WLS) node manager instance listening on port 5556
              b) The WLS Administration server listening on port 7001. The virtual host name
                   adminvh.example.com is used for the administration server instance.
              c) A clustered WLS Managed Server to run the Oracle Fusion Middleware
                   (FMW) Infrastructure, Oracle Web Services Manager (OWSM), and Oracle
                   SOA Suite, listening on port 8001. The virtual host name
                   soavh01.example.com is used for the Managed Server instance.
              d) A stand-alone WLS Managed Server running the HTTPClusterServlet listening
                   on port 8080 and 4443 (SSL) for use as a load balancer front end to the
                   clustered instances. This same WLS Managed Server is configured to
                   separate requests for the Administration Server from the SOA Servers by
                   using the WebLogic Channel functionality.
          2) The machine called host02 has:
              a) A WebLogic Server (WLS) node manager instance listening on port 5556
              b) A clustered WLS Managed Server to run the Oracle Fusion Middleware
                   (FMW) Infrastructure, Oracle Web Services Manager (OWSM), and Oracle
                   SOA Suite, listening on port 8001. The virtual host name
                   soavh02.example.com is used for the Managed Server instance.
              Note: In addition to running the Oracle Database instance that holds the database
              schemas that are needed for the Oracle SOA Suite components, host02 can run
              the LDAP server instance that is to be used for authentication.
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                               Chapter 2 - Page 6
          Note: The layout of the web page may differ from the example shown in the preceding
          step, and depends on the size of the browser window that you are using.
     e. If you are unable to access the Oracle SOA Suite 12c Installation Documentation web
          page, copy the soa_edg_workbook.xlsx file from the
          /nfshome/practices/practice02 folder into your home folder (/home/oracle).
2.   To open the soa_edg_workbook.xlsx file in the OpenOffice spreadsheet editor, perform
     the following steps:
     a. Double-click the “oracle’s Home” desktop icon.
          A window titled “oracle” opens, displaying the files and folders contained in the
          /home/oracle folder.
     b.   In the oracle window, double-click the soa_edg_workbook.xlsx file to open it in
          OpenOffice.
          Note: Alternatively, right-click the soa_edg_workbook.xlsx file and select “Open
          with “Oracle Open Office 3.3 Calc””.
     c.   Verify that the Start worksheet tab page is visible after the file is opened in the
          OpenOffice 3.3 Calc application, as shown in the following image:
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                               Chapter 2 - Page 7
          Note: You can click the links in the Start worksheet or click the worksheet tab label
          names to navigate to the worksheet section that is to be modified in subsequent steps.
     b.   On the “Hardware – Host Computers” worksheet tab page, complete the field values
          for the Real Host Name, IP Address, OS, and # of CPUs, and the RAM columns for
          each of the Abstract Host Name entries listed.
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                               Chapter 2 - Page 8
          Hint: Use the following image of the course topology based on the actual virtual host
          names to assist you:
          You can change to super user to find information about your virtual machines by
          executing the following commands in a terminal window that is opened from your
          desktop:
          $ sudo /usr/sbin/xm list
          For example, the sample output for the xm list command should be similar to the
          following results:
          Name                                         ID        Mem VCPUs                        State      Time(s)
          Domain-0                                      0       1024     2                       r-----     17160.9
          host01                                       11       6500     2                       -b----       340.8
          host02                                       12       6500     2                       -b----     18605.8
          Notes:
             − The xm list command shows Mem as megabyte quantities.
             − View the contents of the /etc/hosts file to obtain the IP addresses for each
                VM host.
             − You need to populate only the WEBHOST1 row in the worksheet, and leave the
                WEBHOST2 row empty, because the course uses one of the VM instances to
                host the HTTPClusterServlet for the software-based load balancer on
                WEBHOST1.
             − Fill in the row for DBHOST1, because there is one database instance, and
                therefore, you can leave the DBHOST2 row entry.
     c. Close the Terminal application window that you started to execute the sudo command.
4.   Verify that your plan resembles information in the following table of hardware components:
     Real Host Name                   Abstract Host Name                       IP Address              OS      RAM
     host01.example.com               WEBHOST1                                 192.0.2.11              Linux   6.5Gb
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                               Chapter 2 - Page 9
                                      WEBHOST2
     host01.example.com               SOAHOST1                                 192.0.2.11              Linux   6.5Gb
     host02.example.com               SOAHOST2                                 192.0.2.12              Linux   6.5Gb
     host02.example.com               DBHOST1                                  192.0.2.12              Linux   6.5Gb
                                      DBHOST2
     Note: The preceding table does not show the CPU column found in the worksheet.
     However, each VM has been configured with the equivalent of two CPUs, as seen from the
     output results of the xm list command. Use the following image of the “Hardware – Host
     Computers” worksheet page as a guide:
In summary, the plan is to create a cluster of two WebLogic Managed Server instances, each
allocated to one of the VM hosts. The database is already installed on host02, and the plan is to
create a stand-alone WebLogic Managed Server for the WEBHOST1 load balancer.
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                              Chapter 2 - Page 10
          worksheet) to open the related worksheet, or click the “Network - Virtual Hosts & Ports”
          worksheet tab name to make that worksheet active.
     b. On the “Network - Virtual Hosts & Ports” worksheet tab page, fill in the details in the
          Network – Virtual Hosts table, where:
          − The WebLogic Administration host (ADMINVHN) is planned to reside on the same
             virtual host as the first SOA virtual host (SOAHOST1VHN)
          − Each SOA Managed Server is targeted to its own virtual host, which means that you
             have two SOA virtual hosts (SOAHOST1VHN and SOAHOST2VHN)
          Note: In the class environment, the VM host names represent your virtual host names.
     c. On the “Network - Virtual Hosts & Ports” worksheet tab page, fill in the Network – Port
          Number section by using the following guidelines:
          − The HTTP_PORT number should be set as 8080 and is used for the Oracle
             WebLogic Managed Server that is created to run the HTTPClusterServlet as the
             load balancer.
          − The SOA and WSM ports should both be set to 8001 because the plan is to have
             these two components share the same Managed Server instance.
          − The Node Manager port should be set to the default value of 5556.
          − The OSB port is not used in this course.
          − The OSN is not used in this course.
          − The LDAP port should be set to 1389 and the LDAP SSL port set to 1636.
          − The Database listener port is 1521.
6.   Verify that your network virtual host and port planning documentation matches the relevant
     host and port information shown in the following table:
     Virtual Hosts:
     Abstract Virtual Host          Actual Virtual Host                                       IP Address
     ADMINVHN                       adminvh.example.com                                       192.0.2.20
     SOAHOST1VHN                    soavh01.example.com                                       192.0.2.21
     SOAHOST2VHN                    soavh02.example.com                                       192.0.2.22
     Note: The SOAHOST1VHN1 and SOAHOST1VHN2 entries do not appear in this table
     because they are not used in this course.
     Port Numbers:
     Port Variable Name               Description                                                          Actual Port
                                                                                                           Number
     HTTP_PORT                        HTTP Server port (for admin access)                                  8080
     LDAP_DIR_PORT                    OUD/OID Directory Services Port                                      1389
     LDAP_DIR_SSL_PORT                OUD/OID Directory Services SSL Port                                  1636
     DB_LSNR_PORT                     Database Listener Port                                               1521
     NMGR_PORT                        WLS Node Manager Listen Port                                         5556
     SOA_PORT                         SOA Port                                                             8001
     WSM_PORT                         Oracle Web Services Manager Port                                     8001
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                              Chapter 2 - Page 11
     Note: The ONS_PORT and OSB_PORT entries are not listed in the table because these
     components are not used in this course. Use the following image of the “Network - Virtual
     Hosts & Ports” worksheet page as a guide:
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                              Chapter 2 - Page 12
          Note: The letters “EDG_” in the domain name are used as an indicator that this domain
          is based on the “Enterprise Deployment Guide.” Although “Storage - Directory
          Variables” provides a Share and Mount Point Dependency column, there is no need to
          populate it for the course because the plan is to create local folders for each installation
          of Oracle SOA Suite 12c on the respective VM instances. You do use the /install
          shared mount point to access the product installation media, and the /practices
          folder tree to access files that may be needed when performing the practices for this
          course. Therefore, there is no need to document these two folders (/install and
          /practices) as share and mount points, because they are used for the practices in
          this course. However, if you plan a cluster configuration to eliminate duplicate
          installation of the binaries, you should document the share and mount points that are
          used for the components in the Application Tier for the configuration of your
          deployment topology.
8.   Verify that your plan includes the file system folders represented in the preceding table, as
     shown in the following image:
     Note: Be aware that the ASERVER_HOME and DEPLOY_PLAN_HOME folders are located on
     a different mount point than MSERVER_HOME. The administration server folders are located
     on a shared disk to support high availability and failover of the administration server. For
     completeness, if you wish, you can document the Share and Mount Point Dependency
     columns to show that the ASERVER_HOME and DEPLOY_PLAN_HOME folders are located on
     a specific shared disk mount point, as shown in the Share and Mount Point Dependency
     columns in the preceding diagram.
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                              Chapter 2 - Page 13
     b.   On the “Database – Connection Details” worksheet tab page, add the following details
          in the Actual Values column of worksheet for the corresponding rows listed in the
          following table:
          Database Connection Detail                                    Actual Value
          Database Hosts (SOADBHOST1)                                   Single-node
          Database Service Name                                         orcl.example.com
          Database SID                                                  orcl
          System Account Name and Password                              Account Name: sys
                                                                        Password: Use the password provided.
          RCU Schema Prefix                                             EDG
          Database Listener Port                                        1521
          The SOADBHOST1 abstract name in the “Variable or Value Used in Procedures”
          column refers to the DBHOST1 entry in the “Hardware – Host Computers” worksheet,
          which you should have documented as host02.example.com.
          Because the course environment does not use a RAC-enabled database configuration,
          there is no need to document those values in this practice. The Database Connection
          Detail rows that do not need to be documented for the planned installation for this
          course are related to using a RAC database cluster for the Data Tier.
     c.   Verify that your database connection information is specified with information similar to
          the details of the following image:
        Note: The System Account password is provided as a generic value for this
        documentation. Ask your instructor for the password of the database system
        administration account SYS when required.
10. Save the spreadsheet with all the documented configuration plans that you have made to
    your home folder, by performing the following steps:
    a. In the “Oracle Open Office – Calc” window, select File > Save.
    b. In the “Save As” (or Save) dialog box, accept the default settings and click Save.
        Note: The file is saved with the default extension of .ods, which is the default file
        name extension that is used by Oracle OpenOffice for spreadsheet files. In this case,
        you are saving a copy of the original .xlsx file in a new format that is compatible with
        the Oracle OpenOffice Calc application. If required, you can refer back to the saved file
        details during the practice when you perform the software installation and domain
        configuration tasks.
    c. Close the “Oracle Open Office – Calc” application by selecting File > Exit.
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                              Chapter 2 - Page 14
Practice 2-2: Performing Pre-Installation Checks and Setup
Overview
In this practice, you connect with the host01 and host02 VM instances, perform basic pre-
installation checks, and install the required software on each instance as indicated by the
supplied checklist. In addition, you prepare the environment variables for the command line and
scripts to be executed to perform installation tasks.
Assumptions
    •     You can sign in to your assigned computer and access the host01 and host02 VM
          instances to examine and prepare the environment.
            Note: The host01 and host02 instances can be accessed via a Terminal window and
            through VNC clients. It is recommended that you use Terminal windows within the VNC
            client windows.
Tasks
Normally your host environments may not have all the required software installed before you
begin to install Oracle SOA Suite 12c software components. However, to save time, instead of
you installing some of the required software, it has been pre-installed and your tasks in this
section are to verify that:
     •     The correct version of the Java Development Kit (JDK) has been installed, and that you
           can create JAVA_HOME and modify the PATH environment variables to include the JDK
           that is needed to run the Oracle WebLogic and Oracle SOA Suite installers
     •     The Oracle Database and the Database listener have been started and that you can
           successfully connect to the Oracle Database by using the connection details specified
           in the “Planning the Database - Connection Details” section of practice 2-1
     b.    In the “VNC authentication” dialog box, enter the VNC session Password (as supplied
           by your instructor), and click OK.
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                              Chapter 2 - Page 15
          Note: After you successfully start the VNC session with host01, the
          “host01.example.com:1 (oracle) – TigerVNC” window appears. The host01 VNC
          session window displays with a light blue desktop background color, as shown in the
          following screenshot:
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                              Chapter 2 - Page 16
     b.   In the Terminal application window, execute the following commands:
          1) To check the current version of the Java that is being used:
               $ java –version
          2)   To locate and verify that the latest version of Java is JDK 1.7.0_55:
               $ ls /usr/java
               $ /usr/java/latest/bin/java –version
               Note: The version reported here should be:
                 java version "1.7.0_55"
3.   While on host01, to ensure that the correct version of JDK is available to the Terminal
     sessions and command-line scripts, perform the following steps:
     a. In the Terminal window, enter the following commands to modify and display the
         .bashrc file (located in the /home/oracle folder):
         $ /practices/scripts/setbashrc.sh
         $ cat .bashrc
          Note: Using the setbashrc.sh script reduces the typing that is required to modify the
          .bashrc file and eliminates typing errors. The following image provides the sample
          contents of the .bashrc file after executing the script:
     b.   Because the changes made to the .bashrc file are not activated in the current
          Terminal session, you must close the current Terminal application window and start a
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                              Chapter 2 - Page 17
          new Terminal session. To terminate the current Terminal session, enter the exit
          command, or click the close (x) icon on the window title bar.
     c.   Start a new Terminal application session, and enter the following command to verify
          that the JDK 1.7.0_55 version is now active:
          $ java -version
     d.   Optionally, close the new Terminal window. However, you can retain the Terminal
          session to enter commands in the next practice.
4.   On the host02 VM instance, repeat the steps documented for host01 to ensure that the JDK
     is installed and available in the bash shell environment.
     a. After starting the VNC session with host02, open a Terminal application window and
          enter the following commands:
          $ java –version
          $ /practices/scripts/setbashrc.sh
          $ cat .bashrc
          Hint: The following image provides a sample of the results that you can expect for the
          all the commands, except the exit command, in the Terminal application session:
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                              Chapter 2 - Page 18
Summary of Changes
On both host01 and host02, you started a Terminal application session to modify the
/home/oracle/.bashrc file, for the oracle user, to prepare the initial environment variables
and alias needed for the installation tasks to be performed in practice 3 of this course. To make
the changes, you executed the /practices/scripts/setbashrc.sh script that edits the
.bashrc file with the following changes:
     •    Sets the TZ environment to set the session time zone
     •    Adds the export commands to set JAVA_HOME and update the PATH environment
          variables
     •    Determines if the rlwrap and sqlplus applications are accessible and sets Bash
          shell command shortcuts, respectively, called aliases, by adding appropriate alias
          commands to the environment
          Note: The rlwap command-line tool, if installed, provides command-line editing
          functionality for applications that do not natively support command-line editing, such as
          Oracle SQL*Plus.
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                              Chapter 2 - Page 19
         SQL> startup
         SQL> exit
     Hint: The following image shows a sample session when the database instance is idle, and
     how to start the database instance:
6.   To verify that the database listener is running, execute the following command:
          $ lsnrctl status
     Hint: The following image displays the results that are returned when the database listener
     is running.
     Note: If the results returned from the listener status command report the following error,
     you must start the database listener:
          TNS-12541: TNS:no listener
     Hint: To start the database listener, execute the following command:
         $ lsnrctl start
Practices for Lesson 2: Planning an Oracle SOA Suite 12c Deployment Architecture
                                              Chapter 2 - Page 20
                                                                Practices for Lesson 3:
                                                                Installing Oracle Fusion
                                                                Middleware Infrastructure 12c
                                                                Chapter 3
Practices Overview
In the practices for this lesson, you install the Oracle Fusion Middleware Infrastructure binaries,
and create a WebLogic Server domain for the Infrastructure components based on a variation of
the recommendations in the Oracle Enterprise Deployment Guide.
Notes about Command-Line Instructions
    •    Shell commands: Some bash shell commands are long and therefore are formatted
         across multiple lines for readability. However, when you enter the commands, they
         should be entered on one line. If you enter any shell command over more than one line,
         you must use the backslash (\) character as a command-line continuation indicator. The
         long shell commands in this guide, however, do not show the command-line continuation
         character.
    •    WebLogic Scripting Tool (WLST) commands: WLST commands do not require a
         command-line continuation character, and therefore can be entered on one line or over
         multiple lines as written in the guide.
    •    Entered commands: The commands that you enter in this practice cause a domain to be
         created. This task may take some time.
Overview
In this practice, you install the Oracle Fusion Middleware infrastructure on host01 and capture
the installation response file, which you use with a supplied script to perform a silent installation
of the same software on host02.
Note: Although the installation folders have the same structure on each host, the installation
steps are repeated on host02 because the destination installation folders for the products are
local to each host. The script format reduces the repetitive effort that is normally involved.
Assumptions
     •    The Oracle Database 11g instance is running and available on host02.
     •    The Oracle Java Development Kit (JDK 1.7.0_55) is installed on host01 and host02 as
          verified in the practices for the lesson titled “Planning an Oracle SOA Suite 12c
          Deployment Architecture.”
     •    You have access to the /install folder, which contains the Oracle Fusion
          Middleware Infrastructure installer, on the host01 and host02 VM instances.
     •    The JAVA_HOME and PATH environment variables should have been set correctly by
          the modifications performed in Practice 2 for the lesson titled “Planning an Oracle SOA
          Suite 12c Deployment Architecture” that modified the .bashrc file.
Tasks
Your key tasks in this practice are:
    • Installing the Oracle Fusion Middleware Infrastructure binaries on host01 and capturing
        the installation response file, which you copy to host02
    • Installing the Oracle Fusion Middleware Infrastructure binaries on host02 by using a
        supplied script with the response file that is captured from the installation on host01
     Note: In the event of an error during installation, you can use the information displayed in
     the Terminal window to locate the log file and open the log file to find details of the errors
     reported before taking corrective action. In this course, it is expected that the installation
     completes without any errors.
     b.   In the same Terminal window, execute the following commands to copy the response
          file to the /practices/practice03 folder, and verify that the file exists in the
          destination folder:
          $ cp install_fmw_infra.rsp /practices/practice03
          $ ls /practices/practice03
          Note: The result of running the preceding commands is shown in the following image:
     c.   After installation has completed, verify that the installation files and folders are created
          in the /u01/oracle/product/fmw folder by entering the command to list the
          contents of the folder:
          $ ls /u01/oracle/product/fmw
          Note: Displaying the contents of the /u01/oracle/product/fmw folder results in
          the list of files and folders shown in the following image:
     Note: Do not close the Terminal application window, because you continue to use the
     Terminal application session for the additional installation tasks that are performed on
     host01.
     c.   After the installation script has completed, verify that the installation files and folders
          have been created.
          1) In the /u01/oracle/product/fmw folder on host02, run the ls command.
          2) Confirm that the files and folders are the same as that appearing in the same
              Oracle Home folder on host01.
     Note: It is recommended and a best practice to keep your installation folder trees identical
     across VM hosts to support whole server migration and scalability for high availability
     implementations.
     Summary of Practice Tasks
     In summary of the tasks performed in the practice, you have:
     • Installed the Oracle Fusion Middleware Infrastructure binaries on host01
     • Captured the installation response file to the home folder on host01
     • Copied the installation response file to a shared folder that is accessible to host02
Overview
In this practice, you perform tasks to create a WebLogic Server domain with one AdminServer
and a cluster with two Managed Server instances, each of which is assigned to its own host.
Before you can create the domain, you must create the required database schemas in the
Oracle Database on host02 by running the Repository Creation Utility (RCU) that is installed
with the Oracle Fusion Middleware Infrastructure software.
After you have configured the domain, to ensure that the entire clustered domain can be started,
you must run the Oracle WebLogic pack.sh script to package the domain configuration into an
archive format that can be unpacked, with the unpack.sh script, on the second host to create
the domain configuration folders for the clustered instance on the second machine.
Assumptions
     •    The Oracle Database 11g instance is running and available on host02.
     •    You have verified and set the path of the Oracle Java Development Kit on host01 and
          host02 as described in the practices for the lesson titled “Planning an Oracle SOA
          Suite 12c Deployment Architecture.”
     •    You have successfully installed the Oracle Fusion Middleware Infrastructure software,
          on the host01 and host02 VM instances, as described in “Practice 3-1: Installing the
          Oracle Fusion Middleware Infrastructure.”
     •    You have access to the /install folder, which contains the Oracle SOA Suite 12c
          installers, on the host01 and host02 VM instances.
Tasks
Your key tasks in the practice are:
    • Creating the database schemas with RCU
    • Creating the domain configuration
    • Packing and unpacking the domain configuration files
    • Starting the server instances in the cluster
     Tip: The initial configuration of the cluster and administration server files should be created
     in the shared folder tree; in this course, the folder tree in the /u02 mount point.
     a.   On the Create Domain page:
          1) Accept the default “Create a new domain” option setting
          2) Replace Domain Location with /u02/oracle/config/domains/edg_domain
          3) Click Next
     b.   On the Templates page, select the following two templates and click Next.
          Note: The component schemas listed on the previous page are automatically tested by
          the configuration wizard by connecting to the schema with the password supplied
          during RCU configuration.
     i.   On the Advanced Configuration page, to complete domain configuration for the
          topology, select the following check boxes before clicking Next.
          Select Advanced Configuration Options
          Administration Server
          Node Manager
          Managed Servers, Clusters and Coherence
          JMS File Store
          Note: These check boxes are selected to ensure that you properly configure the listen
          address for the Administration Server, Node Manager, and Managed Servers. In
          addition, you can create the cluster, configure which servers belong to the cluster, and
          configure Coherence. The JMS File Store option is required to configure appropriate
          shared storage for the JMS persistent stores.
          Tip: Do not select the Domain Frontend Host Capture advanced configuration option.
          In practice 4-2 titled “Extending the SOA Domain with Oracle SOA Suite 12c,” when
          you extend the Infrastructure domain with Oracle SOA Suite 12c, you configure the
          frontend host property for the cluster, rather than for the domain.
     j.   On the Administration Server page, change (where applicable) the values of the fields
          listed in the following table, and click Next:
          2)    With the two Managed Servers appearing under the soa_cluster1 cluster, click
                Next.
     o.   On the Coherence Clusters page, accept 0 in the Unicast Listen Port column for the
          Cluster Name defaultCoherenceCluster, and click Next.
          Note: The Coherence Clusters page configures the Coherence cluster that is added to
          the domain. If you enter a Unicast Listen Port, enter a value such as 9991 or keep the
          default port 0. When the port value is zero, an offset algorithm from the Managed
          Server port is used to determine the Unicast Listen Port. The configured port becomes
          the default port that is used by all cluster members unless a cluster member explicitly
          specifies a different port.
          Note: The Node Manager servers are started for each of the virtual hosts listed, as
          documented in the Enterprise Deployment Guide.
     q.   On the Assign Servers to Machines page, assign the servers in the Servers column to
          their corresponding machine entries in the Machines column. Click Next after you have
          made the following assignments:
          Servers                           Assigned Machines
          AdminServer                       adm_machine
          soa_server1                       soa_machine1
          soa_server2                       soa_machine2
          Hint: To make the server assignments, perform the steps in the following sequence:
          1) Select an entry (or entries) in the Servers column.
          2) Select the entry in the Machines column to which the servers are to be assigned.
          3) Click the right arrow icon to make the assignment.
          Note: Use the following image as a guide to view the appropriate assignments before
          you click Next.
          Note: The Enterprise Deployment Guide suggests that you format the JMS File Store
          Directory path by using the pattern ASERVER/cluster_name, where ASERVER
          represents the path for the AdminServer domain home
          (/u02/oracle/config/domains/edg_domain in this example) and the
          cluster_name is soa_cluster1 (which you named and created on the Clusters
          page of the Fusion Middleware Configuration Wizard).
     s.   On the Configuration Summary page, click Create.
          Note: You can verify your domain configuration settings on the Configuration Summary
          page before clicking Create.
     t.   On the Configuration Progress page, wait for the configuration progress to complete.
          When you see the 100% progress indicator and the message “Domain Created
          Successfully” in the progress text, click Next.
     u.   On the End of Configuration page, verify that you see the “Oracle WebLogic Server
          Configuration Succeeded, New domain edg_domain Creation Successful” message,
          and a link to the domain folder and the administration server. Click Finish.
6.   To verify that the domain folder is created, enter the following command in a Terminal
     window:
         $ ls /u02/oracle/config/domains
     Note: The folder name edg_domain should be displayed as a result of the ls command.
          Note: If the web browser prompts for remembering the password, to make things
          easier for the remaining practices during the course, click “Remember Password.”
          Alternatively, you can make any choice you prefer.
     e.   On the WebLogic Administration Server Console home page, click Logout, and
          optionally close the web browser window or tab page.
     Tip: Consider bookmarking the web addresses that you enter during the practice, such as
     http://adminvh.example.com:7001/console, because you would use them frequently
     throughout the course.
12. Optionally, to verify that you can access and sign in to the Oracle Enterprise Manager
     Fusion Middleware Control application, perform the following steps:
     a. In a web browser window or on a tab page, enter the URL
          http://adminvh.example.com:7001/em to access the application.
     b. On the Oracle Enterprise Manager Fusion Middleware Control login page, enter the
          WebLogic administrator username and password that you specified when you created
          the WebLogic domain.
     c. On the Oracle Enterprise Manager Fusion Middleware Control home page, verify that
          the AdminServer instance is running, and then sign out.
     d. Close the web browser window or tab page.
In summary, at this point in the practice, you should have:
     • Configured a WebLogic domain with the AdminServer and two Managed Server
          instances in a cluster
     • Started the Node Manager and AdminServer
     •    Validated that you can access the Oracle WebLogic Server Console (and optionally the
          Enterprise Manager Fusion Middleware Control) applications deployed in the
          AdminServer
     c.   The Managed Server configuration is created in the folder tree with the /u01 path
          prefix on host01. To check out the domain directories on host01, in the Terminal
          window, navigate to the domain directory and explore by using the cd and ls
          commands.
          $ ls $MSERVER
          $ cd $MSERVER/bin
          $ ls
     e.   After clicking Start Up, the Processing pop-up window that is similar to the following
          image is displayed, which shows the progress of the startup operation:
          Note: Wait for the startup operation to complete (when the Processing page title
          changes to Confirmation).
     g.   In the Target Navigation pane, click the edg_domain entry to display the edg_domain
          home page and verify that the soa_server1 Managed Server is up and running. Use
          the following image as a guide to the expected result:
          Note: On the edg_domain home page, to verify that the soa_server1 instance is
          running, collapse the Summary section. In the Servers section, verify that the Status
          column for the soa_server1 row contains a green up arrow icon, as shown in the
          preceding image.
          Note: If the web browser prompts you for remembering the password for the
          weblogic user, take any action you prefer for your environment.
     c.   Verify that the Validate Policy Manager page is displayed as shown in the following
          image:
     d. Close the Validate Policy Manager web browser window or tab page.
In summary, you have unpacked the configuration files for the soa_server1 Managed Server,
and started the Node Manager and the Managed Server.
     c.   The Managed Server configuration is created in the folder tree with the
          /u01/oracle/config/edg_domain path on host02. In a Terminal window,
          navigate to the domain directory and explore by using the cd and ls commands
          similar to the following:
          $ ls $MSERVER
          $ cd $MSERVER/bin
          $ ls
     c.   After you click Start Up, the Processing pop-up window is displayed that shows the
          progress of the startup operation.
          Note: Wait for the startup operation to complete (when the Processing page title
          changes to Confirmation) and verify that the soa_server2 Managed Server started
          successfully. Click Close.
     d.   In the Target Navigation pane, click the edg_domain entry to display the edg_domain
          home page and verify that the soa_server2 Managed Server is up and running. Use
          the following image as a guide to the expected result:
     d. Close the Validate Policy Manager web browser window or tab page.
In summary, you have unpacked the configuration files for the soa_server2 Managed Server,
started the Node Manager, and started the Managed Server.
                                 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     c.   On the Summary of Servers > Configuration tab page, click the soa_server1 link in the
          Name column of the Servers table.
     d.   On the Settings for soa_server1 > Configuration tab page, click the Deployment tab.
          Note: Click the Deployment (singular form) tab, not the Deployments (plural) tab name.
          Note: After clicking Save to update the Deployment tab page settings, the following
          confirmation messages are displayed above the “Settings for soa_server1” heading on
          the page.
          Note: The item that needs to be restarted is the soa_server1 Managed Server
          instance. However, in the next task step, you first modify the same Deployment
          settings for the soa_server2 instance before restarting both the Managed Server
          instances.
26. To restart the soa_server1 and soa_server2 Managed Servers, take the following action:
    a. In the web browser window or on the tab page, return to the Oracle Enterprise
        Manager Fusion Middleware Control page.
        Note: If required, enter the URL http://adminvh.example.com:7001/em to
        reload the page. If the Oracle Enterprise Manager Fusion Middleware Control page
        session has expired (or was terminated), you may have to sign in with the administrator
        username (weblogic) and the associated password.
    b. On the Oracle Enterprise Manager Fusion Middleware Control page, in the Target
        Navigation pane, expand edg_domain if required, click the soa_cluster1 entry, and click
        Shut Down.
          Note: Shutting down the cluster causes both Managed Server instances to be shut
          down with one operation.
                                 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     c.   After clicking Shutdown in the Confirmation dialog box, the Processing dialog box is
          displayed where you can monitor the progress of the cluster shutdown operation.
     d.   Wait for the Processing dialog box title to change to Confirmation. Verify that the
          message indicates that two Managed Servers (soa_server1 and soa_server2) have
          been shut down successfully, and click Close.
          On the Oracle Enterprise Manager Fusion Middleware Control page, the soa_cluster1
          entry should still be selected, with the soa_cluster1 page also visible and showing that
                                 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     e.   To start the two Managed Servers, on the soa_cluster1 page, click Start Up.
     f.   After clicking Start Up on the soa_cluster1 page, the Processing dialog box appears
          where you can monitor the progress of starting the server instances in the cluster.
     g.   Wait for the Processing dialog box title to change to Confirmation. Verify that the
          message indicates that two Managed Servers (soa_server1 and soa_server2) have
          been successfully started, and click Close.
                                 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     b.   Back up the Managed Server domain configuration folders by entering the following
          command:
          $ /practices/scripts/backup.sh managed infra
29. To back up the remaining application tier runtime files, perform the following steps in a
    Terminal window on host02:
    a. Back up the Managed Server domain configuration folders by entering the following
        command:
        $ /practices/scripts/backup.sh managed infra
          Note: You may want to view the script contents to view the commands that are used to
          backup the various application tier folder trees.
     b.   Back up the data (database) tier files by entering the following:
          $ /practices/scripts/backup.sh db infra
                                 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Overview
By default, after creating and configuring an Oracle WebLogic domain, the domain is configured
to use the WebLogic Authentication (Embedded LDAP) provider, which is identified as the
DefaultAuthenticator on the Oracle WebLogic Administration Console security provider
configuration pages. However, for your enterprise deployment, it is preferable to use a
dedicated, centralized LDAP-compliant authentication provider.
In this practice, you use the Oracle WebLogic Server Administration Console to create a new
LDAP authentication provider for your enterprise deployment domain.
Note: The LDAP server should already be installed and include some initial configuration in
preparation for the integration process. In this course, Oracle Unified Directory has already been
installed and configured with some initial LDAP data for your centralized LDAP directory service.
Assumptions
    •    Oracle Unified Directory is installed and the directory instance has been started and is
         listening on port 1389.
    •    Your initial Oracle WebLogic enterprise deployment domain has been created.
Tasks
Your tasks include:
    • Creating and configuring LDAP providers in the Oracle WebLogic Administration
        Console
    • Provisioning a new SOA administrator user and group in the LDAP server as new
        enterprise deployment entities
    • Granting SOA application roles to the new SOA administrator user by using Oracle
        Enterprise Manager Fusion Middleware Control
    • Verifying that you can sign in to the Oracle WebLogic Administration Console and
        Oracle Enterprise Manager Fusion Middleware Control applications as the new SOA
        administrator user
Before making configuration changes for the authentication providers, it is a good idea to
backup appropriate files. A script to backup the relevant files is provided to save time.
1. To back up the files that are related to authentication configuration, enter the following
    command in a Terminal window (either on host01 or host02):
        $ /practices/scripts/auth.sh backup
     Note: The auth.sh script with the backup parameter copies the following files into the
     auth_data.tar file that is located in /practice/practice03 folder, by default.
          $ASERVER/config/config.xml
          $ASERVER/config/fmwconfig/jps-config.xml
          $ASERVER/config/fmwconfig/system-jazn-data.xml
          $ASERVER/servers/AdminServer/security/boot.properties
     Tip: If you need to restore these files, enter the following command in a Terminal window:
          $ /practices/scripts/auth.sh restore
     e.   On the “Settings for myrealm” > Providers > Authentication tab page, in the
          Authentication Providers table, click New.
     f.   On the “Create a New Authentication Provider” page, enter or select the following field
          values. Click OK when you have finished.
          Field Name               Value
          Name                     OUDAuthenticator
          Type                     IPlanetAuthenticator
          Note: The Type value must be set to IPlanetAuthenticator when creating an
          authentication provider for Oracle Unified Directory.
          Note: The message indicates that the domain servers must be restarted for the activated
          changes to become effective.
3.   To edit the OUDAuthenticator configuration settings, perform the following steps:
     a. On the “Settings for myrealm” > Providers > Authentication tab page, click the new
         OUDAuthenticator link in the Name column of the Authentication Providers table.
     b. On the “Settings for OUDAuthenticator” Configuration > Common tabbed page,
         select SUFFICIENT from the Control Flag drop-down menu, and click Save.
          4)    Scroll down to the end of the General section, and update the GUID Attribute
                setting by replacing the existing value of nsuniqueid with the following value:
                  Field                                           Value
                  GUID Attribute (General)                        entryuuid
                Note: Use the following image as a reference:
                                 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
         Note: Restarting of servers can be performed after you make additional configuration
         changes to provider sequence and control flags.
4.   To reorder the sequence of authentication providers, perform the following actions:
     a. On the “Settings for myrealm” > Providers > Authentication page, above the list of
         providers in the Authentication Providers table, click Reorder.
     b. On the Reorder Authentication Providers page, select the OUDAuthenticator check
         box, click the topmost up arrow icon to move the entry to the top of the list (to be the
         first entry), and click OK.
     d.    Click the Groups tab, and in the Groups table, verify that you can see the entry with the
           Name “Team Managers” and the Provider OUDAuthenticator:
Provisioning a New SOA Administrator User and Group to the LDAP Server
To provision a new user and group for a SOA Administrator, you could manually create each
entry in the LDAP server by using any user interfaces that provide support for these tasks. In
this course, you use the Oracle Unified Directory ldapmodify command-line tool to create the
LDAP entries from the LDIF files that are provided for these tasks.
9. To create the SOA administrator user called weblogic_soa, enter the following
     commands in a Terminal window:
          $ cd /practices/practice03
          $ /practices/scripts/ldapadd.sh $PWD/soa_adminuser.ldif
          Password: ldap-password
     Tip: The $PWD environment variable expands to the path of the current working directory.
     The ldapadd.sh script executes the ldapmodify command-line tool with the appropriate
     parameters. The following command is executed to load the LDIF file to create the user:
          $ /u02/oracle/product/fmw/asinst_1/OUD/bin/ldapmodify –a
            -h ldap.example.com -p 1389-D "cn=Directory Manager"
            -w password -f soa_adminuser.ldif
     Note: The preceding command should be entered on one line with the password for the
     Directory Manager user. The content of the soa_adminuser.ldif file is shown as
     follows:
          dn: cn=weblogic_soa, cn=Users, dc=example, dc=com
          orclsamaccountname: weblogic_soa
          givenname: weblogic_soa
     Tip: The following command is executed to load the group LDIF file:
          $ /u02/oracle/product/fmw/asinst_1/OUD/bin/ldapmodify –a
            -h ldap.example.com -p 1389-D "cn=Directory Manager"
            -w password -f soa_group.ldif
     Note: The preceding command should be entered on one line. The content of the
     soa_adminuser.ldif file is shown as follows:
          dn: cn=SOA Administrators, cn=Groups, dc=example, dc=com
          displayname: SOA Administrators
          objectclass: top
          objectclass: groupOfUniqueNames
          objectclass: orclGroup
          uniquemember: cn=weblogic_soa,cn=users,dc=example,dc=com
          cn: SOA Administrators
          description: Administrators Group for the SOA Domain
11. To verify that the SOA Administrator user and group are successfully added to the LDAP
    server and are visible to the Oracle WebLogic Server instance, perform the following steps:
    a. Return to the web browser page with the Oracle WebLogic Server Administration
        Console application open, or enter the URL
        http://admivh.example.com:7001/console.
        Note: If required, log in to the Oracle WebLogic Server Administration Console
        application as the WebLogic Server administrator.
    b. To navigate to the Users and Groups page, perform the following steps:
     Tip: On the host01 desktop, there is an application called JXplorer. You can use this
     graphic user interface to connect to Oracle Unified Directory and verify the LDAP user and
     groups that are created in the LDAP server. There is a saved connection called OUD that
     can be used to load the correct connection setting. Then you can enter the password to
     connect and explore the LDAP tree.
     c.   On the Application Roles page, in the Search section, select wsm-pm from the
          Application Stripe drop-down menu and click the Search      icon.
        Note: Clicking OK closes the Add Principal dialog box and adds the selected entry to
        the Role member list.
    g. On the “Edit Application Role: policy.Updater” page, verify that the SOA Administrators
        group appears in the Members table with the Administrators group, and click OK.
        Note: After clicking OK on the “Edit Application Role: policy.Updater” page, you are
        returned to the Applications Role page with the Information message indicating that the
        policy.Updater role has been updated.
13. Sign out of Oracle Enterprise Manager Fusion Middleware Control and sign out of the
    Oracle WebLogic Server Administration Console.
    d. Close the Validate Policy Manager web browser window or tab page.
15. To check that the new SOA Administrator (the weblogic_soa user) cannot sign in to use
    the Oracle WebLogic Server Administration Console (and the Oracle Enterprise Manager
    Fusion Middleware Control administration applications), perform the following steps:
    a. Open a new web browser application window and enter the URL
        http://adminvh.example.com:7001/console. Sign in with the username
        weblogic_soa and the user password that was created when the LDIF file was
        loaded into the LDAP server.
          Note: If the web browser prompts for remembering the password for the new
          username, make a selection as is appropriate for you.
          The weblogic_soa user should not be able to access the Oracle WebLogic Server
          Administration Console application; a Forbidden response web page is returned after
          attempting to sign in.
     b.   To check that the weblogic_soa user cannot sign in to Oracle Enterprise Manager
          Fusion Middleware Control, enter the URL
          http://adminvh.example.com:7001/em, and sign in with the weblogic_soa
          user credentials.
          Note: If the web browser prompts for remembering the password for the new
          username, make a selection as is appropriate for you.
     d.   On the “Summary for myrealm” page, expand the Global Roles entry, and click the
          Roles link.
     h.   On the Edit Global Role page, enter SOA Administrators in the Group Argument
          Name field, and click Add.
     j.   On the Edit Global Role page, verify that Role Conditions includes the “Group: SOA
          Administrators” entry with the OR operator combining it with the “Group: Administrators”
          entry. Click Save to finish associating the SOA Administrators Group with the Admin
          role.
     Note: If you can log in to the Oracle WebLogic Server Administration Console and Fusion
     Middleware Control with the credentials of the new administration user that you just
     provisioned in the new Authentication Provider, you have configured the provider
     successfully.
     Tip: Although the weblogic_soa administrator user credentials can be used in the Oracle
     WebLogic boot.properties file to AdminServer start up capabilities to the user, this
     change would build a dependency on the LDAP server to be available all the time. If you
     retain the default WebLogic Server administrator credentials in the boot.properties file,
     the AdminServer can be started without the LDAP server being available.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                                Chapter 4 - Page 1
Practices for Lesson 4
Practices Overview
In the practices for this lesson, you install the Oracle SOA Suite software binaries, and extend
the Fusion Middleware Infrastructure WebLogic Server domain with the Oracle SOA Suite
components based on a variation of the recommendations in the Oracle Enterprise Deployment
Guide.
Notes About Command-Line Instructions
    • Shell commands: Some bash shell commands are long and therefore formatted across
        more than one line for readability. However, when you enter the commands, they should
        be entered on one line. If you enter any shell command over more than one line, you
        must use the backslash (\) character as a command-line continuation indicator. The
        long shell commands in this guide, however, do not show the command-line continuation
        character.
    • WebLogic Scripting Tool (WLST) commands: The WLST commands do not require a
        command-line continuation character, and therefore, can be entered on one line or over
        multiple lines as written in the guide.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                                Chapter 4 - Page 2
Practice 4-1: Installing Oracle SOA Suite 12c
Overview
In this practice, you install Oracle SOA Suite 12c on host01 and capture the response file for
using with a script to perform a silent installation of the same software on host02.
Assumptions
     •    The Oracle Database 11g instance is running and available on host02.
     •    You have verified and set the path of the Oracle Java Development Kit on host01 and
          host02 as described in the practices for the lesson titled “Planning an Oracle SOA
          Suite 12c Deployment Architecture.”
     •    You have successfully installed the Oracle Fusion Middleware Infrastructure software
          on the host01 and host02 VM instances, as described in “Practice 3-1: Installing the
          Oracle Fusion Middleware Infrastructure,” and created the initial WebLogic clustered
          domain as described in “Practice 3-2: Creating a Clustered SOA Domain for the
          Infrastructure.”
     •    You have access to the /install folder, which contains the Oracle SOA Suite 12c
          installers, on the host01 and host02 VM instances.
Tasks
Your task in this practice is to install the SOA binaries on host01 and host02.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                                Chapter 4 - Page 3
     d.   On the Prerequisite Checks page, wait for the installer to pass the checks performed
          and click Next.
     e.   On the Installation Summary page, click Save Response File.
     f.   In the Save dialog box, navigate to the /practices/practice04 folder, enter
          install_soa.rsp in File Name, and click Save.
     g.   After saving the response file, while still on the Installation Summary page, click Install.
          Note: The Installation Progress page is displayed where you can monitor and wait for
          the installation process to complete.
     h. On the Installation Progress page, after verifying that the installation was successful,
          click Next, or click Finish.
     i. If you did not click Finish on the Installation Progress page, click Finish.
3.   In the Terminal window, verify that the soa folder exists in the $MW_HOME folder by entering
     the following command:
          $ ls $MW_HOME/soa
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                                Chapter 4 - Page 4
     Note: The following image shows the list of folders that you can expect to see in the soa
     folder:
     Hint: The folders that are contained in the soa directory are aiafp, bam, bin, bpm,
     common, integration, jlib, plugins, and soa.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                                Chapter 4 - Page 5
Practice 4-2: Extending the SOA Domain with Oracle SOA Suite 12c
Overview
In this practice, you run the Oracle WebLogic configuration to extend the existing domain with
the Oracle SOA Suite components. However, you must first create the database schema that is
needed for Oracle SOA Suite. Creating the schema is done by using the Repository Creation
Utility (RCU) that is located in the oracle_common/bin folder of the Fusion Middleware home
tree.
Assumptions
     •    You have installed the Oracle SOA Suite 12c binaries on the host01 and host02 VM
          instances.
     •    You have verified that the soavh01.example.com and soavh02.example.com virtual
          host names and their Virtual IP addresses are available.
          Note: You can verify that these host names are accessible by using the ping
          command with the virtual host name and confirm that the ping was successful with
          commands similar to the following:
          $ ping –c 1 soavh01.example.com
          $ ping –c 1 soavh02.example.com
     •    The system clocks on each VM host computer are synchronized because this is
          recommended for clustered SOA instances.
Tasks
Your tasks in the section include:
    • Creating the SOA schemas with the Repository Configuration Utility (RCU)
    • Extending the existing edg_domain with the SOA components
    • Propagating the domain configuration changes to the Managed Servers in the cluster
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                                Chapter 4 - Page 6
          Service Name              orcl
          Username                  sys
          Password                  Enter the password for the database administrator. If
                                    you are unsure of the value, ask your instructor.
          Role                      SYSDBA should be selected.
          Note: The Database Type field should already be set to Oracle Database.
     d.   After entering the database connection values, when the “Repository Creation Utility –
          Checking Prerequisites” dialog box is displayed, indicating that the checks are
          completed, click OK.
     e.   On the Select Components page, take the following actions:
          1) Choose the “Select existing prefix” option, which is assigned the prefix value EDG,
              because it is the only existing prefix that you specified when you created the
              infrastructure domain.
          2) In the Component column, select the SOA Suite check box, and then click Next.
              Note: When you select the SOA Suite check box, the SOA Infrastructure sub-
              element is selected, and shows the value EDG_SOAINFRA in the Schema Owner
              column in the same row.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                                Chapter 4 - Page 7
               The WebLogic Services and Common Infrastructure Services were created when
               preparing the schemas for the Fusion Middleware Infrastructure installation.
     f.   When another “Repository Creation Utility – Checking Prerequisites” dialog box is
          displayed, showing that the schema check is completed, click OK.
     g.   On the Schema Passwords page, accept the “Use same passwords for all schemas”
          selection (or select it), enter the same password value in the Password and Confirm
          Password fields, and click Next.
          Tip: For simplicity, enter the same schema password that you used when creating the
          schemas for the Fusion Middleware Infrastructure.
     h.   On the Custom Variables page, accept or enter the listed values for the following SOA
          Infrastructure custom variables, and click Next when you have finished.
          Custom Variable                     Value
          Database Profile                    MED
          Healthcare Integration              NO
          Note: Use the following image as a guide:
     i.  On the Map Tablespaces page, review the information presented for the SOA schema
         and tablespace, and click Next.
     j. In the “Repository Creation Utility – Confirmation” dialog box, click OK.
     k. In the “Repository Creation Utility – Creating Tablespaces” dialog box, wait for the
         tablespace creation to complete, and click OK.
     l. On the Summary page, click Create.
         Note: After clicking Create, the “Repository Creation Utility – System Load” dialog box
         is displayed. Wait for the repository system load task to complete, and it automatically
         closes when the task is complete.
     m. On the Completion Summary page, optionally review the log files, and click Close.
         Note: In the event of an error, use the log files that are accessible through the
         Completion Summary page to determine the cause and take action to correct the
         issues before continuing with the practice.
3.   Optionally, verify the existence of the SOAINFRA schema in the Oracle Database by
     performing the following steps on host02:
     a. In a Terminal window session on host02, start SQL*Plus by entering the following
         command:
         $ sqlplus
     b.   After SQL*Plus starts, enter the following values for the username and the password
          prompts:
          Enter user-name: EDG_SOAINFRA
          Enter password: soainfra_password
          Note: The soainfra_password should be the same password that you entered for the
          schema that was created in with previous RCU task.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                                Chapter 4 - Page 8
          Tip: If you are able to successfully log in with SQL*Plus, the SQL> prompt is displayed,
          and you can enter the exit command to terminate SQL*Plus, as follows:
          SQL> exit
          Note: The following image provides an example of how to verify that the
          EDG_SOAINFRA schema has been created:
4.   To finish preparation of the database configuration for the Oracle SOA Suite components,
     perform the following steps to configure the SOA schemas for transactional recovery:
     a. In the Terminal window on host02, using SQL*Plus, sign in as the sys user with
          sysdba privileges:
          $ sqlplus "/ as sysdba"
     b.   At the SQL> prompt, enter the following commands to configure transactional recovery
          and exit SQL*Plus:
          SQL> GRANT SELECT ON sys.dba_pending_transactions
                 TO EDG_SOAINFRA;
          SQL> GRANT FORCE ANY TRANSACTION TO EDG_SOAINFRA;
          SQL> exit
          Note: To save typing, execute the /practices/scripts/granttxr2soa.sh
          command-line script. The “Grant succeeded.” message should appear after each
          GRANT statement. These SQL statements are not case-sensitive and statements can
          be entered on one or more lines. Use the following image as a guide to the session:
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                                Chapter 4 - Page 9
Extending the Domain with SOA Components
With the SOA schema created, you now extend the existing edg_domain to include the SOA
components. However, to prevent any configuration locks, saves, or activations from occurring
while extending the configuration of the domain, you shut down the AdminServer and cluster
instances.
5. To shut down the AdminServer and the cluster of Managed Server instances, in a Terminal
     window, enter the following command and provide suitable values for the prompts that are
     displayed:
          $ /practices/scripts/domain.sh shutdown
          Username [weblogic]:
          Password: password
     Note: Wait for the domain shutdown to complete.
6. To start the Oracle WebLogic domain configuration wizard to extend the domain, enter the
     following commands in a Terminal window:
          $ cd $MW_HOME/oracle_common/common/bin
          $ ./config.sh
7. When the Fusion Middleware Configuration Wizard starts, perform the following steps to
     enter values on each page to extend the domain:
     a. On the Create Domain page, select the “Update an existing domain” option, and enter
          the path /u02/oracle/config/domains/edg_domain in Domain Location field,
          and click Next.
          Note: Domain Location must be the full path name to the shared folder that was
          created for the Administration Server domain home that is used when creating the
          Infrastructure domain.
     b.   On the Templates page, ensure that the Update Domain Using Product Templates
          option is selected. Then in the Available Templates section, select the “Oracle SOA
          Suite - 12.1.3.0 [soa]” check box, and click Next.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 10
          Note: Notice that the following additional templates are already selected:
          − Oracle Enterprise Manager - 12.1.3.0 [em]
          − Oracle WSM Policy Manager - 12.1.3.0 [oracle_common]
          − Oracle JRF - 12.1.3.0 [oracle_common]
          − WebLogic Coherence Cluster Extension - 12 1.3.0 [wlserver]
          Tip: Depending on your configuration, other templates may also be selected.
     c.   On the Database Configuration Type page, the RCU Data option should already be
          selected (if not, select RCU Data). All related fields should also be pre-populated,
          because you already configured the domain to reference the Fusion Middleware
          schemas for the Infrastructure domain. Click Get RCU Configuration after you verify
          that the following fields, database connection, and credential information are correct:
          Field Name                     Value
          Vendor                         Oracle
          Driver                         *Oracle’s Driver (Thin) for Service connections; …
          DBMS/Service                   ORCL
          Host Name                      host02.example.com
          Port                           1521
          Schema Owner                   EDG_STB
          Schema Password                The password that you entered when you created the
                                         schemas by using the RCU tool
          Hint: Use the following image as a guide:
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 11
          Note: Confirm that the output seen in the Connection Result Log indicates that the
          operating succeeded.
     d.   In the Component Datasources step (or on the JDBC Component Schema page), click
          Next.
     e.   In the JDBC Test step (or on the JDBC Component Schema Test page), select all the
          SOA schemas in the table and ensure that the DBMS/Service, Host Name, Port, and
          Schema Password have the same values that you used when you created the
          schemas with the RCU tools. Click Next.
          Caution: You may find that the User Messaging Service row does not contain correct
          values. If the password field is empty for the User Messaging Service row, select the
          check box for the row to enter the password that was specified when running the RCU
          tool before you click Next.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 12
          Tip: If any Component Schema has incorrect configuration data, such as a prefix other
          than EDG_ in the Schema Owner column, select the check box for that Component
          Schema and make corrections manually before clicking Next.
     f.   In the JDBC Test step (or on the JDBC Component Schema Test page), to test the
          data source connections that are configured, select the check box at the top of the
          table to select all component schemas, and then click Test Selected Connections.
          Verify that all connections are successfully established (tested) before you click Next.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 13
     g.   On the Advanced Configuration page, to complete domain configuration for the
          topology, select the following options, and click Next.
          − Managed Server, Clusters and Coherence
          − JMS File Store
     h.   On the Managed Servers page, confirm that the soa_server1 and soa_server2
          Managed Server entries, which were created when you configured the Fusion
          Middleware Infrastructure domain, appear in the list of servers.
          Action: For each Managed Server, click the Server Groups column drop-down list and
          ensure that the SOA-MGD-SVRS group is selected, in addition to others that are already
          selected. After setting the Server Groups for both Managed Servers (as shown in the
          following image), click Next.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 14
     i.   On the Clusters page, ensure that the soa_cluster1 row is already present, enter the
          following values in the specified columns, and click Next:
          Column Name                                  Value
          Frontend Host                                soa.example.com
          Frontend HTTP Port                           8080
          Frontend HTTPS                               4443
          Note: These values ensure that when necessary, WebLogic Server will redirect Web
          services callbacks and other redirects to soa.example.com on the load balancer
          rather than the address in the HOST header of each request. However, the load
          balancer instance has not been installed and configured at this stage of the installation
          process. Normally, the load balancer has already been configured.
     j.   On the Assign Servers to Clusters page, verify that the two Managed Servers
          (soa_server1 and soa_server2) are assigned to soa_cluster1, and click Next.
     k.   On the Coherence Clusters page, accept the default settings, which were defined
          during the initial Infrastructure domain creation, and click Next.
     l.   On the Machines page, click the Unix Machine tab to verify that the machines created
          during the initial Infrastructure domain creation are still correct, and click Next.
          Note: Use the following image as a guide for verification purposes:
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 15
     m. On the Assign Servers to Machines page, verify that AdminServer is assigned to
        adm_machine, soa_server1 is assigned soa_machine1, and soa_server2 is assigned
        soa_machine2, and click Next.
     n.   On the JMS File Stores page, update entries as specified in the following table to
          assign a Directory column value for each of the SOA Persistence stores, including the
          UMS and BPM file stores. Click Next when you have finished.
          Name                              Directory Column Path Value
          mds-owsm                          /u02/oracle/config/domains/edg_domain/s
                                            oa_cluster1/jms/mds-owsm
          mds-soa                           /u02/oracle/config/domains/edg_domain/s
                                            oa_cluster1/jms/mds-soa
          UMSJMSFileStore_a                 /u02/oracle/config/domains/edg_domain/s
          uto_1                             oa_cluster1/jms/UMSJMSFileStore_auto_1
          UMSJMSFileStore_a                 /u02/oracle/config/domains/edg_domain/s
          uto_2                             oa_cluster1/jms/UMSJMSFileStore_auto_2
          BPMJMSFileStore_a                 /u02/oracle/config/domains/edg_domain/s
          uto_1                             oa_cluster1/jms/BPMJMSFileStore_auto_1
          BPMJMSFileStore_a                 /u02/oracle/config/domains/edg_domain/s
          uto_2                             oa_cluster1/jms/BPMJMSFileStore_auto_2
          SOAJMSFileStore_a                 /u02/oracle/config/domains/edg_domain/s
          uto_1                             oa_cluster1/jms/SOAJMSFileStore_auto_1
          SOAJMSFileStore_a                 /u02/oracle/config/domains/edg_domain/s
          uto_2                             oa_cluster1/jms/SOAJMSFileStore_auto_2
          Note: Update the mds-owsm and mds-soa entries as shown in the preceding table.
          Copy the /u02/oracle/config/domains/edg_domain/soa_cluster1/jms/
          path (including the trailing slash character) for the first entry that is updated and paste
          the copied path as a prefix to all remaining entries in the Directory column, to save
          typing time. Use the following image as a guide:
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 16
     o.  On the Configuration Summary page, review the details, verify that the domain creation
         information is correct, and click Update.
         Note: After you click Update, the Configuration Progress page is displayed. Wait until
         the configuration progress is completed.
     p. On the Configuration Progress page, when the progress bar reaches 100% indicating
         completion, click Next.
     q. On the Configuration Success page, click Finish.
         Note: Clicking Finish closes the configuration wizard.
8.   To start the Administration Server and verify that you can access the Oracle WebLogic
     Administration Console web page, perform the following steps:
     a. To start the AdminServer, in a Terminal session on host01 or host02, enter the
         following command:
         $ /practices/scripts/adminserver.sh start
     b.   To verify that you can access the Oracle WebLogic Administration Console web page,
          enter the URL http://adminvh.example.com:7001/console in a web browser
          window or on a tab page, and optionally sign in as the WebLogic administrator.
Configuring the Default Persistence Store for Transaction Recovery
Each Managed Server uses a transaction log that stores information about the committed
transactions that are coordinated by the server and those that may not have been completed.
Oracle WebLogic Server uses this transaction log for recovery from system crashes or network
failures. To leverage the migration capability of the Transaction Recovery Service for the
Managed Servers within a cluster, store the transaction log in a location that is accessible to the
Managed Server and its backup servers.
9. To access the Managed Server entries, perform the following steps:
     a. If required, sign in to the Oracle WebLogic Server Administration Console as the
          WebLogic administrator user.
     b. On the Oracle WebLogic Server Administration Console home page, in the Domain
          Structure pane, expand the Environment and click Servers.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 17
10. To set the location for the default persistence stores for the transaction logs for soa_server1,
    perform the following steps:
     a.   On the Summary of Servers > Configuration tab page, click the soa_server1 link in the
          Name column of the Servers table.
b. On the Settings for soa_server1 > Configuration tab page, click the Services subtab.
     c.   On the Settings for soa_server1 > Configuration > Services tab page, under the Default
          Store section heading, enter the path
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 18
          /u02/oracle/config/domains/edg_domain/soa_cluster1/tlogs in the
          Directory field, and click Save.
         Note: The path that is entered specifies the folder where the default persistent stores
         keep the transaction log data files. For the enterprise deployment, it is recommended
         to create a new subdirectory tree in the Administration Server domain home, such as
         soa_cluster1/tlogs, as the central shared location for the transaction logs.
11. To set the location for the default persistence stores for the transaction logs for soa_server2,
    perform same steps as you did for soa_server1 (as documented without images here):
    a. Return to the Summary of Server page, either by clicking the Summary of Servers
         breadcrumb link on the current page or clicking the Servers entry under the
         Environment node in the Domain Structure pane.
    b. On the Summary of Servers > Configuration tab page, click the soa_server2 Name link.
    c. On the Settings for soa_server2 > Configuration tab page, click the Services subtab.
    d. On the Settings for soa_server2 > Configuration > Services tab page, under the Default
         Store section heading, in the Directory field, enter the path
         /u02/oracle/config/domains/edg_domain/soa_cluster1/tlogs, and click
         Save.
    Note: At this stage, the two Managed Servers should still be shutdown. If not, take action to
    shut down the servers. You can verify that the Managed Servers are shutdown by viewing
    their State column value on the Summary of Servers page (refer to the image in the
    previous step part a. for an example).
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 19
          Note: The name of the template file is changed to reflect that the packaged
          configuration files represent the extended SOA domain configuration. Alternatively, you
          can enter the following commands to perform the task manually:
          $ cd $MW_HOME/oracle_common/common/bin
          $ ./pack.sh -managed=true
              –domain=$ASERVER
              -template=/practices/practice04/edgsoa_template.jar
              -template_name=edgsoa
          Note: The following image represents similar results produced by the pack.sh script:
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 20
Unpacking the Extended Domain Configuration on Host02
In the following section, you unpack the edgsoa_template.jar file on host02.
14. Access host02 by using the existing or new VNC session.
15. To unpack the extended domain configuration files for soa_server2, enter the following
     commands in a Terminal window on host02:
          $ cd /practices/practice04
          $ /practices/scripts/cpdomain.sh unpack edgsoa_template.jar
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 21
Practice 4-3: Starting and Verifying the SOA Domain
Overview
In this practice, you start your updated WebLogic domain, which contains the Oracle SOA Suite
12c components installed. You also grant SOA-specific application roles to the weblogic_soa
user.
Assumptions
     •    The WebLogic AdminServer has already been started.
     •    The SOA extension to the edg_domain has been unpacked on host01 and host02.
Tasks
          Note: Verify that the AdminServer is running and that the soa_server1 and
          soa_server2 Managed Servers are not running.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 22
     c.   On the Oracle Enterprise Manager Fusion Middleware Control home page, in the
          Target Navigation pane (if required), expand the edg_domain node, right-click
          soa_cluster1, and select Control > Start Up.
          Note: It takes between five to ten minutes to start the two Managed Servers.
     d.   After clicking Start Up, the Processing pop-up window similar to the following image is
          displayed, showing the progress of the startup operation:
          Note: Wait for the startup operation to complete (when the Processing page title
          changes to Confirmation). After successfully starting the Managed Servers, click Close.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 23
     e.   In the Target Navigation pane, click the edg_domain entry to display the edg_domain
          home page and verify that the soa_server1 and soa_server2 Managed Servers are up
          and running.
          Note: The Target Navigation pane now contains a SOA folder indicating that the
          Oracle SOA Suite 12c components are available. Alternatively, you can return to the
          WebLogic Administration Console web page and revisit (or refresh) the Servers page
          to verify that all the server instances are in a RUNNING state, as shown in the
          following image:
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 24
Granting the SOAAdmin Application Role to the SOA Administrators Group
Because the weblogic_soa user has the WebLogic Admin global role, the tasks in this section
are optional. However, it can be useful to grant access to the SOA Administrators group for
specific SOA administration tasks. Therefore, in this section, you grant the SOAAdmin
application roles (from the soa-infra application stripe) to the SOA Administrators group.
2. To add the SOAAdmin application role to the SOA Administrators group, perform the
    following steps:
    a. On the Oracle Enterprise Manager Fusion Middleware Control home page, ensure that
         the edg_domain entry (under the WebLogic Domain tree of the Target Navigation
         panel) is selected. This ensures that the edg_domain WebLogic Domain home page is
         displayed.
         Note: If necessary, sign in to Oracle Enterprise Manager Fusion Middleware Control
         with the credentials of either the weblogic or weblogic_soa user.
    b. On the edg_domain WebLogic Domain home page, click the WebLogic Domain menu,
         and select Security > Application Roles.
     c.   On the Application Roles page, in the Search section, select soa-infra from the
          Application Stripe drop-down menu. In the Role Name field, with the Starts With filter
          selected, enter the text SOAA and click the Search    icon.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 25
          Note: After entering the specified search filters and clicking the Search icon, the result
          table is populated with matching role entries.
     d.   On the Application Roles page, in the Search section, from the results table, select the
          SOAAdmin Role Name row and click Edit.
     e.   On the “Edit Application Role: SOAAdmin” page, in the Members table section,
          observe that the Administrators group is already a member and click Add.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 26
     f.   In the Add Principal dialog box, select Group from the Type drop-down menu, enter
          SOA in the Principal Name field with the Starts With filter, and click the Search (right
          arrow) icon . In the Searched Principals result table, select SOA Administrators and
          click OK.
          Note: Clicking OK closes the Add Principal dialog box and adds the selected entry to
          the Role member list.
     g.   On the “Edit Application Role: SOAAdmin” page, verify that the SOA Administrators
          group appears in the Members table, and click OK.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 27
          Note: After clicking OK on the “Edit Application Role: SOAAdmin” page, you are
          returned to the Applications Role page with the Information message indicating that the
          SOAAdmin role has been updated as shown in the following image:
     h.   Do not close the Application Roles page, because you use it in the next task to add the
          SOA Administrators group to a role in the wsm-pm application stripe in a similar way to
          adding the group to the SOAAdmin role.
Verifying That the SOA Managed Servers Are Running and Are Accessible
3. To verify that the soa_server1 Managed Server is running and is accessible, perform the
    following steps:
    a. Open a new web browser window or tab page, and enter the URL
         http://soavh01.example.com:8001/soa-infra.
         Caution: The web browser gets a redirect request with the URL replaced with
         http://soa.example.com:8080/soa-infra, which fails to access the page, and the
         following web response page appears:
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 28
          Note: Because the front-end host and ports were configured when extending the
          domain with the SOA components, this behavior is expected until the load balancer is
          configured.
          Tip: To work around this anomaly, in the browser URL, replace the host name soa
          with soavh01, replace the port 8080 with 8001 to form the original URL
          http://soavh01.example.com:8001/soa-infra/, and press Enter. You may have to
          change the URL a few times to get the desired result.
     b.   When the Authentication Required dialog box is displayed, enter the User Name
          weblogic and the password that you selected when creating the domain, and click
          OK.
          Note: If the web browser prompts for remembering the password for the weblogic
          user, take any action that you prefer for your environment.
     c.   Verify that the Welcome to the Oracle SOA Platform on WebLogic page is displayed as
          shown in the following image:
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 29
4.   To verify that the soa_server2 Managed Server is running and is accessible, perform the
     following steps:
     a. Open a new web browser window or tab page and enter the URL
          http://soavh02.example.com:8001/soa-infra.
          Caution: The web browser gets a redirect request with the URL replaced with
          http://soa.example.com:8080/soa-infra, which fails to access the page, and the
          following web response page appears:
          Note: Because the front-end host and ports were configured when extending the
          domain with the SOA components, this behavior is expected until the load balancer is
          configured.
     b.   To work around this anomaly, in the browser URL, replace the host name soa with
          soavh02, replace the port 8080 with 8001 to form the original URL
          http://soavh02.example.com:8001/soa-infra/, and press Enter.
     c.   When the Authentication Required dialog box is displayed, enter the User Name
          webLogic and the password that you selected when creating the domain, and click
          OK.
          Note: If the web browser prompts for remembering the password for the weblogic
          user, take any action that you prefer for your environment.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 30
     d.   Verify that the “Welcome to the Oracle SOA Platform on WebLogic” page is displayed
          as shown in the following image:
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 31
          Username [weblogic]:
          Password: password
8.   To compress the space consumed by the collection of backup archive (tar) files, enter the
     following command in a terminal window (either on host01 or host02):
          $ cd /u02/backup
          $ zip soa.zip *.tar
          $ rm *.tar
     Note: The rm command deletes the backup archive files to reclaim the disk space that is
     needed for remaining course practices. The zip command packages all related backup
     archive files into a single compressed file. If a restore operation is required, make sure that
     you extract the backup archive files from the zip file first after ensuring that you have
     enough disk space to do so.
In summary, you have unpacked the SOA configuration files for the two Managed Server
instances (soa_server1 and soa_server2) in the cluster. You started the Node Manager
instances for each server, and started the two Managed Servers configured with Oracle SOA
Suite components. You have verified that the transaction log files are successfully created in the
designated shared storage folder, and have taken a backup of the SOA domain configuration
and database schemas.
Practices for Lesson 4: Extending the Domain with Oracle SOA Suite 12c
                                               Chapter 4 - Page 32
                                                               Practices for Lesson 5:
                                                               Configuring a Load Balancer
                                                               for Enterprise Deployment
                                                               Chapter 5
Practices Overview
In the practices for this lesson, you create a stand-alone Managed Server in the domain that is
to be used as a load balancer in a cut-down variation of the web tier implementation for your
Enterprise Deployment.
Notes About Command-Line Instructions
    •   Shell commands: Some bash shell commands are long and therefore formatted across
        more than one line for readability. However, when you enter the commands, they should
        be entered on one line. If you enter any shell command over more than one line, you
        must use the backslash (\) character as a command-line continuation indicator. The
        long shell commands in this guide, however, do not show the command-line continuation
        character.
    •   WebLogic Scripting Tool (WLST) commands: The WLST commands do not require a
        command-line continuation character and therefore, can be entered on one line or over
        multiple lines as written in the guide.
Overview
An important component of any clustered WebLogic configuration is having the capability to
receive client requests at a front-end system that acts as a traffic director or load balancer to
support high availability and failover of services behind the load balancer.
Note: Because the choice of load balancer implementation varies for everyone, the load
balancer implementation is configured by using a stand-alone WebLogic Server instance with
the HttpClusterServlet that can be deployed to load balance requests to a collection of clustered
SOA instances.
In this practice, you run a command-line shell script that invokes the WebLogic Scripting Tool
(WLST) with a WLST script to fully automate the creation and configuration of the entire load
balancer implementation that is used in this course. You are provided with optional steps to
examine the configuration of the load balancer to understand how requests are received and
forwarded on to their destinations.
Scripts are provided to save time because load balancer configuration details are beyond the
scope of this course. The WebLogic Server instance configuration for load balancing depends
on sound experience with and knowledge of Oracle WebLogic Server administration tasks. It
includes:
     •   Creating a stand-alone Managed Server, which can run independently of the existing
         cluster
     • Configuring the main HTTP listener to accept requests for the SOA cluster instances
         by using the front-end listen address soa.example.com that listens on port 8080 and
         port 4443 (for HTTP/SSL) instead of the default port (80 for HTTP and 443 for HTTPS)
         that is typically required for real-world implementations
     • Creating a WebLogic Server network channel to accept HTTP requests with the listen
         address, admin.example.com, on port 8080 (typically port 80), and to separate
         requests for the Administration Server from requests that are directed to the SOA
         clustered instances
     • Creating a WebLogic Server network channel to accept HTTP requests with the listen
         address, soainternal.example.com, on port 8080 (typically port 80) for internal requests
         that are directed to the SOA clustered instances, such as for command-line application
         deployment tasks
     Note: Load balancing and request redirection are handled by the following three
     HTTPClusterServlet application deployments:
         − The soa.example.com listen address directs requests to any of the SOA instances
            in the SOA cluster.
         − The admin.example.com listen address directs requests to the AdminServer
            instance only.
         − The soainternal.example.com listen address directs requests to any of the SOA
            instances in the SOA cluster.
Assumptions
     •    The WebLogic Server AdminServer instance is running and by implication the
          database server and other dependent services, possibly including Oracle Unified
          Directory.
     •    The load balancer scripts and the related HTTPClusterServlet WAR files exist in the
          /practices/lbr folder that is already configured for deployment.
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     Note: Each time you change the URL, the “Unable to connect” response page displays the
     URL host name and port that you entered in an attempt to access the server.
     Tip: If the ping command fails, you may see messages containing any of the following
     text:
           − Unknown host
         − Request timed out
         − Destination host unreachable
     Note: If you see any problem reported by a ping command, discuss the resolution with
     your instructor.
In summary, you should have verified that each host name is accessible at the network layer by
using the ping command, but their corresponding URL web applications are inaccessible from
a web browser. The reason for the lack of web access is that the load balancer has not been
created and configured to proxy the web requests to the appropriate servers in edg_domain.
          Note: When the script has completed, the following warning message with the text can
          be ignored and does not indicate that an error occurred while creating and configuring
          the load balancer:
          <Warning> <JNDI> <BEA-050001> <WLContext.close() was called in a
          different thread than the one in which it was created.>
5.   To verify that the load balancer is created and configured successfully, perform the
     following actions in the Oracle WebLogic Administration Console:
     Note: If required, sign in to the Oracle WebLogic Administration Console as the
     administrator again.
     a. In the Domain Structure panel, expand Environment, click Servers, and on the
          “Summary of Servers” page, verify that the lbr_server server entry appears in the
          Servers table.
     d.   Wait while the Processing dialog box displays the progress of the server till it
          eventually changes to show a Confirmation title. Verify that the server started
          successfully, and click Close.
     c.   On the “Summary of Clusters” page, click the soa_cluster1 link in the Name column.
          The Configuration > General tabbed page is displayed.
8.   A change to the WebLogic Plug-In Enabled setting normally requires the Managed Servers
     to be restarted. To restart the clustered servers, perform the following steps:
     a. From the previous tasks in the practice, the clustered Managed Servers should already
          be shutdown. If not, on the Enterprise Manager Fusion Middleware Control web page,
          right-click soa_cluster1 and select Control > Shut Down, and respond to additional
          dialog boxes as appropriate.
          Note: Skip this step if the Managed Servers are already shutdown.
          Note: You should need to do this only once during the course. After clicking “I
          Understand the Risks,” the page expands with an explanation and the Add Exception
          button. Click Add Exception.
b. In the Add Security Exception dialog box, click Confirm Security Exception.
          Hint: If the web browser asks for remembering the password, select either the default
          option to Remember Password or “Never Remember Password for This Site” as you
          prefer. Then the Validate Policy Manager page is displayed.
13. By starting a new browser session (by closing all browser windows or starting a new
    browser on a different host), validate that you can access the following additional SOA
    application URLs:
    • https://soa.example.com:4443/soa-infra
     • https://soa.example.com:4443/soa/composer
     • https://soa.example.com:4443/integration/worklistapp
     • https://soa.example.com:4443/sdpmessaging/userprefs-ui
     Tip: The last two URLs are easily accessible from the links provided on the page that is
     returned when you access the /soa-infra URI path. The last URL must be manually
     entered. Use the following steps as a guide:
     a. On a web browser page (try this on the other VM host to the one that you were testing
          other URLs on), enter the URL https://soa.example.com:4443/soa-infra.
          Note: If prompted for credentials, use the weblogic_soa user’s credentials. If you
          can access the page, the following “Welcome to the Oracle SOA Platform on
          WebLogic” page is displayed.
          Tip: Notice the Links section on the right-hand side of the page with the SOA
          Composer and BPM Worklist links.
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     c.   On the “Welcome to the Oracle SOA Platform on WebLogic” page, click the BPM
          Worklist link to access the URL https://soa.example.com:4443/integration/worklistapp.
          Note: A new browser tab page is opened, and after a short time, the following BPM
          Worklist page is displayed:
     e. While keeping the Validate Policy Manager web page open, close the other web
        browser windows or tab pages:
        1) The “Welcome to the Oracle SOA Platform on WebLogic” page
        2) The SOA Composer page
        3) The BPM Worklist page
        4) The User Communication Preferences page
        Note: Keep the web page for the Oracle WebLogic Server Administration Console and
        Enterprise Manager Fusion Middleware Control open.
14. To validate that the load balancer services a request for the Policy Manager if only one
    SOA server is running, perform the following steps:
     c.   On the Confirmation page, click Shutdown, wait for the confirmation that the server
          instance has been stopped, and click Close.
        Note: The Validate Policy Manager page should be successfully refreshed because
        the soa_server1 instance is still running.
15. To examine what happens on the Validate Policy Manager web browser page after shutting
    down the last Managed Server in the cluster, perform the following steps:
    a. In the Oracle Enterprise Manager Fusion Middleware Control Target Navigation pane,
        expand the edg_domain > soa_cluster1 entry (if required), right-click soa_server1, and
        select Control > Shut Down.
        Note: On the Confirmation page, click Shutdown and wait for the server to shutdown.
        Click Close when the Confirmation dialog box appears.
    b. On the Validate Policy Manager web browser page, click the Refresh icon and verify
        that the page displays the message “No backend servers available.”
Practices Overview
In these practices, you prepare the environment for high availability by configuring the following
adapters and resources to be used by applications that need to be deployed and run in a
clustered environment:
     • The File Adapter and connection factory configuration
     • The DBAdapter, data sources, and connection factory configuration
     • The JMS Adapter and JMS resources used by applications
Before updating the JCA adapters and creating the resources that are required for applications
that use the resources to function in the highly available architecture that you have created, you
test the manual failover of the Administration Server.
Overview
In this practice, on the host01 VM, you stop the IP address that is allocated to the virtual host
name for the AdminServer (adminvh.example.com) from receiving packets to emulate a network
failure condition. You perform steps to manually “fail over” the Administration Server to the
host02 VM. The failover should be transparent to the clients, because the Administration Server
uses the same WebLogic Server machine (which is a logical machine, not a physical machine)
to be restarted, and clients access the AdminServer through the load balancer virtual host
names.
Assumptions
     •     You have edg_domain running.
     •     The oracle user can execute the ifconfig and arping commands by using the
           sudo command on host01 and host02.
Tasks
1.   Verify that the adminvh.example.com virtual host name is accessible by executing the
     following command in a Terminal window (on any host VM):
          $ ping –c 1 adminvh.example.com
     Note: The ping command should be successful. You can verify success by comparing the
     output response for the ping command to the following results, showing 0% packet loss:
           PING adminvh.example.com (192.0.2.20) 56(84) bytes of data.
           64 bytes from adminvh.example.com (192.0.2.20): icmp_seq=1
           ttl=64 time=0.017 ms
Overview
In this practice, you use the Oracle WebLogic Administration Console to update the
FileAdapter’s eis/HAFileAdapter connection factory to support deployment of composite
applications that can service requests in the Enterprise Deployment environment that is
configured for high availability.
Assumptions
     •     You have completed the practices to install and configure edg_domain with the Oracle
           SOA Suite 12c components.
     •     The Oracle WebLogic Administration Server is running in edg_domain.
     •     The load balancer Managed Server is configured and operational.
     •     The Oracle Database is running and listening for connections.
Tasks
1.   In a Terminal window on either host01 or host02, execute the following command:
          mkdir –p /u02/oracle/config/dp
2.   If required, sign in to the Oracle WebLogic Server Administration Console as an
     administrator by performing the following steps:
     a. In a web browser, enter the URL http://admin.example.com:8080/console to
          access the Oracle WebLogic Server Administration Console page.
     b. On the Oracle WebLogic Server Administration Console page, sign in as the
          administrator user.
     g.    On the “Settings for FileAdapter” Configuration > Outbound Connection Pools subtab
           page, in the “Groups and Instances” column of the Outbound Connection Pool
           Configuration Table, click the eis/HAFileAdapter link.
     i.    On the Save Deployment Plan Assistant page, ensure that you replace the Path field
           value with the following shared folder path, (do not press Enter) and click OK:
           /u02/oracle/config/dp/FileAdapterPlan.xml
Overview
In this practice, you configure the runtime server resources that are required for the composite
applications that use a Database Adapter to store purchase order information in the ORDER and
ITEMS tables of the SOADEMO database schema. In this practice, your tasks are to:
     •     Verify that the SOADEMO database schema in the Oracle Database instance exists, and
           to display some of the data
     •     Configure a JDBC data source resource that is required by the composite applications
     •     Configure the DbAdapter component with a connection factory that uses the new JDBC
           data source as a resource, and create a new deployment plan
     •     Update the DbAdapter with the new deployment plan
Assumptions
     •     The SQL scripts needed to create the SOADEMO schema and the database tables, and
           populate the tables are in the /practices/sql folder.
Tasks
In this section, you perform the three tasks described in the overview of this practice.
b. On the edg_domain page, click WebLogic Domain > JDBC Data Sources.
           Note: Because the course architecture is not using a Real Application Clusters (RAC)
           database configuration, you create a Generic Data Source. Otherwise, for a RAC
           database, you create a GridLink Data Source.
     d.    On the “Creating New JDBC Data Source : Data Source Properties” page, enter the
           following field values, and click Next:
           Field Name                                    Value
           Data Source Name                              soademoDS
           JNDI Name                                     jdbc/soademo
     f.    In the Generate URL dialog box, enter the following field values and click OK:
           Field Name                                    Value
           Database Host Name                            host02.example.com
           Database Listener Port                        1521
           Database Name                                 orcl
           Database User Name                            soademo
     g.    On the “Creating New JDBC Data Source : Connection Properties” page, click Test
           Database Connection.
     h.    Verify that the message “Connection test succeeded.” appears in the Confirmation
           dialog box, and click OK.
     k.    On the “Creating New JDBC Data Source : Select Targets” page, in the Name column,
           select the soa_cluster1 check box for the target, and click Next.
     l.    On the “Creating New JDBC Data Source : Review” page, verify that the settings are
           correct, and click Create.
     d.    On the “Settings for DbAdapter” Configuration > Outbound Connection Pools subtab
           page, click New.
     g.    On the “Save Deployment Plan Assistant” Save Deployment Plan page, replace the
           Path value with /u02/oracle/config/dp/DBAdapterPlan.xml (do not press
           Enter here), and click OK.
           Tip: To quickly replace the directory in the path, you can click an appropriate Recently
           Used Paths entry below the Path field, navigate if necessary to the appropriate
           directory, and then enter the XML file name at the end of the selected directory in the
           Path field.
     c.    On the Update Application Assistant “Locate new deployment files” page, verify that
           the “Redeploy this application using the following deployment files:” option is selected
           and that the “Deployment plan path” is
           /u02/oracle/config/dp/DBAdapterPlan.xml. Click Finish.
Overview
In this practice, you configure the JMS Adapter resources that are required for two composite
applications to communicate messages by using the JMS technology.
Assumptions
     •     None
Tasks
1.   In a web browser window, if required, log in as the weblogic administrator user to Oracle
     WebLogic Server Administration Console by using the URL
     http://admin.example.com:8080/console.
     d.    On the “Create a New JMS System Module Resource” page, select the Queue
           (resource type) option, and click Next.
     e.    On the “Create a New JMS System Module Resource” page, in the JMS Destination
           Properties section, enter the following case-sensitive values, and click Next.
           Name                                          demoMsgQueue
           JNDI Name                                     jms/demoMsgQueue
           Note: By selecting a single SOAJMSServer entry, you are configuring the selected
           entry as the preferred JMS server. However, because JMS servers are in a clustered
           environment, if the preferred server is unavailable, other active servers can process
           messages.
     b.    On the “Create a New JMS System Module Resource” page, for the resource type,
           select the Connection Factory option, and click Next.
     c.    On the “Create a New JMS System Module Resource” > Connection Factory
           Properties page, enter the following values and click Next when you have finished:
           Field                        Value
           Name                         demoCF
           JNDI Name                    jms/demoCF
                                  Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     e.    On the “Create a New JMS System Module Resource” page, verify that the Messages
           section displays that the connection factory has been successfully created, for
           example:
     c.    On the “Settings for JmsAdapter” page, navigate to the Configuration > Outbound
           Connection Pools subtab page, and click New.
     e.    On the “Create a New Outbound Connection” page, for JNDI Name, enter
           eis/demo/Queue, and click Finish.
                                  Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     g.    On the “Settings for JmsAdapter” page, in the Messages section at the top of the page,
           verify that the changes have been activated.
     c.    On the “Create a New Security Credential Mapping” page, select the check box next to
           the eis/demo/Queue Outbound Connection Pool entry, and click Next.
     d.    On the “Create a New Security Credential Mapping” WebLogic Server User page,
           select the Configured User Name option, enter weblogic in the WebLogic Server
           User Name field, and click Next.
     d.    On the “Summary of Deployments” page, verify that the Messages section indicates
           that the deployments are updated, for example:
     e.    Optionally, navigate through the Deployments table by clicking Next, and verify that the
           JmsAdapter entry shows Active in the State column and OK in the Health column.
Practices Overview
In this practice, you deploy the HelloWorld composite application project to the SOA server and
use the Enterprise Manager web application to test the service with a sample input. You then
write an Ant script to undeploy the application. Finally, you extract the composite application
files from the SAR file and examine them to learn the expected behavior of the application.
Overview
In this practice, you use an Ant script to deploy the HelloWorld composite application project to
the SOA server and use the Enterprise Manager web application to test the service with a
sample input.
Assumptions
     •    You have successfully completed all previous practices.
     •    Oracle WebLogic Server is running.
Tasks
          Note: The preceding lines provide the URL of the WebLogic Administration Server, the
          location of the composite application jar file, and the instruction to overwrite any
          composite of the same name and version number that is already deployed. (Version
          numbers are discussed in the next lesson titled “Managing the Composite Application
          Life Cycle.”)
          Note: Although this is not always a best practice, you could also set the username and
          password values as variables and pass them as parameters when calling the Ant
          command line utility. Because they have been omitted in the provided script, you are
          prompted for these values at run time. If you were providing the username and
          password as parameters, you would add USER and PASSWORD to the preceding script
          parameter assignments, and you would append the parameters to the command line in
          the script invocation.
          # additional script parameter assignments
          # USER=weblogic
          # PASSWORD=<password>
Overview
In this section, you use a web browser to access Oracle Enterprise Manager Fusion Middleware
Control and initiate a test of the deployed HelloWorld application.
Assumptions
     •    You have successfully completed practice 8-1.
     •    Oracle WebLogic Server is running.
Tasks
1.   Familiarize yourself with the composite application.
     The following screenshot is of the composite.xml file that is part of the HelloWorld
     application. This file describes the entire composite assembly of services, service
     components, and references. There is one composite.xml file for each SOA project.
     The left swimlane is for services (such as web services, REST adapters, or JCA adapters)
     that provide an entry point to the SOA composite application. The right swimlane is for
     references that send messages to external services in the outside world, such as web
     services or JCA adapters. The center swimlane is for components such as BPEL
     processes, business rules, human tasks, Oracle Mediators, and spring components.
     In this example, a client connects to the application by invoking the execute operation of the
     ReceiveData service. The data is passed to the RouteData mediator, which transforms the
     data and routes it its next destination. In this case, the destination is a file adapter,
     WriteData, which writes the data to a file.
     The following screenshot shows the transformation in the mediator. In this simple example,
     the format of the incoming and outgoing data is identical. Data from each incoming field is
     mapped to its corresponding node in the destination message.
     b.   On the Test Web Service page, scroll down to the Request tab’s Input Arguments
          section and click the Browse button.
         The initially supplied XML test data is replaced by the contents of the file.
5.   On the Test Web Service page, scroll to the bottom of the page and click Test Web Service.
     Note: If your web browser blocks the pop-up window, perform steps to correct allow pop-
     ups.
7.   On the Flow Trace page, verify that the ReceiveData, RouteData, and WriteData
     components have a Completed state, indicating that the application executed successfully.
Overview
In this practice, you complete and run an Ant script to undeploy an application.
Assumptions
This practice assumes that you have completed Practice 8-1 successfully.
Tasks
1.   Use gedit to open the file
     /practices/practice08/scripts/undeployHelloWorld.sh.
2.   Update the script to assign values to the five missing script parameters.
         # script parameters
         ACTION=undeploy
         SERVER_URL=
         COMPOSITE_NAME=
         REVISION=
         USER=
         PASSWORD=
     Hint: There are several ways to learn the revision number of the application. It can be
     found as part of the name of the SAR file that you deployed earlier in this practice. You can
     also get the number and learn more about the application in Enterprise Manager.
3.   Save your changes and close gedit.
4.   From a terminal window, execute the
     /practices/practice08/scripts/undeployHelloWorld.sh script.
5.   Optional: Use Enterprise Manager to verify that the application has been undeployed.
Tasks
1.   Extract the application files from the SAR file.
     a. Open a terminal window.
     b. Enter the following commands:
         $ cd /practices/practice08/deploy
         $ unzip sca_HelloWorld_rev1.0.jar –d v1
         $ cd v1
         $ ls –lt
          Note: The –d command-line option in the unzip command creates the v1 subfolder
          and extracts the contents of the .zip file into that subfolder. A directory listing similar
          to the one that follows is displayed:
2.   Use your web browser to open the composite.xml file. Examine the contents of the file to
     answer the following questions:
     • What file would you examine to know the data format that is expected when the
         composite is invoked?
     • What file would you open to examine the transformation performed by the mediator?
     • What file would you examine to learn about the data format that is written to file by the
         composite?
     • What file would you examine to learn about the directory where data is written by the
         composite?
3.   Locate the files that you have identified within the directory hierarchy. Open each of the files
     you have named and confirm your answer.
Practices Overview
In this practice, you perform the following tasks:
     • Create a partition
     • Deploy a SOA bundle
     •    Use the ant command to determine what applications are deployed
     •    Unzip the jar files to learn how each application is configured
     •    Manage the life cycle of the deployed composites
     •    Undeploy the applications and delete the partition
Overview
In this practice, you perform the following tasks:
     • Create a partition
     • Deploy a SOA bundle
     •    Use the ant command to determine what applications are deployed
Assumptions
     •    You have successfully completed all previous practices.
     •    Oracle WebLogic Server is running.
Tasks
Creating a Partition
1. Create a partition.
    a. Open Enterprise Manager at http://adminvh.example.com:7001/em.
    b. Right-click soa-infra (soa_server1) and select Manage Partitions.
     c.   Click Create.
          The Create New SOA Partition dialog box is displayed.
     d.   In the Name field, enter myPartition.
     e.   Accept the default work manager group.
          Note: A work manager is an Oracle WebLogic Server entity that represents a logical
          thread pool. It is similar to a queue in which work items line up for processing. You can
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     The new partition is displayed in both the navigator under soa-infra and the SOA Partition
     column of the Manage Partitions page.
     You can now deploy composites to this partition by selecting “Deploy to This Partition” from
     the Deployment drop-down list or by right-clicking a specific partition in the navigator and
     selecting Deploy to This Partition. When a composite is deployed to a partition, it is
     displayed below the partition in the navigator. After it is deployed, a composite cannot be
     transferred to a different partition.
     Note: You can also create partitions with the Oracle WebLogic Scripting Tool (WLST) and
     ant commands. Most of the remaining activities in this practice use ant commands.
2.   Use the antPartitions script to list the partitions on this host.
     a. In a Terminal window, enter the following commands:
          $ cd /practices/practice09/scripts
          $ ./antPartitions.sh
Assumptions
     •    You have successfully completed practice 9-1.
     •    Oracle WebLogic Server is running.
Tasks
The Files
    • The BPELProcess1.wsdl file describes how to call the composite application. It
        includes a reference to the versionsLab.xsd file, which describes the input and
        output message formats of the composite.
     •    The BPELProcess1.bpel file includes the definition of the business process. It also
          includes a reference to the versionsLab.xsd file, which describes the input and
          output message formats of the business process.
     •    The fileAdapter_file.jca file contains the adapter implementation details. In the
          case of a file adapter that is configured to write data, the details include an output
          directory name and a file naming pattern, as well as other information.
     •    The fileAdapter.wsdl file includes the abstract WSDL information about the service
          that the adapter provides. It also references the versionsLab.xsd file, which
          describes the input and output message formats of the adapter.
     •    A composite.xml file is automatically created when you create a SOA project. This
          file describes the entire composite assembly of services, service components,
          references, and wires.
     f.   Use the List Composites in Partition option of the antPartitions script to verify that
          version 2 of the application is now the default.
Practices Overview
In this practice, you use an Ant script to deploy a pair of composite applications to the SOA
server. A second script generates a series of data files that provide input to the applications.
You use the Enterprise Manager web application to monitor the sensors, events, analytics,
faults, and more.
Overview
In this practice, you use an Ant script to deploy a pair of composite applications to the SOA
server. You then use a shell script to generate input data for the deployed applications to
process.
Assumptions
     •    You have successfully completed all previous practices.
     •    Oracle WebLogic Server is running.
Tasks
     The Enroll project uses a file adapter (fileInput) to read enrollment messages from a
     specified directory. The messages are then passed via a mediator (Mediator2) to a BPEL
     process (EnrollmentProcess). The process then invokes the BookingSystem application
     (BookingService). When a response is received from the BookingSystem project, it is
     passed to the mediator (Mediator2), which passes the message to an outbound file adapter
     (fileOut) that writes the message to a file.
          Note: Click the Recent Instances link or the Search (magnifying glass) icon as needed
          to display the most current instances.
          The Trace pane for the selected instance is displayed.
          Click the Flow Tab to display the BPEL process instance details.
          A portion of the instance graphic is displayed as follows. Individual process activities
          are represented in the model.
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Overview
In this practice, you explore additional features of the Error Hospital for management of error
conditions.
Assumptions
     •    You have successfully completed Practice 10-1.
Tasks
Viewing Faults
4. Set and apply report filters:
    a. Select the following options:
          • Partition Name: default
          • Composite Name: default/Enroll!1.0
     b.   Click Search.
Practices Overview
In the practices for this lesson, you perform the following key tasks:
     • Deploy the SubscribeStockUpdComposite application
     • Perform an event test operation in Oracle Fusion Middleware Control Console
     • Deploy the PublishStockUpdComposite application
     • Initiate the PublishStockUpdComposite application and monitor the events and
         instances that are created as a result of processing the files that contain the stock
         update information
General Notes
The SubscribeStockUpdComposite application uses the jdbc/soademo data source that was
configured in the practice associated with the lesson titled “Configuring High Availability,”
because it contains the DB Adapter that interacts with the database to query, insert, update, and
potentially delete rows from a database table called EXTERNAL_STORE. Therefore, in this
practice, you use the SQL*Plus command-line utility to query the information in the
EXTERNAL_STORE table.
Overview
In this practice, you deploy the SubscribeStockUpdComposite application to perform database
operations on the EXTERNAL_STORE database table.
You deploy the SubscribeStockUpdComposite application, which subscribes to a StockUpdated
event, and use the Oracle Fusion Middleware Control Console to send a test event to verify that
the subscriber receives the event.
Assumptions
The Oracle Database is running and the SOADEMO schema has been created with the required
database tables and populated with the correct data. In addition, the DbAdapter configuration in
Oracle WebLogic Administration Server is configured with a data source that is identified by the
JBDC URL jdbc/soademo.
Note: All these requirements are addressed in the practices associated with the lesson titled
“Configuring High Availability.”
Tasks
1.   To deploy the SubscribeStockUpdComposite application, perform the following steps:
     a. In a Terminal window (open a new one if needed), use the SOA archive to deploy the
         SubscribeStockUpdComposite application by executing the following commands:
         $ cd /practices/practice11/deploy
         $ /practices/scripts/deploy12c.sh
           sca_SubscribeStockUpdComposite_rev1.0.jar
     b. Verify that the deployment is successful.
          Note: You are prompted for a username and password. Ask your instructor for the
          weblogic credentials.
2.   To log in to the Oracle Fusion Middleware Control Console and locate the deployed
     applications, perform the following steps:
Overview
In this practice, you use the Business Event Web interface to examine the event definitions and
event subscribers, and initiate a test event for the StockUpdated event to verify that the
SubscriberStockUpdComposite application receives and processes the test event.
Note: The event test is performed as a check that the event subscriber is operational before the
event publisher application is deployed and tested. By performing the steps described in the
following section, you are learning about the tools that can assist you in troubleshooting
scenarios that involve applications that use events to communicate information and initiate
processing, while also being reminded of application dependencies in the form of service
references and runtime server configuration requirements.
Assumptions
     •    You have successfully deployed the SubscribeStockUpdComposite application.
Tasks
1.   To examine the Business Event information in the Oracle Fusion Middleware Control
     Console, perform the following steps:
     a. On the Oracle Fusion Middleware Control Console page, in the Target Navigation
         pane, click the soa-infra (soa_server1) entry in the SOA folder.
     c.    With the soa-infra > Business Events page visible, answer the following questions:
           1) What events are shown on the Events tab page?
               Answer: The following two events are listed on the Events tab page:
               In the “XML Definition: StockUpdated” dialog box, you can locate the XML
               namespace for the event structure in the schema-import element.
               Note: To create an event document for this XML Schema definition, you need to
               qualify each element by its correct XML namespace. This is easily done by using
               an XML namespace prefix that is defined by an xmlns attribute in the root
               element.
                 <evt1:StockUpdInfo xmlns:evt1=
                 "http://www.example.com/events/edl/StockEventDefinitions">
                 <evt1:productId>GUI001</evt1:productId>
                 <evt1:quantity>10</evt1:quantity>
                 </evt1:StockUpdInfo>
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
         Note: By using the Search section, you can filter the Subscriptions. The Search section
         is collapsed in this image example.
2.   Before you test the StockUpdated event from the Oracle Fusion Middleware Control
     Console, query the EXTERNAL_STORE table data with SQL*Plus as the soademo user, by
     performing the following steps:
     a. In the Terminal window (on host02), enter the following sqlplus command and
          supply the password for the soademo database user account when prompted:
         $ cd /practices/practice11/sql
         $ sqlplus soademo
            :
         Enter password: password
          Tip: Either ask the instructor for the soademo database schema password, or refer to
          the password page that is provided with your student guide.
     b.    At the SQL*Plus SQL> prompt, run the query_gui001.sql script by entering
           following command:
          SQL> @query_gui001.sql
          Note: The SQL script runs the following SELECT statement:
          SQL> SELECT * FROM external_store WHERE prod_id = 'GUI001';
          The query should return the following result:
          PROD_ID                QUANTITY
          -------------------- ----------
          GUI001                        5
     c.   Do not exit SQL*Plus yet, because you run the same SQL statement again to view the
          changes to data after initiating a StockUpdated event test.
3.   To initiate a test of the StockUpdated event and an instance of the
     SubscribeStockUpdComposite application, perform the following steps:
     a. On the soa-infra > Business Events page, click the Events tab.
     b. On the Business Events > Events tab page, select the StockUpdated event entry and
          click Test.
          Note: This event request for the product with ID GUI001 has a quantity value of 10
          specified.
     d. In the Information dialog box, the message “The Event published successfully”
          appears. Click OK.
4.   To confirm that the SubscribeStockUpdComposite application received and processed the
     test StockUpdated event, perform the following steps:
     a. In the Oracle Fusion Middleware Control Console > Target Navigation pane, click the
          SubscribeStockUpdComposite [1.0] entry under the SOA > soa-infra (soa_server1) >
          default tree. Click the Flow Instances tab and then click Search in the Search panel (if
          displayed). Answer the following questions and perform the associated steps:
          1) Did the new instance that was created for the SubscribeStockUpdComposite
               application complete successfully?
               Answer: Yes. When you navigate to the SubscribeStockUpdComposite [1.0] >
               Flow Instances tab page, under Recent Instances, the newly created instance has
               a Completed state.
               In addition, if you wish, you can click the mediator component link to view the
               onEvent information in the Audit Trail for the component.
b. Do not exit SQL*Plus and do not exit the Terminal window in which it is running.
Overview
In this practice, you deploy and test the PublishStockUpdComposite application as the final task
of this practice.
The PublishStockUpdComposite application takes data from an input file (or a SOAP request),
copies the product ID and quantity into the StockUpdated event message, and publishes the
event. You view the results of the process instances that are created for the event to ensure that
the event published by PublishStockUpdComposite is received and processed by the
SubscribeStockUpdComposite application.
Assumptions
You have successfully completed Practice 11-1 and Practice 11-2.
Tasks
1.   To deploy the PublishStockUpdComposite application, perform the following steps:
     a. In a Terminal window (open a new one if needed), use the SOA archive to deploy the
         PublishStockUpdComposite application by executing the following commands:
         $ cd /practices/practice11/deploy
         $ /practices/scripts/deploy12c.sh
           sca_PublishStockUpdComposite_rev1.0.jar
     b. Verify that the deployment is successful.
          Note: You are prompted for a username and password. Ask your instructor for the
          weblogic credentials.
2.   To check the database data, maximize the SQL command-line window and execute the
     following SQL statement to view the database data row for the GUI002 product ID:
          SQL> SELECT * FROM external_store WHERE prod_id = 'GUI002';
          Note: The XML namespace and XML elements for the PublishStockUpdComposite
          application input file have a different structure when compared to the XML structure
          required for the StockUpdated XML event. They do not need to match. The application
          performs a transformation to convert the data from one structure to another.
     c.   On the Oracle Fusion Middleware Control Console page, in the Target Navigation
          pane, expand SOA > soa-infra (soa_server1) > default, and click
          PublishStockUpdComposite [1.0].
     d.   On the “PublishStockUpdComposite [1.0]” page, click the Flow Instances tab and
          perform either of the following:
          1) Click Search in the Search panel to display the recent instances (and click the
              Search panel icon to collapse the panel).
          Note: The Search Results page should display that one new instance is created.
4.   To view the results of the PublishStockUpdComposite application instance, perform the
     following steps:
     a. In the PublishStockUpdComposite [1.0] > Flow Instances > Recent Instances results
          section, click the Flow ID link for the new instance to open the Flow Trace page.
     b. Observe the information on the Flow Trace page and answer the following questions:
          1) What is the name of the component that published the event?
              Answer: In this case, the PublishStockUpdEventMediator is the publisher of the
              StockUpdated event, because the StockUpdated event entry appears below the
              PublishStockUpdEventMediator component entry in the Trace tree.
               Note: The Business Events page does not provide any information about the
               publishers.
          2)   Do you need to go to the event subscriber application page to see the results of
               the completed application flow sequence? Why or why not?
               Answer: You do not need to visit the SubscribeStockUpdComposite application
               page. The Flow Trace displays the components that are involved in the entire
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     Note: The query results shows that the product with ID GUI002 has a quantity of 33, as
     shown in the query output data:
6.   Exit SQL*Plus by entering the exit command and optionally, close the Terminal window
     on host02.
Practices Overview
In this practice, you perform the following tasks:
     • Configure the email driver to enable the user messaging service
     • Deploy a pair of applications. The first is a composite application, which includes a
          BPEL process that invokes both a human task activity and an email activity. Each of
          these activities uses the user messaging service to send emails. The second
          application is an ADF task form that allows the human task participant to examine an
          incoming order, and to either approve or reject the order.
     • Instantiate the composite application, complete the human task, and access the emails
          generated by the application
Overview
In this practice, you enable email notifications to work in the SOA Server for Human Tasks and
BPEL Email notification.
Note: The Email Driver sends and receives messages. It supports all relevant email protocols,
SMTP for sending emails, and IMAP and POP3 for receiving emails, to be able to communicate
with every standard mail server. Support is implemented for enabling the security protocols, TLS
or SSL, to protect email contents on the wire. The Email Driver uses JavaMail v1.4, which is the
standard Java component that implements the required protocols and clients, to create, access,
send, and receive emails. The Email Driver uses a multi-threaded design to be able to poll
multiple mail boxes (over IMAP or POP3 protocol). One limitation is that if there is only one mail
box to poll, this leads to only one thread working on that box.
Assumptions
     •    None
Tasks
1.   Seed the LDAP server.
     a. Open a Terminal window and execute the following commands:
        $ cd /practices/practice12/ldap
        $ /practices/scripts/ldapadd.sh new_groups.ldif
          Password: ldap-admin-password (Refer to the course password document.)
          $ /practices/scripts/ldapadd.sh new_users.ldif
        Password: ldap-admin-password (Refer to the course password document.)
2.   Update the workflow notification email addresses.
     a. Access Enterprise Manager.
     b. In the Target Navigation pane, expand the SOA folder. Right-click soa-infra and select
        SOA Administration > Workflow Properties.
     c. On the Workflow Notification Properties page, set the following values:
           Notification Mode                          ALL
           Email: From Address                        demoadmin@example.com
           Email: Actionable Address                  demoadmin@example.com
           Email: Reply To Address                    no.reply@yourdomain.com (default)
     d.   Verify your work and click Apply.
b. In the Outgoing Notifications section, click the Sent link of the top-most message.
                                  s
7.   View the email message that was sent to jcooper.
     a. Right-click the Thunderbird desktop icon on your desktop and select Open.
     b. In the Thunderbird window, in the All Folders pane, click the jcooper@example.com
         account name.
     c. Click Get Mail on the Thunderbird toolbar.
         An email appears in the inbox.
     d. In the Inbox, click the email to see the message body.
     e.   On the Select Archive screen, in the Archive or Exploded Directory section, below the
          “Archive is on the machine where this Web browser is running” option, click Browse.
     h.   Click Next.
     i.   On the Select Target screen, select the check box next to soa_cluster1.
     j.   Click Next.
     k.   On the Application Attributes screen, verify the selected values and click Deploy.
     Note: If the process Flow Trace tree does not resemble the preceding image, wait a few
     seconds and refresh the page before you continue. You may need to refresh the page a
     few times.
     Using the Flow Trace tree, answer the following questions:
     a. Has the entire process completed? Explain your answer.
     b. In this case, what does the last row in the Trace tree that contains the
         ManualApproval Human Workflow component indicate?
        Q       Answers to Step 3
         a.     No, the process is still running. If you look in the Trace tree, you can see that
                the rows containing Approval and ManualApproval indicate their state as
                Running.
         b.     The ManualApproval row indicates that the process is executing the Human
                Workflow component, which is not yet complete because it is still in the
                Running state.
3.   To examine the ManualApproval component state, perform the following steps:
     a. In the web browser window with the Trace Flow page, click the ManualApproval
         Human Task component link.
     b. On the “Instance of ManualApproval” page, view the information and answer the
         following questions:
         1) What is the state of the human workflow task?
         2) Who is the task assignee?
     c.        On the “Instance of ManualApproval” page, click the Flow Trace locator link at the top
               of the page.
4.   To determine why the application is still running, click the Approval BPEL Component link in
     the web browser window with the Trace Flow page.
5.   On the “Instance of Approval” page, view the process details and answer the following
     questions:
     a. What is the name of the last activity that was executed?
     b. Explain what the execution state of the last activity represents at this time.
         Note: Do not close the “Instance of Approval” page yet.
      Q             Answers.
          a.        The name of the last activity that was executed is
                    receiveCompletedTask_ManualApproval2.
          b.        receiveCompletedTask_ManualApproval2 is in a pending state. The activity
                    is waiting for an asynchronous callback message from the human workflow task
                    that indicates that it has been completed. The implications are that the human
                    workflow process is not complete.
8.   Return to the Flow Trace and click Approval. Examine the steps of the business process
     and verify that they completed successfully.
Practices Overview
In the first part of the practices for this lesson, which focuses on performance tuning tools, the
key tasks are to explore and view the following:
     • The Topology Viewer that is available in the Oracle Fusion Middleware Control
           Console
     • The performance information pages that are available for WebLogic Server instances,
           SOA server instance, SOA applications, and SOA application components
The second part and the remaining practices of this lesson involve deploying and executing a
composite application that fails due to various problems. Your task is to diagnose the causes of
the problems and fix them. For example, your tasks include:
     • Deploying a troublesome composite application
     •    Diagnosing the cause of faults in the troublesome composite application
     •    Determining the cause of faults in a Human Workflow scenario
General Notes
The practice environment has not provided the tools to generate a large system load for honing
performance tuning skills. In addition, performance tuning is a multi-layered discipline that
requires an iterative monitoring and tweaking process that can take a long time to get the
desired results. Therefore, the purpose of this practice is to familiarize yourself with the various
pages in the Oracle Fusion Middleware Control Console that enable you to monitor the
performance of the Oracle SOA Suite components and applications.
Overview
The goal of this practice is to deploy an EAR application that is examined by using the Routing
Topology in the next practice.
Assumptions
     •    Oracle SOA Suite has been installed and is running.
Tasks
To deploy an EAR application, perform the following tasks:
1. Log in to Enterprise Manager.
2. In the Target Navigation pane, click WebLogic Domain > edg_domain.
3. On the edg_domain home page, select WebLogicDomain > Deployments.
4. On the Deployments page, at the top of the applications table, click Deploy.
7. On the Select Target page, select the soa_cluster1 check box and click Next.
8. On the Application Attributes page, accept the default settings and click Next.
10. On the Deployment Result page, verify that the deployment succeeded and click close.
Overview
The goal of this practice is to become familiar with the Routing Topology that is available in the
Oracle Fusion Middleware Control Console.
Assumptions
     •    Oracle SOA Suite has been installed and is running.
     •    Any composite application is available to examine its metrics.
Tasks
To explore the information provided by the Routing Topology, perform the following tasks:
1. If required, in a web browser window, log in to Oracle Enterprise Manager Fusion
    Middleware Control with the URL http://admin.example.com:8080/em.
    Note: Sign in as the weblogic user with the appropriate password.
2.   On the Oracle Fusion Middleware Control Console home page, to access the Routing
     Topology, expand WebLogic Domain, click edg_domain, click WebLogicDomain, and click
     Routing Topology.
          Note: The metric values are loaded, and then refreshed; you will notice the icon on the
          top-right corner. If the metrics do not appear, try repeating steps a and b.
     c.   In the expanded soa_server1 component, you can verify the metric information for the
          deployed applications. If you move your mouse over the icon next to the soa_server1
          component name or let the mouse hover over the bottom of the expanded icon view,
          the soa_server1 pop-up callout box is displayed.
     d.   In the soa_server1 dialog box, you can see the metrics details. Click the “more” link to
          view the properties for soa_server1.
     b.   In the dialog box, you can see the metric information. Feel free to examine the
          information in the “more” section, and click Close.
     b.   In the dialog box, click the “more” link to view the location details. When you have
          finished examining the information, click the Close icon.
     d.   In this case, the results window is displayed, showing the applications with the down
          status. You can filter the results by name, status, and type.
     e.   When you click the link for any of the applications from the results list, the Routing
          Topology window is repositioned to show the icon for the selected application. This is
          another way in which you can navigate the Routing Topology window.
                               Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Overview
In this practice, you navigate the Oracle Fusion Middleware Control Console to locate
performance information about the WebLogic Server instances, such as the AdminServer and
soa_server1 instances, and their Java Virtual Machine (JVM) performance metrics.
Assumptions
     •    The Oracle WebLogic Server Admin Server and SOA Server instances are running.
Tasks
1.   If required, in a web browser window, log in to Oracle Enterprise Manager Fusion
     Middleware Control with the URL http://admin.example.com:8080/em.
     Note: Sign in as the weblogic user with the appropriate password.
     b.   On the AdminServer home page, click WebLogic Server > Monitoring > Performance
          Summary.
     f.   On the JVM Performance page, wait a few minutes while the Memory Heap Usage and
          Non Heap Usage graphs are updated with useful information.
     b.   On the soa_server1 > Summary page, scroll down to view information about
          application deployments.
     c.   Like the AdminServer, you can view Performance Summary information for the
          soa_server1 instance by clicking WebLogic Server > Monitoring > Performance
          Summary on the soa_server1 page.
     e.   Optionally, you can also click WebLogic Server > Monitoring > JVM Performance to
          view the JVM performance metrics for the soa_server1 instance.
Overview
In this practice, you navigate the Oracle Fusion Middleware Control Console pages to locate
performance metric information for the different layers and the components running in an Oracle
SOA Suite instance (for example, the components running within the JVM instance for the
soa_server1 instance), such as the SOA Domain, SOA Infrastructure, composite applications,
and service engines.
Assumptions
     •    The Oracle WebLogic Server AdminServer and SOA Server instances are running.
     •    Any composite application is available to examine its performance summary.
Tasks
1.   If required, in a web browser window, log in to Oracle Enterprise Manager Fusion
     Middleware Control with the URL http://admin.example.com:8080/em.
     Note: Sign in as the weblogic user with the appropriate password.
     Note: When you click the edg_domain entry, you can see information on the Summary
     page. There is not much information that can be obtained about the domain, which is a
     named structural component for configuration purposes.
     b.   On the soa-infra > Monitoring > Performance Summary page, wait a minute for the
          graphs to update with real-time information.
          Note: You can also access the Performance Summary page by right-clicking the soa-
          infra (soa_server1) node in the Target Navigation tree, and selecting Monitoring >
          Performance Summary.
     c.   On the soa-infra page, click SOA Infrastructure > Monitoring > Request Processing.
          Note: If you wish, you can click Overlay to add additional layers of metric information
          from a large list of items that can be monitored. The choice you make depends on the
          nature of the application and what you are trying to monitor.
     c.   On the ApprovePO_UI > Performance Summary page, you can wait for the graphs to
          be updated with information and scroll the page to view other details.
     c.   On the Performance Summary page, in the graphs, you can view and add the overlay
          metric information that you wish to monitor.
General Notes
Although the practice instructions for the troubleshooting tasks and their corrective actions are
documented in a sequential manner, consider trying to diagnose and take corrective action by
yourself before reading the possible solutions and corrective actions that are documented.
Overview
In this practice, you deploy the TroubleSomeComposite application by using its supplied SOA
archive file. You log in to the Oracle Fusion Middleware Control Console and examine the
components that are part of the deployed application.
The application accepts a new product name and quantity in the input (request) data and inserts
the new product into the EXTERNAL_STORE database table. The input data can be sent through
the SOAP binding or the JCA binding that is provided by a File Adapter. The application uses
the DbAdapter to insert the new product into the database table.
Assumptions
     •    The runtime server configuration for the DbAdapter connection factory,
          eis/DB/soademo, is configured to use the JDBC jdbc/soademo data source, which
          is also configured. If not, perform the steps for configuring the database adapter as
          described in the practice for the lesson titled “Configuring High Availability.”
Tasks
     c.   On the “Deploy SOA Composite: Select Archive” page, accept the default selected
          option called “Archive is on the machine where this web browser is running.”, and click
          Browse.
     e.   On the “Deploy SOA Composite : Select Archive” page, verify that the
          sca_TroubleSomeComposite_rev1.0.jar file name appears in the “Archive or Exploded
          Directory” section, accept the default settings for the remaining items, and click Next.
     i.   Briefly explore, with your instructor or other students, what the possible cause of this
          error may be.
          Hint: The error is related to the type of component and the configuration details
          associated with the error.
2.   Because the error message references the diagnostic log file for a specific SOA server (in
     this case, soa_server2), you could navigate through the file system on host02 to find the
     $MSERVER/servers/soa_server2/logs folder and view the contents of the
     b.   On the Log Messages page, the default search settings capture the latest messages of
          interest, and therefore, the topmost message should represent the error related to the
          application deployment failure.
          Note: If you hover the mouse over the Message column for the Error message for the
          selected Message ID, the message that is written to the log file can be seen in the
          Deployment Failed dialog box.
         Tip: If you can view all the columns for the message log page, you can find a column
         that identifies the file in which the message you are viewing is saved. In this case, the
         message with ID SOA-21357 is written to the soa_server2-diagnostic.log file.
         Note: In this case, if you understand Database Adapter properties and configuration,
         you can ascertain that there is probably an issue with the connection factory
         associated with the DbAdapter.
3.   Because the diagnostic error message references the InsProdDBAdapter_db.jca file,
     which holds the application configuration data related to the Database Adapter, you can
     examine the InsProdDBAdapter_db.jca file by opening it from the deployment archive,
     by using the following steps:
          Note: Clicking the Edit icon creates a Location field using which you can navigate to
          any folder by entering the destination path name and pressing Enter.
     c.   In the File Browser window, in the Location field, enter the
          /practices/practice13/deploy path and press Enter. Right-click the
          sca_TroubleSomeComposite_rev1.0.jar file and select “Open with Other
          Application.”
d. In the “Open with” dialog box, select Archive Mounter, and click Open.
          Tip: Either the developer can create this configuration plan file for you with the
          appropriate configuration data, or you can create it yourself. It is easier to create the
          deployment plans by using Oracle JDeveloper with the source of the composite
          application available.
     c.   Close the gedit editor window.
     d.   Close the File Browser application window.
     d.   On the “Deploy SOA Composite : Select Archive” page, with the composite archive and
          its configuration plan files selected, click Next.
     e.   On the “Deploy SOA Composite : Select Target” page, accept the default settings and
          click Next.
     f.   On the “Deploy SOA Composite : Confirmation” page, click Deploy.
          Note: Having successfully diagnosed the deployment error and deployed the
          application, you might want to test the various interfaces provided by the application.
          Although this type of testing should be done during the development and testing
          phases, some runtime error can still occur that may not have been caught during those
          phases.
Overview
In this practice, you initiate tests of the TroubleSomeComposite application by using different
interfaces to see if any errors occur at run time. You start with testing the SOAP binding
interface. If you encounter problems, you are required to take corrective action to diagnose and
fix the problem.
You then initiate a test by using the File Adapter interface. Again, if problems arise, you are
required to take corrective action.
Assumptions
     •    You have deployed the TroubleSomeComposite application.
Tasks
In the tasks, you first test the SOAP interface, take corrective action for problems, then test the
File Adapter interface again, and take corrective action if there are any problems remaining. The
goal is to have a working application for all its input sources.
          Id                 TBLT03
          qty                5
          Note: If you look for the Operation field, it shows that the Read operation is being
          invoked. The Read operation is the only function that is exposed by the service. In
          addition, you have to scroll down the page to locate the fields in the expanded Input
          Arguments section. After you click Test Web Service, the Response tab becomes
          active on the page with the response information.
     c.   On the TroubleSomeComposite [1.0] > Test Web Services Response tab page, you
          can see an indicator that the request was received successfully. However, receiving a
          message successfully does not necessarily indicate that the service completed
                                 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     d.   On the Flow Trace page, the Faults tab page is active by default. You can now see that
          the invocation and execution of the service operation was successful because there
          are no error messages on the Faults tab page. In addition, in the Trace section, you
          can see that all the components that were executed by the flow completed without
          error. With the focus on the database adapter, you can see that the InsProdDBAdapter
          service reference completed successfully, indicating that a row was inserted into the
          database table.
         Note: Although you may not know the target database table, in this course, you can
         verify that the data has been added to the EXTERNAL_STORE table in the SOADEMO
         database schema.
     e. Close the Flow Trace browser window or tab page.
3.   To verify that the row has been inserted into the EXTERNAL_STORE table in the SOADEMO
     database schema, enter the following sqlplus command in a Terminal window on host02,
     and then enter the subsequent SQL statements:
         $ sqlplus
          Note: When SQL*Plus prompts for the username, enter soademo, and enter the
          password for the database schema (check with your password list or ask the
                               Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     Summary: You have verified that the deployed application functions correctly for
     invocations through its SOA interface for the Read operation, and that the Database
     Adapter configuration is now valid.
     g.   In the Information dialog box, with the message “Properties have been saved
          successfully,” click OK.
6.   To verify that your corrective action is successful, perform the following steps:
     a. In the Terminal window, verify that the prod_tblt01.xml file no longer exists, that is,
         it has been consumed (removed from the folder) by the application for processing, by
         entering the command:
         $ ls prod*.xml
          Note: No files should be listed as a result of entering the ls command. The following
          message is displayed:
          ls: cannot access prod*.xml: No such file or directory
     b.   Return to the web browser window with the TroubleSomeComposite [1.0] >
          NewProdFileService (File Adapter) > Properties tab page, and click SOA Composite >
          Home > Flow Instances.
d. In the expanded Search Options pane, accept the default settings and click Search.
Note: To collapse the Search Options pane, click the Search icon in the pane.
     e.   On the TroubleSomeComposite [1.0] > Flow Instances tab page, verify that a new
          (topmost) instance ID has been created and has the value Completed in the Flow State
          column. Click the Flow ID for the top row in the Search Results table, to open the Flow
          Trace for that instance.
     g.   Optionally, in the Terminal window, start SQL*Plus again, and press the up arrow key
          to recall the SELECT * FROM external_store WHERE prod_id LIKE 'TBLT%'
          SQL statement. Press Enter.
          Note: A row with the TBLT01 value in the PROD_ID column, and the value 10 in the
          QUANTITY column should be displayed in the query results.
     h.   Exit SQL*Plus.
          Note: The default Audit Level setting is Inherit, which is derived from the soa-infra
          container settings.
     c.   In the Confirmation dialog box, click Yes.
          Note: After clicking Yes in the Confirmation dialog box, the following confirmation
          message response is displayed at the top of the page.
8.   Using a Terminal window, to initiate the composite application again, perform the following
     steps:
     a. Copy the prod_tblt02.xml file from the /practices/xml/troubleshoot folder
         to the /practices/practice13 folder, by entering the following commands:
         $ cd /practices/practice13
         $ cp /practices/xml/troubleshoot/prod_tblt02.xml .
         Note: There is a space followed by a dot character at the end of the last command.
         Wait for approximately one or two minutes for the XML file to be processed and
         removed from the /practices/practice13 folder.
     b.   Does the prod_tblt02.xml file get removed from the /practices/practice13
          folder?
     d.   Perform a Search request to refresh the information displayed in the flow trace Search
          Results table.
     e.   On the TroubleSomeComposite [1.0] > Flow Trace tab page, what is the Flow State of
          the latest (topmost entry) instance?
          Answer: The latest instance has a Recovery State.
     f.  What do you think is the cause of the fault condition this time? The File Adapter or
         something else?
         Answer: This time the File Adapter is not the cause of the fault. The problem lies
         somewhere else. You need to examine the application Flow Trace to examine and
         determine the source of the problem.
9.   To explore the application fault condition, perform the following steps:
     a. On the TroubleSomeComposite [1.0] > Flow Instance tab page, click the name of the
         composite in the top row of the Search Results table to select the row, and view the
         Error Message on the Faults subtab below the Search Results table.
          Hint: The preceding image highlights the failure condition, which indicates that an
          attempt was made to insert a NULL value in to the PROD_ID column of the
          Note: When you click the instance ID link for the faulted instance, the Flow Trace page
          is opened.
     c.   On the Flow Trace page, click the InsProdMediator link in the Trace table. Notice that
          the Error Message appears on the Faults tab page, with a link for recovery provided.
          However, you first examine the Audit Trail for the mediator component to drill deeper
          into the situation.
          Note: In this flow sequence, the fault occurred when the InsProdDBAdapter reference
          was invoked to perform the INSERT operation on the database. The fault was
          propagated to the InsProdMediator component, which received the message from
          NewProdFileService and forwarded it to the Database Adapter. Because the mediator
          component invokes the database adapter service, it received the failed state as well.
     d.   On the Audit Trail page, you can see the error in detail again, located at the specific
          point where it was detected within the application execution sequence, in this case,
          when the ProdDBAdapter was invoked with the insert operation. Without the Audit Trail
          setting set to Development, you will not be able to click the View Payload link to see
     e.   On the Payload for Mediator page, the data to be processed (sent to the Database
          Adapter) for inserting into the database reveals that there are no data values in the
          <prodid> and the <quantity> elements. Click Close.
          Note: The <payload> contents reveal that the DbAdapter did indeed get empty data
          values. Empty XML elements are interpreted as a database NULL value by the
          DbAdapter. Taking a closer look at the processing task that owns the payload, you can
          see that the information appears just after the Transformation step. Therefore,
          something happened during the transformation to cause the input data to be converted
          to empty XML elements.
     h.   On the System Fault page, you can view the error message again and the information
          that indicates that the problem is considered “not retriable.” Therefore, you terminate
          the instance by clicking Abort.
          Note: Clicking Abort displays the following Confirmation dialog box that asks if you
          want to Abort the Selected Fault, which aborts the entire flow. In the Confirmation
          dialog box, click Yes.
     j.   On the TroubleSomeComposite [1.0] > Flow Instance tab page, click the Refresh icon
          on the top-right corner of the page.
          Note: Clicking the Refresh icon updates the data in the Search Results table, where
          you can confirm that the latest instance shows the Flow State of Aborted.
10. Because you now suspect that the data coming into the composite application could be
    problematic, an option of enabling Payload Validation for the composite application is
    available. However, there is a data storage overhead cost for enabling Payload Validation,
    similar to using Audit Level set to Development. Therefore, use of these features should be
    minimized on a production system. To enable payload validation for the application, perform
    the following actions:
    a. On the TroubleSomeComposite [1.0] page, above the Flow Instances tab, click
         Settings > Payload Validation: Inherit > Enable.
11. To examine the changes in the application execution sequence with payload validation
    enabled, perform the following steps:
    a. Repeat the commands to copy the prod_tblt02.xml file from the
        /practices/xml/troubleshoot folder to the /practices/practice13 folder,
        by entering the following commands:
        $ cd /practices/practice13
        $ cp /practices/xml/troubleshoot/prod_tblt02.xml .
        Note: Remember that there is a space and dot character at the end of the command.
    b. Wait for approximately one or two minutes for the XML file to be processed and
        removed from the /practices/practice13 folder.
    c. Return to your web browser where the TroubleSomeComposite [1.0] page is displayed
        and click the Refresh icon on the right side of the page.
        Note: If required, use the Target Navigation pane to navigate to the
        TroubleSomeComposite [1.0] > Flow Instances tab page.
     e.   On the Flow Trace page, observe the new error message information.
          Note: In this flow sequence, the InsProdDBAdapter reference was not even invoked by
          the InsProdMediator component. This time the InsProdMediator component gets the
          fault condition, and the NewProdFileService component has the Recovery Required
          state.
     f.   On the Flow Trace > Faults tab page, click the Recovery Required link in the Error
          Message row.
          Note: Whereas this might be a recoverable message, there is no way to modify the
          input data unless you go to the source where it is created to examine what is produced
          and to fix the data where it is created.
     h.   In the Confirmation dialog box, which asks if want to confirm aborting the flow, click
          Yes.
     i.   On the TroubleSomeComposite [1.0] page, click the Refresh icon on the right, to verify
          that the instance is in the Aborted Flow state.
          Note: Clicking the WSDL URL causes a new web browser window or tab page to open
          with the XML structure of the endpoint WSDL document.
     c.   In the web browser window or on the page that displays the WSDL information, you
          can scroll down to locate the first <schema> element and compare the namespace
          attribute value (http://www.example.org/ns/product) in the <import>
          element to the value observed in the “Native payload of rejected message” dialog box.
          Note: This final piece of the puzzle clearly identifies the XML namespace in the input
          file (prod_tblt02.xml) that contains the source of the error.
     d.   Close the extra web browser window or tab page that contains the WSDL information.
     e.   To close the “Service Endpoint and WSDL” dialog box, click OK.
13. To correct the source of the problem (the XML namespace in the input data), perform the
    following steps:
    a. In a Terminal window, make a copy of the prod_tblt02.xml file in the
         /practices/xml/troubleshoot folder by entering the following commands:
                               Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     d.   After you delete the trailing letter s from the XML namespace, click File > Save. Then
          verify that the changed xmlns:prd attribute value is
          http://www.example.org/ns/product (without a trailing s character).
     f.   Exit SQL*Plus, by entering the exit command, and optionally close the Terminal
          window.
Practices for Lesson 14: Backup and Recovery of Oracle SOA Suite
                                              Chapter 14 - Page 1
Practices for Lesson 14
Practices Overview
In these practices, you run the backup scripts to back up your entire Enterprise Deployment
topology. You then run a script that removes part of the configuration files so that you can
recover the environment from the backup files that are created for the domain.
Practices for Lesson 14: Backup and Recovery of Oracle SOA Suite
                                              Chapter 14 - Page 2
Practice 14-1: Backing Up and Breaking the Enterprise Deployment
Domain
Overview
In this practice, you run the backup scripts to back up the entire Enterprise Deployment domain
and the environment that you created.
Assumptions
     •    None
Tasks
1.   To back up the Oracle SOA Suite domain configuration, perform the following steps:
     a. In a Terminal window on host01, enter the following commands:
          $ /practices/scripts/domain.sh shutdown
          Username [weblogic]:
          Password: password
          Note: To get a consistent backup, the domain is shut down first.
     b. On host01, use the following backup.sh script commands with a second parameter
          that identifies the backup files with the tag (or label) name soasuite.
          $ /practices/scripts/backup.sh admin soasuite
          $ /practices/scripts/backup.sh apps soasuite
          $ /practices/scripts/backup.sh dplan soasuite
          $ /practices/scripts/backup.sh managed soasuite
          Tip: This time you entered the command to back up the folder that contains the
          deployment plans. You can execute the preceding backup commands on host01 at the
          same time as running the backup commands for host02, which is listed in the next
          step.
     c. In a Terminal window on host02, enter the following commands:
          $ /practices/scripts/backup.sh managed soasuite
          $ /practices/scripts/backup.sh db soasuite
          $ /practices/scripts/backup.sh ldap soasuite
2.   Stop the Node Manager for the administration server instance on host01 by entering the
     following command:
          $ /practices/scripts/nm.sh stop
     Note: The Node Manager for the administration server must be stopped before the next
     step where you delete the folders that contain the files used by the Node Manager and the
     administration server.
3.   To destroy a part of your environment (the AdminServer configuration files), delete the
     /u02/oracle/config folder tree by entering the following command in a Terminal
     window:
         $ rm –rf /u02/oracle/config
     Note: This command deletes the entire config shared folder tree that contains the
     administration server domain configuration files, applications, and deployment plans.
4.   What happens when you attempt to start up the domain by entering the following command
     in a Terminal window (either on host01 or host02)?
                               Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Practices for Lesson 14: Backup and Recovery of Oracle SOA Suite
                                              Chapter 14 - Page 3
          $ /practices/scripts/domain.sh startup
          Username [weblogic]:
          Password: password
     Comment: After removing the /u02/oracle/config folder, the domain cannot be
     started. In fact, the Node Manager cannot be contacted without the boot.properties
     file, which would be found within the /u02/oracle/config tree. The output that you can
     expect to see from the attempt to start the domain should be similar to the following text:
          Error:
          /u02/oracle/config/domains/edg_domain/servers/AdminServer/securi
          ty/boot.properties does not exist yet. Please create the file.
     Note: You could not even start the Node Manager for the administration server because the
     configuration files that it depends on are no longer available and would need to be restored
     as part of a recovery action.
Practices for Lesson 14: Backup and Recovery of Oracle SOA Suite
                                              Chapter 14 - Page 4
Practice 14-2: Restoring the Enterprise Deployment Domain
Overview
In this practice, you restore the Enterprise Deployment domain after deleting some configuration
files and folders.
Assumptions
     •    You have performed the backup tasks described in Practice 14-1.
Tasks
1.   To recover the AdminServer configuration files, in a Terminal window on host01, use the
     following restore.sh script commands by providing the second parameter value of
     soasuite (to restore the backup files with the soasuite tag or label name):
          $ /practices/scripts/restore.sh admin soasuite
          $ /practices/scripts/restore.sh apps soasuite
          $ /practices/scripts/restore.sh dplan soasuite
     Note: You should normally restore the database to restore the SOA Suite and the related
     database schemas as well. However, in this case, it is clear that no additional configuration
     and runtime changes have been made since the backup was performed and since this
     restore operation.
2.   To start up the domain, take the following actions:
     a. In a Terminal window on host01, start the Node Manager for the administration server
          by entering the following command:
          $ /practices/scripts/nm.sh start
     b.   In a Terminal window (on host01 or host02), start the domain by entering the following
          command:
          $ /practices/scripts/domain.sh startup
          Username [weblogic]:
          Password: password
     c. Verify that the servers in the domain have started.
          Note: For example, use a web browser to see if you can access and log in to the
          Oracle WebLogic Administration Console or Oracle Enterprise Manager Fusion
          Middleware Control applications to view the state of your domain at run time.
3.   To compress the space consumed by the collection of backup archive (tar) files, enter the
     following command in a Terminal window (either on host01 or host02):
          $ cd /u02/backup
          $ zip soasuite.zip *.tar
          $ rm *.tar
     Note: The rm command deletes the backup archive files to reclaim the disk space that is
     needed for the remaining course practices. The zip command packages all related backup
     archive files into a single compressed file. If a restore operation is required, make sure that
     you extract the backup archive files from the zip file first after ensuring that you have
     enough disk space to do so.
Practices for Lesson 14: Backup and Recovery of Oracle SOA Suite
                                              Chapter 14 - Page 5
                               Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Practices for Lesson 14: Backup and Recovery of Oracle SOA Suite
                                              Chapter 14 - Page 6
                                                              Practices for Lesson 15:
                                                              Securing SOA Composite
                                                              Applications
                                                              Chapter 15
Practices Overview
In the practices for this lesson, the key tasks that you perform are:
     • Creating a simple username token service security policy
     • Applying the security policy to a service endpoint
     • Testing the application without and with the credentials supplied in the client request
Overview
In this practice, you log in to the Oracle Fusion Middleware Control Console and use the Oracle
Web Services Manager policy management interface to create a simple security policy that can
be applied to a service endpoint. In this case, you use a WS-Security UsernameToken security
policy template and a logging template to create the policy.
Assumptions
     •    None
Tasks
To create a new security policy, perform the following tasks:
1. In a web browser window, if needed, log in to the Oracle Fusion Middleware Control
    Console by performing the following steps:
    a. Enter the URL http://admin.example.com:8080/em to access the Oracle Fusion
        Middleware Control Console web application.
    b. On the Login page, enter the username weblogic and the specified password, and
        click Login.
2. To access the Web Services Policy management Web page, perform the following steps:
    a. In Oracle Fusion Middleware Control Console, in the Target Navigation pane, expand
        the WebLogic Domain folder and click edg_domain.
3.   On the WSM Policies page, perform the following steps to create a new policy:
     a. Click Create.
          Note: The Create button is available only for the Security and Management categories.
          You cannot edit the name of a policy after the policy is created. To change the policy
          name, you need to copy the policy and assign it a different name.
                               Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     d.   In the Selected Assertion Templates table, verify the security assertion that is added,
          and click Add Assertion.
     e.   In the Assertions section, examine the default settings and details for the new
          assertion, without changing any of the settings.
     b.   In the Add Assertion dialog box, enter the Name oracle/security_log, and click
          Search.
    e.   On the Assertions tab, examine the default settings for the Log Message assertion
         (without changing any of the settings), select the Log Message entry, and click Move
         Up.
Note: The assertions are invoked in the order in which they appear in the list.
Overview
In this practice, you deploy a ValidateCreditComposite application that performs credit card
validation. Before testing the application functionality, you attach the new security policy that
was created in Practice 15-1 to the ValidateCreditCard_ep service entry point of the
CreditCardValidation composite application. You test the service with and without supplying
security credentials.
Assumptions
You have created the WS-Security UsernameToken security policy by completing practice 15-1.
In addition, because the ValidateCreditComposite application uses a Database Adapter, which
is configured with the JDBC URL jdbc/soademo, the JDBC data source should already be
configured in the runtime environment along with its associated DbAdapter connection factory.
Note: The ValidateCreditComposite application uses the DbAdapter to query the data from the
CREDITCARDS table of the SOADEMO database schema, which should also already exist. The
steps needed to configure the database adapter and the database tables are described in the
practice for the lesson titled “Configuring High Availability.”
Tasks
1.   To deploy the ValidateCreditComposite application, perform the following steps:
     a. In a Command Prompt window (open a new one if needed), use the SOA archive to
         deploy the ValidateCreditComposite application by executing the following two
         commands:
         $ cd /practices/practice15/deploy
         $ /practices/scripts/deploy12c.sh
           sca_ValidateCreditComposite_rev1.0.jar
     b.   Verify that deployment is successful by ensuring that you see the “Deploying
          composite success” message just before the BUILD SUCCESSFUL message.
         Note: You can use the Search feature to make it easier to locate the desired policy. In
         the Available Policies section, you enter soa12c in the Search field, and press Enter to
         produce the list, filtering by name. Otherwise, scroll down the Available Policies page
         to locate the soa12c/admin_username_token_service_policy entry.
    f.   In the Information dialog box that has the “Validation is successful” message, click OK.
    g.   On the “Attach/Detach Policies(validateCC_pt)” page, confirm that the attached
         soa12c/admin_username_token_service_policy is enabled, and click OK.
    h.   On the ValidateCreditComposite [1.0] Policies page, you can view the policy and the
         service endpoint to which the policy is attached in addition to the security violation
         information counters (use the horizontal scroll bar embedded in the page).
Overview
In this practice, you perform two tests to verify that the attached security policy is functional. You
use the ValidateCreditComposite Test Web Service page to initiate an instance:
     • Without providing WS-Security credentials in the SOAP header
     • By supplying the WS-Security credentials in the SOAP header
Assumptions
You have created the security policy, deployed the ValidateCreditComposite application, and
attached the security policy to the SOAP entry point of the composite application as described in
Practice 15-1 and Practice 15-2.
Tasks
1.   In a web browser window, if needed, log in to Oracle Enterprise Manager by using the
     following steps:
     a. Enter the URL http://admin.example.com:8080/em to access the Oracle
          Enterprise Manager web application.
     b. On the Login page, enter the username weblogic and the password for this user, and
          click Login.
2.   To perform a test of the attached security policy, perform the following steps:
     a. If needed, in the Oracle Fusion Middleware Control Console Target Navigation pane,
          expand the SOA > soa-infra (soa_server1) > default tree, click the
          ValidateCreditComposite [1.0] entry, and click the Policies page.
     b. On the ValidateCreditComposite [1.0] page, click Test.
     c.   On the ValidateCreditComposite [1.0] > Test Web Service > Request tab page, expand
          the request element in the Input Arguments section, enter the following field values,
          and click Test Web Service:
          Field Name                                 Field Value
          CCNumber                                   1234-1234-1234-1234
          Amount                                     100
     Note: Ensure that you close the log file before continuing with the next step.
4.   To execute the second test with the WS-Security credentials provided for the WSS
     Username Token style of security, perform the following steps:
     a. On the ValidateCreditComposite [1.0] > Test Web Service > Request tab page, in the
         Security section, select the WSS Username Token option, enter weblogic in the
         Username field and the password for the weblogic user in the Password field, and
         click Test Web Service.
         Note: You can scroll down and verify that Input Arguments retained the previous
         values that were entered, where CCNumber is 1234-1234-1234-1234 and amount is
         100, before you click Test Web Service.
     Note: Remember to close the log file when you have finished examining its contents.
     In the preceding request log message, observe that the WS-Security elements for
     Username and Password are visible in plain text. Therefore, consider adding additional
     assertions to encrypt the information or use policies that include already implement
     encryption assertions for sensitive information.
6.   On the Oracle Fusion Middleware Control Console Web page, return to the
     ValidateCreditComposite [1.0] Test Web Service page and click the
     ValidateCreditComposite [1.0] link at the top of the page.
7.   To monitor the ValidateCreditComposite [1.0] application policy data, perform the following
     steps:
     a. On the ValidateCreditComposite [1.0] page, click the Policies tab.
         Note: In this case, the initial test is recorded as a violation by the value of 1 that
         appears in the Total Violations column.
         Tip: If you do not see any violations, repeat this step for the ValidateCreditComposite
         [1.0] application in the soa-infra (soa_server2) environment by navigating to the
         application page from the Target Navigation pane through the soa-infra (soa_server2)
         tree.
Practices Overview
Oracle Enterprise Scheduler Service (ESS) is a scheduler that is part of Oracle SOA Suite 12c.
ESS has an Enterprise Manager component to manage job requests, define metadata, and
schedule jobs. You first install Enterprise Scheduler Service. After installing and verifying that
Oracle Enterprise Scheduler Service is added to the domain, you learn how to trigger a
composite by using a scheduler and how to activate and deactivate adapters by using a
schedule.
Overview
In this practice, you extend the Oracle WebLogic edg_domain to include Oracle Enterprise
Scheduler Service (ESS). The task of extending the domain with Oracle Enterprise Scheduler
requires:
     • Creating the ESS schemas in the Oracle Database with the Repository Creation Utility
     • Extending edg_domain with the Oracle Enterprise Scheduler component and targeting
          the component to the existing SOA Managed Servers
     • Packing the extended domain and unpacking the updated configuration on the
          Managed Server hosts
     • Verifying the health and accessibility of the ESS services after starting the domain
Assumptions
     •   The Oracle WebLogic domain (edg_domain) has been created as an Enterprise
         Deployment topology with a cluster of two SOA Managed Servers.
     •   The Oracle WebLogic domain is running.
     •   The Oracle Database is running.
Tasks
In this section, the tasks to be performed include:
     • Creating the ESS schemas with the Repository Configuration Utility (RCU)
     • Extending the existing edg_domain with the ESS components
     • Propagating the domain configuration changes to the Managed Servers in the cluster
     • Verifying that the ESS services are available
     • Backing up the database and domain configuration
     f.   In the “Repository Creation Utility – Checking Prerequisites” dialog box, which indicates
          that the schema check is complete, click OK.
     g.   On the Schema Passwords page, accept the selection of (or select) the “Use same
          passwords for all schemas” option and enter the same password value in the Password
          and Confirm Password fields. Click Next.
          Tip: For simplicity, enter the same schema password that you used when creating the
          schemas for Fusion Middleware Infrastructure.
     h.   On the Map Tablespaces page, review the information presented for the ESS schema
          and the associated tablespace, and click Next.
     i.   In the “Repository Creation Utility – Confirmation” dialog box, click OK.
          Note: Domain Location must include the full path name of the shared folder that was
          created for the Administration Server domain home that was used when creating the
          infrastructure domain.
     c.   On the Database Configuration Type page, the RCU Data option should already be
          selected (if not, select RCU Data). All related fields should also be pre-populated,
          because you already configured the domain to reference the Fusion Middleware
          schemas for the Infrastructure domain. Click Get RCU Configuration after you verify
          that the following fields, database connection, and credential information are correct:
          Field Name                     Value
          Vendor                         Oracle
          Driver                         *Oracle’s Driver (Thin) for Service connections; …
          DBMS/Service                   ORCL
          Host Name                      host02.example.com
          Port                           1521
          Schema Owner                   EDG_STB
          Schema Password                The password entered when creating the schemas by
                                         using the RCU tool
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
          Note: Confirm that the output seen in the Connection Result Log indicates that the
          operation succeeded.
     d.   On the JDBC Component Schema (Component Datasources) page, verify that the
          ESS Schema and ESS MDS Schema row entries appear in the table, and click Next.
     e.   On the JDBC Component Schema Test (or JDBC Test) page, the testing of the two
          ESS data source connections is performed. Verify that the connection tests for the ESS
          Schema and ESS MDS Schema entries are successful, and click Next.
          Note: Because memory resources are low in the classroom environment, you use
          Advanced Configuration to target the ESS components to the existing SOA Managed
          Servers instead of creating additional Managed Servers for ESS. In an environment
          where you have more memory and additional physical hosts, you can create additional
          Managed Servers and clusters for the ESS components. Due to memory constraints,
          the decision is to depart from the EDG reference model and configure ESS to share
          the same Managed Servers to which the SOA components are targeted.
     g.   On the Managed Servers page, make the following changes:
          1) Select the automatically created ess_server1 entry by clicking in the Server Name
               field, and click Delete to remove the additional Managed Server entry.
     h.   On the Clusters page, verify that the soa_cluster1 entry is present, and click Next.
     i.   On the Assign Servers to Clusters page, verify that the two Managed Servers
          (soa_server1 and soa_server2) are assigned to soa_cluster1, and click Next.
     j.   On the HTTP Proxy Applications page, accept the defaults (do not enable the proxy
          application), and click Next.
          Note: The WebLogic domain configuration wizard presents the HTTP Proxy
          Applications page when it detects that there is at least one Managed Server in a cluster
          and a Managed Server not in a cluster in the same domain. Because the load balancer
          Managed Server is in the same domain as the SOA Managed Server instances, the
          HTTP Proxy Applications page is displayed. You accept the default of not creating a
          proxy application for the cluster because the load balancer is already configured with
          the HttpClusterServlet applications to manage the HTTP traffic as required.
     k.   On the Coherence Clusters page, accept the default settings, and click Next.
     l.   On the Machines page, click the Unix Machine tab to verify that the machines created
          during initial Infrastructure domain creation are present, and click Next.
                                Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
     n.   On the Configuration Summary page, review the details, verify that the domain creation
          information is correct, and click Update.
          Note: After you click Update, the Configuration Progress page is displayed. Wait until
          the configuration process completes.
     o.   On the Configuration Progress page, when the progress bar reaches 100% indicating
          completion, click Next.
     p.   On the Configuration Success page, click Finish.
          Note: Clicking Finish closes the configuration wizard.
Starting the Extended Domain and Verifying That Transaction Log Files Are Created
Before you can verify the Oracle Enterprise Scheduler configuration, you must start the domain
servers, verify that the transaction log files are created, and assign the ESSAdmin role to the
SOA Administrator group.
11. To start up the edg_domain, enter the following command in a Terminal window (either on
    host01 or host02):
         $ /practices/scripts/domain.sh startup
         Username [weblogic]:
         Password: password
    Note: Wait for all the domain servers to be started.
     g.   On the “Edit Application Role: ESSAdmin” page, in the Members table section, observe
          that the Administrators group is already a member, and click Add.
     h.   In the Add Principal dialog box, select Group from the Type drop-down menu, enter
          SOA in the Principal Name field with the Starts With filter, and click the Search (right
          arrow) icon . In the Searched Principals result table, select SOA Administrators and
          click OK.
          Note: After clicking OK on the “Edit Application Role: ESSAdmin” page, you are
          returned to the Applications Role page with the Information message indicating that the
          ESSAdmin role is updated as shown in the following image:
     d.   On the “ESS – Diagnostic health check service” page, click Check Health, and verify
          that the message “ESS is up and running” is displayed as the response:
16. Close the “ESS – Diagnostic health check service” web browser window or page.
Overview
In this practice, you activate and deactivate adapters by using ESS functionality.
Assumptions
     •    You have completed practice 16-1 successfully.
Tasks
In this practice, you deploy an application that uses an inbound file adapter. You then activate
and deactivate the inbound file adapter, and observe the changes in behavior.
8.   Click the Adapter Schedules icon on the top-right to define the activate and deactivate
     schedule as shown in the preceding step.
9.   Select the two schedules.
Appendix A
                                 Chapter 17 - Page 1
Appendix A
Appendix Overview
This appendix contains instructions that guide you through examining the configuration of the
load balancer as a stand-alone WebLogic Managed Server implementation.
Note: This type of load balancer implementation is not recommended for production purposes; it
is intended only for instructional purposes. There are better more lightweight methods for
accomplishing the same task.
Appendix A
                                               Chapter 17 - Page 2
Appendix A-1: Examining the Load Balancer HttpClusterServlets
Overview
The steps in this section guide you through the process of examining the HttpClusterServlet
instances that are deployed to the load balancer Managed Server. The HttpClusterServlet
instances receive requests from clients and forward (load balance) the requests either to the
AdminServer or to the clustered Managed Server instances in edg_domain.
Assumptions
     •   None
Tasks
1.   To verify that the load balancer configuration is successfully completed, perform the
     following in the Oracle WebLogic Server Administration Console:
     Note: If required, sign in to the Oracle WebLogic Server Administration Console as the
     administrator again.
     a. In the Domain Structure panel, expand Environment and click Servers. On the
          “Summary of Servers” page, verify that the lbr_server server entry appears in the
          Servers table.
          Note: The lbr_server entry is managed by the Node Manager on adm_machine and
          the Listen Port is set to 8080.
Appendix A
                                                Chapter 17 - Page 3
         Tip: The State and Health values for lbr_server in the Servers table may be different
         depending on when you perform the steps that are listed in this section of the course
         material. For example, if lbr_server is started, the following image shows the expected
         State and Health values that you may see:
    b.   On the “Summary of Servers” page, click the lbr_server Name link. On the “Settings for
         lbr_server” page, under the Configuration > General tab pages, verify that the Listen
         Address is soa.example.com and that the Listen Port 8080 and SSL Listen Port 4443
         are both enabled.
Appendix A
                                               Chapter 17 - Page 4
         Note: The main listen address and ports that are shown here are used for access to
         the SOA applications and the SOA clustered Managed Server instances.
    c.   On the “Settings for lbr_server” page, click the Protocols > Channels tab, and verify the
         following:
         − The Admin_Chan entry exists with the Listen Address admin.example.com and
             Listen Port 8080.
         − The SoaInt_Chan entry has the Listen Address soainternal.example.com with Listen
             Port 8080.
         Note: These two WebLogic Server channels are used to direct the HTTP requests on
         their respective Listen Address and Port combinations to the appropriate server or
         cluster instances in edg_domain.
    d.   To confirm that each network channel is associated with its own WebLogic virtual host
         entry, in the Domain Structure panel, under Environment, click Virtual Hosts and
         confirm the following:
         − The Admin_vHost entry is associated with the Admin_Chan channel.
         − The SoaInt_vHost entry is associated with the SoaInt_Chan channel.
Appendix A
                                                Chapter 17 - Page 5
          Note: The Virtual Hosts are components that are configured to accept requests for the
          AdminServer (Admin_vHost) and internal requests for the SOA clustered servers
          (SoaInt_vHost).
     General Configuration Note: At this stage, you have verified that the main URL
     “hostname:port” combinations have been configured to accept requests from clients, either
     through the Managed Server listen address and port combination or those configured in the
     virtual host and their associated channels.
2.   To view the three deployed HttpClusterServlet applications, perform the following steps:
     a. In the Oracle WebLogic Administration Console Domain Structure panel, click
          Deployments.
     b.   On the “Summary of Deployments” page, in the Deployments table, verify that the
          admin_httpc_servlet Web Application appears and that its Targets column contains
          Admin_vHost.
Appendix A
                                                Chapter 17 - Page 6
         Note: The admin_httpc_servlet is configured to direct requests to the
         adminvh.example.com host on port 7001. You open the WAR file to view this
         information in the web.xml web application deployment descriptor.
    c.   On the “Summary of Deployments” page, click Next several times until you see the
         soaint_httpc_servlet and soa_httpc_servlet entries.
         Note: The Next link is on the right side of the Deployments table, above table
         headings.
Hint: The entries appear when you get to the page “Showing 91 to 100 of 107.”
Appendix A
                                                Chapter 17 - Page 7
3.   To examine the HttpClusterServlet web application configuration for the Managed Servers
     and each of its channels, perform the following steps:
     a. On the host01 or host02 desktop, right-click the “oracle’s Home” desktop icon and
         select Browse Folder to open the File Browser.
     b.   In the File Browser window, click the icon on the extreme left under the main toolbar to
          change the path from buttons to a Location field.
     c.   In the File Browser window, in the Location field, enter /practices/lbr and press
          Enter. When the files are displayed for the selected folder, right-click
          admin_httpc_servlet.war and click “Open with Archive Mounter.”
Appendix A
                                                 Chapter 17 - Page 8
    e.   On the text editor’s web.xml tab page, locate the first <init-param> entry and verify
         that the WebLogicCluster parameter value contains adminvh.example.com:7001.
Appendix A
                                               Chapter 17 - Page 9
         Tip: If you scroll to the end of the edit window and locate the <user-data-
         constraint> XML element, it should contain the <transport-
         guarantee>CONFIDENTAL</transport-guarantee> element, which causes non-
         SSL requests on port 8080 to be redirected to the SSL port on 4443.
    h.   Optionally, in the File Browser window, (if required) navigate to the /practices/lbr
         folder, locate and open the soaint_httpc_servlet.war file with the Archive
         Mounter, and navigate to and open its WEB-INF/web.xml file in the gedit text editor.
         Verify that the value of the WebLogicCluster parameter is also
         “soavh01.example.com:8001| soavh02.example.com:8001.” However, the
         <transport-guarantee> child element of the <user-data-constraint>
         element has the value NONE.
         Note: In this case, the soainternal.example.com requests are not redirected to the SSL
         port. However, redirection still occurs due to the Frontend Host setting in the domain
         cluster configuration.
Appendix A
                                              Chapter 17 - Page 10
                                                             Practice Script Source Code
                                                             Chapter 18
This section contains the listing of all the practice scripts that are used for simplifying the
administration tasks that are performed during the course. Although the scripts are generic, they
are intended for use in the classroom environment and should not be considered as supported
software. The scripts are presented as follows as examples of how you can automate many of
the administrative tasks that can be performed by using command-line tools.
                                        DISCLAIMER:
These scripts are provided for educational purposes only. These scripts are NOT supported by
                            Oracle World Wide Technical Support.
 These scripts have been tested and appear to work as intended in the context of this course.
                You should always run new scripts on a test instance initially.
Script: addenv.sh
#!/bin/bash
cat /practices/scripts/setenv.sh >> $HOME/.bashrc
echo "$HOME/.bashrc updated."
Script: adminserver.py
if len(sys.argv) == 0:
  print "Usage: wlst adminserver.py [start|stop|status]"
  exit()
else:
  if sys.argv[1] != "start" and sys.argv[1] != "stop" and sys.argv[1]
!= "status":
    print "Usage: wlst adminserver.py [start|stop|status]"
    exit()
domain_name="edg_domain"
try:
  domain_path = os.environ["ASERVER"]
except:
  domain_path="/u02/oracle/config/domains/" + domain_name
#lhost=java.net.InetAddress.getLocalHost().getHostName()
lhost="adminvh.example.com"
nmhost=raw_input("Hostname ["+ lhost +"]: ")
if not nmhost:
  nmhost=lhost
luser="weblogic"
nmuser=raw_input("NM Username ["+ luser +"]: ")
bootpfile=domain_path+"/servers/AdminServer/security/boot.properties"
bootpexists=os.path.exists(bootpfile)
if not bootpexists:
  print "Error: "+ bootpfile +" does not exist yet. Please create the
file."
  exit()
try:
  # Connect to NodeManager in order to start AdminServer
  nmConnect(nmuser, nmpsw, nmhost, 5556, domain_name, domain_path,
'ssl')
  if sys.argv[1] == "start":
    #Start Admin Server using NodeManager (boot.properties file must
exist first)
     nmStart('AdminServer')
     print "AdminServer started."
  elif sys.argv[1] == "stop":
     nmKill('AdminServer')
     print "AdminServer killed or stopped."
  elif sys.argv[1] == "status":
     redirect('/dev/null','false')
     print "AdminServer " + nmServerStatus('AdminServer')
     stopRedirect()
  else:
     print "Error: '" + sys.arv[1] + "' is an invalid command line
parameter."
  nmDisconnect()
except:
  print "ERROR... check error messages for cause."
Script: adminserver.sh
#!/bin/bash
# chkconfig: 345 99 10
#
SVCNAME="WebLogic Node Manager"
LOGFILE=/practices/log/$(basename $0 .sh).log
MW_HOME=/u01/oracle/product/fmw
DOMAIN_HOME=/u02/oracle/config/domains/edg_domain
JAVA_HOME=/usr/java/latest
PATH=$JAVA_HOME/bin:$PATH
WLST=/u01/oracle/product/fmw/oracle_common/common/bin/wlst.sh
function mlog() {
  TSTAMP=$(date +"%F %H:%M:%S")
  echo -e "[${TSTAMP}] $1" | tee -a $LOGFILE
}
case "$1" in
start|stop|status)
  $WLST /practices/scripts/adminserver.py $1
  ;;
*)
  echo "Usage: $0 {start|stop|status}"
  exit 3
  ;;
esac
Script: auth.sh
#!/bin/bash
DATADIR=${2:-/practices/practice03}
case "$1" in
backup)
  echo "Backing up server authentication configuration files to
$DATADIR ..."
  tar cvf $DATADIR/auth_data.tar $ASERVER/config/config.xml
$ASERVER/config/fmwconfig/jps-config.xml
$ASERVER/config/fmwconfig/system-jazn-data.xml
$ASERVER/servers/AdminServer/security/boot.properties
  ;;
                              Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Script: backup.sh
#!/bin/bash
function backupDb() {
  if [ -z $ORACLE_BASE ]; then
    echo "Warning: \$ORACLE_BASE environment variable not set. Run on
host where database is configured."
    exit 1
  fi
  echo "Start database backup with tag ${TAG^^}..."
  sqlplus -s "/ as sysdba" <<-END
  PROMPT Shutting down database...
  SHUTDOWN IMMEDIATE;
  EXIT
END
  BACKUP_FILE=${BACKUP_DIR}/db_${TAG}.tar
  tar c${V}pf ${BACKUP_FILE} ${ORACLE_BASE}/oradata/${ORACLE_SID}/* \
          ${ORACLE_BASE}/fast_recovery_area/${ORACLE_SID}/*
  sqlplus -s "/ as sysdba" <<-END
  PROMPT Starting up database...
  STARTUP;
  EXIT
END
function backupAdminDomain() {
  echo "Start AdminServer Domain backup with id ${TAG}..."
function backupDeployPlans () {
  echo "Start Deployment Plans backup with id ${TAG}..."
  BACKUP_FILE=${BACKUP_DIR}/deployplans_${TAG}.tar
  echo "Creating backup file ${BACKUP_FILE} ..."
  tar c${V}pf ${BACKUP_FILE} ${DEPLOY_PLAN_HOME}
  echo "End Deployment Plans backup."
}
function backupAdminApps() {
  echo "Start AdminServer Applications backup with id ${TAG}..."
  BACKUP_FILE=${BACKUP_DIR}/adminapps_${TAG}.tar
  echo "Creating backup file ${BACKUP_FILE} ..."
  tar c${V}pf ${BACKUP_FILE} ${APPHOME}
  echo "End AdminServer Applications backup."
}
function backupDeployPlans () {
  echo "Start Deployment Plans backup with id ${TAG}..."
  BACKUP_FILE=${BACKUP_DIR}/deployplans_${TAG}.tar
  echo "Creating backup file ${BACKUP_FILE} ..."
  tar c${V}pf ${BACKUP_FILE} ${DEPLOY_PLAN_HOME}
  echo "End Deployment Plans backup."
}
function backupManagedConfig() {
  HOST=$(hostname -s)
  echo "Start Managed Server backup on host ${HOST} with id ${TAG}..."
  BACKUP_FILE=${BACKUP_DIR}/managedconfig_${TAG}_${HOST}.tar
  echo "Creating backup file ${BACKUP_FILE} ..."
  tar c${V}pf ${BACKUP_FILE} ${MSERVER}
  echo "End Managed Server backup."
}
function backupOUD() {
  OUD_HOME=/u02/oracle/product/fmw/asinst_1/OUD
  BACKUPDIR=${BACKUP_DIR}
BACKUP_DIR=/u02/backup
ASERVER=${ASERVER:-/u02/oracle/config/domains/edg_domain}
APPHOME=${APPHOME:-/u02/oracle/config/applications/edg_domain}
MSERVER=${MSERVER:-/u01/oracle/config/domains/edg_domain}
DEPLOY_PLAN_HOME=/u02/oracle/config/dp
case "$1" in
db)
  backupDb ;;
admin)
  backupAdminDomain ;;
apps)
  backupAdminApps ;;
dplan)
  backupDeployPlans ;;
managed)
  backupManagedConfig ;;
ldap)
  backupOUD ;;
*)
  echo "Usage: $0 {admin|apps|db|dplan|ldap|managed} [tag/id]"
  exit 1
  ;;
                              Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Script: build12c.xml
<project name="deploy" default="help">
  <!-- This build file was automatically generated at 10:05:29 PM on
Jul 14, 2010 by weblogic.BuildXMLGen -->
  <!-- BUILD PROPERTIES ADJUST THESE FOR YOUR ENVIRONMENT -->
  <property name="app.name" value="default-name"/>
  <property name="server.targets" value="soa_server1"/>
  <property name="ear" value="${dist.dir}/${app.name}.ear"/>
  <property name="verbose" value="true"/>
  <property name="adminurl" value="t3://adminvh.example.com:7001"/>
  <!-- Print's out the project help -->
  <path id="weblogic.classpath">
          <fileset dir="/u01/oracle/product/fmw/wlserver/server/lib">
                <include name="weblogic.jar" />
                <include name="*.jar" />
          </fileset>
  </path>
<taskdef name="wldeploy"
classname="weblogic.ant.taskdefs.management.WLDeploy">
  <classpath refid="weblogic.classpath"/>
</taskdef>
  <target name="help">
    <java fork="no" classname="org.apache.tools.ant.Main">
      <arg line="-projecthelp"/>
    </java>
  </target>
  <!-- Builds the entire deploy application -->
  <!-- Only compiles deploy application, no appc -->
  <!-- Deletes the dest.dir to clean the build -->
  <!-- Runs weblogic.appc on your application -->
  <!-- Deploys the entire deploy application -->
  <!-- target name="deploy"
          description="Deploys (and redeploys) the entire deploy
application">
    <wldeploy user="${user}" password="${password}"
adminurl="${adminurl}"
               action="deploy" source="${ear}" name="${app.name}"/>
  </target -->
  <target name="deploy"
          description="Deploys (and redeploys) the entire deploy
application">
    <wldeploy action="deploy" name="${app.name}"
      source="${ear}" library="false"
      user="${user}" password="${password}"
      verbose="false" adminurl="${adminurl}"
      remote="true" upload="true"
      targets="${server.targets}" />
  </target>
Script: configmds.py
if len(sys.argv) == 0:
  print "Usage: wlst configmds.py [/path/|path/]filename.ear"
  exit()
WLST=/u01/oracle/product/fmw/oracle_common/common/bin/wlst.sh
EARFILE=$1
if [ -z ${EARFILE} ]; then
  echo "Usage: $0 [/path/|path/]filename.ear"
  exit 1
else
  if [ -f ${EARFILE} ]; then
    if [ -z ${VIEWMDS} ]; then
      ${WLST} /practices/scripts/configmds.py ${EARFILE}
    else
      jar xf ${EARFILE} adf/META-INF/adf-config.xml
      sed -rn -e '/metadata-store-usages/,/\/metadata-store-usages/ p'
adf/META-INF/adf-config.xml
      rm -rf adf/
    fi
  else
    echo "File '${EARFILE}' not found."
    exit 1
  fi
fi
Script: cpdomain.sh
#!/bin/bash
MW_HOME=${MW_HOME:-/u01/oracle/product/fmw}
ASERVER=${ASERVER:-/u02/oracle/config/domains/edg_domain}
MSERVER=${MSERVER:-/u01/oracle/config/domains/edg_domain}
APPHOME=${APPHOME:-/u02/oracle/config/applications/edg_domain}
LOGDIR=/practices/log
# If the file name does not have a path prefix then add the current
working directory
if [[ "${TEMPL_FILE}" == "${TEMPL_FILE%/*.*}" ]]; then
  TEMPL_FILE=${PWD}/${TEMPL_FILE}
fi
cd $MW_HOME/oracle_common/common/bin
case "$1" in
pack)
  echo "Packing domain in template file ${TEMPL_FILE}..."
  ./pack.sh -managed=true -domain=${ASERVER} -template=${TEMPL_FILE} -
template_name=${TEMPL_NAME}
  ;;
unpack)
  echo "Unpacking domain from template file ${TEMPL_FILE}..."
  ./unpack.sh -domain=${MSERVER} -overwrite_domain=true -
template=${TEMPL_FILE} -log_priority=DEBUG \
              -log=${LOGDIR}/${1}_${TEMPL_NAME}.log -
app_dir=${APPHOME}
  ;;
*)
  echo "Usage: $0 {pack|unpack} [[path/]template_file_name]"
  exit 3
  ;;
esac
Script: deploy12c.sh
#!/bin/bash
#path found
#/u01/oracle/product/fmw/wlserver
export
ANT_HOME=/u01/oracle/product/fmw/oracle_common/modules/org.apache.ant_
1.9.2
export PATH=${PATH}:${ANT_HOME}/bin
#echo "$PATH"
export SOA_HOME=/u01/oracle/product/fmw/soa
                              Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
export SAR_FILE=$1
export CONFIG_PLAN=$3
export PARTITION=$2
if [ -z "$SAR_FILE" ]
then
        echo "To deploy a composite application use the following
syntax:"
     echo ". "
     echo " Usage: deploy12c.sh sar-file-name [partition] [config-
plan]"
     echo ". "
     echo " Revision is derived from the SAR file name. The sar-file-
name must be provided."
     echo " The config-plan is the XML file name for the
configuration plan (if any)."
     echo " The partition is set to 'default' unless specified as the
third parameter."
     echo ". "
        exit 1
fi
if [ -z "$PARTITION" ]
then
     export PARTITION=default
     echo "Setting Partition : $PARTITION"
fi
if [ -n "$CONFIG_PLAN" ]
then
        export CONFIG_PLAN=-Dconfigplan=$CONFIG_PLAN
        echo "Setting Configuration Plan : $CONFIG_PLAN"
fi
#end
Script: deploy_ear.sh
#!/bin/bash
#path found
#/u01/oracle/product/fmw/wlserver
#export
ANT_HOME=/u01/oracle/product/fmw/oracle_common/modules/org.apache.ant_
1.9.2
#export PATH=${PATH}:${ANT_HOME}/bin
export SOA_HOME=/u01/oracle/product/fmw/soa
export SERVER_HOME=/u01/oracle/product/fmw/wlserver/server
export PATH=${PATH}:${SERVER_HOME}/lib:${SERVER_HOME}/lib/weblogic.jar
echo "$PATH"
#export SOA_HOST=http://adminvh.example.com:7001
export SOA_HOST=http://soainternal.example.com:8080
export APP_NAME=$1
export PASSWD=$3
export USER=$2
if [ -z "$APP_NAME" ]
then
        echo "To deploy a ear application use the following syntax:"
     echo ". "
     echo " Usage: deploy_ear.sh app-name "
     echo ". "
        exit 1
fi
export CURR_DIR=$PWD
# Call setDomainEnv here.
DOMAIN_HOME="/u01/oracle/config/domains/edg_domain"
. ${DOMAIN_HOME}/bin/setDomainEnv.sh $*
                              Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
#end
Script: domain.py
if len(sys.argv) == 0:
  print "Usage: wlst domain.py [start|stop]"
  exit()
else:
  if sys.argv[1] != "start" and sys.argv[1] != "stop":
    print "Usage: wlst domain.py [start|stop]"
    exit()
domain_name="edg_domain"
try:
  domain_path = os.environ["ASERVER"]
except:
  domain_path="/u02/oracle/config/domains/" + domain_name
#lhost=java.net.InetAddress.getLocalHost().getHostName()
admhost="adminvh.example.com"
luser='weblogic'
admuser=raw_input("Username ["+ luser +"]: ")
if not admuser:
  admuser=luser
admpsw="".join(System.console().readPassword("%s",["Password: "]))
if not admpsw:
   print "Error: Please enter the WebLogic administrator password."
   exit()
try:
  print 'Connecting to Node Manager on '+admhost
  redirect('/dev/null','false')
  nmConnect(admuser, admpsw, admhost, 5556, domain_name, domain_path,
'ssl')
  stopRedirect()
  if sys.argv[1] == "start":
     nmStart('AdminServer')
     print "AdminServer started."
     print 'Connecting to AdminServer...'
     connect(admuser, admpsw, 't3://'+admhost+':7001')
     print 'Starting the soa_cluster1 Cluster...'
     start('soa_cluster1', 'Cluster')
     lbrBean=getMBean('/Servers/lbr_server')
     if lbrBean!=None:
       print 'Starting the load balancer server %s...' %
lbrBean.getName()
       start(lbrBean.getName(),lbrBean.getType())
     disconnect()
  elif sys.argv[1] == "stop":
     print 'Connecting to AdminServer...'
     connect(admuser, admpsw, 't3://'+admhost+':7001')
     print 'Shutting down the soa_cluster1 Cluster...'
     shutdown('soa_cluster1', 'Cluster', force="true", block="true")
     lbrBean=getMBean('/Servers/lbr_server')
     if lbrBean!=None:
       print 'Shutting down the load balancer server %s...' %
lbrBean.getName()
       shutdown(lbrBean.getName(),lbrBean.getType(), force="true",
block="true")
     disconnect()
     print 'Stopping the AdminServer...'
     nmKill('AdminServer')
     print "AdminServer killed or stopped."
  nmDisconnect()
except:
  print "ERROR: Check error messages for cause."
exit()
Script: domain.sh
#!/bin/bash
# chkconfig: 345 99 10
#
MW_HOME=/u01/oracle/product/fmw
JAVA_HOME=/usr/java/latest
PATH=$JAVA_HOME/bin:$PATH
WLST=/u01/oracle/product/fmw/oracle_common/common/bin/wlst.sh
case "$1" in
startup)
  $WLST /practices/scripts/domain.py start
  ;;
shutdown)
  $WLST /practices/scripts/domain.py stop
  ;;
*)
  echo "Usage: $0 {startup|shutdown}"
  exit 1
  ;;
esac
Script: granttxr2soa.sh
#!/bin/bash
SQLPLUS=$(find /u01 -type f -name sqlplus)
if [ -z $SQLPLUS ]; then
  echo "Error: SQL*Plus application cannot be found."
  exit 1
fi
${SQLPLUS} "/ as sysdba" <<-END
GRANT SELECT ON sys.dba_pending_transactions TO EDG_SOAINFRA;
Script: initenv.sh
export TZ=$(date +%Z%z)
export JAVA_HOME=/usr/java/jdk1.7.0_55
export PATH=$JAVA_HOME/bin:$PATH
#
alias cls=clear
if [ -f /usr/bin/rlwrap ]; then
  RLWRAP=/usr/bin/rlwrap
fi
SQLPLUS=$(find /u01 -type f -name sqlplus)
if [ ! -z $SQLPLUS ]; then
  alias sqlplus="${RLWRAP:+rlwrap }${SQLPLUS}"
fi
RMAN=$(find /u01 -type f -name rman)
if [ ! -z $RMAN ]; then
  alias rman="${RLWRAP:+rlwrap }${RMAN}"
fi
export PS1="\h:\w:\!> "
Script: install_infra.sh
#!/bin/bash
# Additional options for silent instal
# -printdiskusage -printmemory
source /practices/scripts/setjdk.sh
RESPONSE_FILE=${1:-$(find
/practices/practice03/install_fmw_infra.rsp)}
if [ ! -f $RESPONSE_FILE ]; then
   RESPONSE_FILE=/practices/practice03/install_fmw_infra.rsp
fi
echo RESPONSE_FILE=$RESPONSE_FILE
if [ -f $RESPONSE_FILE ]; then
  echo "Executing..."
  echo "java -d64 -jar /install/soa/fmw_12.1.3.0.0_infrastructure.jar
-silent -responseFile $RESPONSE_FILE"
  java -d64 -jar /install/soa/fmw_12.1.3.0.0_infrastructure.jar -
silent -responseFile $RESPONSE_FILE
else
  echo "Response file '$RESPONSE_FILE' not found."
                              Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Script: install_soa.sh
#!/bin/bash
MW_HOME=/u01/oracle/product/fmw
DOMAIN_HOME=/u02/oracle/config/domains/edg_domain
JAVA_HOME=/usr/java/latest
PATH=$JAVA_HOME/bin:$PATH
WLST=/u01/oracle/product/fmw/oracle_common/common/bin/wlst.sh
RESPONSE_FILE=$(find /practices/practice04/install_soa.rsp)
case "$1" in
silent)
  echo RESPONSE_FILE=$RESPONSE_FILE
  if [ -f $RESPONSE_FILE ]; then
    echo "Executing..."
    echo "java -d64 -jar /install/soa/fmw_12.1.3.0.0_soa.jar -silent -
responseFile $RESPONSE_FILE"
    java -d64 -jar /install/soa/fmw_12.1.3.0.0_soa.jar -silent -
responseFile $RESPONSE_FILE
  else
    echo "Response file '$RESPONSE_FILE' not found."
    echo "Usage: install_infra.sh [response_file_path]"
  fi
  ;;
*)
  java -d64 -jar /install/soa/fmw_12.1.3.0.0_soa.jar
  ;;
esac
Script: lbr.py
def showServers():
  print "cmo" + cmo
  svrList = cmo.getServers()
  print svrList
if len(sys.argv) == 0:
  print "Usage: wlst lbr.py [start|stop]"
domain_name="edg_domain"
try:
  domain_path = os.environ["ASERVER"]
except:
  domain_path="/u02/oracle/config/domains/" + domain_name
#lhost=java.net.InetAddress.getLocalHost().getHostName()
admhost="adminvh.example.com"
luser='weblogic'
admuser=raw_input("Username ["+ luser +"]: ")
if not admuser:
  admuser=luser
admpsw="".join(System.console().readPassword("%s",["Password: "]))
if not admpsw:
   print "Error: Please enter the WebLogic administrator password."
   exit()
try:
  if sys.argv[1] == "start":
     print 'Connecting to AdminServer...'
     connect(admuser, admpsw, 't3://'+admhost+':7001')
     #showServers()
     print 'Starting the load balancer managed server lbr_server...'
     start('lbr_server', 'Server')
     disconnect()
  elif sys.argv[1] == "stop":
     print 'Connecting to AdminServer...'
     connect(admuser, admpsw, 't3://'+admhost+':7001')
     #showServers()
     print 'Shutting down the load balancer managed server
lbr_server...'
     shutdown('lbr_server', 'Server', block="true")
     disconnect()
     print 'Stopping the AdminServer...'
  else:
                              Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  nmDisconnect()
except:
  print "ERROR: Check error messages for cause."
exit()
Script: lbr.sh
#!/bin/bash
# chkconfig: 345 99 10
#
MW_HOME=/u01/oracle/product/fmw
JAVA_HOME=/usr/java/latest
PATH=$JAVA_HOME/bin:$PATH
WLST=/u01/oracle/product/fmw/oracle_common/common/bin/wlst.sh
case "$1" in
start|stop)
  $WLST /practices/scripts/lbr.py $1
  ;;
*)
  echo "Usage: $0 {start|stop}"
  exit 1
  ;;
esac
Script: ldapadd.sh
MW_HOME=/u02/oracle/product/fmw
OUD_HOME=${MW_HOME}/asinst_1/OUD
HOST=ldap.example.com
PORT=1389
LDIF_FILE=$1
if [ -d ${OUD_HOME} ]; then
  if [[ ! -z $LDIF_FILE && -f ${LDIF_FILE} ]]; then
    read -s -p "Password: " LDAP_PWD
    echo -e "\n"
    if [ -z ${LDAP_PWD} ]; then
Script: mkbootp.sh
#!/bin/bash
if [ ! -f $ASERVER/servers/AdminServer/security/boot.properties ];
then
  read -p "Admin Username: " usr
  read -s -p "Admin Password: " psw
   if [ ! -d $ASERVER/servers/AdminServer/security ]; then
     mkdir -p $ASERVER/servers/AdminServer/security
   fi
Script: modify_nmprops.sh
sed -e "/^QuitEnabled/ s/=.*$/=true/" $ASERVER/nodemanager.properties
                              Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Script: nm.sh
#!/bin/bash
# chkconfig: 345 99 10
#
SVCNAME="WebLogic Node Manager"
MW_HOME=/u01/oracle/product/fmw
LISTENHOST=${2:-adminvh.example.com}
if [[ "$LISTENHOST" == "adminvh.example.com" || $LISTENHOST =~
host0[1-2].example.com ]]; then
  DOMAIN_HOME=${ASERVER:-/u02/oracle/config/domains/edg_domain}
else
  DOMAIN_HOME=${MSERVER:-/u01/oracle/config/domains/edg_domain}
fi
ping -c 1 ${LISTENHOST} >/dev/null
if [ $? -gt 0 ]; then
  exit 2
fi
#
# Exit if the domain home does not exist yet
if [ ! -d $DOMAIN_HOME ]; then
#
# Check ListenAddress in nodemanager.properties and update if needed
#
NM_LISTENHOST=$(grep "ListenAddress="
$DOMAIN_HOME/nodemanager/nodemanager.properties)
NM_LISTENHOST=${NM_LISTENHOST/ListenAddress=/}
if [ "$LISTENHOST" != "$NM_LISTENHOST" ]; then
   sed -i -e "s/^ListenAddress=.*/ListenAddress=${LISTENHOST}/"
$DOMAIN_HOME/nodemanager/nodemanager.properties
fi
LOGFILE=/practices/log/$(basename $0
.sh)_${LISTENHOST%.example.com}.log
JAVA_HOME=/usr/java/latest
PATH=$JAVA_HOME/bin:$PATH
function mlog() {
  TSTAMP=$(date +"%F %H:%M:%S")
  echo -e "[${TSTAMP}] $1" | tee -a $LOGFILE
}
function statusNm() {
function startNm() {
  statusNm
  if [ $status == "Stopped" ]; then
    nohup $DOMAIN_HOME/bin/startNodeManager.sh &>> $LOGFILE &
  fi
}
case "$1" in
start)
  startNm
  mlog "Started ${SVCNAME}.\n"
  ;;
restart)
  stopNm
  startNm
  mlog "Restarted ${SVCNAME}.\n"
  ;;
stop)
  stopNm
  mlog "Stopped ${SVCNAME}.\n"
  ;;
status)
  statusNm
  echo "${SVCNAME} is ${status}."
  ;;
*)
  echo "Usage: $0 {start|stop|restart|status}"
  exit 3
  ;;
esac
Script: rcu.sh
#!/bin/bash
RCU=$(find /u01/oracle/product/fmw -name rcu -type f)
if [ "$RCU"=="" ]; then
  RCU=/u01/oracle/product/fmw/oracle_common/bin/rcu
fi
read -s -p "SYS password: " dbpwd
echo ""
case $1 in
                              Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Script: restore.sh
#!/bin/bash
function restoreDb() {
  if [ -z $ORACLE_BASE ]; then
     echo "Warning: \$ORACLE_BASE environment variable not set. Run on host
where database is configured."
     exit 1
  fi
function restoreAdminDomain() {
  echo "Start AdminServer Domain restore with id ${TAG}..."
  BACKUP_FILE=${BACKUP_DIR}/admindomain_${TAG}.tar
  if [ -f ${BACKUP_FILE} ]; then
     echo "Restore file ${BACKUP_FILE} ..."
     tar x${V}pf ${BACKUP_FILE} -C /
     echo "End AdminServer Domain restore."
  else
     echo "Restore file ${BACKUP_FILE} not found."
  fi
}
function restoreAdminApps() {
  echo "Start AdminServer Applications restore with id ${TAG}..."
  BACKUP_FILE=${BACKUP_DIR}/adminapps_${TAG}.tar
function restoreDeployPlans() {
  echo "Start Deployment Plans restore with id ${TAG}..."
  BACKUP_FILE=${BACKUP_DIR}/deployplans_${TAG}.tar
  if [ -f ${BACKUP_FILE} ]; then
     echo "Restore file ${BACKUP_FILE} ..."
     tar x${V}pf ${BACKUP_FILE} -C /
     echo "End Deployment Plans restore."
  else
     echo "Restore file ${BACKUP_FILE} not found."
  fi
}
function restoreManagedConfig() {
  HOST=$(hostname -s)
  echo "Start Managed Server restore on host ${HOST} with id ${TAG}..."
  BACKUP_FILE=${BACKUP_DIR}/managedconfig_${TAG}_${HOST}.tar
  if [ -f ${BACKUP_FILE} ]; then
     echo "Restore file ${BACKUP_FILE} ..."
     tar x${V}pf ${BACKUP_FILE} -C /
     echo "End Managed Server restore."
  else
     echo "Restore file ${BACKUP_FILE} not found."
  fi
}
function restoreOUD() {
  OUD_HOME=/u02/oracle/product/fmw/asinst_1/OUD
  BACKUPDIR=${BACKUP_DIR}
  echo "Unpacking backup archive..."
  tar xp${V}f ${BACKUPDIR}/oud_${TAG}.tar -C ${BACKUPDIR}
  echo "Restoring OUD config folder..."
  tar xp${V}f ${BACKUPDIR}/oud/config_${TAG}.tar -C ${OUD_HOME}
  echo "Restoring OUD logs folder..."
  tar xp${V}f ${BACKUPDIR}/oud/logs_${TAG}.tar -C ${OUD_HOME}
  for backend in ${BACKUPDIR}/oud/* ; do
BACKUP_DIR=/u02/backup
ASERVER=${ASERVER:-/u02/oracle/config/domains/edg_domain}
APPHOME=${APPHOME:-/u02/oracle/config/applications/edg_domain}
MSERVER=${MSERVER:-/u01/oracle/config/domains/edg_domain}
DEPLOY_PLAN_HOME=/u02/oracle/config/dp
case "$1" in
db)
   restoreDb ;;
admin)
   restoreAdminDomain ;;
apps)
   restoreAdminApps ;;
dplan)
   restoreDeployPlans ;;
managed)
   restoreManagedConfig ;;
ldap)
   restoreOUD ;;
*)
   echo "Usage: $0 {admin|apps|db|dplan|ldap|managed}"
   exit 1
   ;;
esac
Script: setbashrc.sh
#!/bin/bash
if [ -f $HOME/.bashrc ]; then
  cp --backup=t $HOME/.bashrc $HOME/.bashrc_backup
Script: setenv.sh
export ASERVER=/u02/oracle/config/domains/edg_domain
export APPHOME=/u02/oracle/config/applications/edg_domain
export MSERVER=/u01/oracle/config/domains/edg_domain
export MW_HOME=/u01/oracle/product/fmw
alias wlst=$MW_HOME/oracle_common/common/bin/wlst.sh
Script: setjdk.sh
#!bin/bash
export JAVA_HOME=/usr/java/jdk1.7.0_55
export PATH=$JAVA_HOME/bin:$PATH
Script: setwlsenv.sh
#!/bin/bash
ASERVER=${1:-${ASERVER:-/u02/oracle/config/domains/edg_domain}}
ENVSCRIPT=$ASERVER/bin/setUserOverrides.sh
echo '#!/bin/bash' > $ENVSCRIPT
echo 'export TZ=$(date +%Z%z)' >> $ENVSCRIPT
Script: startadmin.sh
#!/bin/bash
read -s -p "NM Password: " psw
cd /u01/oracle/product/fmw/oracle_common/common/bin
./wlst.sh <<-END
nmConnect("weblogic", "$psw", "adminvh.example.com", 5556,
"edg_domain", "/u02/oracle/config/domains/edg_domain", 'ssl')
nmStart("AdminServer")
nmDisconnect()
exit()
END
Script: startnm.sh
#!/bin/bash
cd $ASERVER/bin
nohup ./startNodeManager.sh &>> /practices/log/nm.log &
Script: create_lbr.py
#NEW WLST Script to create a Managed Server with Channels as a Load
Balancer
#================
def initProperties(propertyFile):
  global userName
  global passWord
  global domainName
  global domainDir
  print "Loading properties from %s." % propertyFile
  loadProperties(propertyFile)
  #
  uName=raw_input("Username [%s]: " % userName)
  if uName:
    userName=uName
  passWord="".join(System.console().readPassword("%s",["Password: "]))
  if not passWord:
    print "Error: Please enter the WebLogic administrator password."
    exit()
  domDir=raw_input("Domain path [%s]: " % domainDir)
  if domDir:
     domainDir=domDir
  domName=os.path.basename(domainDir)
def waitFor(secs):
  print "Waiting for %s seconds" % secs
  #java.lang.Thread.sleep(secs*1000)
  time.sleep(secs)
def initScript():
  hideDisplay()
  hideDumpStack("true")
  if connected=="false":
    try:
      URL="t3://%s:%s" % (adminServerListenAddress,
adminServerListenPort)
      print "Connecting to AdminServer with URL %s" % URL
      connect(userName, passWord, URL)
    except WLSTException:
                              Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
def startTransaction():
  edit()
  startEdit()
  print "Started transaction..."
def endTransaction():
  startEdit()
  save()
  activate(block="true")
  print "End transaction: changes saved and activated."
def endScript():
  if connected:
    print 'Disconnecting from AdminServer...'
cd("/Servers/"+serverName+"/WebServer/"+serverName+"/WebServerLog/"+se
rverName)
  print "Setting WebServerLog attributes for %s..." % serverName
  set("NumberOfFilesLimited", "false")
propertyFilename=os.path.dirname(os.path.realpath(sys.argv[0]))+"/"+sy
s.argv[0]+".properties"
  if len(sys.argv)>1:
    propertyFilename=os.path.abspath(sys.argv[1])
  if not os.path.exists(propertyFilename):
    print "Error: Property file %s does not exist." % propertyFilename
    exit()
  # Set key properties and variables
  initProperties(propertyFilename)
  # Do additional initialization
  initScript()
  vhosts=vhostIds.split(",")
  vhostladdrs=vhListenAddresses.split(",")
  vhostlports=vhListenPorts.split(",")
  vhostservlets=vhHttpServlets.split(",")
  startTransaction()
  # 1. Create the Managed Server instance
                              Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Script: create_lbr.py.properties
#WLST Script lbr.py Default Properties file
# 1. Properties to connect to the AdminServer in the specified domain
domainDir=/u02/oracle/config/domains/edg_domain
adminServerListenAddress=adminvh.example.com
Script: create_lbr.sh
#!/bin/bash
MW_HOME=/u01/oracle/product/fmw
JAVA_HOME=/usr/java/latest
PATH=$JAVA_HOME/bin:$PATH
WLST=/u01/oracle/product/fmw/oracle_common/common/bin/wlst.sh
Script: delete_lbr.py
#WLST Script to delete a Managed Server with Channels as a Load
Balancer
#This undoes the work done by create_lbr.py and useds the same
property file
                              Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
def initScript():
  hideDisplay()
  hideDumpStack("true")
  # try connecting to a running server if it is already running ...
  if connected=="false":
    try:
      URL="t3://%s:%s" % (adminServerListenAddress,
adminServerListenPort)
      print "Connecting to AdminServer with URL %s" % URL
      connect(userName, passWord, URL)
    except WLSTException:
      print 'Server at '+URL+' is not running, attemtping ot start a
new server'
  hideDumpStack("false")
  if connected=="false":
    print 'Starting new server at %s with name %s' % (URL,
adminServerName)
    print 'Check log messages in %s/servers/%s/logs' % (domainDir,
adminServerName)
    _timeOut = Integer(TimeOut)
    _startServerJvmArgs=startServerJvmArgs
def startTransaction():
  edit()
  startEdit()
def endTransaction():
  startEdit()
  save()
  activate(block="true")
def endScript():
  if connected:
    disconnect()
  print 'Removal of Load balancer Managed Server instance completed.'
propertyFilename=os.path.dirname(os.path.realpath(sys.argv[0]))+"/crea
te_lbr.py.properties"
  if len(sys.argv)>1:
    propertyFilename=os.path.abspath(sys.argv[1])
  if not os.path.exists(propertyFilename):
    print "Error: Property file %s does not exist." % propertyFilename
    exit()
  # Set key properties and variables
  initProperties(propertyFilename)
  vhosts=vhostIds.split(",")
  vhostladdrs=vhListenAddresses.split(",")
  vhostlports=vhListenPorts.split(",")
  vhostservlets=vhHttpServlets.split(",")
  # Do additional initialization
  initScript()
   i=0
   for vh in vhosts:
     virtualHostId=vh+'_vHost'
     channleName=vh+'_Chan'
     httpServlet=vhostservlets[i]
     undeploy_WebApp(httpServlet, virtualHostId)
     i=i+1
   undeploy_WebApp(managedHttpServlet, msName)
   startTransaction()
   for vh in vhosts:
     virtualHostId=vh+'_vHost'
     channelName=vh+'_Chan'
     delete_NetworkAccessPoint("/Servers/"+msName, channelName)
     delete_VirtualHost("/", virtualHostId)
   delete_Server("/", msName)
   endTransaction()
Script: delete_lbr.sh
#!/bin/bash
MW_HOME=/u01/oracle/product/fmw
JAVA_HOME=/usr/java/latest
PATH=$JAVA_HOME/bin:$PATH
WLST=/u01/oracle/product/fmw/oracle_common/common/bin/wlst.sh
Script: upd_targets.sh
#!/bin/bash
echo "Updating Load balancer application targets."
CONFIGFILE=${ASERVER}/config/config.xml
backups=( $(ls ${ASERVER}/config/backup_config*.xml) )
nbr=${#backups[*]}
echo "Backing up 'config.xml' to 'backup_config${nbr}.xml'"
cp ${CONFIGFILE} ${ASERVER}/config/backup_config${nbr}.xml
echo "Targets before update: -----> "
sed -n -e '/admin_httpc_servlet<\/name>/,/target>/ p' \
    -e '/soaint_httpc_servlet<\/name>/,/target>/ p' \
    -e '/soa_httpc_servlet<\/name>/,/target>/ p' ${CONFIGFILE}
echo "Updating Load Balancer application targets..."
sed -i -e '/admin_httpc_servlet<\/name>/,/target>/
s=target.*target=target>Admin_vHost</target=' \
    -e '/soaint_httpc_servlet<\/name>/,/target>/
s=target.*target=target>SoaInt_vHost</target=' \
    -e '/soa_httpc_servlet<\/name>/,/target>/
s=target.*target=target>lbr_server</target=' ${CONFIGFILE}
echo "Targets after update: -----> "
sed -n -e '/admin_httpc_servlet<\/name>/,/target>/ p' \
    -e '/soaint_httpc_servlet<\/name>/,/target>/ p' \
    -e '/soa_httpc_servlet<\/name>/,/target>/ p' ${CONFIGFILE}
echo "Load balancer application targets updated."
Script: reset_last_ord.sql
col max_ord_id new_value last_ord_id
Script: reset_ord_seq.sql
PROMPT drop sequence 'ORDER_SEQ'
DROP SEQUENCE ORDER_SEQ;
PROMPT create sequence 'ORDER_SEQ'
CREATE SEQUENCE ORDER_SEQ INCREMENT BY 1 NOCACHE START WITH
&start_value;
Script: show_items.sql
SELECT * FROM items;
Script: show_ord_items.sql
set echo off verify off
ACCEPT order_id PROMPT "Enter the Order ID: "
SELECT *
FROM orders
WHERE ord_id = &order_id;
PROMPT "Ordered Items are:"
SELECT ord_id, item_id, prod_id, price, quantity
FROM items
WHERE ord_id = &order_id;
undef order_id
Script: show_ord.sql
SELECT * FROM orders;
Script: soademo_create.sql
SPOOL soademo_create.log
SPOOL OFF
Script: soademo_data.sql
SPOOL soademo_data.log
ACCEPT password PROMPT "Password: "
DEFINE hostname=example.com
-- INSERT INTO CUSTOMERS VALUES (CUST_ID, FIRST_NAME, LAST_NAME,
EMAIL, USERNAME, PASSWRD, STATUS);
-- INSERT INTO CREDITCARDS VALUES (CARD_NUMBER, CARD_TYPE, CUST_ID,
CREDIT_LIMIT, STATUS, RATING);
-- INSERT INTO ADDRESS VALUES (ADDR_ID, CUST_ID, STREET, CITY, STATE,
ZIP, COUNTRY);
-- Media Players
                              Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
-- Media Players
INSERT INTO EXTERNAL_STORE                  VALUES          ('MEDP01',               20);
INSERT INTO EXTERNAL_STORE                  VALUES          ('MEDP02',               20);
INSERT INTO EXTERNAL_STORE                  VALUES          ('MEDP03',               15);
INSERT INTO EXTERNAL_STORE                  VALUES          ('MEDP04',               10);
INSERT INTO EXTERNAL_STORE                  VALUES          ('MEDP05',               10);
-- Media Players
INSERT INTO PRODID_XREFS                VALUES          ('SKU301',               'MEDP01');
INSERT INTO PRODID_XREFS                VALUES          ('SKU302',               'MEDP02');
INSERT INTO PRODID_XREFS                VALUES          ('SKU303',               'MEDP03');
INSERT INTO PRODID_XREFS                VALUES          ('SKU304',               'MEDP04');
INSERT INTO PRODID_XREFS                VALUES          ('SKU305',               'MEDP05');
COMMIT;
UNDEFINE passwords
UNDEFINE hostname
SPOOL OFF
Script: soademo_drop.sql
DROP   TABLE SHIPTYPES CASCADE CONSTRAINTS;
DROP   TABLE PRODUCTS CASCADE CONSTRAINTS;
DROP   TABLE ITEMS CASCADE CONSTRAINTS;
DROP   TABLE ORDERS CASCADE CONSTRAINTS;
DROP   TABLE ADDRESS CASCADE CONSTRAINTS;
DROP   TABLE CREDITCARDS CASCADE CONSTRAINTS;
DROP   TABLE CUSTOMERS CASCADE CONSTRAINTS;
DROP   TABLE INTERNAL_STORE CASCADE CONSTRAINTS;
DROP   TABLE ONLINE_STORE CASCADE CONSTRAINTS;
DROP   TABLE EXTERNAL_STORE CASCADE CONSTRAINTS;
DROP   TABLE PRODID_XREFS CASCADE CONSTRAINTS;
DROP   SEQUENCE ORDER_SEQ;
DROP   SEQUENCE CUSTOMER_SEQ;
DROP   SEQUENCE ADDRESS_SEQ;
Script: soademo_user.sql
grant connect, resource to soademo identified by &password;