Professional Documents
Culture Documents
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;