This section helps you get started by providing an overview of the steps involved in setting up SOA as a Service (SOAaaS) and OSB as a Service (OSBaaS) to provision a service instance on one or more physical hosts.
Table 28-1 Getting Started with Middleware as a Service
Step | Task |
---|---|
1 |
Clone the database used by the Source SOA domain or OSB domain. Oracle recommends using the DBaaS feature available in Enterprise Manager. See Setting Up DBaaS used to Clone a SOA Repository. |
2 |
Meet the Prerequisites for creating the SOA/OSB provisioning profiles: See Prerequisites for Creating a SOA or an OSB Provisioning Profile |
3 |
Setting Up SOA and OSB Self Service Portal. See Setting Up the SOA and OSB Cloud Self Service Portal |
Following are the high-level steps to setup the Database Self Service Portal and request for a database instance that can be used for setting up the SOA Self Service Portal. Cloning method followed for setting up database instance for SOA is using RMAN backup. Following are the high-level steps:
Table 28-2 Provisioning Databases Using RMAN Backup Profile
Step | Task | Role |
---|---|---|
1 |
Follow the steps in the Getting Started section to enable DBaaS. |
See Getting Started |
2 |
Set up one or more PaaS Infrastructure Zones. Note: Oracle recommends using the same Infrastructure zone for Database and SOA/OSB. |
|
3 |
Create a database provisioning profiles using the RMAN Backup option. Note: Select the SOA/OSB dehydration store database used by the source SOA/OSB domain to create the profile. |
See Creating a Database Provisioning Profile Using RMAN Backup |
4 |
Create a database pool. |
|
5 |
Create a database service template for SOA. Create a database service template for OSB. |
|
6 |
While deploying a database for SOA/OSB, select the service template you have created. |
Note:
The same user credentials that are used to create the Database Service instance should be used for creating the SOA/OSB Service instance. If you instead use other credentials, you must ensure that the SOA Service user has been granted the required accesses on the database.
Along with DBaaS, PDBaaS is also supported for cloning a SOA repository.
Prerequisite to publish JRF template
To publish a template for a JRF 12.1.x domain follow this procedure as a prerequisite:
JRF 12.1.x domain contains data sources. The administrator must create a profile of the source database and publish a DBaaS template.
The user should request for a database service using the previously created template.
The user should request for a complete JRF domain using the previously requested database for the data sources in the domain.
Prerequisite:
To truncate the business data present inside the SOA dehydration store (source environment), use the truncate script provided as a part of the SOA product. For this, you must first create a Generic Component and upload truncate_soa_oracle.sql
script to Software Library. For more information on this, see the Enterprise Manager Cloud Control Administrator’s Guide.
Note that the truncate script (truncate_soa_oracle.sql) is located in the following directory path: /MW_HOME/SOA_ORACLE_HOME/rcu/integration/soainfra/sql/truncate
To create the service template for a SOA Profile, follow these steps:
Prerequisite (Applicable only for OSB 11g targets)
OSB uses Logging Last Resource (LLR) transaction optimization feature which creates LLR tables in the OSB schema for each managed server in the OSB domain, including the Administration Server.
As part of cloning the OSB database, you need to drop these tables. Otherwise, startup of the cloned OSB domain will fail. To drop these tables, you can create a a Generic Component and upload llr_table.sql
script to the Software Library.
To create the script for each for each LLR table present in source OSB environment, add the following statement to the SQL script:
TRUNCATE table WL_LLR_<SERVER_NAME>
For example, if the OSB domain has administrator server and two managed servers with name OSB_SERVER1
and OSB_SERVER2
, then the content of the sql script would look like:
TRUNCATE table WL_LLR_ADMINSERVER
TRUNCATE table WL_LLR_OSB_SERVER1
TRUNCATE table WL_LLR_OSB_SERVER2
To create the service template for OSB profile, follow these steps:
Meet all the prerequisites mentioned in the Enterprise Manager Lifecycle Management Administrator’s Guide before creating a SOA or an OSB provisioning profile.
The EM_SSA_ADMINISTRATOR
can configure and set up the SOA/OSB Cloud Self Service Portal by creating middleware pools, setting up quotas, defining request settings, configuring the load balancer, creating service templates, and configuring chargeback.
Note:
To create a database profile for SOA or OSB domain, you must use a Single Instance database or a RAC database. For a RAC database, use GridLink data source. Multi datasource is not supported.
The following table lists the tasks that must be performed, and the user roles that can perform the task.
Step | Task | User Role |
---|---|---|
1 |
Set up one or more PaaS Infrastructure Zones. See Creating a PaaS Infrastructure Zone |
EM_CLOUD_ADMINISTRATOR |
2 |
Creating SOA Provisioning Profiles. Meet the prerequisites mentioned in Prerequisites for Creating a SOA or an OSB Provisioning Profile. For steps on how to create the SOA profile, see the Enterprise Manager Lifecycle Management Administrator’s Guide. Note: Ensure that you grant privileges on the profile to the
|
EM_SSA_ADMINISTRATOR |
3 |
EM_SSA_ADMINISTRATOR |
|
4 |
EM_SSA_ADMINISTRATOR |
|
5 |
EM_SSA_ADMINISTRATOR |
|
6 |
EM_SSA_ADMINISTRATOR |
|
7 |
EM_SSA_ADMINISTRATOR |
|
8 |
EM_SSA_ADMINISTRATOR |
A Middleware Pool contains a set of resources that can be used to provision a service instance within a PaaS Infrastructure Zone. You must create separate Middleware pools in the PaaS Infrastructure Zone for each WebLogic version of Middleware Home.
To create a SOA Pool or an OSB Pool, follow these steps:
A Service Template is a service definition that can be used to provision a service instance on a middleware pool.
Prerequisites
A PaaS Infrastructure Zone must have been created.
A Middleware Pool must have been created.
A Middleware Provisioning Profile with appropriate values must be present in the Software Library. The owner of the profile must grant View privileges on the profile to the SSA user.
The database service template for a SOA profile and OSB profile are different. For information on how it can be created, see Creating a Database Service Template for SOA Profile and Creating a Database Service Template for OSB Profile.
If the SOA or OSB setup is configured with OHS or OTD settings, you must configure the Service Template also with these settings. To do so, on the Service Template creation page, ensure that you select Enabled for Load Balancer and provide the necessary OHS or OTD details. If not, the deployment procedure will fail and the Service Template will not get created.
Note:
You can edit a service template that has active instances and modify the configuration parameters. When a service template is modified:
New instances created after the changes have been made will use the new parameters.
Old instances or instances created before the template was modified will use the earlier values.
Changes made to zones and roles will be applicable to both old and new instances.
To create a Middleware Service Template, follow these steps:
This sample postscript prints the contents of the properties file and also prints details regarding the managed server, administration server, and so on.
The properties file contains the following:
OPERATION= CREATE SERVICE_INSTANCE= inst_01_14b3668772c DOMAIN_NAME= inst_01_14b3668772c_SSA_USER1 DOMAIN_HOME= /scratch/middleware_ps4/inst_01_14b3668772c_SSA_USER1 MW_HOME= /scratch/middleware_ps4 WLS_HOME= /scratch/middleware_ps4/wlserver_10.3 ADMIN_SERVER= example.com,27877,8142 MANAGED_SERVERS= example.com,13614,1488,4166; EXTERNAL_HOSTS= example.com EXECUTE_SCRIPTS_ON_ADMIN_SERVER_HOST= Yes EXECUTE_SCRIPTS_ON_MANAGED_SERVER_HOSTS= Yes
Note:
Similar to Create operation, you can perform a Delete or a Scale Up operation.
A sample script is given below:
#!/usr/bin/perl use File::Path; #use File::Spec(); use File::Spec; use Cwd; my $dir = getcwd(); my $inputFile = $ARGV[0]; print "Input File Location = ".$inputFile."\n"; print "===================================================================="."\n"; print "The properties file contents accessible to this script are as follows "."\n"; my @prop; #Create Hash from properties open FILE, "<$inputFile" or die("Could not open text file '" . $inputFile . "': $!"); my %hash; while ($line4 = <FILE>) { chomp($line4); my ($key, $val) = split(/=/,$line4); print $key."= ".$val."\n"; $hash{$key}=$val; } close FILE; print "===================================================================="."\n"; my $ACTION = $hash{'OPERATION'}; if ( $ACTION eq "CREATE" ) { print " This is Service Instance Creation Operation \n"; } elsif ( $ACTION eq "SCALEUP" ) { print " This is Scale Up Operation \n"; } elsif ( $ACTION eq "DELETE" ) { print " This is Delete Service Instance Operation \n"; } else { print " Unsuppported Configuration Action".$ACTION."\n"; } print "===================================================================="."\n"; my $ADMIN_SERVER = $hash{'ADMIN_SERVER'}; print "======================Admin Server Details Begins==================="."\n"; my @fields = split (/,/, $ADMIN_SERVER); my $arraySize = @fields; if ($arraySize == 4) { print "Admin Server Name is ".$fields[0]."\n"; print "Admin Server Host Name is ".$fields[1]."\n"; print "Admin Server NON SSL Port is ".$fields[2]."\n"; print "Admin Server SSL Port is ".$fields[3]."\n"; } else { print "Admin Server Host Name is ".$fields[0]."\n"; print "Admin Server NON SSL Port is ".$fields[1]."\n"; print "Admin Server SSL Port is ".$fields[2]."\n"; } print "======================Admin Server Details Ends===================="."\n"; print "\n"; print "======================Managed Server's Details Begins==============="."\n"; my $MANAGED_SERVERS = $hash{'MANAGED_SERVERS'}; my $managedServer; my @noOfManagedServers = split (/;/, $MANAGED_SERVERS); for ($count = 0; $count < @noOfManagedServers; $count++) { $managedServer = $noOfManagedServers[count]; @fields = split (/,/, $managedServer); $arraySize = @fields; if ( $ACTION eq "DELETE" ) { print "Managed Server Name is ".$fields[0]."\n"; print "Managed Server Host Name is ".$fields[1]."\n"; print "Managed Server NON SSL Port is ".$fields[2]."\n"; print "Managed Server SSL Port is ".$fields[3]."\n"; } else { print "Managed Server Host Name is ".$fields[0]."\n"; print "Managed Server NON SSL Port is ".$fields[1]."\n"; print "Managed Server SSL Port is ".$fields[2]."\n"; } print "\n" } print "===================Managed Server's Details Ends===================="."\n"; print "\n"; print "===================External Host's Details Begins==================="."\n"; my $EXTERNAL_HOSTS = $hash{'EXTERNAL_HOSTS'}; my @hosts = split (/,/, $EXTERNAL_HOSTS); for ($count = 0; $count < @hosts; $count++) { print "External Host is ".$hosts[count]."\n"; } print "=====================External Host's Details Ends==================="."\n";
The output of the directive is given below:
Input File Location = /ade/jan1215/oracle/work/agentStateDir/1422547083465.properties ====================================================================== The properties file contents accessible to this script are as follows OPERATION= CREATE SERVICE_INSTANCE= inst_01_14b3668772c DOMAIN_NAME= inst_01_14b3668772c_SSA_USER1 DOMAIN_HOME= /scratch/middleware_ps4/inst_01_14b3668772c_SSA_USER1 MW_HOME= /scratch/middleware_ps4 WLS_HOME= /scratch/middleware_ps4/wlserver_10.3 ADMIN_SERVER= example.com,27877,8142 MANAGED_SERVERS= example.com,13614,1488,4166; EXTERNAL_HOSTS= example.com EXECUTE_SCRIPTS_ON_ADMIN_SERVER_HOST= Yes EXECUTE_SCRIPTS_ON_MANAGED_SERVER_HOSTS= Yes ====================================================================== This is Service Instance Creation Operation ====================================================================== =======================Admin Server Details Begins=================== Admin Server Host Name is example.com Admin Server NON SSL Port is 27877 Admin Server SSL Port is 8142 =======================Admin Server Details Ends==================== =======================Managed Server's Details Begins=============== Managed Server Host Name is example.com Managed Server NON SSL Port is 13614 Managed Server SSL Port is 1488 =======================Managed Server's Details Ends==================== =======================External Host's Details Begins=================== External Host is example.com =======================External Host's Details Ends===================
The Resource Management Script specifies the location of the property file which contains a list of name value pairs. The content of the file varies based on the Create, ScaleUp, and Delete operations.
The content of the file for the Create operation are:
ACTION=CREATE
ZONE_NAME=<value>
POOL_NAME=<value>
NUMBER OF SERVERS BEFORE THIS REQUEST=<value>
NUMBER OF SERVERS REQUESTED=<value>
NUMBER OF SERVERS POSSIBLE WITH AVAILABLE RESOURCES=<value>
NUMBER OF SERVERS NEEDED=<value>
MAXIMUM SERVERS ALLOWED PER HOST=<value>
MIDDLEWARE_HOME=<value>
EXPECTED CPU UTILIZATION IN PERCENTAGE=<value>
EXPECTED MEMORY CONSUMPTION IN GB==<value>
The content of the file for the Scaleup operation are:
ACTION=SCALEUP
ZONE_NAME=<value>
POOL_NAME=<value>
NUMBER OF SERVERS BEFORE THIS REQUEST=<value>
NUMBER OF SERVERS REQUESTED=<value>
NUMBER OF SERVERS POSSIBLE WITH AVAILABLE RESOURCES=<value>
NUMBER OF SERVERS NEEDED=<value>
MAXIMUM SERVERS ALLOWED PER HOST=<value>
MIDDLEWARE_HOME=<value>
DOMAIN_NAME=<value>
EXPECTED CPU UTILIZATION IN PERCENTAGE=<value>
EXPECTED MEMORY CONSUMPTION IN GB==<value>
The content of the file for the Delete operation are:
ACTION=DELETE
ZONE_NAME=<value>
POOL_NAME=<value>
NUMBER OF SERVERS BEFORE THIS REQUEST=<value>
NUMBER OF SERVERS BEING REMOVED=<value>
HOSTS FROM WHERE SERVERS BEING REMOVED=<value>
MIDDLEWARE_HOME=<value>
DOMAIN_NAME=<value>
This section provides the prerequisites and steps for creating a SOA instance. This procedure should be performed by logging in as a SSA user.
Meet the following prerequisites before creating a SOA instance:
A database instance should be ready. To create a database instance see Requesting a Database.
The EM SSA Administrator should have created a SOA service template. For the steps to create a SOA service template, see Creating SOA and OSB Service Templates.