19 Scaling Up Your Environment

You can expand your environment by adding Managed Servers, expanding your domain to include other products, creating a cluster of Managed Servers, creating a standalone domain or system component, and copying existing Oracle homes or domains.

Overview of Scaling Up Your Environment

Scalability is the ability of a system to provide throughput in proportion to, and limited only by, available hardware resources. A scalable system is one that can handle increasing numbers of requests without adversely affecting response time and throughput.

The growth of computational power within one operating environment is called vertical scaling. Horizontal scaling is leveraging multiple systems to work together on a common problem in parallel.

Oracle Fusion Middleware scales both vertically and horizontally.

Oracle Fusion Middleware provides great vertical scalability, allowing you to add more Managed Servers or components to the same host. This is known as scale up.

Horizontally, Oracle Fusion Middleware can provide failover capabilities to another host computer. That way, if one computer goes down, your environment can continue to serve the consumers of your deployed applications. This is also known as scaling out or machine scale out. See Scaling Out a Topology in the High Availability Guide.

Deploying a high availability system minimizes the time when the system is down (unavailable) and maximizes the time when it is running (available). Oracle Fusion Middleware is designed to provide a wide variety of high availability solutions, ranging from load balancing and basic clustering to providing maximum system availability during catastrophic hardware and software failures.

High availability solutions can be divided into two basic categories: local high availability and disaster recovery. See:

Extending a Domain to Support Additional Components

When you create an Oracle WebLogic Server domain, you create it using a particular domain template. That template supports a particular component or group of components, such as Oracle WebLogic Server. If you want to add other components, such as Oracle HTTP Server, to that domain, you can extend the domain by creating additional Managed Servers in the domain, using a domain template for the component which you want to add.

When you extend a domain, the domain must be offline.

To extend a domain, you use the Oracle WebLogic Server Configuration Wizard from an Oracle home into which the desired component has been installed. Then, you select the domain that you want to extend and the component you want to add. For detailed information, see Configuring Your WebLogic Domain in Installing and Configuring the Oracle Fusion Middleware Infrastructure.

For example, to extend a domain that initially was created to support Oracle Application Development Framework so that it can now also support Oracle HTTP Server:

  1. Use RCU to add any required schemas for the component, as described in Creating Schemas in Creating Schemas with the Repository Creation Utility.
  2. Install Oracle HTTP Server, as described in About the Oracle HTTP Server Installation in Installing and Configuring Oracle HTTP Server.
  3. From the Oracle home, invoke the Configuration Wizard, using the following command:
    (UNIX) ORACLE_HOME/oracle_common/common/bin/config.sh
    (Windows) ORACLE_HOME\oracle_common\common\bin\config.cmd
    

    The Configuration Wizard's Welcome screen is displayed.

  4. Select Update an existing domain.
  5. In Domain Location, specify the location of the domain.
  6. Click Next.
  7. Select Update Domain Using Product Templates.
  8. Select Oracle HTTP Server (colocated).
  9. Click Next.
  10. Select Extend my domain automatically to support the following added products, Then, select the source from which this domain is to be extended. For example, select Oracle HTTP Server.
  11. Click Next.
  12. Select either RCU Data or Manual Configuration. If you select RCU Data, the information is automatically populated when you then select Get RCU Configuration. If you select Manual Configuration, click Next.

    Select the schemas for the new component you added. If the values in the Component Datasources page are not correct, modify the values.

  13. Click Next.

    The JDBC Component Schema Test screen is displayed.

  14. If the test succeeds, click Next.

    The Advanced Configuration screen is displayed.

  15. Select System Components.
  16. Click Next.
  17. Click Add to create a new Oracle HTTP Server instance.
  18. Enter a name for the instance and select OHS as the component type.
  19. Click Next.
  20. The fields in the OHS Server page are prepopulated.
  21. Click Next.
  22. If you do not want to create a new machine, in the Machines page, click Next.
  23. In the Assign System Components page, double-click the server to move it under the machine.
  24. Review the information on the screen and if it is correct, click Update.
  25. When the operation completes, click Done.

Adding Managed Servers to a Domain

You can add Managed Servers to a domain to increase the capacity of your system. The Managed Servers can be added to a cluster.

When a Managed Server is added to a cluster, it inherits the applications and services that are targeted to the cluster. When a Managed Server is not added as a part of a cluster, it does not automatically inherit the applications and services from the template.

To add a Managed Server to a domain, you can use Fusion Middleware Control, the Oracle WebLogic Server Administration Console, or WLST.

To add a Managed Server to a domain using the Fusion Middleware Control:

  1. From the WebLogic Domain menu, choose Environment, then, Servers.

    The Servers page is displayed.

  2. Click Create.

    The Create a Server page is displayed.

  3. For Name, enter a name for the server.

    Each server within a domain must have a name that is unique for all configuration objects in the domain. Within a domain, each server, computer, cluster, JDBC connection pool, virtual host, and any other resource type must be named uniquely and must not use the same name as the domain.

  4. For Sever Listen Port, enter the port number from which you want to access the server instance.

    If you run multiple server instances on a single computer, each server must use its own listen port.

  5. Specify whether this server is to be a standalone server or a member of an existing cluster:
    • If this server is to be a standalone server, select No, this is a standalone server.

    • If this server is to be part of an existing cluster, select Yes, make this server a member of an existing Cluster. Then, select the cluster.

    • If this server is to be part of a new cluster, click Create a cluster.

  6. Click Next.
  7. For Select a Machine, either select an existing machine or click Create new machine.
  8. Click Create.
  9. If the server or cluster did not have Oracle JRF applied, apply JRF, as described in Applying Oracle JRF Template to a Managed Server or Cluster.

Applying Oracle JRF Template to a Managed Server or Cluster

Oracle JRF (Java Required Files) consists of those components not included in the Oracle WebLogic Server installation and that provide common functionality for Oracle business applications and application frameworks.

Oracle JRF consists of several independently developed libraries and applications that are deployed into a common location. The components that are considered part of Java Required Files include Oracle Application Development Framework shared libraries and ODL logging handlers.

You must apply the JRF template to a Managed Server or cluster in certain circumstances. You can only apply JRF to Managed Servers that are in a domain in which JRF was configured. That is, you must have selected Oracle JRF in the Configuration Wizard when you created or extended the domain.

Note the following points about applying JRF:

  • When you add a Managed Server to an existing cluster that is already configured with JRF, you do not need to apply JRF to the Managed Server.

  • If you create a server using Fusion Middleware Control, the JRF template is automatically applied.

  • When you add a Managed Server to a domain and the Managed Server requires JRF services, but the Managed Server is not part of a cluster, you must apply JRF to the Managed Server.

  • When you create a new cluster and the cluster requires JRF, you must apply JRF to the cluster.

  • You do not need to apply JRF to Managed Servers that are added by product templates during the template extension process (though you must select JRF in the Configuration Wizard).

  • You must restart the server or cluster after you apply JRF.

    Note that if you start the server or cluster using Node Manager (for example, through the Administration Console, which uses Node Manager), you must set the Node Manager property startScriptEnabled to true. See Configuring Node Manager to Start Managed Servers.

The format of the applyJRF command is:

applyJRF(target={server_name | cluster_name | *}, domainDir=domain_path,
        [shouldUpdateDomain= {true | false}])

You can use the applyJRF command online or offline:

  • In online mode, the JRF changes are implicitly activated if you use the shouldUpdateDomain option with the value true (which is the default.) In online mode, this option calls the online WLST save() and activate() commands.

  • In offline mode, you must restart the Administration Server and the Managed Servers or cluster. (In offline mode, if you specify the shouldUpdateDomain option with the value true, this option calls the WLST updateDomain() command.)

For example, to configure the Managed Server server1 with JRF, use the following command:

applyJRF(target='server1', domainDir='DOMAIN_HOME')

To configure all Managed servers in the domain with JRF, specify an asterisk (*) as the value of the target option.

To configure a cluster with JRF, use the following command:

applyJRF(target='cluster1', domainDir='DOMAIN_HOME')

For additional information about JRF, see:

Creating Clusters

A WebLogic Server cluster consists of multiple WebLogic Server server instances running simultaneously and working together to provide increased scalability and reliability. A cluster appears to clients to be a single WebLogic Server instance.The server instances that constitute a cluster can run on the same computer, or be located on different computers. You can increase a cluster's capacity by adding additional server instances to the cluster on an existing computer, or you can add computers to the cluster to host the incremental server instances. Each server instance in a cluster must run the same version of WebLogic Server.

You can create a cluster of Managed Servers using WLST, the Oracle WebLogic Server Administration Console, or Fusion Middleware Control. This section describes how to create a cluster using Fusion Middleware Control.

To create a cluster of two Managed Servers, wls_server1 and wls_server2:

  1. From the WebLogic Domain menu, choose Environment, then, Clusters.

    The Clusters page is displayed.

  2. ExpandCreate. Then, select either Cluster or Dynamic Cluster.
    For this example, select Cluster.

    The Create a Static Cluster page is displayed.

  3. For Name, enter a name for the cluster.
  4. In the Cluster Messaging Mode section, select one of the following:
    • Unicast. Then, for Unicast Broadcast Channel, enter a channel. This channel is used to transmit messages within the cluster.

    • Multicast. Then, for Multicast Broadcast Channel, enter a channel. A multicast address is an IP address in the range from 224.0.0.0 to 239.255.255.255. For Multicast Port, enter a port number.

      Note:

      You must ensure that the multicast address is not in use.

  5. Click Next.
  6. In the Add Servers page, select one or more servers to be added to the cluster. In this scenario, select wls_server1 and wls_server2.
  7. Click Create.

Now, you have a cluster with two members, wls_server1 and wls_server2.

See Understanding WebLogic Server Clustering in Administering Clusters for Oracle WebLogic Server for more information about clusters.

Using Elasticity and Dynamic Clusters for On-Demand Scaling

You can configure elastic scaling for dynamic clusters. Elastic scaling adds or removes dynamic server instances on demand or based on certain conditions.

Elasticity allows you to configure elastic scaling for a dynamic cluster based on either of the following:

  • Manually adding or removing a running dynamic server instance from an active dynamic cluster. This is called on-demand scaling. You can perform on-demand scaling using the Fusion Middleware component of Enterprise Manager, the WebLogic Server Administration Console, or the WebLogic Scripting Tool (WLST).

  • Establishing policies that set the conditions under which a dynamic cluster should be scaled up or down and actions that define the scaling operations themselves. When the conditions defined in the scaling policy occur, the corresponding scaling action is triggered automatically.

Dynamic clusters consist of server instances that can be dynamically scaled up to meet the resource needs of your application. A dynamic cluster uses a single server template to define configuration for a specified number of generated (dynamic) server instances. When you create a dynamic cluster, the dynamic servers are preconfigured and automatically generated for you, enabling you to easily scale up the number of server instances in your dynamic cluster when you need additional server capacity.

For more information about elasticity and dynamic clusters, see What is Elasticity? in Configuring Elasticity in Dynamic Clusters for Oracle WebLogic Server.

Creating a Standalone Domain and a System Component

You can create a standalone domain for system components, such as Oracle HTTP Server, using the Configuration Wizard as described in Configuring Oracle HTTP Server in a Standalone Domain in Installing and Configuring Oracle HTTP Server.

Alternatively, you can use WLST to create a standalone domain that contains a system component, for example, Oracle HTTP Server:

  1. Invoke WLST from the following directory:
    cd ORACLE_HOME/oracle_common/common/bin
    ./wlst.sh
    
  2. Read the standalone domain template. For example, for the Oracle HTTP Server standalone domain template:
    readTemplate('ORACLE_HOME/ohs/common/templates/wls/ohs_standalone_template.jar')
  3. Configure Node Manager:
    cd('/')
    create('domainName', 'SecurityConfiguration')   
    cd('SecurityConfiguration/domain_name')
    set('NodeManagerUsername', 'username')
    set('NodeManagerPasswordEncrypted', 'password')
    setOption('NodeManagerType', 'PerDomainNodeManager')
    
  4. The standalone template contains default configuration values. However, you can change those values. For example:
    cd('/OHS/ohs1')
    cmo.setAdminHost('127.0.0.1')
    cmo.setAdminPort('7779')
    cmo.setListenAddress('localhost')
    cmo.setListenPort('7777')
    cmo.setSSLListenPort('4443')
    
  5. Create the domain. Note that this operation takes some time.
    writeDomain('domain_dir')
    closeTemplate()

Creating a System Component Instance in a WebLogic Server Domain

You can create a system component instance, such as Oracle HTTP Server, in a WebLogic Server domain using the Configuration Wizard as described in Configuring Oracle HTTP Server in a WebLogic Server Domain in Installing and Configuring Oracle HTTP Server.

Alternatively, you can create a system component instance, for example Oracle HTTP Server in the following ways:

This section describes how to create a system component instance using WLST commands. It uses Oracle HTTP Server as an example and assumes that you have created a WebLogic Server domain that contains Oracle JRF.

  1. Invoke WLST from the following directory:
    cd ORACLE_HOME/oracle_common/common/bin
    ./wlst.sh
    
  2. Read the domain template and add the template for the system component. The following example shows the Oracle HTTP Server template:
    readDomain('DOMAIN_HOME')
    addTemplate('ORACLE_HOME/ohs/common/templates/wls/ohs_managed_template.jar')
    
  3. If you have not already created a machine for the system component, create one:
    cd('/')
    create('ohs_machine', 'Machine')
    cd('/Machines/ohs_machine')
    create('ohs_machine', 'NodeManager')
    cd('NodeManager/ohs_machine')
    

    In this case, leave the Node Manager port as it is.

  4. Create the system component instance, in this case, Oracle HTTP Server:
    cd('/')
    create('myohs', 'SystemComponent')
    cd('/SystemComponent/myohs')
    cmo.setComponentType('OHS')
    set('Machine', 'ohs_machine')
    
  5. Configure the system component instance that you just created. Note that the properties that you set will be different for each type of system component. For example, for Oracle HTTP Server:
    cd('/OHS/myohs')
    cmo.setAdminHost('127.0.0.1')
    cmo.setAdminPort('7779')
    cmo.setListenPort('7777')
    cmo.setSSLListenPort('4443')
    
  6. Update the domain:
    updateDomain()
    closeDomain()