PK t1zDoa,mimetypeapplication/epub+zipPKt1zDiTunesMetadata.plistM artistName Oracle Corporation book-info cover-image-hash 141247266 cover-image-path OEBPS/dcommon/oracle-logo.jpg package-file-hash 120568394 publisher-unique-id E38249-02 unique-id 908127009 genre Oracle Documentation itemName Oracle® Fusion Middleware High Availability Guide, 12c (12.1.2) releaseDate 2013-09-18T09:52:15Z year 2013 PK^=5RMPKt1zDMETA-INF/container.xml PKYuPKt1zDOEBPS/jmsjta.htm[X JMS and JTA High Availability

5 JMS and JTA High Availability

This chapter describes Java Message Service (JMS) and Java Transaction API (JTA) high availability.

This chapter includes the following topics:


See Also:

For more information on working with JMS or JTA, see one of the following topics:


5.1 About JMS and JTA Services for High Availability

Java Message Service (JMS) is an application program interface (API) that supports the formal communication known as messaging between computers in a network.

Java Transaction API (JTA) specifies standard Java interfaces between a transaction manager and the parties involved in a distributed transaction system: the resource manager, the application server, and the transactional applications.

You can configure JMS and JTA services for high availability by using a migratable target, a special target that can migrate from one server in a cluster to another. A migratable target provides a way to group migratable services that should move together. When a migratable target migrates, all services the target hosts also migrate.

5.2 Configuring JMS and JTA Services for High Availability

To configure a migratable JMS service for migration, you must deploy it to a migratable target. The migratable target specifies a set of servers that can host a target, and can specify a user-preferred host for the services and an ordered list of candidate backup servers if the preferred server fails. Only one server can host the migratable target at any one time.

After you configure a service to use a migratable target, the service is independent from the server member that is currently hosting it. For example, if a JMS server with a deployed JMS queue is configured to use a migratable target then the queue is independent of when a specific server member is available. That is, the queue is always available when the migratable target is hosted by any server in the cluster.

You can manually migrate pinned migratable services from one server instance to another in the cluster if a server fails or as part of regularly scheduled maintenance. If you do not configure a migratable target in the cluster, migratable services can migrate to any WebLogic Server instance in the cluster.

5.3 User-Preferred Servers and Candidate Servers

When you deploy a JMS service to the migratable target, you can select a user-preferred server target to host the service. When configuring a migratable target, you can also specify constrained candidate servers (CCS) that can host the service if the user-preferred server fails. If the migratable target does not specify a constrained candidate server, you can migrate the JMS server to any available server in the cluster.

WebLogic Server enables you to create separate migratable targets for JMS services. This allows you to always keep each service running on a different server in the cluster, if necessary. Conversely, you can configure the same selection of servers as the constrained candidate servers for both JTA and JMS, to ensure that the services remain co-located on the same server in the cluster.


See Also:

For more information, see the following topics in the Administration Console Online Help:

  • "Configure migratable targets for JMS-related services"

  • "Configure migratable targets for the JTA Transaction Recovery Service"


5.4 Considerations for Using File Persistence (WebLogic JMS)

You can configure JMS messages and JTA logs to be stored on the file system. For high availability, you must use a shared file system. See Chapter 3, "Using Shared Storage" for information on what to consider when using a shared file system to store these artifacts.


See Also:

For more information see "WebLogic JMS Architecture and Environment" in the guide Administering JMS Resources for Oracle WebLogic Server.


5.4.1 Considerations for Using File Stores on NFS

If you store JMS messages and transaction logs on an NFS-mounted directory, Oracle strongly recommends that you verify the behavior of a server restart after an abrupt machine failure. Depending on the NFS implementation, different issues can arise after a failover/restart.

To verify server restart behavior, abruptly shut down the node that hosts WebLogic servers while the servers are running.

  • If you configured the server for server migration, it should start automatically in failover mode after the failover period.

  • If you did not configure the server for server migration, you can manually restart the WebLogic Server on the same host after the node completely reboots.

If Oracle WebLogic Server does not restart after abrupt machine failure, verify whether or not it is due to an I/O exception that is similar to the following by reviewing the server log files:

<MMM dd, yyyy hh:mm:ss a z> <Error> <Store> <BEA-280061> <The persistent 
store "_WLS_server_1" could not be deployed: 
weblogic.store.PersistentStoreException: java.io.IOException: 
[Store:280021]There was an error while opening the file store file 
"_WLS_SERVER_1000000.DAT" 
weblogic.store.PersistentStoreException: java.io.IOException: 
[Store:280021]There was an error while opening the file store file 
"_WLS_SERVER_1000000.DAT" 
        at weblogic.store.io.file.Heap.open(Heap.java:168) 
        at weblogic.store.io.file.FileStoreIO.open(FileStoreIO.java:88)
...
java.io.IOException: Error from fcntl() for file locking, Resource
temporarily unavailable, errno=11

This error occurs when the NFSv3 system does not release locks on the file stores. WebLogic Server maintains locks on files that store JMS data and transaction logs to prevent data corruption that can occur if you accidentally start two instances of the same Managed Server. Because the NFSv3 storage device doesn't track lock owners, NFS holds the lock indefinitely if a lock owner fails. As a result, after abrupt machine failure followed by a restart, subsequent attempts by WebLogic Server to acquire locks may fail.

How you resolve this error depends on your NFS environment: (See Oracle Fusion Middleware Release Notes for updates on this topic.)

  • For NFSv4 environments, you can set a tuning parameter on the NAS server to release locks within the approximate time required to complete server migration; you do not need to follow the procedures in this section. See your storage vendor's documentation for information on locking files stored in NFS-mounted directories on the storage device, and test the results.

  • For NFSv3 environments, the following sections describe how to disable WebLogic file locking mechanisms for: the default file store, a custom file store, a JMS paging file store, a diagnostics file store.


WARNING:

NFSv3 file locking prevents severe file corruptions that occur if more than one Managed Server writes to the same file store at any point in time.

If you disable NFSv3 file locking, you must implement administrative procedures / policies to ensure that only one Managed Server writes to a specific file store. Corruption can occur with two Managed Servers in the same cluster or different clusters, on the same node or different nodes, or on the same domain or different domains.

Your policies could include: never copy a domain, never force a unique naming scheme of WLS-configured objects (servers, stores), each domain must have its own storage directory, no two domains can have a store with the same name that references the same directory.

If you configure a Managed Server using a file store for server migration, always configure the database- based leasing option. This option enforces additional locking mechanisms using database tables and prevents automated restart of more than one instance of a particular Managed Server.


Disabling File Locking for the Default File Store

To disable file locking for the default file store using the Administration Console:

  1. If necessary, click Lock & Edit in the Change Center (upper left corner) of the Administration Console to get an Edit lock for the domain.

  2. In the Domain Structure tree, expand the Environment node and select Servers.

  3. In the Summary of Servers list, select the server you want to modify.

  4. Select the Configuration > Services tab.

  5. Scroll down to the Default Store section and click Advanced.

  6. Scroll down and deselect the Enable File Locking check box.

  7. Click Save. If necessary, click Activate Changes in the Change Center.

  8. Restart the server you modified for the changes to take effect.

The resulting config.xml entry looks like the following:

  <server>
    <name>examplesServer</name>
    ...
    <default-file-store>
      <synchronous-write-policy>Direct-Write</synchronous-write-policy>
      <io-buffer-size>-1</io-buffer-size>
      <max-file-size>1342177280</max-file-size>
      <block-size>-1</block-size>
      <initial-size>0</initial-size>
      <file-locking-enabled>false</file-locking-enabled>
    </default-file-store>
  </server>

Disabling File Locking for a Custom File Store

To disable file locking for a custom file store using the Administration Console:

  1. If necessary, click Lock & Edit in the Change Center (upper left corner) of the Administration Console to get an Edit lock for the domain.

  2. In the Domain Structure tree, expand the Services node and select Persistent Stores.

  3. In the Summary of Persistent Stores list, select the custom file store you want to modify.

  4. On the Configuration tab for the custom file store, click Advanced.

  5. Scroll down and deselect the Enable File Locking check box.

  6. Click Save. If necessary, click Activate Changes in the Change Center.

  7. If the custom file store was in use, you must restart the server for the changes to take effect.

The resulting config.xml entry looks like the following:

  <file-store>
    <name>CustomFileStore-0</name>
    <directory>C:\custom-file-store</directory>
    <synchronous-write-policy>Direct-Write</synchronous-write-policy>
    <io-buffer-size>-1</io-buffer-size>
    <max-file-size>1342177280</max-file-size>
    <block-size>-1</block-size>
    <initial-size>0</initial-size>
    <file-locking-enabled>false</file-locking-enabled>
    <target>examplesServer</target>
  </file-store>

Disabling File Locking for a JMS Paging File Store

To disable file locking for a JMS paging file store using the Administration Console:

  1. If necessary, click Lock & Edit in the Change Center (upper left corner) of the Administration Console to get an Edit lock for the domain.

  2. In the Domain Structure tree, expand the Services node, expand the Messaging node, and select JMS Servers.

  3. In the Summary of JMS Servers list, select the JMS server you want to modify.

  4. On the Configuration > General tab for the JMS Server, scroll down and deselect the Paging File Locking Enabled check box.

  5. Click Save. If necessary, click Activate Changes in the Change Center.

  6. Restart the server you modified for the changes to take effect.

The resulting config.xml file entry will look like the following:

  <jms-server>
    <name>examplesJMSServer</name>
    <target>examplesServer</target>
    <persistent-store>exampleJDBCStore</persistent-store>
    ...
    <paging-file-locking-enabled>false</paging-file-locking-enabled>
    ...
  </jms-server>

Disabling File Locking for a Diagnostics File Store

To disable file locking for a Diagnostics file store using the Administration Console:

  1. If necessary, click Lock & Edit in the Change Center (upper left corner) of the Administration Console to get an Edit lock for the domain.

  2. In the Domain Structure tree, expand the Diagnostics node and select Archives.

  3. In the Summary of Diagnostic Archives list, select the server name of the archive that you want to modify.

  4. On the Settings for [server_name] page, deselect the Diagnostic Store File Locking Enabled check box.

  5. Click Save. If necessary, click Activate Changes in the Change Center.

  6. Restart the server you modified for the changes to take effect.

The resulting config.xml file will look like this:

  <server>
    <name>examplesServer</name>
    ...
    <server-diagnostic-config>
      <diagnostic-store-dir>data/store/diagnostics</diagnostic-store-dir>
      <diagnostic-store-file-locking-enabled>false</diagnostic-store-file-locking-
enabled>
      <diagnostic-data-archive-type>FileStoreArchive</diagnostic-data-archive-type>
      <data-retirement-enabled>true</data-retirement-enabled>
      <preferred-store-size-limit>100</preferred-store-size-limit>
      <store-size-check-period>1</store-size-check-period>
    </server-diagnostic-config>
  </server>

See Also:

For more information, see one of the following topics:


5.5 Configuring Schemas for Transactional Recovery Privileges

You need the appropriate database privileges to enable the WebLogic Server transaction manager to:

To configure the schemas for transactional recovery privileges:

  1. Log on to SQL*Plus as a user with sysdba privileges. For example:

    sqlplus "/ as sysdba"
    
  2. Grant select on sys.dba_pending_transactions to the appropriate_user.

  3. Grant force any transaction to the appropriate_user.

PK$|[[PKt1zDOEBPS/database.htm Database Considerations

4 Database Considerations

This chapter describes what to consider as you configure database connections for Oracle Fusion Middleware in a high availability setup. It also describes the benefits of using Oracle Real Application Clusters (Oracle RAC), a commonly-deployed database high availability solution.

Most Fusion Middleware components use a database as the persistent store for their data. When you use an Oracle database, you can configure it in a variety of highly available configurations. (For more information on Oracle database options, see the Oracle Database High Availability Overview.)

This chapter includes the following topics:

4.1 About Oracle Real Application Clusters

A cluster comprises multiple interconnected computers or servers that appear as if they are one server to end users and applications. Oracle RAC enables you to cluster an Oracle database, providing a highly scalable and highly available database for Oracle Fusion Middleware.

All Oracle Fusion Middleware components deployed to Oracle WebLogic Server support Oracle RAC.

Every Oracle RAC instance in the cluster has equal access and authority, therefore, node and instance failure may affect performance, but doesn't result in downtime; the database service is available or can be made available on surviving server instances.

Table 4-1 outlines tasks and corresponding sources of information for setting up Oracle RAC.

Table 4-1 Roadmap for Setting up Oracle RAC

Task/TopicMore Information

About Oracle RAC

"Introduction to Oracle RAC" in the Oracle Real Application Clusters Administration and Deployment Guide

Installing Oracle RAC

Oracle Real Application Clusters Administration and Deployment Guide

Managing Oracle RAC

"Overview of Managing Oracle RAC Environments" in Oracle Real Application Clusters Administration and Deployment Guide

Configuring and tuning GridLink and multi data sources

Oracle Fusion Middleware Configuring and Managing JDBC Data Sources for Oracle WebLogic Server

Configuring Single Client Access Name (SCAN) URLs. (To specify the host and port for the TNS and ONS listeners in the WebLogic console.)

"SCAN Addresses" in the guide Oracle Fusion Middleware Configuring and Managing JDBC Data Sources for Oracle WebLogic Server.


4.2 About RAC Database Connections and Failover

To establish connection pools, Oracle Fusion Middleware supports Active GridLink data sources and multi data sources for the Oracle RAC back end for both XA and non-XA JDBC drivers. See Section 4.2.1, "About XA Transactions" for more information about XA transactions. These data sources also support load balancing across Oracle RAC nodes.

When an Oracle RAC node or instance fails, Oracle WebLogic Server or the Oracle Thin JDBC driver redirect session requests to another node in the cluster. There is no failover of existing connections. However, new connection requests from the application are managed using existing connections in the Oracle WebLogic pool or by new connections to the working Oracle RAC instance.

When the database is the transaction manager, in-flight transactions typically roll back.

When WebLogic Server is the transaction manager, in-flight transactions fail over; they are driven to completion or rolled back based on the transaction state when failure occurs.

4.2.1 About XA Transactions

XA transaction support enables multiple resources (such as databases, application servers, message queues, transactional caches) to be accessed within the same transaction. A non-XA transaction always involves just one resource.

An XA transaction involves a coordinating transaction manager with one or more databases, or other resources such as JMS, all involved in a single global transaction.

Java EE uses the terms JTA transaction, XA transaction, user transaction, and global transaction interchangeably to refer to a single global transaction. This type of transaction may include operations on multiple different XA- capable or non-XA resources and even different resource types. A JTA transaction is always associated with the current thread and may be passed from server to server as one application calls another. A common example of an XA transaction is one that includes both a WebLogic JMS operation and a JDBC (database) operation.

4.3 About Data Sources

A data source is an abstraction that application components use to obtain connections to a relational database. Specific connection information, such as the URL or user name and password, are set on a data source object as properties and do not need to be explicitly defined in an application's code. This abstraction allows applications to be built in a portable manner, because the application is not tied to a specific back-end database. The database can change without affecting the application code.

Oracle provides Active GridLink data sources and multi data sources to support high availability, load balancing, and failover of database connections. Oracle recommends the following data source types depending on the Oracle RAC Database version you have:


Note:

Oracle recommends using the Active GridLink data sources with Oracle RAC database for maximum availability. For versions of Oracle RAC databases where Active GridLink data sources are not supported, Oracle recommends using multi data sources for high availability.


See the following topics for more information on these data source types:

4.3.1 Active GridLink Data Sources

An Active GridLink data source provides connectivity between WebLogic Server and an Oracle database service, which may include multiple Oracle RAC clusters. An Active GridLink data source includes the features of generic data sources plus the following support for Oracle RAC:

  • Uses the Oracle Notification Service (ONS) to respond to state changes in an Oracle RAC.

  • Responds to Fast Application Notification (FAN) events to provide Fast Connection Failover (FCF), Runtime Connection Load-Balancing, and RAC instance graceful shutdown. FAN is a notification mechanism that Oracle RAC uses to quickly alert applications about configuration and workload.

  • Provides Affinities (or XA Affinity) policies to ensure all database operations for a session are directed to the same instance of a RAC cluster for optimal performance.

See "Using Active GridLink Data Sources" in the Oracle Fusion Middleware Configuring and Managing JDBC Data Sources for Oracle WebLogic Server guide for more information on the following topics:

4.3.2 Multi Data Sources

A multi data source is an abstraction around a group of data sources that provides load balancing or failover processing at the time of connection requests, between the data sources associated with the multi data source. Multi data sources support load balancing for both XA and non-XA data sources.

A multi data source provides an ordered list of data sources to use to satisfy connection requests. Normally, every connection request to this kind of multi data source is served by the first data source in the list. If a database connection test fails and the connection cannot be replaced, or if the data source is suspended, a connection is sought sequentially from the next data source on the list."

Multi data sources are bound to the JNDI tree or local application context just like regular data sources. Applications look up a multi data source on the JNDI tree or in the local application context (java:comp/env) just as they do for data sources, and then request a database connection. The multi data source determines which data source to use to satisfy the request depending on the algorithm selected in the multi data source configuration: load balancing or failover.


See Also:

For more information about configuring Multi Data Sources with Oracle RAC, see "Using Multi Data Sources with Oracle RAC" in the guide Oracle Fusion Middleware Configuring and Managing JDBC Data Sources for Oracle WebLogic Server.


4.4 Configuring Active GridLink Data Sources with Oracle RAC

How you configure an Active GridLink data source depends on the Oracle component that you are working with and the domain you are creating.

This section describes how to configure component data sources as Active GridLink data sources for a RAC database during domain creation.

This topic includes the following sections:


See Also:

To create and configure Active GridLink data sources, see Using Active GridLink Data Sources in Oracle Fusion Middleware Configuring and Managing JDBC Data Sources for Oracle WebLogic Server.


4.4.1 Requirements

Verify that your system meets the following requirements before you configure component data sources as Active GridLink data sources to use with an Oracle RAC database:

  • You are using Oracle RAC database version 11g Release 2 or later.

  • You have run RCU to create component schemas.

  • You are using the Configuration Wizard to create or configure a domain and have arrived at the JDBC Component Schema screen where you select Component Datasources. Before you arrive at the JDBC Component Schema screen, you must select the option Configure Manually in the Database Configuration Type screen.

4.4.2 Configuring Component Data Sources as Active GridLink Data Sources

To configure component data sources as Active GridLink data sources:

  1. In the JDBC Component Schema screen, select one or more component schemas to configure GridLink data sources for.

  2. Select Convert to GridLink then select Next.

  3. In the GridLink Oracle RAC Component Schema screen, select one of the GridLink JDBC drivers.

  4. In the Service Name field, enter the service name of the database using lowercase characters. For example, mydb.example.com.

  5. In the Schema Owner field, enter the name of the database schema owner for the corresponding component.

  6. In the Schema Password field, enter the password for the database schema owner.

  7. In the Service Listener, Port, and Protocol field, enter the SCAN address and port for the RAC database being used. The protocol for Ethernet is TCP; for Infiniband it is SDP. Click Add to enter multiple listener addresses.

    You can identify the SCAN address by querying the appropriate parameter in the database using the TCP protocol:

    show parameter remote_listener
    
     
    
    NAME                   TYPE                 VALUE
    
    --------------------------------------------------------------------
    
    remote_listener        string              db-scan.example.com:1521
    
     
    

    You can also identify the SCAN address by using the srvctl config scan command. Use the command srvctl config scan_listener to identify the SCAN listener port.

  8. Select Enable FAN to receive and process FAN events. Enter one or more ONS daemon listen addresses and port information. Select Add to enter more entries.


    Note:

    Verify that the ONS daemon listen address(es) that you enter is valid. The address is not validated during the domain creation process.


    For the ONS host address, you can use the SCAN address for the Oracle RAC database and the ONS remote port as reported by the database:

    srvctl config nodeapps -s
    
    ONS exists: Local port 6100, remote port 6200, EM port 2016
    
  9. Select Enable SSL for SSL communication with ONS. Enter the Wallet File, which has the SSL certificates, and the Wallet Password.

  10. Select Next. Verify that all connections are successful.


Note:

See "Modifying the mdsDS Data Source URL" to use an Active GridLink data source with a customer-provided ADF application.



See Also:

For more information, see:

  • "JDBC Component Schema" in Oracle Fusion Middleware Creating WebLogic Domains Using the Configuration Wizard for information about the JDBC Component Schema screen.

  • "GridLink Oracle RAC Component Schema" in Oracle Fusion Middleware Creating WebLogic Domains Using the Configuration Wizard for information about configuring component schemas.

  • "Using Active GridLink Data Sources" in Administering JDBC Data Sources for Oracle WebLogic Server for information on GridLink RAC data sources.


4.4.3 Using Single Client Access Name (SCAN) Addresses for Hosts and Ports

Oracle recommends that you use Oracle Single Client Access Name (SCAN) addresses to specify the host and port for both the TNS listener and the ONS listener in the WebLogic console. You do not need to update an Active GridLink data source containing SCAN addresses if you add or remove Oracle RAC nodes. Contact your network administrator for appropriately configured SCAN URLs for your environment. See SCAN Addresses in the Oracle Fusion Middleware Configuring and Managing JDBC Data Sources for Oracle WebLogic Server guide.

4.5 Configuring Multi Data Sources

You can configure multi data sources using the following:

This section includes the following topics:

4.5.1 Configuring Multi Data Sources with Oracle RAC

This section describes the requirements and procedure to configure multi data sources with Oracle RAC.

This section includes the following topics:

4.5.1.1 Requirements

Verify that your system meets the following requirements before you configure component data sources as multi data sources to use with an Oracle RAC database:

  • You are using an Oracle RAC database.

  • You have run RCU to create component schemas.

  • You are using the Configuration Wizard to create or configure a domain and have arrived at the JDBC Component Schema Screen where you select Component Schemas.

4.5.1.2 Configuring Component Data Sources as Multi Data Sources

To configure component data sources as multi data sources:

  1. In the Component Datasources screen, select one or more component schemas to configure Active GridLink data sources for.

  2. Select Convert to RAC multi data source then select Next.

  3. In the Oracle RAC Multi Data Source Component Schema screen, the JDBC driver Oracle's Driver (Thin) for RAC Service-Instance connections; Versions:10 and later.

  4. In the Service Name field, enter the database service name enter in lowercase, for example, mydb.example.com.

  5. In the Schema Owner field, enter the username of the database schema owner for the corresponding component. Typically this name is RCUprefix_component.

  6. In the Schema Password field, enter the password for the database schema owner.

  7. In the Host Name, Instance Name, and Port field, enter the RAC node hostname, database instance name, and port. Click Add to enter multiple listener addresses.

  8. Click Next.Verify that all connections are successful.

4.5.1.3 Modifying or Creating Multi Data Sources After Initial Configuration

The multi data sources have constituent data sources for each RAC instance providing the database service. Oracle recommends that you add an additional data source to the multi data source on the Fusion Middleware tier when you add an additional instance to the RAC back end.

When you migrate a database from a non-RAC to a RAC database, you must create an equivalent, new multi data source for each data source that is affected. The multi data source that you create must have constituent data sources for each RAC instance. The data source property values must be identical to the original single instance data source for the properties in Section 4.5.1. For example, if the single instance data source driver is oracle.jdbc.xa.client.OracleXADataSource, it must be oracle.jdbc.xa.client.OracleXADataSource for each constituent data source of the new multi data source.

For multi data sources that you create manually or modify after initial configuration, Oracle strongly recommends specific XA and non-XA data source property values for optimal high availability. Make changes only after careful consideration and testing if your environment requires that you do so.

The following tables describe XA and non-XA data source property values that Oracle recommends:

Table 4-2 Recommended Multi Data Source Configuration

Property NameRecommended Value

test-frequency-seconds

5

algorithm-type

Load-Balancing


For individual data sources, Oracle recommends the following for high availability environments. Oracle recommends that you set any other parameters according to application requirements.

Table 4-3 XA Data Source Configuration

Property NameRecommended Value

Driver

oracle.jdbc.xa.client.OracleXADataSource

Property command

<property>

<name>oracle.net.CONNECT_TIMEOUT</name>

<value>10000</value>

</property>

initial-capacity

0

connection-creation-retry-frequency-seconds

10

test-frequency-seconds

300

test-connections-on-reserve

true

test-table-name

SQL SELECT 1 FROM DUAL

seconds-to-trust-an-idle-pool-connection

0

global-transactions-protocol

TwoPhaseCommit

keep-xa-conn-till-tx-complete

true

xa-retry-duration-seconds

300

xa-retry-interval-seconds

60


Troubleshooting Warning Messages (Increasing Transaction Timeout for XA Data Sources)

If you see WARNING messages in the server logs that include the following exception, this message may indicate that the XA timeout value you have in your setup must be increased.

[ javax.transaction.SystemException: Timeout during commit processing

You can increase XA timeout for individual data sources when these warnings appear.

To increase the transaction timeout for the XA Data Sources setting, use the Administration Console:

  1. Access the data source configuration.

  2. Select the Transaction tab.

  3. Set the XA Transaction Timeout to a larger value, for example, 300.

  4. Select the Set XA Transaction Timeout checkbox. You must select this checkbox for the new XA transaction timeout value to take effect.

  5. Click Save.

Repeat this configuration for all individual data sources of an XA multi data source.

Table 4-4 Non-XA Data Source Configuration

Property NameRecommended Value

Driver

oracle.jdbc.OracleDriver

Property to set

<property>

<name>oracle.net.CONNECT_TIMEOUT</name>

<value>10000</value>

</property>

initial-capacity

0

connection-creation-retry-frequency-seconds

10

test-frequency-seconds

300

test-connections-on-reserve

true

test-table-name

SQL SELECT 1 FROM DUAL

seconds-to-trust-an-idle-pool-connection

0

global-transactions-protocol

None


4.5.2 Configuring Multi Data Sources for MDS Repositories

You can configure applications that use an MDS database-based repository for high availability Oracle database access. With this configuration, failure detection, recovery, and retry by MDS (and by the WebLogic infrastructure) result in application read-only MDS operations being protected from Oracle RAC database planned and unplanned downtimes.

Multi data sources are exposed as MDS repositories in the Fusion Middleware Control navigation tree. You can select these multi data sources when you customize the application deployment and use them with MDS WLST commands.

  • Configuring an application to retry read-only operations

    To configure an application to retry the connection, you can configure the RetryConnection attribute of the application's MDS AppConfig MBean. See the Oracle Fusion Middleware Administrator's Guide for more information.

  • Registering an MDS multi data source

    In addition to the steps in Section 4.5.1, "Configuring Multi Data Sources with Oracle RAC," consider the following:

    • The child data sources that constitute a multi data source used for an MDS repository must be configured as non-XA data sources.

    • The multi data source's name must have the prefix mds-. This ensures that the multi data source is recognized as an MDS repository that can be used for MDS management functionality through Fusion Middleware Control, WLST, and JDeveloper.


      Note:

      When an MDS data source is added as a child of a multi data source, this data source is no longer exposed as an MDS repository. For example, it does not appear under the Metadata Repositories folder in the Fusion Middleware Control navigation tree, you cannot perform MDS repository operations on it, and it does not appear in the list of selectable repositories during deployment.


  • Converting a data source to a multi data source

    There are two things to consider when you convert a data source to a multi data source to verify that the application is configured correctly:

    • To create a new multi data source with a new, unique name, redeploy the application and select this new multi data source as the MDS repository during deployment plan customization.

    • To avoid redeploying the application, you can delete the data source and recreate the new multi data source using the same name and jndi-name attributes.


Note:

See "Modifying the mdsDS Data Source URL" to use a multi data source with a customer-provided ADF application.


PKoU`VPKt1zDOEBPS/cover.htm  Cover

Oracle Corporation

PK@t` PKt1zDOEBPS/part3.htmk Component Procedures

Part III

Component Procedures

Part III describes procedures that are unique to certain component products.

This part includes the following chapters:

PK pkPKt1zDOEBPS/title.html Oracle Fusion Middleware High Availability Guide, 12c (12.1.2)

Oracle® Fusion Middleware

High Availability Guide

12c (12.1.2)

E38249-02

September 2013

Reference documentation for administrators, developers, and others that describes high availability concepts as well as administration and configuration procedures to deploy and manage Oracle Fusion Middleware with high availability requirements.


Oracle Fusion Middleware High Availability Guide, 12c (12.1.2)

E38249-02

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

Primary Author: Christine Ford

Contributing Author: Michael Blevins, Suvendu Ray, Peter LaQuerre

Contributor:  Gururaj BS

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

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

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

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

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

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

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

PK-qlPKt1zDOEBPS/other.htmF Configuring High Availability for Other Components

9 Configuring High Availability for Other Components

This chapter describes information unique to certain component products.

For this release, this chapter includes the following topics:

9.1 Deploying the Oracle Virtual Assembly Builder Deployer

You can deploy the Oracle Virtual Assembly Builder Deployer to a single server only, not a cluster. You can deploy it to an Administration Server in a single server domain.


See Also:

For more information on Oracle Virtual Assembly Builder, see Using Oracle Virtual Assembly Builder.


9.2 Deploying Oracle Data Integrator

This topic describes considerations for configuring Oracle Data Integrator repository connections to Oracle Real Application Clusters:

9.2.1 Oracle RAC Retry Connectivity for Source and Target Connections

When you configure Oracle Data Integrator (ODI) Oracle Real Application Clusters (RAC) connections, Oracle RAC retry is supported for the ODI master or ODI work repository. ODI uses transactional connections to source and target connections while running ODI scenarios. For these source and target connections, ODI does not support RAC retry connectivity. You cannot migrate these transactions to another node in Oracle RAC.

9.2.2 Configuring Repository Connections to Oracle RAC

When you create an ODI repository using the Repository Creation Utility (RCU), you specify the work repository connection JDBC URL. RCU stores the URL in the master repository contents. If the work repository JDBC URL is a single node URL, you should modify the URL to include the Oracle Real Application Clusters (Oracle RAC) failover address.

  • If Oracle RAC is not configured with Single Client Access Name (SCAN), you can provide details of the Oracle RAC instances. In the work repository JDBC Url field, enter the Oracle RAC connectivity address in the format host:port. See Example 9-1.

  • If Oracle RAC is configured with SCAN, provide Oracle RAC instance details with the SCAN address.

Example 9-1 shows the JDBC URL format to connect to an Oracle RAC with two hosts when it does not use SCAN:

Example 9-1 JDBC URL Format (Oracle RAC Not Configured with SCAN)

jdbc:oracle:thin:(DESCRIPTION = (LOAD_BALANCE=ON) (ADDRESS = (PROTOCOL = tcp)
(HOST = host1)(PORT = port1)) (ADDRESS = (PROTOCOL = tcp)(HOST = host2)
(PORT = port2)) (CONNECT_DATA = (SERVER=dedicated) 
(SERVICE_NAME=service_name)))

See the topic "Creating a Work Repository" in the Oracle Fusion Middleware Developer's Guide for Oracle Data Integrator for more information.

PKKKFPKt1zDOEBPS/webtier.htm)j֕ Configuring High Availability for Web Tier Components

7 Configuring High Availability for Web Tier Components

The Web Tier of Oracle Fusion Middleware is the outermost tier in the architecture, closest to the end user. The key component of the Web Tier is Oracle HTTP Server. This chapter describes high availability concepts and configuration procedures for Oracle HTTP Server and includes the following topics:

7.1 Oracle HTTP Server and High Availability Concepts

Oracle HTTP Server (OHS) is the Web server component for Oracle Fusion Middleware. It provides a listener for Oracle WebLogic Server and the framework for hosting static pages, dynamic pages, and applications over the Web.


See Also:

For more information on working with OHS, see the following:


7.2 Oracle HTTP Server Single-Instance Characteristics

Oracle HTTP Server is based on Apache infrastructure and includes modules developed by Oracle that you can use to extend OHS's core functionality. OHS has the following components to handle client requests:

Oracle HTTP Server can also be a proxy server, both forward and reverse. A reverse proxy enables content served by different servers to appear as if it comes from one server.

7.2.1 Oracle HTTP Server and Oracle WebLogic Server

Oracle HTTP Server does not require an Oracle WebLogic domain but is usually used in conjunction with one. Oracle recommends associating Oracle HTTP Server with the WebLogic domain because it enables Oracle HTTP Server to be incorporated into the Administration Console for centralized management and monitoring.

The link to WebLogic Managed Servers is handled through the mod_wl_ohs module. This module is configured by routing requests of a particular type, for example, JSPs, or by routing requests destined to a URL to specific Managed Servers.

Typically you use Oracle HTTP Server to front end a cluster of WebLogic servers. When Oracle HTTP Server front-ends a cluster of WebLogic servers, a special mod_wl_ohs directive, WebLogicCluster, specifies a comma-separated list of cluster members. The process works as follows:

  1. When mod_wl_ohs receives a request requiring a Managed Server, it sends that request to one of the WebLogic cluster members listed in the directive. At least one server must be available to service the request.

  2. When the Managed Server receives the request, it processes it and sends a complete list of cluster members back to mod_wl_ohs.

  3. When mod_wl_ohs receives the updated list, it dynamically adds any previously unknown servers to the list of known servers, enabling all future requests to be load balanced across the full cluster member list. This process has the advantage of enabling new Managed Servers to be added to the cluster without updating mod_wl_ohs or adding the Oracle HTTP Server


Note:

You do not need to include all the current Managed Servers in the mod_wl_ohs directive when you start; a high availability setup requires only two cluster members in the list for the first call to work. See Configuring the WebLogic Proxy Plug-In for Oracle HTTP Server in the guide Oracle Fusion Middleware Using Oracle WebLogic Server Proxy Plug-Ins for more information on running a high availability deployment of Oracle HTTP Server.



See Also:

For more information on Oracle WebLogic clusters, see Oracle Fusion Middleware Using Clusters for Oracle WebLogic Server.


7.3 Oracle HTTP Server Startup and Shutdown Lifecycle

After Oracle HTTP Server starts, it is ready to listen for and respond to HTTP(S) requests.

The request processing model on Microsoft Windows systems differs from that on UNIX systems:


See Also:

For more information on the OHS processing model, see "Oracle HTTP Server Processing Model" in the Administrator's Guide for Oracle HTTP Server.


7.4 Starting and Stopping Oracle HTTP Server

You can use Fusion Middleware Control or the WebLogic Scripting Tool (WLST) to start, stop, and restart Oracle HTTP Server. If you plan to use WLST, you should familiarize yourself with that tool; see "Getting Started Using the Oracle WebLogic Scripting Tool (WLST)" in the Oracle Fusion Middleware Administrator's Guide.


See Also:

For information on starting and stopping OHS, see Starting, Stopping, and Restarting Oracle HTTP Server in the Administrator's Guide for Oracle HTTP Server.


7.5 Oracle HTTP Server High Availability Architecture and Failover Considerations

Figure 7-1 shows two Oracle HTTP Servers placed behind a load balancer.

Figure 7-1 Oracle HTTP Server High Availability Architecture

The text that follows this graphic describes it.

The load balancer receives requests from users and forwards them on to the connected Oracle HTTP Servers. In Figure 7-1, the load balancer receives the requests on the standard HTTP/HTTPS ports (80/443). However, it then passes the requests on to the Oracle HTTP Servers using completely different ports. This setup has the following advantages:

On UNIX-based systems, it is not mandatory to start Oracle HTTP Server with root privileges. Only root can start a process which uses a port less than 1024.

The load balancer routes requests to the functioning Oracle HTTP Servers.

Figure 7-1 also shows how Oracle HTTP Server distributes requests to WebLogic Managed Servers. For high availability, it is assumed that each pair of components (Oracle HTTP Server and Web Logic Managed Servers) exist on different host computers.

You can separate this architecture across two servers. Alternatively, in more complex implementations, each component can reside on a completely separate server.

7.6 Oracle HTTP Server Protection from Failures and Expected Behaviors

There are two categories of Oracle HTTP Server failures: process failures and node failures. An individual operating system process may fail. A node failure could involve failure of the entire host computer that Oracle HTTP Server runs on. This section describes failure types and the systems or processes that take over if they occur.

Process Failure

Node manager protects and manages Oracle HTTP Server processes. If an Oracle HTTP Server process fails, Node Manager automatically restarts the process.

Node Failure

If an entire node fails, the load balancer in front of Oracle HTTP Server sends a request to another Oracle HTTP Server if the first one does not respond, or is determined to be failed through URL pings.

WebLogic Managed Server Failure

In a high availability deployment, Oracle WebLogic Managed Servers are part of a cluster. If one of the Managed Servers fails, mod_wl_ohs automatically redirects requests to one of the active cluster members. If the application stores state, state replication is enabled within the cluster, which enables redirected requests access to the same state information.

Database Failure

Typically, database failures are an issue only when mod_oradav or mod_plsql is used. If this is an Oracle Real Application Clusters (Oracle RAC) database, the failure characteristics are determined by the defined Oracle RAC connection.

If client connection failover is configured, any in-flight transactions are rolled back, and a database reconnection is required.

If Transparent Application Failover (TAF) is configured, any in-flight database write is rolled back but an automatic database reconnection takes place and select statements are automatically recovered. In this scenario, TAF fails over select statements only; package variables are lost. (TAF is a feature of the Java Database Connectivity (JDBC) Oracle Call Interface driver. It enables the application to automatically reconnect to a database, if the database instance to which the connection is made fails. In this case, the active transactions roll back.

7.7 Oracle HTTP Server Cluster-Wide Configuration Changes

Oracle HTTP Servers are managed independently by Fusion Middleware Control. The Oracle HTTP server configuration is file-based; if you make changes to one Oracle HTTP Server, you must manually copy the changes to other Oracle HTTP Servers in the configuration. This also applies to static HTML files stored in the htdocs directory.

7.8 Configuring Oracle HTTP Server for High Availability

This section describes how to configure an example high availability deployment of Oracle HTTP Server.

This section includes the following topics:

7.8.1 Prerequisites

Review the following prerequisites before configuring a high availability Oracle HTTP Server deployment.

7.8.1.1 Configuring the Load Balancer

To distribute requests against Oracle HTTP Servers, you must use an external load balancer to distribute HTTP(S) requests between available Oracle HTTP Servers. If you have an external load balancer, it must have the features that Section 2.1.1, "Third-Party Load Balancer Requirements" describes, including:

  • Virtual server name and port configuration

  • Process failure detection

  • Monitoring of ports (HTTP, HTTPS) for Oracle HTTP and HTTPS

  • SSL Protocol Conversion (if required)

The following sections describe steps to configure your load balancer:

Configuring Virtual Server Names and Ports for the Load Balancer

For each application, such as myapp.example.com, configure the load balancer with a virtual server name and associated ports. In an Oracle HTTP Server installation, these virtual servers are configured for HTTP connections, which are distributed across the HTTP servers.

If your site is serving requests for HTTP and HTTPS connections, Oracle recommends that HTTPS requests terminate at the load balancer and pass through as HTTP requests. To do this, the load balancer should be able to perform the protocol conversion and must be configured for persistent HTTP sessions.

This example configuration assumes that the load balancer is configured as:

  • Virtual Host: Myapp.example.com

  • Virtual Port: 7777

  • Server Pool: Map

  • Server: WEBHOST1, Port 7777, WEBHOST2, Port 7777

Managing Port Numbers

Many Oracle Fusion Middleware components and services use ports. As an administrator, you must know the port numbers that the services use and ensure that two services are not configured to use the same port number on your host computer.

Most port numbers are assigned during installation. It is important that any traffic going from the Oracle HTTP Servers to the Oracle WebLogic Servers has access through any firewalls.

7.8.1.2 Installing Oracle HTTP Server on WEBHOST1

To install Oracle HTTP Server on WEBHOST1, see the steps in "Installing the Oracle HTTP Server Software" in the guide Oracle Fusion Middleware Installing and Configuring Oracle HTTP Server.

Validating the OHS Installation

Validate the installation using the following URL to access the Oracle HTTP Server home page:

http://webhost1:7777/

7.8.1.3 Configuring Virtual Host(s)

For each virtual host or site name that you use, add an entry to the Oracle HTTP Server configuration. Create a file named virtual_hosts.conf located in the DOMAIN_HOME/config/fmwconfig/components/OHS/ohs_component_name/moduleconf directory as follows:

NameVirtualHost *:7777
<VirtualHost *:7777>
    ServerName http://myapp.example.com:80
    RewriteEngine On
    RewriteOptions inherit
    UseCanonicalName On
</VirtualHost>

If you are using SSL/SSL Termination (*):

NameVirtualHost *:7777
<VirtualHost *:7777>
    ServerName https://myapp.example.com:443
    RewriteEngine On
    RewriteOptions inherit
    UseCanonicalName On
</VirtualHost>

7.8.1.4 Configuring mod_wl_ohs.conf

After you install and configure Oracle HTTP Server, link it to any defined WebLogic Managed Servers by editing the mod_wl_ohs.conf file located in DOMAIN_HOME/config/fmwconfig/components/OHS/instances/componentName directory.

See "Configuring the WebLogic Proxy Plug-In for Oracle HTTP Server" in the guide Oracle Fusion Middleware Using Oracle WebLogic Server Proxy Plug-Ins 12.1.2 for more information on editing the mod_wl_ohs.conf file.

The following is an example of mod_wl_ohs.conf entries:

LoadModule weblogic_module PRODUCT_HOME/modules/mod_wl_ohs.so
 
<IfModule mod_weblogic.c>
      WebLogicCluster apphost1.example.com:7050, apphost2.example.com:7050
      MatchExpression *.jsp
 </IfModule>
  
<Location /weblogic>
  SetHandler weblogic-handler
  WebLogicCluster apphost1.example.com:7050,apphost2.example.com:7050
  DefaultFileName index.jsp
</Location>

Note:

If you use SSL termination AND route requests to WebLogic, then the following additional configuration is required.

In the WebLogic console, WebLogic Plugin Enabled must be set to true, either at the domain, cluster or Managed Server level.

In the Location block which directs requests to the WebLogic Managed Servers, the following lines also need to be added.

WLProxySSL ON
WLProxySSLPassThrough ON

For example:

<Location /weblogic>
  SetHandler weblogic-handler
  WebLogicCluster apphost1.example.com:7050,apphost2.example.com:7050
  WLProxySSL On
  WLProxySSLPassThrough ON
  DefaultFileName index.jsp
</Location>

After you enable the WebLogic plugin, restart the Administration Server.


These examples show two different ways of routing requests to Oracle WebLogic Managed Servers:

  • The <ifModule> block sends any requests ending in *.jsp to the WebLogic Managed Server cluster located on Apphost1 and Apphost2.

  • The <Location> block sends any requests with URLs prefixed by /weblogic to the WebLogic Managed Server cluster located on Apphost1 and Apphost2.

7.8.2 Installing Oracle HTTP Server on WEBHOST2

To install Oracle HTTP Server on WEBHOST2, see the steps in the topic "Installing the Oracle HTTP Server Software" in the guide Oracle Fusion Middleware Installing and Configuring Oracle HTTP Server.

Validating the OHS Installation

Validate the installation on WEBHOST2 by using the following URL to access the Oracle HTTP Server home page:

http://webhost2:7777/

7.8.3 Configuring and Validating the OHS High Availability Deployment

To configure and validate the OHS high availability deployment, follow these steps:

7.8.3.1 Configuring Virtual Host(s)

Add an entry for each virtual host or site name to the Oracle HTTP Server configuration. Copy the file virtual_hosts.conf from WEBHOST1 to WEBHOST2. The file is located in the directory DOMAIN_HOME/config/fmwconfig/components/OHS/ohs_name/moduleconf

7.8.3.2 Validating the Oracle HTTP Server Configuration

Validate the configuration by using the following URLs:

http://myapp.example.com/

https://myapp.example.com (if using SSL/SSL termination)

http://myapp.example.com:7777/weblogic

PKy <.j)jPKt1zD OEBPS/loe.htmg List of Examples

List of Examples

PK!wPKt1zDOEBPS/scale_out_prototype.htm`p Scaling Out a Topology (Machine Scale Out)

6 Scaling Out a Topology (Machine Scale Out)

This chapter describes the steps for scaling out a topology (machine scale-out) for all Fusion Middleware products that are a part of a Fusion Middleware WebLogic Server domain. To enable high availability, it is important to provide failover capabilities to another host computer. When you do so, your environment can continue to serve the consumers of your deployed applications if one computer goes down.

This chapter includes the following topics:

6.1 About Machine Scale Out

Scalability is the ability of a piece of hardware or software or a network to "expand" or "shrink" to meet future needs and circumstances. A scalable system is one that can handle increasing numbers of requests without adversely affecting response time and throughput.

Machine scale-out is the process of moving a server, one of many on one machine, to another machine for high availability. Machine scale out is different from Managed Server scale up, which is the process of adding a new Managed Server to a machine that already has one or more Managed Servers running on it. For more information on scaling up your environment, see "Scaling Up Your Environment" in the guide Oracle Fusion Middleware Administering Oracle Fusion Middleware.

6.2 Roadmap for Scaling Out Your Topology

The following table describes the typical steps you must take to scale out a topology.

Table 6-1 Roadmap for Scaling Out Your Topology

TaskDescriptionMore Information

Product is ready for scale out

Product is installed, configured, and a cluster of Managed Servers is available; your product is in a standard installation topology

Section 6.4, "About Scale Out Prerequisites"


Verify that you meet resource requirements

You must verify that your environment meets certain requirements

Section 6.5, "Resource Requirements"


Create a new machine and assign servers to it

Use the Administration Console to create a new machine and add Managed Servers to it.

Section 6.6, "Creating a New Machine"


Run the pack command

Pack up the domain directory

Section 6.7, "Packing the Domain on APPHOST1"


Prepare the new machine

Install the same software that you installed on the first machine

Section 6.8, "Preparing the New Machine"


Run the unpack command

Create a Managed Server template.

Section 6.9, "Running Unpack to Transfer the Template"


Start the server

Starts the Managed Server on the new machine

Section 6.11, "Starting the Managed Servers"


Verify the topology

Test the new setup

Section 6.12, "Verifying Machine Scale Out"




Note:

In this section, APPHOST refers to a physical host computer, and machine refers to the WebLogic Server machine definition describing that host. See "Understanding the Oracle Fusion Middleware Infrastructure Standard Installation Topology" in the guide Installing and Configuring the Oracle Fusion Middleware Infrastructure.


6.3 Optional Scale Out Procedure

Following the standard installation topology results in multiple Managed Servers assigned to a single host computer

This approach represents the most flexible way to create and scale out a domain topology so it can meet a variety of changing requirements. It allows you to 1) create and validate a single-host domain, which is targeted to a single machine on a single host computer, and then 2) "retarget" the Managed Servers to additional machines, as additional computing resources are required. An additional benefit of this approach is that it facilitates troubleshooting; you can validate the basic domain then perform and troubleshoot scale up and scale out steps at a later time.

However, if you know ahead of time what your target topology is, you can create machines during additional domain creation then simply perform the pack and unpack steps.

If you have already assigned Managed Servers to their target machines, either in the initial installation process or through an online administrative operation, simply skip Section 6.6, "Creating a New Machine" as you progress through the roadmap (Table 6-1, "Roadmap for Scaling Out Your Topology").

See the product installation guides, such as Installing and Configuring the Oracle Fusion Middleware Infrastructure, for more information on machine mapping.

6.4 About Scale Out Prerequisites

Before you start the scale out process, you must have a standard installation topology set up for your product. The standard installation topology serves as the starting point for scale out. If you followed the steps in your product installation guide, you should have a standard installation topology. For an example, see the standard installation topology that the topic "Understanding the Oracle Fusion Middleware Infrastructure Standard Installation Topology" describes in the guide Oracle Fusion Middleware Installing and Configuring the Oracle Fusion Middleware Infrastructure.


See Also:

For more information on the standard installation topology, see your product's installation guide or "About the Standard Installation Topology" in the guide Planning an Installation of Oracle Fusion Middleware.


6.5 Resource Requirements

Before you scale out the topology, verify that your environment meets these requirements:

6.6 Creating a New Machine

A machine is the logical representation of the computer that hosts one or more WebLogic Server instances (servers). In a WebLogic domain, the machine definitions identify physical units of hardware and are associated with the WebLogic Server instances that they host.

Follow these steps to create a new machine:

6.6.1 Shutting Down the Managed Server

The server must be in a shutdown state before moving to a new machine. If the server is up and running, see the topic "Shut down a server instance" in the Administration Console Online Help to shut down the Managed Server that the new machine will host.

6.6.2 Creating a New Machine

This topic describes how to create a new machine using the Administration Console. To create a new machine using WLST commands see "Creating a New Machine for Certain Components" in the guide Oracle Fusion Middleware Administering Oracle Fusion Middleware.


Note:

The machine you create in this procedure must have a listen address on a specific network interface, not just a local host.


To create a new machine in the domain using the Administration Console, perform the following steps:

  1. If the domain Administration Server is not running, you must start it. Go to the DOMAIN_HOME/bin directory and run:

    ./startWeblogic.sh
    
  2. After the Administration Server is up and running, access the WebLogic Server Administration Console. Open a web browser and enter the URL:

    http://hostname:port/console 
    

    On the Welcome screen, log in.

  3. In the Change Center of the Administration Console, click Lock & Edit.


    Note:

    For production domains, Oracle recommends creating the domain in "Production" mode, which enables Change Center. If Production mode is not enabled, Change Center steps are not required.


  4. Under Domain Structure, expand Environment then click Machines.

  5. Above the Machines table (above Summary), click New.

  6. In the Create a New Machine screen, enter a name for the machine (such as machine_2). Select the Machine OS using the drop-down list then click Next.

  7. On the next screen, for Type:, use the drop-down list to select Plain.

    For the Node Manager Listen Address, enter the IP address or host name of the host computer that will represent this machine. Both machines appear in the Machines table.

  8. Click Finish.

  9. In the Change Center, click Activate Changes.

    The message "All changes have been activated. No restarts are necessary." appears. This message indicates that you have a new machine.

6.6.3 Assigning Managed Servers to the New Machine

To add Managed Servers to the newly-created machine, use the Administration Console to perform the following steps:

  1. In the Change Center, click Lock & Edit.

  2. In the Machines table, click the machine machine_1.

  3. Click the machine name.

  4. Under the Settings for machine_1, click the Configuration tab and then the Servers subtab.

  5. Above the Servers table, click Add.

  6. On the Add a Server to Machine screen, enter the Server Name and the Server Listen Port in the fields (required).

    Use the Select a server drop-down list to choose machine_1 and then click Finish.

  7. Under Domain Structure, click Machines.

    In the Machines table, click the machine machine_2.

  8. Under the Settings for machine_2, click the Configuration tab and then the Servers tab. Above the Servers tab, click Add.

    On the Add a Server to Machine screen, select the button Select an existing server, and associate it with this machine.

    Use the Select a server drop-down list to choose machine_2 then select Finish.

    The message Server created successfully appears.

  9. To complete the changes, go back to the Change Center. Click Activate Changes. The message All changes have been activated. No restarts are necessary. appears.

    To see a summary, under Domain Structure, under Environment, click Servers. The Servers table on the right shows all servers in the domain and their machine assignments.

6.7 Packing the Domain on APPHOST1

You create a Managed Server template by running the pack command on the WebLogic domain.


Note:

The Administration Server should be running on APPHOST1 when you go through the pack and unpack steps.


Run the pack command on APPHOST1 to create a template pack. You will unpack the template file on APPHOST2 later in the scale out process; Section 6.9, "Running Unpack to Transfer the Template" describes the unpack procedure.

For example:

ORACLE_COMMON/common/bin/pack.sh \
     -domain=DOMAIN_HOME \ 
     -template=dir/domain_name.jar \ 
     -managed=true \ 
     -template_name="DOMAIN"

In the preceding example:

6.8 Preparing the New Machine

To prepare the new machine, machine_2, verify that APPHOST2 has access to the shared disk where the Oracle home is installed or install the same software that you installed on machine_1.

For example, if you are scaling out an Oracle Fusion Middleware Infrastructure domain, verify that APPHOST2 can access the Infrastructure Oracle home.


Note:

If you use shared storage, you can reuse the same installation location.



Note:

If you are performing a new installation or reusing the binaries by means of shared storage, the path location of the new files must match the original machine's path location exactly.


6.9 Running Unpack to Transfer the Template

To unpack the template and transfer the domain_name.jar file from APPHOST1 to APPHOST2, run the unpack command:

$ORACLE_HOME/oracle_common/common/bin/unpack.sh \
-domain=user_projects/domains/base_domain2 \
-template=/tmp/base_domain_template.jar \
-app_dir=user_projects/applications/base_domain2

6.10 Starting the Node Manager

To start Node Manager, run the following:

$DOMAIN_HOME/bin/startNodeManager.sh &

When you use machine scoped Node Manager, see "Using Node Manager" in Administering Node Manager for Oracle WebLogic Server for more information on Node Manager start options.

6.11 Starting the Managed Servers

To use the Administration Console to start the Managed Servers:

  1. In the left pane of the Console, expand Environment and select Servers.

  2. In the Servers table, click the name of the Managed Server that you moved to the new machine to start it.

  3. Select Control > Start/Stop.

  4. In the Server Status table, select the check box next to the name of the server(s) you want to start and click Start.

  5. On the Server Life Cycle Assistant page, click Yes to confirm.


See Also:

To use WLST commands or Fusion Middleware Control to start Managed Servers, see "Starting and Stopping Managed Servers" in the guide Oracle Fusion Middleware Administering Oracle Fusion Middleware.


6.12 Verifying Machine Scale Out

To determine if the machine scale out succeeded, verify that the server status has changed to RUNNING after you start it using the Administration Console.

PKep`pPKt1zDOEBPS/part1.htmo Introduction to High Availability

Part I

Introduction to High Availability

Part I contains the following chapters:

PK]3=toPKt1zDOEBPS/preface.htmV Preface

Preface

This preface contains these sections:

Audience

The High Availability Guide is intended for administrators, developers, and others whose role is to deploy and manage Oracle Fusion Middleware with high availability requirements.

Purpose of this Guide

The purpose of this guide is to serve as a reference document to set up a highly available environment. Use this guide in conjunction with your product's installation and administration guides.

Documentation Accessibility

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

Access to Oracle Support

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

Related Documents

For more information, see these Oracle resources:

Conventions

The following text conventions are used in this document:

ConventionMeaning

boldface

Boldface type indicates graphical user interface elements associated with an action, or terms defined in text or the glossary.

italic

Italic type indicates book titles, emphasis, or placeholder variables for which you supply particular values.

monospace

Monospace type indicates commands within a paragraph, URLs, code in examples, text that appears on the screen, or text that you enter.


PK,t6PKt1zDOEBPS/img/ashia_dt_042.gifr:GIF89a@@@\bix# pppbjv-*,kuGJQPPT|١ 猕s{```MNSbfm548[\a000暤BBFɮȵ>?E}qu{lqz869PPPPU]Y_jEDGNOTt磳ģ朦OPT:7:WZ`DCGehnx~ikoꧺϰ?@Eǽ肏HKRILR萓Zaj驷vx}z螯TX_GFH\bkvz_dlRRUGHJy򸸸􏗡}w!,H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͖ |4`K Hp3bNA *gQ~*p ,`= I!թ?`(lKgiِQ jǎY$Q LpkDZjȎD2̻wI_!X A^&@ty*kY@1aq lbCOzjݔָ:p*{vvnލl=jlҾulݣpTv x\&] dz8՞A_Zk}wWDWՁzaGd a!b l>IZ d`qx?ɷba&YdIfW= (vQick>b4•cu"Xء@a-fZjI[ja"`~Min"'vH(Yin}nUc`@UͪB"PK0vPiHEI,J4KTʦÑF+Vk^Qڶb} [K;Qn HλP~oFk$LW ',QBp+$q ] 'ıwlP,'dr+w۲/_33W[7OKV"뀢W WāzGg\ mCv$I/`*r"Ir;uq] Xf4W̪-Q]S/r?4l{.n'7G.%Y3gw砇.w T(B -n!M4Ga-r . 7B 2 bԱC ZNDwo H**|]$HX,^Ѱ<B'XB3dnC3찇?LX#nAJ\'D+LSnq]'FqhDi>7‘ap x x 5@=Hb I@Q̥.  F:2$0  5 p0x8,)6! yx?ʒ(.N]RCE Ŭ$WdA3iV3YhyR <&XD?S-юRІ:xaZPfLAS18`Cώ<*ʊӜ-=KK\ŠN%^@USADA:&jT-R0Z/{5p*Ý4h7DVѢG:H!:AN BDV})O}-zKK XO[a _( њsdC!JpGF D*@(-+O @dGR׸pQ yCI}pTpֳECe{&5gP,ԧ:D^*=UFykH KBf\: * J 0 JxAY0 9c`3ZPd$#,%9hI7)h'^Nq%HJC@ #2   x8Hs@P@p3@\cxF‘2$sp]\a(CPڗ?&i['7p`\E_6.LTWp`BZ% @jyfVcQxTBDdhZӦ/Azd V&V`Ԥ:k"@/ Bs}\2+wD'jkb/c?7S/g=@h]jF7rk+-ox,ݩ@709I13%Η;OKߐw6ȞbЮw Ov@74~cGn'nzU;VMcFyvy}eP<%J7Tk ǀ*8E%^y`t},Eq?VuUMq(?H_! H8EETOtg>Lq6mG_>hF~:4gdE^VLqRkeq8IS hv^?GXH@-%fV5(u#L}wSWi;P?8?c8H].HOcuLjuWmSuh_JgPJ8eQpx ,ve V% g(7g pj`D g`\o ֌H@h8gW%&cr@t `R(  s y s pqr؊h>ȅ$?GJ!AeLjae0r& @g.wgj ܘ\ mTeZe vZaD@qz-`k` v@,  P %tP p|  p ),OLXp eCX~ Q\fQsszP]-jr07kGs\&{IX?]&on&DvvDn,̐ S^ @B|)F8=5i(CZ>9|i\)N[ö`gbnsIxof #kTk9ov@)PRt@- Iq| t TCdSSvYP;5h_N󉞧ay Yok8\:YH9 Y{eap*Iﴟ EPbU t`@I,P <<y꜁ 0C*f ٹK#sXX?Zk/pE aqw(\ŝ?efa;jsZ\s mKT@4 0M cŐ pR)BVʉBڜ9I_룡hT]]eYuWk()TQbU3 (rue goxUoH{:/Oa0 /P- ;@f ph0R@t M%y)ډ f垣 gDoR4`xOUIiOx˥u$ 1P i[oı)tfeH>K@C 0L7*} PyGM3a8UF\NoP$+I^iq-LmZ\{>] 9{Ŵt^pks[Bu˜/M{˷<+;+Lȶ't$q˲v k8۹? R/x{Ookh5)S56Hlq!5"c7Q6+ϲk}/qO2S 6h/kL,m1o*5qB@~Ǽ~\},b3DŽ."O k!]"ɂ|5|' +uQ2+`La,b! @ʥ|ʮ2+AqA:%.v5%tl`t!8Ka"l"@!L>Q mS"{B,[BKl"#"%_bbqA7B)&x|%_<&U!&Yl 2(W4 =6<+-_ށ, !) m%RK'AI٬ 3&u&`Q,-N-1LA,w#&sA*#Aǁ!QoM\<M2$~ ʤ-ҀRRm1t-Ӝ-)! `AȜQq@qڸ: aKK Kq.GLԚ ,2Xrv@mы1)Q&w)>25|2 #=.} m-`1+OS,5 R,YÆ'\ĸ21!^;|ƾ࿲17r8!S$t29,.84^.N{:H ;Y$=V?l>>߀_b :n:#RB9I =N>P R^__nHE4A>&Z30D4D?@4D~DX ur;y.IenRY!`<$BN&ptL0JGJF?0 Q鳎綾}P=~艾讄DŹtZtZ'>W1sCC>G@NήNj;y};MNƎ|DxTiLe>`AR- l$MՔP uI[_eAӎ$#TC8dJd^NR&Q b9u%L>1>xJe35O`7_L #&B¡XRLV4ElqMjLƂ4)]6u7嫷,TgT}h^? K0?!5 @M0^y{2Y(P$k( M\yQ̎U Pvմӌ{zATT0ڸ@THpgfp@MR%Fx1ؠc!ٜ:QΜ( q tPMj9ԹnG= {l$>Ƹ@`A!Ii@%A&hAq(x9]@9*)Ь첱P.)7zIDnE,ahARL%O82kQĵm?!|H}OB)${:NqDv.3_PN)D!т~0 l1`Hר]jGə=ۓ ,V/õ kg&B.Tm"FM~VR\y3]`u呇}vhz ˓" "A 6\GE2=4Mp!քa 3JjŢAnou28шCa EEb1aGQ>9b%02Nܤ; < )G%XqP %j3pAah8E JEB d:a:$4l7ٓVZ2Vg[b0{.3`k怛=K@$r$3uFs $=2Ld}d4bY( ң̀ UChaK#Ffp'ŔK<-IR.L gT,A&TИ`iPSR-9颥ꢩ"@r֜uaUpX&Velc`46jaE5`b' m L+i@7 T\˟D m}lmm{[Fvue3ۇ0pֳ>hIk_xt{]fWnw]I\*AzW z^ b/MP_op % G8Hx,a^.p닀.b+8& @cx6KX@U<HA{!'<-=\8AqXB+%<2+f+#Ko"d4o* P} 88y0 }hD'ZыfthAZR, t/ih?=Ꙉ.x,jZǭͫegI@4dM@36A7`غVqPSԷuM@K#C2wl^6}]$ D@HD޼lD| /v`]h[Z׶Lpjt[כpa=@ėa{.DC'qPq-n,]C;2I&hؙ# HF$^ә&K@7&W@ly'G "Ѓv qH&>q0>X '^!.b86gb2L ہ|׽.zzLB,G[ }}{^'~s&8 x"̞3 7ݻ6iL]۞?@mo,ܿkS]C?B2 ~˾8B ?(Cж%H=H>蛉<:k+c0U{2(@0=<K={DaB+4Jal{$&뱆40.뱯|14Dh2.K.QlO } }L11TL%L(T*=vVxUVMRqNWduW\-VV^eXW׈-VpMVr-׍ghY t [l& (!W,ё8yXV:WDPu֎Y9m>RYZ(V= \RF`dٸЀ=W=ZtU?UMtj XoфE髬5έE6]{0۳؋εmP%Xeצ}: / [- @p]hqWu\ȥt]0'M̄L]L5E RXB GWUB)_F0y_M\TU\lVV[X-\Xn Yg@_;y`38S.F[U`Q=uX4TO¤Vh1`eh1X\H E`G !0p&UbP[) c y0k S[ږuY#h`^e :Ȅ; /LH^Ob^^Z0R`k8P/(\6vc89^aی.Qi19H L WE+^ JbP2n[[Pc3 @`+@HT}Y;RF#b$´Vȅ%\X2!ńE[%[b6@Qt Phf5fk9f5,uFHY^$R\R5(]"y iۙ5N5MqfHoTVPW~ZM ^Oȓn\!iD.\ۡ (\^ٖc^ܘR^*h[??$}UĄagRg@c `pOj.fQigjʝVh?xl\\ !]W j {Z#,Q#(\/k̊M:5쭞]%gȄ]R?xB L@G.&!F(0P#P 8cX_'8hcXqEu^L`VV^MX]X@Jnnbd{`n3F ^ꘞm^?c> e$^ "L[p(gQ@Iycn8pUump$\gl8nI2GG  p^+qwQ #Q؀$_&P؎*ՒpM] wB5+zVF1oM`B/X"POmt}tꨇOjQe|W MUFeڼe[Eu+R=;`;gZWU6q@x'w lOoBMNXuHKFnb&Wk\]\qw^ІEvRFPT=F]֐אy8qo>]mNSU]%k`ow&}wv'z2}`ƾPbȔVYv y6Z?gx?\y|wv 3Y_J]y!w^d&Erwۛ~ s&۾rq_إMvO`/jwWn`T^w9rצǁ$;3yLxo{8opȟ|,ũΪNwçm* ,u (ۑ-TmD'7u[xV?ߌ={Sv jL0H}+7BD8 " W\5bEL;r#*Tȓ 4f" & ƀA,Ĉq1 cUSrf3^+kiZi-Pjoa1`j^j 6q+_z.xbR1P  1O/3oV:#D$"h"|aQ=|ȂPЀ#PP$,C1Kҁ-ӕ1،6:spE%-Cǰ|߀{ Ȟ*R%ZFJYC0yg]:n}gM\;FZkhHCA&K#a[.r+,`,,T(IY0 #b0 ]}lcda PЀ\V3:yӃ5l# jQmې`xGBFp+ 5TDQ 5(.#Q dA $Jq r̀I fHFDS'FqUbu 01dF411q#X":!wlxCpsV"!u`b P.SH$g t疗6f5z -(7,`ZBEˍɟ*PBd̙P)Unz#?4]܁9wKtFH0 ] 2O}X# u3`a5A퉠D%.y%̋3AĞ'3iht@ Z4 \ EKTNK $#i@ Ϣ439J-jiaUWΛ8]d5ҊUI ?OT*!RTU! R`s)ԝEZQ@cKux^5J>L 'QZ+hgYŪo+dgORNֲ Uͮ`u[MH8 ;iaKVU=ka[}FWѼͪ`fF=(Mx{$U{"tkNN[ !4^da{IQ©e넕FBvf`_W|]Og^Zx-~qqI΋Ҡ7^mku48~X wg ?̡k)OK{Q3Wu|KdZ S89Yʇhb _,2q 8(E}-d{YEk|H-ߍvB/m6=Uz՞kς~U$MnX׳Lw*WK}-,F`YDF(rE C,&$1,W_UIaE޼y _.x) " կ=E eA5_€YڳeB#A#TL/@1/BVH]"ȁV!!:@DM^f'ՠ RA.[ՍkCHA.X/WŒ*)t+K%bYsʄm2~I!v ##F$?:a]l")+PZb2 bbɑǁXUDGLYr!)a2@RE޽8UWW:I7H|1c2 b0:!P,HxN]#:Y/01_`)F#9@:>Bp-y6O{M$81ck?~*+fRoX<:$EA$7UZ#)LG"_N";6# p$$R=@b5Yd)FM6c0@Ze;V59eE)e%S"`%ZBTbU¥cVV`5W6:X=SVmfZ ~^(&4gQccv]Z"XXRvc_Ybg@G]hhr71&hcCX_b&m` @cg "&bRppSqqerBrV`6gEVdf3@_zB£jb#xSEUxƦlS _DMRuHi؉ `XgKDޣl6%6gg4Cuag]dW95VȘ~&e2%fhsh3b樎(()(l-.O)6)ւtL)V^)fn)v^)Xʗ)) O^>~OS,. a?}k1f$c.ɽA>#cf1Mc*dGR4uDHRTLƢMIhT";k\2f!qH[M`t+N>'Ӿ:PFfۭ V(ej ɐ*{Ƽߴ%;P9س],Rl`eEXWu{jF Qdqy"ȸa 7B)SH#Ay@~ӐZzenj5 N񧋋KԌ7؝ ..eȼqCHzcV!l!)Ɲ-[ujVn;99b>lԸiw3OjRE?E!}*U-P40thf"V,+!QcE.3p}3dO9iNjXW@No>ۧ.J@ 2r )=56jz:"ϕ||uga0YOxE$ha} _nߟ>+ l_U2Gh # ع럏_ 8lTS|3KaVVt0SgE{fFA "!GgO8mʤ7|l~$W]"zw;a 4xkbԯ1[םE4 9^pԅTYk\*6;F͋GljMy 5kr889 "PT9E}a^qg-։EO, * +c!NADBBB6mhpN۶qn]VZqYi׮ΫVRB@H(EEU*A Z=+eiѣG+R)K&kcJjUYT`VkמB իWölHѾرsVV,Y`k׮-QjZpQƂ ̷c~懤 AL߸qmذa4+#yI2ߎU[]FvgB$P2 cIk2p^tGA.]rwwB=Ml"4Y@A=yD_L7G@Hv?\\\||| 1- Xy}gSߩS'tdA҈#(ڢE<==+VkYfd>|8߾Eڵkà-^x-:b,ac߾}E Y&zC"/" '\rUʖ-[)S45_Gd- sΜ@ BD !&giӦHٷ 4iR%oߊ222 0 't8{<8{[ʔ)7`6lpmЗ#bcc>}Zn]9))ٳgQQQp8K.\8-[x"xnrrepL&#rUj%ƍ{WDv 9s&Ol̼qݻ]~|ǰ ={ܹsD S.] ٳgO:&Br0 -R6}?3N1q bvssC3gvЁ",ᒐIw)>B%tC,)&DKF_*P3hD-*mB-y}P'\%hƌC5O%/; U+͇/ݴ4ae9YG U\TRv(7I_ϟ?6cK"3dYP,q(raڧv>7?$(  V2 `?r-:I_KfQkh4ԡ8 W oHǎtRiA"q Qh"GE;PJcYG{c'ul'&a֎1o;)~FNv ,%Mwe 0&>>tЊSL+cSHFE$qmj}-ZQ>!#Ppp\Ű+ſ^VkQOt/Sɺ~nIkR=-f֓O^S|)k hOU<6Ѭg) =Kh_1OfF>Yd%V-w[SƎRT|^zvr<[eh$4"s-x ?k.VflN0f*6~[E@z}<{lݬB dS ֪UI&X]S Ùv6yxxВkp\]]eT:u߸qϒe~/^ )|K7Yfŕ,YB]hUoܸ6չsvOK&&&vL%rz1\pLC-[j% ȨoyK>ւKbEF v7ke8R&eVP@Mޒ( Ckn-! 9ZbÿgĈ?ڑ3.ܹ$pR jhxdt~ZKZbV=8^fД $NMFOڵɬ J*%Ɛ#ZB󷊀\ZdʯݻwxzzҗoCϞ=- 66MD==BdPUn]___XPh6m2)=LY1J@|kX_@_V4'<6"K?2gO뮕jEx/Y5޷[vm, 3( _*5M,BM(w}޷_r:w7IhL*ČY>fkm?HdmЫ[(>׭[GdsΩJʒ+-1_/jkw9zh 6\۬ZӷJ3f̐ICUn0 }*Wkr'|OZrq2V%2B4TPZfjUY}VʒQOw8k׮ѥ7J_S5 \zAβcCfHΈ\F'OR+^NJZkݺ>#g7w8Gpvs,61ܾylh8r9shsFM۷(pm3þzpnsr+ؠgaܦʕ5^j/[Nra1 Te ^j.ӿO]H~pLΌ{ gvs&'λ%JjgsRW}x GaVr|<`uɹ$sgOsʍy77{%2T^ !Γ'O={6|+H 6Пi @f=@c𠫓{F$џc1!H@>R"Լek7H[@+;b؟P>:I꧝u~heܻv!u9MKX7j{jIX3j뜐͝aK* cR۳l'~Ⱥծ CRٳljbT 1vzYj}X6aPY0i5J HmePF4 QcF U1Šja}^Nd!֬)Sy ><1TRI/k.R& _`U@LU@V\Ω]7ߌ>Na{c_mj* ǥ-w*dytzǀh=ɣl;*Yu~ NG=m81#)YǸQ$a&U(6 M$3|@mB dYy!mG>%P@+-Kl`'yߏ}V#F,YԬ,r!?,`mۚk{lڵP~y֯kNЧRHss~y&$$p jw N(@F4N[r9 8FP 񩶈 IRL_˦Mg I&YBaÆ뻆HK̢E xA@@@Qj֬yI&7WbY"T޽ A8)S&))iҥh$f7mDLA]/>}xرcj D!2qQ'J|\oMLL Dn|p>}Zn]8$ ,[Rrr28QQQ/B@?tPRҥK'Pr}Ay !oh仵"KI.m#D!4p'ב @REf!7X3go>NRfa2OrPhB< sgbŹ?";vX u d@r'5apY3%!BRm۶5/؉TCsa)%ohΘoSi:XM_Uuƍ{ΣҥK5ir"2z Pd[r_>x=<t҄WH-ܪ@>qt/owb>z?kV5K@ 1"Ka=z&l}Msmr n||<[X8sp FHm";% ՜ۿ_Pm0ƹT?c:lVx\Q~5%o)"Delbي)v/B?:Y8޺9Yg}dyiB;BW2 0y]nUt7nZe2Xc'IYf4)HЃhm&c4ٕO޿~СǏČ1°N/Ƚ5AU)c Hҹ}6 cctP !~ C .. Ø5kҫ6=5#"U?1c@h MIIҥ BFQ@N L6x)ā"5k)7ڮ u-]vӦM۵kGkAӦM% ŋ/VeȒ+x+ -Ŗ} ֹS=Ft aA{KZ@P F H (EL7|$ C@gRaùEԴ qd'XЙ޴oߞvBYq'O;wnKS+@2.z- (rf̩+ynnn1ȳbŊ4',ԁ222Ο?5NtY&!PH9.\/NB7V,,X9>"oư1D7}M8SwN0m igYH@@DCa@E M 0 6-D^KHNw|zT+ɜ.uD&.tq qT'DT(c$4={fz4ŔҝTW@k߈@"#yA"u9i%DJ -i$I̻wrKׯB}@rqV-[[ 6"LMcN,X;iQʧ(^6ƓT۸K 嵴.E hZ`<1 3ȱo6N'FdS4$@Ҵuϴ>A0_oƪCP @^9?ԶnZP$]$tNOҽN͜,5*e1Is#bL+K rݥ\-fOa+$ UQg~2lEkƄۥoZ p מ$E&o(@C2~ĚU)}*HdCYᣇ+ %LZ@VCQFNB!jo[^I@RFM;_1|B|FAvQQjfMxٜ YM>{?ԗĜ9U[U6JKlOy3:F2#lQɲ<5N *( ȑ}#Xqd+a 'OVǘ -)Oi҉ JI MZ=3:[(^}k}-0`:e )RZ@jm(#, ի32[j]ܧ,We/G R4ځhkS" αHZ*d iF)R~ZZ#0ԓYIhP!*-@"5&cekT ux%/1tZ?N+oK-kRXm C lj͢*zT%ת@E@6Пkf3I'[c47'2V^_XY BfLY_}"?{&E@ONJ(ORHB )TH!|*ORHB )S!|*B >RHB )S!RB >RH! )T ɲOHN_1c0F~[$c/9>c WLT6gpppZ *drr;gyS>B𹯘ige0Lݧ>Wş=Ez$+\}-_wݛ.K9;/K8iP%cR4s:}@@ʕcW45ٚ7KQП3fԩSjj#\~IDϟo֯_dll \~fM>}plܳsc?r/]uFݺu2/,أǏ,[V}zMs\ܹ>mugp6mnJI.\\uk/\Uop"z>wyr56ve(P7n`!ÇWkԨ)'!!s&O-^~~narcVlҦ͡cHѣ>|Ѱᜅ )] 9̞!!U^ޞ{'9Y.( ZAW ]jT\@p1#wa3|5*==mYYY, -[]j+6oQQ%J|vVSZ@}YZ>}{:u&?0mбc?[8kvZ{jsbc9ضufcbB{r%kܾw&t <;{6]]gAFGT##kU޽kԀڬT 4Աc 1y2?0nذ'æ56+Wfn=dx.~9ҬqcGÑǓmy֧ӧvZy֙sp .]?O?~ש]sFKuy-{7D  :,Nűϟ?7Ak޼yY ߿ #ZH[6ל4{6!΃zbB2!pDqR.۸b#y&T(WݺAccnڴTժ Rxիqh5σ ݺg꯿1 3~ @wA[vy}rFwTP` [0oPJ4 a&i۶3Cݶ SV=&L~Zu3.TT׷gVs2olޤ  k9y_ϼy9Q9n+gjչ sݺuׯ52~`8I<<4駾 bb>в%L\y~=r_j. :Sn6kJ1'$*YR_.DB9|J'Ik :Xu YD@t2%6f{0'1Ϟԫhk-_Uw4ۛkNqu'CL<{Пj:yIIO~sDOO pުUY _شrAmܪ{iu5ajS<>lZ sVttPxGam{ &G+W7:5jswŒf΄պ| ۵i3!2Rr۶ݰeK&Mʔ*y63qUy(N`+KZacisǟ4挎~Jc+ir_'0p Zݐ!8oZ`5jWZ2e pqXX#R) eˢ w~uHH!C~]C+ eiС0n; !"(7i? /o< Dv|).OzD'8Wb/FG|a۶8[ hխ ڵ_L*Wk0b[/?W*VM>~|3k\ըQ@M7PPھM?kj-ׯ5>Y^,ۼC"GZ4WxG1.4h)e޸^= c<[r}a7dTϛbwK.1X`:1e=X*/_{5K >;w|l\ D===s%(BtB >RH! )OrW p$2`y$mE$)x[o9}tޯ~] ׈vX0n4y2dFĄ scU %d̈́ UX p4[ewpH|^|οuLqxЭPA3Ś F>~iѤ3 3SꃓHL u!fvن+< 1U/ >ZP*A8jcN*eI)_UڤRpi[զˋKʹnPaLr0еNqRڊ'GRwjj^;²JUMQG@v}rdpsW'Lq 4ԑ4buw[s!ڊLܜҽ%ty-4'5u{Wŏ_u6Ҵim<ۄm\a[n626%40acz8t`&n߰]A\8}G=jcM+HʽСܥ[ée]m^kV-Pm%[~[?|{3d{M Zuu8ծ\¤o(p+P GpNMJ˻7_2a6'>|𒯗4h`j|u۩A¾DͷLQ_;w 6k$xk̀1T:z(RKYTT!(&LcfM}IΦ}e%Ƹ<s.gĜg D/ZyљjΝ;-SԴ _@&GFDqUI5_h|4j(0YI= Z\z .=48hpT(2A|~:Sf q~U6,bngtK=vS3⣇\W&5J7s\ٹG<r"K.uL+ZKFg=JII7uRJ\ןeʔ!0Km= ֏i{rP#>@zJ^{˧O&|M.h^:{ɷi\ 5x)*i0Hm (=9g.vXB!=p1떯; >>k4>ޮqKW9SθꔭӶa[\j8:*#-F7nw;p5úukj Z@122|V߻K76gOޕ)ƒFbLڙď-ڷS.q ?jRJO9:PGeĄD~@i:Zv숱|GX/oի].a̰1oogW:3psu3oHbK-ܷy)];/^X:ȵX" N:5o|wݺuv ;ރХ0n4UMʮПЄp&oV2.l9c?3ȸPBæ ay"L̡~샔 ) sR/n:j|T/|dGNOR87 W-$V%4]z1Snj}+QY g -m: ڦc\hdQ;~˓xF T(iigRQo=<%=}tP ܽyaɟ|G"(/ߕW>;rvzZ:[kw5oNĭO: aCBɸyĺ5߷?§/μWcXҍgs^ :lyݿdQFX&xV3h?<~'$3hk@rp]oO@459uj 4zŻ|2ٺ|ICZEp"M};#*t\\2tM?v+dYӫj&L+N:Qɭ3lw.΀g drAW5ª9p&變YuQWpQ9J`4ӶsmW>ŠB7ۼb pLLMDޞ}>WVpќ7otc]!CZ_?!n[ 832Ǐ:]iN͞@ȯ~ڱkƵn;3nc.ׯY߼es xCٹ#WEMYGMp<&ه_ivNeǼ*8G˛n|+W3uƌ'r}cVROGNDX"hK Ai (b5 NUřyRփQk.d[ó[ܴoqnL74:$XX0Gp/San}u L6v׷hϐ;rLv 9RU_[2/Mh΁̇˟ o?&z,N]:lѲAwš69[&eѩghupYˠGKAkrN;v~X,-ƜC&cc`aiGҖL]4@|k%Whdrd)8vt ="}1]_1^3]~ZpxxМ@I.V+5Ec*5jNH@l !I݋+bgJMo_nLZbOa)a*L&*7KR/ Z6lCըQÕ%zy`k3gr}G?** e˖.7l؀K1y.W_i9V,!Э[rկ_Kf͚orI@-[ǚZ;͛7/͒G6ɖ(Q_~[<))) dV@-񙙙K.ݻwОѣrǏ?q℗.X>N>M޽;* OzڴiիQhRgQsYge$ 7n{%KtVP;vG@*}|}}+.;>>^$hϟV޾^yK$j Khqx۳'+  x#2΂"dzbccZ3иf)#P)ص+={&P]Xl ETdؤIO<ExYxxx߾}SǏ}x~N9j߾=$Ѕip"dBON:C1·.b{9*B:t o#Z2qJw}7֭KP>seX,RhtgȭSNhPTyrhb|Cg"}`bФR!aw޸ĹQFyʔ)0KPNi<>Ìzp`|5̘1C.sNDZЁu2$Nuh[h1*u0{lcpCEȂTdqK0F/pINz{{C 0̜9@VLars:K)  MѣGK,2X"Tm0 D-᜝%E-}[!d$S? ݻw9X>}K?E… ғ0na$'.DOM"<߿UV*.2$""20%bEo+ޫzժU<hC#GD FB]}f03@%'nBqˠ剒^vVS[@#jܨ4ܙ%H[c䵎ސ3qp7(-=DlF.+(LR]"A|'"@w@>HK;ҙ\Yf Q lPFJYxWZ¡BlZ:  FLbL YǍt2a"իW. )lAh @)O ҅LYpI ,iM# "Pn(EVǿF#JtIU h`ډ&f(u P|&%!ٳ;,cх JO"~jvٲeG+`n߾Up/_Z%TI%XCXpC*j\btNƙLhNS!_YB}*T_k@䐖`&HOdO&d?H*A7ϳ2u!A60.٫4PFH!OER7">' N5L\A΀KZ `҈g .tִ0֤.Ƣ ]vK̸D@P%4>'O1CDGoo'Nl9l}=pS_|Y֭[QF%EDH۶m~COI"(;K|A?q?rП h%r\rf0Q_,qa DۜjH`(1XT-ls G'^ } H0hě'g">8dP<5R0OX"+.> 4>e :PY4aKqŋEHitJ; F8|˗/9[a!݀8'HΝ;jH E(hcRJ"ɕ]K"Д5,MAY g&d@)=0zQ}+[)_\RfukNAfF012:V܅:%p`Hl~H![xOlB,INܹsL nsLħE˭BB )TH!|*ORd+W!1)RpŽ-[{F.嵘*PAKSgBB˜1cJuټ?V*P% )S!lM{NB /|*?"y{Q%-e˖+W?~m~ayv9ۭWiyx kVI?/} y 7oj&?oݫTr%sr.մuqq by jy׮]YdIu?+R-ZyU*⟷@'Œ^~\yɝ9yM)d>Y?o2eP3oS X-5!}]S^B={t_#A@d(jժU󢡣h|ϋ)+}>*U mI>U¿Vd^qx[pay_u3BXeqdCy.Hƭ y1\4<ϋƊ^,%&%a(^p>Up)FϋFH!ge2ٗ+O^SHKU?/:E$4XAk׮.-`A##G"4!2qb @Rbq€= |o|n\|8 `Sqo@!+ Ct>[7)),Ƈ(PaiΜ94ޯ/V͛7ޖ-[իXuJϋ7]X&&"'}vO^ ?/Uwm0ӝ2?/iy1j -L!Sjϋڵ+ yaP@?+!;8sV6mc5 m-?aԡ3.D~ʕ+(`MlWq#YBEg8ư_`jy5J?/jU?/d5'O$,qI* C ?`ք9yEH?シ$蟗nݺUm۶1@x=rnyyw; CN]A%~U럗j^ ;Omy9oZiH?/0nE>{  pݻwʐ^!4^ϫl˒@gL׮,oZ2Q\bT?#C&*dJkz42?} )y-٭O֑}g|UK`, lIiLʟ-E5HJk+Xy,^b;)P]>pnOH5bx[Z 0~BN>CGT,Ä<_|)qݯp BM&, |*TH!eB >RH! )ORB Av.3jKʔXR,y4lɍKSҟe!߃8Ok;>N}RŊ%VzܕI3or1 ) ke/-OV~Ko`=዇}BS!BjP+! 2B`pr|O;Vb=NVm:,ZQ x~lϸqhjm2trᝇS#i1\ԑS(L*~>3+>_ѴJS VEKaa+5Ʊa1}X⠐AeR?$qXhfRSR]\?j ֕3t\hd=|սq)qCvT54Ou= ͻ\xצ]:xj*?=2>ڣG.Rp£#nu׮RP;)@׳㙴3JWkz[)@ƍ ӡ /lҨ>뷠?ծ֬m1PGFrr\>$cNpA@&N};Кuj ՅGz{3KJuu4k .N+%G~Nm0ZVV֬irQK~ucdҫq+>g̘ѩS'YB3|NOzVr0;zJU?1k,\yܕAr|xwG4mN^½C2SSOL8]˖ħ*~0wk}ذbaݹyq&}2A8wşTB!= B9Ω[n6'q՘ ?i|"AҀe=6l{v*[{쀱8z֚597<>V5Zo0Wow}~V]ne"pV{Yoeh.{wxwxph#T}jeP 2n^^I; :nuTiעN;Rxg@#@ӵȹs9Ǐ@~ʖ,NwZ7k}:4?-ټes]ٍ6oXp1߷?\ool?9tdp ep`9n~"DV,W~}(\f)Aץ[E y!Ν; nQF+36TWX\'>?{V2ɸmؒQ+4@n{'MVNxwaAogySN:c=qvmӁBtkkZӒN$!ρvg5,sz֣X0cEl[s-GpK_jܼQ\iG0b?WJًfyϫ#w .R/'w캙ys73nlgCC"~#} ֐C9qD~M? Ia$2jg?Gա˥; Xx3 ٟܾ%Va.pXrĄfhssw˸Ѣe F.q \Pŀ5kN]:w;>u}zkTwww,jaN.z;w \fK{} W^RHHHMLJϒKnrة"1$;͵F *ԑSP\>{ռU~q *DB5NoȬDO(TMq5My]}[hQ.-+  ˇFMA9q.3.>`޻kozRNHa.Ϣ?ݿ7:7mP*nU%D9|J-Y/@cHmX44(4zitJX L\Swܵ3ЈK7fYLXDV94i_.$rO"q%M֜w*Gp&>M|L]tR}U<9t,Y(hs. oB7!88a`jr*]`B#jfM' UwqDШ U<WX(q @BB Pw2hM#GqKѮA]YŞ5nVH<D޵ 6@jƟ*U&͛Tr4uԨEQ0W.Y+$FhT/Lhé;"'8OҜ0q*&M4=̿b~:/|TK- c5vQ,7XмEߟNx[bk1iw4cQX3@av)zaw]o&ԼM^:LDҽ; P0naSNqCQ,(ṿ*UKY]ӷ'^NW4Gҕ$:+s{u/|~{[skfFFw8g&ӵk©`.n>7'^z>xi߻}jFj}pŋ?yF1]Y8m?.ߵ8b?b Δr` p/4/{uF(9O8M(fM:ϗ|~-ڼk퇷q|K\~;{8T;mִǿ8xJNG'TstqLSGP IQhԬgY2ќ|ᡏ?P_dx1 ʡqO^<3~ '/<}T߹E,.c.t/Sb79Ts)g _IswnhlXi^6&FM7]&lRY~n,[0(jz*ʘ]f*c6CkԎ] FxjYXtXiǛ $ۢoGp?JU jh@<2?/N|c =jVsTbbTQLY>φ& >Qz! RH! )#QgrIENDB`PK6WK[F[PKt1zDOEBPS/img/ashia_dt_026.pngPNG  IHDRdtEXtSoftwareAdobe ImageReadyqe<IDATxiu&վo];z VH$jl%kjfg;gHڞY r4:$%ۢIJDZ $h,]U]˻Q]h4@񱘈\*;2nܸA>' @G@@p+brr#ρ<G=zO긆;v؁c' G@@p=aHב妦n xq࠯_| ޳g!}!na/9>O=|@C|>%<.K/Ag8z5jdtsD<  }YHU?䓇 ğ~GyGj-A꫘0ñXC^-mGcaK6ĉB)ǢJ25=m'Ch`]xp6QB KsLM%s?lA#6@2U矿Vx"FE!dOh2ԟxďs6yGVUTo jHy/r'>O[x;=a!jQjV2_BEQʼDiLƱ Mip:EgkLp ɲdX(F8EӢRFg*PchBjzmܘV:k^Cr:3R͌b*ν4='4ӟT5 om:99 =gϞs"w|!cjjn/" tU*lhӎ󏵯X#HpF@)`YpNNZzc9mnY*6n82ׅ]~4k#]y%}|~~ _ y\@3C??sMbJT8L8g!zsQ_</?Uf!U$O`XWL*+RPrP 6E CyM)4vZq"ֲe2KtjQCTYhx]ƴ  [w8QjUI+\.' "Tw~.Yg?o~ Fϟ$1\.>vOJsߴG|E BE*'3.;wے\ . \5}1RuN5‡aݠ.dR KR&t}StQpp8=atuboz:׽%t^{:sV0){Ri+F\q:$K5?;pjnO^:<,TD BZwl>xο0uPddxyAB C;vfoEQ-i6jj l9O Gi X]6j H*~:Y1% 7 ȍY/%fNQ+|~Vrk'~ctt4zlL̂#u{# Tji _rӳ6$T@Cn&@3 ͯ 4M۬6a jtD:{}38*b8ycp,.'Bgk /\ ??fժYëX5dWP2c%nɢL/h>'LO3 ˨jM/ zհ-ju`1 l S7W%AGY-'{BVZo}OP>3H$R6;G 5ed:~N֯O#Y"P(S%XBu<$ ;y|n)2hѲLf˱ мq166W*WiF&Bcg|݆ '|SGw&`u+>%^wd-u ;j 2]KU9mwس%ﲑDTr8@N3?䁇ͦө>KވgA0cݯ֍T([Ʒf|De,B/H+ uѼQ'p ĺ lV؜34{~R`XPFFT VE<o[qcZ|V:ߙ闫vw+]j1l=-c['>> _w5fs\esHH8Dh`jٖ{wyPMgftI\*{#dwFCADat"O`%r% _<O- 5LsK|waUd=MFfW\N#ɽV#np!nw1gcu~ݰߨ8gw4!-Hy5mP^^]aQbKiLd˲D'v>yזְTs(;J,/;v.U_eU=4Ӡxj8ݗ9Qk9ߙ&_c绕tnNCE>9W*Qպ)Fx&We9B(tc&@o[[K}7Z(ўgL+2u=Z;Я; r,@~appg\}:16o3|as}#2?^, |j/K"~ZA^uGUzy>ݱ-o4QWF:ie@a7?99y\.>sx{|\NU-:tȜ/ByK)+s:/Je2 =L$)Zյ:QN]V $]<[^m:k˪^}e Toz{;Xֈ5{֬j6Au7r=GUـj:j4Zеhh MxPL8ް;رcѣG!m4%Шuuu|]vlyI Ovնͭy_| |ԭ>6͖e:ߡ&qOQMeLT;twZeb罞 _Q+$T:krMYu6`zu8ŲFX^Yż^t'44hT۷p|+"xlqT~ux'_z%zvwz@b%}߀]  :TN{W4*W~+ l2c Z/$Q++ߦp׾߾P( Qbϭ M>6_gj3Ag0͞UV ۇz<,h8+nh+"`6|@&@yGh{ٵk4[gí3~aZm"$0}C'?与駟޴iʮX MytY&~w|gM|c?Phl2{F݀z w^ _ cFP ~&rgy'ǴmݸSѱq߾9s=Zas7}52Ѳ&207}$̆tGoRVgTh4ZVAk~::~eAt`=~ BbW4u%BΑ#Gp#ꫯ&-3>O%Ԇ|b[rɡ`seSc[+(wKӠ:jѵ %( }Y bEWs7M&l>'Cr&r[:5Ii^f 5\뛜卑;ߡ|=PF@uqɂe PUSNaŏ] _}Y\^l҅+aZ 8g ۀӥ޾CCC[ݦ%3nk|ix2.Ժ'/#o8ShiqFdasyؽO_WW,"Y, 80Oh~]IEU(v0|sF2k&2^ulKĜ /?`ea~8ӧO?ȁi|ڕ9^ Xyv+a(iOi%'R4m;o5swN W-dm~awwI;n;t9绥Yv(4nl:kYhD[k:\JdU‚ P')ʯZN@&UA 7 _/{k}תz_R٨J|ٜww~*)Ml6*Z6ZZkLpg6=uӼ :2jX"HMwԚw٭>g6ݛw:!=o=:@.S?č|P76uVBMl%C u` /覛_4CC&t;mC^whdOrq?^\Lj9DY? Ⱦ<2X.b|mCc{RX^ǿ΢7'cyQ%IFI5Hd2y1xD䐏3 x<`JxϡyvaUoӰVa2AfS]E46K^ 0+x8ct[,>m+;ZhW6R2P&;`wh:z-/w3ŽwPR9j~j?Ff4cM$> 쨏@b#s" @ L8!ΏO4|(h5R{95%ˢenɵ~ZNʝk|'jca!o]ƿP=#jpPI= jf`ze286A?wg_̎&՘|QjgyFIP5 5O fJ%JKѬaodxh[l۾)ܣwf?zti绥 Tt5w L'i :\&۳ bST!oko]]SKhsF]]߾~Ⱦ&٩n!QYצv[-ǽ1L/B F{sss7o!aod[C[ўW/uVuLwԵq[ԗJکS4ﰰ1?2?<2695  _uSw-Oq: L8|H3k5q`m333:7:{}ή}oYXM-B-k՗Euj}V^j,Bؼ,fݘ,BZj-[۷ռoLoPJ KqH7&;N;:|^egI(x㲬T*wg2H8, fZ$G"! ) ۶o]^Ml}N ܷgB*?9kyƺM c4?-90iX8Y$I}_*Be iJ}ZM,S%h[GOs_粩 Sr;t;`wuI;tJjT-UI}[#,C/@VEokw@c\Ng$1>G˕XEIWāryhB4o\Nٳy@@rs AO!cV2.KChҏI9(v||*f$O\70볓YH * GP~ȶq5yڣ3VF3SkECr9>QovoiWmpRqVP , UQX<%Hv dll~ցv&077719%]BlW113;k9B/+V\NbvԈt6 5\DȆ3rUn{mZe|dG9-״&͚w˒KbI9?-VvAi69ȁcm%f% ^&&&ggUCzeD]33C}}}.g{=n70z8YH0c ?IP%Ύ680tRіH(d -[Z[c_%=3ߵC#x}cŚM&9 a _KLɓv."cgrjg%RN# S{{{$7Y*ۃ?vrڌ| ˪U' Q͖QŸ08f[~5F^B_HsBEHB+5٪*Leei S6J;_pbȘ8 P8Vɲ,Ht&jvr0PDӾ\r,t:`$R $ϟ;wN-[bQ,,ħgfpIwwuޱ] 3ψ,G?pY6=+2^[ݻIܯ$O@8JL)ŋ_گY2 u}O]51?@=tY[`B  "$dh)EI ώ'WOwe}8cÍ_gd-R \mo"@\/*Ko:\;nFO|k$(h} ~R C!ͅ>Z{%tp6mo|(QG*;_ BG[޽ÅN.ڼeKKKK4'ffggY?yT6?,Ғ=Bdlؽ{~LnT*|VRt$_/fBO+MxvnxAMxo̖>տm7r$Y-R2c2lj"d^#}1xTfcêuc3d_Kf(yImrod7{BWW^ylFX{L.L=N{"ǫJrz.C`;r T}/v ػ玻Ujʪfk#=_Q|u;B!ϱV kӷ SgY}~|o}wM,B#78<$</d-2# ڽ$ <.B( Ҵ( b3;P2@߃RO$mՐ$R։x|T}( By7\Ⱦ8m̅ |31|Ϧ|Й*||BWd:|?vG3IY-ۭ i뀎[ZŠhL$BqJ$n w8ó6mǓ<_`0N/, B:e#_Vrslo.p5O&&&&r)̗秓9ne󌺨cú lީS_\}:T` {җU>A"SŌ$Zk{$չIh 7MNÅz{{w]7 TU4oX#1z*dOQ o=#/GFz<>'%X&j>hNZ:W끽NR?0P:n7r|<^BP7-xm`$\N`пeGFF`tn dLa@A, [ՌbPVkQf15DL#ʽ ̧zOϓJpy='h>沙_;}FNDWW7/e%OL }``R.p8Mx+Oc(|- <~_kkT5$KnxX,Ƣ(b.<=5GOOt5NZ]bz` |VHJńWͿ_~w.gScZx7>}'O@@prwػث+/iЌb1_@ Ң [\v]]]ŞOݮ@jpe6 -g9Q5!}2(u`BXeDf׋pI eS8VY.tuuBocY=ЏKQǐ^/ZL:ã+@WqP)ߴ?_~0 nZ>|їϱֻ1z^iveir@h3||5266ޑQ GQ(9H9= GDA @_  $˹|z xh$mUXt@& b4_mpDͯSחx'-UJPGG&O@@p];w?veBx-hzh*H8S8(=-.Aꝷ0:t T(*J8)kuu≃ H5)JU*p{S4z~7J:=Nx]*21?':pjkr͹H$BQEm]s-vn^<_p(r9%X*iqH8{y^U twu XTYMPz>@C(psnn[6Dͯ---DݛS*W__Op<A7eH홙B>:e iá3:MTJ?}E[OkkwiXN|w~nɕXTVϪ |_ePlvki]`0 c8>Qt5.+%ݿ$G{Sq]f j:.]RsֵZRjv=ay-ܼEMmm33Njko۝hDiߤ3Yp' TxnBt*>$33s݉۷_q_h_@? >Jk.˟Z;/,..J%<a z=h Y__BL{G܃T466291XLq,k$iqmmYy<@#cWןO>$y k#D"|;۶ 9sX,_#??ǤGApEg?ّ^;2L8iniAP.}CxOs[* #=NOHrҽjcv srz6\lĻ]8fp'oG5$ c=_}8|{}>/|sA-c:Hpĉ˿8]h\୞6~>@b |cv`)ZNӠZcVb{prgfBk,OC^Rɥ!ޛOF׋h4zȑ_~cپ/8O@@Ѱo߾ݻw=z?a{5x]zVyQm6MyvP:ٗqyl^0z1 Ѡ|v{R mH_h4/#K+QDZ _޲u]w_V+@rY kw:ޤizi wmr:;7C#0rlRAo|);z|q# b`#GlgZLW@e=nnnE" Į4ivrIFFGWr<3G_>,օ5'NL$eJ01\%r8;vܵ{aon?VYikmu*EAq٬RehjR@N𨪍\1T<98Gmz:=}Bt5\5w-ݔ\"UGGv.5O@@@@p+a'Nx7>WXl޽۷B+^C:x! ,+pACX* p|'-}wZ\sZlk 8 mgRR+Lx\DwJ=䐯_# 6ȼy}}K_##ۿ}9 qt:8 ÀpG: n+ ZTE0φx}޽{Q:Jѿ;d6>s~߶J"(wu:1YuxWG{D$p̉Ν_G,lz)O4$׋{nFwرch*_>?y>q?Mx:2tX~frVd 9VAO0j)xE!*oCQO!)]L$\WFk=5&w`>ߩS` _W_5 ѣGVsKq6RO@@@q?/} >w܅ӧ?ƏQh%T"[(4q(Pv6ãjʌ+oW]vϮaW᭄3HH$hn$j"ھt!|cp,N<3prPp(J 7?9s)ek9R/W5T!6lj Do}D*jz B[|so~jJ[7q{}@25o5 *0jXݡ_|>i8aSam@pAHK+|-ςS"ܾ\nTkH(*2+1 r*Tw}JI+#WUhEæyz~"lFt~% ᠹœW]zGY)@%81.0W Rs"eӮ CVM ;U{M-"KZ(k y$Ղ ɴJߡr_O3x?)-/)TehlFO9n qo/ s~t4ofm;_Zҫ.>tlǞ}ٕ@?=;~~,u7 x@ܴPETgSmI^Bݍj*Z@ C9>e*RxUSũJѧhCb%$DTbxNjSteqg65ۆT˃2;r'l/{k_ݺu=|>|Px^EQcپկ=zA&2eݡ36]ۛm |gyfhhN D@pM@\+񉉡Y썊%uTU$}XrH 6ƟltNf;+${>dRy-! >*d5y$S/,gx5hُh Qלl/VM^Y[x*Ŷcppxw~ L.drM@joQ$3T(J%d㑒VfiN@@y nQ6;ؘ_z%`}/3<9<Ac'''APA& p8׸W.Ŭ$i9ฒDڳdRL69 Hz-䑃Cp9UrTyJdmt n,e(M$YXGRA B:oo)ы?;w4G;T[@`چ:@7p\\ 駟Bv C'+eH-VDReZM v$I3 Y;_C>u&eтTi6f()KpM&*R FDRf{mjSsͱ*F.y[搬uꫯ\ﱸh}`˲_eIC+ Æm 3j1HCҦ!r;‹3L*#pnXoS^+r祅e˨4:)ZmԶ95ͪi dQANbjSS܂z?χbOh0P z5o,3`z!quZ\edAm 냲G?uuݖ-y=" fc=qשJhQ5.fK?e(.rU5> (W++URȅ{:) XU% 5OelLMMAu -I@`ƦM( Z= =:tgx ^(6pfDQHf90L4)@vX.V T[BqLiD+r8([bL9G)U( %s=L!gjMSNɂ PAf'LO@A@l@=cG ?#@مL<^W 6e kҍ2rRi;'Sc(=zRŪ|ZGR!\h|2<3fBNgGL) KX^:Qj$ޯ脚=QRtEH-<-F$u^ x`t`_裏be>_9 ZJðBT>W+"K<. XRԜ(yT0BȮ(s9NI%磃9U!ɊPE*w' zj*Pk&9,e2 \ uݯ$@`(%I(ϧA#W*O%{ GS/W^:ZVUvW՜OslYb \%EeIx x<^Ϲ݁XW*HRARgP(dteA6VKCp0rW\|ZӃ"U^TSU5[F*/Zo[vl(Ƭ\._͡  c$ >j[,b1z%psqT66zT t25=WsφM'|r57=NA努w+vZI<M6=SGǏ'τϒxB遭drX,vN@ ś8K@ gjB>(IBWVz@鿰V)جzfu!W19_TfqybBʔD_nf0uO\6 &''s'&&ֈE@@K/'\^? =Ov8+dʲJis _zZ ہ4tǠOKfuoѽ,-0?9+:>![|?UٵKK@B Enw;"F{ @Q4_.Ambx6vbmmO033 Y,v/r[9^o$K 8ŧu .WR .]U%g+YYj$Cdl(|Kt\?<`0Jĭ(& F].'[Dꊀv8\@:퀒əpxW_ƓJW%xtz`OrZ-lXhHj c߱$@&=uO~h,DmsJ1R(dR6/hMgx^X,O g }{?.K,8VU0vVx)zP ց#.d5^  r< A bph}! !\'[]8X"iÏǃml\/ ~N]iUkʆMZWpvao-Ox<~^;v][slq0c:8 ĺ>oezzbY?5u^?gzC qgx9'r_Tt CEnZliup3~XkO&^a'5C*1{M>0(-wuvl[_}ܳ{wN8B\݉]6 CONy;_\4Ws\*KD:'Y% ht(VEټ.Wyv=(Dmb@Rۼڮe9>j=LeoZzĉXEab>.uJ`b[޶onPX|B!k9 p3|Rź7H&Ph>=|PҺŞzl6;˃g Vݮ2g?L ޥ, z 骬λT=(yQk좵v~٩LG5eHD" 'uA zCEa@#juvvLt&{(h4>|۷.] [f`?pxl;أl6ʾg;Ҷϝ:)@ """Jl*XvWEOWUteUPs(Z@ETT@iB>=3wL yÝs=yԬ3LBe[k^x__~Ym 6c񪔔lfnm=n2u+ ))YB2wuə#e2\ov7SI)((%wd]6?8#G 1Anv; *B~-zGB5O~b_ jU$WȞ= BYןo8x -͵qq>_`4=!R󁁁*++Oo7cD3t:J=\=ޟ}a|KL F񧽕&y}->K,Ny&zWWKKK]V@"o[r X6;|)(ͷrt#1HQt<vL8C?&;p~\O>FwIvMJֽaw8lhoo8߈V$Yzy A 䦺^X dz\W͙\;H?gWlW?9^|IhQ1s-{t렻_~}p`pMǪAUݱYy#FgN⣻{ü_Sc}Uk^N\y 1ۀ&L*P?N"pB޽{A"yCo9\p_|Ex%9wI.… WZE$*c$%%׷~ 6NsM޲eZ퍜GJ z3eEk8υuHa+]v+AhҨUUeϯ3oϚ5aIIIq=T*MJʔf~B,fE<t<|bqHD Ky)X;l4j o?ζGakx5nRhQ˞\Cxj6~y6^9xKлtR߷I'7{?};HV}?A#`Jڧۙ,HZ<b@ވn񈋺pmX'|x!dNmA@z>6zo wO#z={6=p y`+Za&WUU͜dRib3{AL"?O~k{녷 y !{GB&ɬfu7'OsyI}bbFZ^*J.f''*xdJrJ8uo$-$ݘuug/zRw dl)1%gr~kPǎ ~P2!Yx:AK7[ >Ё?#pPƍ{|m۶@Ǘ%Ae׬Y}3:8AwX#50x9gu=G-C.] _/4mZь@\#۷fX/'[ǛM斖_B@RqS(WW{ةwC͏,#>;M>o_%P5OAq!Awml\۞IrZm˟ak]g *}[k!6dm?{u$ȕj86"m.©I}{9+_Q*rejFcD Az?ÈH6)x/l\cABB0+.[nUMB ^xN8 ' ~ vH ᎐wU W*p'Bw^AIw=Ϋ !{7ᔽLLfG fFm6[}rrr0sϽ;sYJ^ $H8ORH79qr d:I_Ы>#ehA}"Fxl3~-l\ۦ9ZRn0]py3# !/59}ohL? G/Hhk ]mK.'Aa1@gP84,HpΝO|~ŭ:cl|tM.N"?vayGR=EțE-='+w;w;,n& ]~0E״tut'O>aS4?h!6 <><#xw2=e@ X?hTcҥ J;ozٝcg)#_: av?  =Nv_W&>>>99q\QR97/&dOZ)((zqT]| ޿0t5Ǟ]#Ʒ0 9&yR2!?)c_;-]鑇!٧VLBf۝)G8z|zw- įew!#o~`O=7yTzvp|@i<#o{&x3)ϯ,} AM0R ĺ[ƞgo=$8oI'g02~A4b吽nI,d)(((N > xn;:{@Shii|A{[?{Iur|O{~ _<{)F'M<dK\Jֽ30s!,pG~Ҽ&!w&ΑCdy__ ?ˎa6A9Xoa7VAc7ؠ<E DVDi3x9~xwF?6' [`: etQ%.w{:$\wa$ڑ_MCD Exyۅ;]N\SS=jTNBK"IA}+.1*R&UamLV#T##rF0Nr^dXL&;kSH]x̙3g?Я匀~C r`4565;%?>ީ7cd+CO{"Ή`c~۫^84혏;'#=ũd"}ŏz~֤13'NIPwGQX}C`ۛUT(<#..pn>d[gL(HIPl[$-`lHa6Ak]­MT"Q/̎Jԃ~zi,+l1+豀څC!=ݏK%҄9[оy nojuuw)*W,nhhu:o9[BzSM}Kcg"lBǐuu~y~\w>7Wt͓aITsp=y f;qC,&'%{ߖ}Q/ٟ7~T\e4MGVLw!<Ґ0Txd)(((((z vxk[6`ؑFdGiok> >ĉ5xe/V2Ⱦhit;7V-zϟ+y:::L0{T:74OAAAAq`ZkuXqR0GVTz]PP 755q\*ZEʾ~X^~YNHD u &GRܔ)((((:Ey|#*5}{̌tcۍFs^nnkokhhe>/|:Yeo=z}~#@kj-7!^ }}߷gg]rr$b9̞<Eo ^huKk*"^V2nl\nۭ6R!Lw8]I yX"v\YMlljl644K9~rp : {'{'E ߼9̞<E/hMMkk;0jI'\.dx:::srVNi4F0Ԙ%Z[[kj-!dO'qd%{,X޿//7*fOi"뫫G@5rRF7LIIb\ tⴴT~#G2@n'/Wp8zu欬ԌֶcB{ɾ!??ob0'A[yϲCqy=g)SPPPP@'̴1c4lX^p8A⧧WUVrݮayV I%b Zh`mRb"4 9"b̬, cudo~u+3qyȻkݴ=%=SPsI/#*4?YOIw-Vǝt@Q].JH =(wy9 '&&Ujkڔcu#ZNrdv KMk(SPPPP'x`@LJjBfoJINbu;::A{mLP(ؽ;//gTd8+˭V%&&dggi)n-ASaDNcX>yJAK.|<+[$]Κ􌌄'/${rȑ qr:+ֿKJLƹ-y /ZDDOB ߺ\JB.sIjٙ\7M8T n( 2,mZ봴l $8k2jb%wugD ngC9N=-5YV{0Tn*)J`z&Tȷ=?o2=M'&%%vojni*TjXvbINN=n575vE"6G+sL"0{J,n{o~~}2@Jx;>9%jC;رcG جkHNN?`kB9n\qFfꖖfT,8NlctKD dM /ƇvjikW)EEE%CEmddfh)I]EcF, SPPPP9d5lذ>$$?}ȑ#b)RRRS恘 $$OCh8333'G@R*?bl߾]),,t:  ÈRS(vyYL,gnv=b14r@[6h4*1"f)((((=/d|ڬ@ P'8'فnVXcxaRU:qlqOEbRRFFVFzWZsqvq@pSȕ%qAxL}u-*ʑ(>#5 "Myy9A{ d{-\p[[[[xw:m\$C;\s]v;;\N%:C2iԌ̬G׭׻].ڍFyu([/ڞaG.dqRDr<[ZjJzZ4/jjY@G)((((z {_A.doX-YZzl>(tϰof*UY4xMB1]D$|tϵl&_kNJJ̤6howד)((((b¼yZZZ֮];t"p0#dZ-@jsax/!/sza8'?L8io0~؝΅[rZZ$bӑՒH,JT'L )SPPPPDӯYd{ygvl`drgcusJh nÉr/-+JƏOII5sX1zDJh49ZRiFC;7OAAAARcj,0v8Sɐ[eyo=9p}$oG>ذݻ8x@mmf$$$%|j W+6[]]$M˻9H$bPiMKX߬k_< hОw~̙6lXvmVvԩe9yL\.7V)吞 rd2CJ@{0#:zvCwX݉koDi #?hV3C# 9^SS]Nbq8xs1yڴ ;N <iBff˗,YlyRRҸJ}CKvFT(؍<‘x;ZnJ)((((/]~Æ [l~&NB9:B1b0Bp8u".—vukj(S8 a|;_~oÆ8qҸbRDrhuJJr^^n]Z3Q||;^o2C 榦S&Q4OAAAAq1dڼy3?T_RR2~ܮӵ$Su@n'2e~KgJgR_áQO=fLh~fy)x?B[JA۷oK/b 6)S~K-n(_ZR\6^})S&Q'b saΎ;Se>'b]o~DD"lښQ( hОL*{7o1eBi"{`z="оy J)(((((((SPPPPPPP4OAAAAAA!Pwjt{ 'ήw$81ޢ#Ư_>F!4?O4ç0ş„%#,7B miQĘ_߿lvˆb6l*^2&[Mm! 6oL,vb4:aJ/lsPp749!-\{x5).D)>RZp/1>FGz0F~x8?UE 3ٲbk^f;uOdQ&zQ"á8es\5pK Fw87F}R(SFbMcgmoU^>;ȷ)Li\P˧QGgs{QBqfN,o")S)uG_")xq1BiLe/OۗEoT?ggd\H?Fl'QD~,L1=5S :`HSj Y\bg6b]Sɨ]T$=|d3 &aY9yM"1hoz&Khsy{ĭ[> EJλ }ApelPmOQif!-M f~Ta1(>|?UC`FX03dKgF-tMck/x#oL͹tAϸL 3̓>DigAcC}S㉱kzbX6g>j&)Nۼ- Oܳdorw/YeOO?4V' #OhV=h^{G~w)fq<n]|YSc5f-.BzwΝ@I\WWu 55ԿJ(Ĩ75 G^*6c0Yla]Uد[X {OQ/6m>r'?Tw/YfCP’>wm>koO6ҳqrhr{ozUAa/gʯ5v3}{ؽk̭K.e;V>=ჿch=^cG_BGd,Rkj o/;2Gշ?&)~{o 4{1cKWdo{嵋ګ{b^z?QN̄l>#%~ݻ{9EyL"78#,8}g)߇=Aj`[[l(r?|ya(W\pl 0KJhₖOzY?Fkognx]pѻ# 7h*k0A(:r.8رSg_%GU$}I G~ڏ7c+?i;pZR" 2s r Ё_zx~}^Ȱ`KR8J{/QEŕV<2hzYnAŧS8^Y1٪VAfdx6 ] .tA衻~.XWs\#ᓂۊOvj@AU'ZTYۉP'J˦=;/[x=4L.+-Ys/#\+y5W_;o${V㣇ע+57C#rLbVB3cƕL=/)W`x)s]u z~;~u1EpT}Hh"FxBywəs/ۻgרLmJ0s#d4zs(=L'kί똱%@ }>pX_~?j'r݆|z{ 3>Ghz+.绨J(3"a8xy,Ckx5ͽy߽;wſw9p}=~:}mzu$b vϏ=$CQ:4O2ciҩ7;x"%6lʇ|Ƃ≾y!FL6|CP)xw|:<68f3~(g. r>4l  uU!}a]U+ӣI:h@;ڲ7sTQ1[?!IBI̙ Kf~gXfI"HѠW'$ǚ=?`X=4^'C3_4 wGտQAKg|p=)?+UDÚ<* [TZ>Lp^oxSup?;7loGSA&qj}ӊb}r/C3GadzBCiYyC.GwLFsVEya>.yu3WrZ׬  P OSqn@(QWu(Lg|xj)TSYx 6nO߿Ys^|NGoh0;G} Qhû_zw߾7 ׶ndNΝ J V=Qpǀ$b;Sghgͽu|yq|GVNN<4m]N&ASHkK%. T|hxPa{z-)mGa珆aCB_LXMP=:`hTbKż/ދEջGQ1yώ?|`R7XSuRlmjnyֳp CuB?Î$L<7x.7Jkny8uյ7p%x?тصcڌYźy( f!ߕ0/CH݈9tэ2dybۋ;0sRN:TYZ&0hrL8`&l˘B)oϳ^o,_9l_s .z+~1KaC}S '=o,ˆA_ipFRNh~)쎢NGm>=pWrKJS8ͣwRP h;Gn\{4,4Jd/8WOig zvMWG .lc~Gbafw1չtAh.}Ӳ,l=Ju 4H,gcsU[WaáEEbT ")lqZ}mp53}0c쩙PV5# zp6 y"[zblIvU]zOEP$12} r^T sCG:w6c+=z8Rg|DӘyhb7GOAGQ*!LӘ;꼆޷]v^5q.;YiS4O_:&̈bX&7*(5.,ЋPB1Ũl(zjw vc>8̝0}аf4OgG ;Dh{o=O=:ӇUAGqNǽ"fŠݣ^3= 7{:̞<ũh9hdJo5SEh= AP CQ _I8?[*.KAKaG!LvO;gJdR @KTra"Ku.E[pKj3 _]bQV2~.m6//rNܹ#/?/-v.X3:fJFcJh\qYK酙gQpHe`VPKo!|nCևh)>{tRsN3)- `JC=qXHe&p TLD{ۍB?g wѨ\0suM^nW`?мDEQeOsO,;Fk.<|Ǣld"0+jbz*pS1h>KNJRf (J)ªSpA_)&W_uOطCΰEϘ9+//O?!o?VmNŗjgp܄PoO)PVYz.#B ػPUy9wGHQϑ$糡Yz\0k@ݽ9):Z]=~!a{|O:ztKnTWW{u?cEvƪ"g :/LYG͈(.,//o;~25 t>6b6}lX}`5(zd7u8e# 6SЅW45]G1RC22UeIM_EDo^WrK0TᎏtEΝcnB?ٓmׄTT>ç~g?ʮK}T~ ^OeODA):ʼn㙰ZӔS}ruVPo[KV9rey9F㔲/^h R XAZ aig~iɒ?{=wh7.^ m,*Tx]4߳5rF!.kW|#J9o9ɳоyӌ({ |g?&}}9oV;Z6`0455ZlEEG6nՁʯy\7׭'׆Fh,, >^r/6\Nk4΃c5~x|Ȏ5^'̬;[Jhsm4OA_#U?pa_=2E{*_)2-m8ƍW.,ҽؗ\ f 믶-q\lӦ@k*n-̿mWw.]ڷZ-qÜD؜m|ԮGX5ݯwghО,b{nCSޥ:+k &1 JS.;={I~Jٴ+v5 =pjd@V [2\{6gaQV$ZӪ7(ϿK 聧}uO?o0@ʓn-O?MrBbPZ_ze8~s{=WZ(y ?l$H)zhuk[jV|TX#Tf _,C3ѣEGۼcMrK nv z@1 ӓE2޵mZwejFazbH癳wT35nD,KhJKݷ)TZWQF4cjsMM"[M8 S»ϿT^Fwt/4i>$03jy<x4H߾w^ +裁_#%7Ќx=peؓS k~|W^zgg46"A.rbY.9M'S7A _wZ6Vv%D[?;`9Z[[ԚjyS\[:ZZZ&dť#Ru.JZ[dhR])1uvAN$I)S^}8}?iGj́w8IN.$O$CJDA"F}~ *l^Ͼ [xlx uOC'oz4rA{hӤdN7FGKƚZTiYiphn7RjDEzcCm $YWͅP3n@rB!Xh*3 `LѥcƔ"N-ji~AR'u'&˰u} `nFvT Edfg_<|R86M;~ٕdz ezA!QmŁRGHd8&%& ~g?hJ娙OJf,=1R%:ԍ,jVC6eUs4 ΂H1H2@#%pق|W?ȸBhP\)'#|+|ڵeG_Mݪ~q %gv7{c+xo7¹_ޯQ!;;`6x-> ʺ:"vD/"l:Ɵ^wmX}L=B g"8 .ÿƳwlcV 5qזE|-?N 6{\8dߦk__~Hݯ~}iɔjCCB'15o_e%j}W%)jQL*YCu W\,0vFhL_Vw!n{6HYϵǚJf`z+DwB% b71^L_@D{%J4x4xW]OT;@^̽z?xJߖ(w_~Rogϟg̿v^L`ol4j v(0ɇCÒ(І굈cl$"~ gAd $46|nQ " zk;.jΜ/X:ӵΘy/żk/R=Wz/3/5<-+}+B{-B0D?|/>#E}a$[D E!ꚥ 06&$2 )O&w2\آLȑKmNFf2R:ҽV tՒ 6QJ?Le&j@GQKBXM> ȅ%ǃ \cv{&@b x}*aAsA>.F+$OaN!<|@x$.e//q~d8S:fN,_4q?Բ'lC=m'A8x88,.>(NEXfbSRVQTE@!gaRCٱrNt}ЂEYPݫ,~k`zQR'E@͜4s{/ӮkHL -FRhy-G.}WA?UYS,$p ca3h0@2)w^ > ;z@)x[0`ڥx9ZyWp0sެ]06() =lq,eà > &]EG*͝KV(lڸij!IJ} X,BHPx6@G~ # 1{g9.OVxfN>?`C_ʫo߄FVy?pEW]u5\'cIQA0=vݸÈ-i|fd#̈x4=ɱUh0y?Ɵ' 7.ֈ?touO*rɲ(4pj @( `2.$q jh6y.Ky nQ &G,;!N9 ϿyhbH6( WpN{p"8^-1`GÐ`}WounlgOtj9éxbxtBc,[v._3q֤0"=PW]׺❿?ݿpUuq*~1 L.ۻ]Lm< ь|&!Sx؈֎OJ[9Tӎlb[T!qM(eǬo(MT[oz_ v~o Q5?C˞0"78_+kЎV|Cxsͻi_K~~4x*xBd'!GӍv\s׵B-NYkFAfzKP?yw 4!+/>lyee8Pͽ onjbG6S$~ĵ ,_HC6nF\xeVk0 F#*9,ԍ; mh rkpsw> m 熵zljE簝N@Wy }xgX"T͉\~ꅷWzV-&B͚넙_~77ݱxnvr W㐢Y6X;e)ΓjEndlŭ&jG&;PG&#:qq:cނ,$E%t%;% ,$.66U~ٚ)1Wqd!Ri}ʚU1wv5.O!ac<-Xټ0*vzFZ!\TH-\1{A*J }~W:Ai^+* ݁&]YGGZDYo ".mrX!t1H6%3j$1qxryƄ:fDF3b="hv#n7" ;)HM$A皚,,/@]'Z?gG <vjdB76"M>d4j=+Wvkzh8TZMLm_fK 2Y7q\nS/UK/mg#qӡIتBn  2]\,3q#yȅ݊6)=C[؅=49nl8ERfS˷*Tl|ioxOilqj84 r[< " Ky|9~ xvvVaQE'V>l0zhrrڅ)j+]k~p#[| a,"~$22)]vD"]z̪ O<]IۅqFjaêN礉Q"&94`:3zG2+##w[DNӄ+%nkfa>=NIQtBL(њz {v?\OAOH)<}|$>hiНd}ȣ^y@bWpS^Y/qZ]Kѿr޴x ֯+_XXiG|؟bhQ) tɇFfAG-vv Ar;;u.e-&D?;èSAvFxARd)%1$zjDvs?LVcI6bZ(:pG"rqUjdWʲ\k"i䱸[r'"둚fqi-n)S aӹp9]3= m;f?u|S@S˦655mP{TF\|aFO+عsZ>[XVA yJߡvXAVoBiX@NwqI5xvkKKL&ptZɶ&/j5wurʞ15trMS(dXLKl@sLP4\ntJ :oQ|rYDJZ%(ׁVe9;_RR4Uf+Eb~AԴUr\Lzg>=tܫ"rZyÆo˧X 239,墋.VM KY NZb1qʞqtwiE"Èۀ W%&du4! #W80t6:h&ayB2$Afhlƺ l9v9RvVLd/W}Sf܁dh'm%ϧ4?0k\@DH~1a"b|X"'/-N=nXr)L[&͇]=TTǺ/Ka 웙B>?q>}醴 ADJ*J*~~G-` *E?PX .dw$r;3h/,Ef٬}CB"!QN"K~Ia&EKg¬*F{jj<Š4o}qCUY/wk{'wc=WJ楮+%EyL|)#!o_kӦg}F%Kpd wSBԖ9D8I 8k9rRqWղɻ6=o7#rFK0Gc󍮯p2rVKKYMIq滲9TO1|>rsSVVrF}pp?K7of+2̥N(PqY[uӋ-R0?SxhTN{q\A{tsʇq+d8y^WMvUN.S\Qys)a>>>СC[޹sgmHVI/HHD"`Ϙ0O&^>@Sr =gmD2m):KmAyyԭZ r\4Ӈ+ʊ_πӢET ؗӻ ʽ^\]]ak~) ךD!Vy2Se_᮳'Ҋ kU1eEW&ݼǯ).oQX l78Kh}f@AYxPΘ1C7o$0(>oPq5)jlEzydEI7g^!S,9ĜӃB:/NF)Lc)@ o ?-JOÃ_,lpp/ir 23npم\NU5/.S̪}JU[ʿXM[P$(ށ nUٙ\m[\t pO\ 7l? H o!oA`˗/?N͐kzY{ő-=G1vKr})WIf_Ѻu'0{u*&"ou$.,/.WT5+aODu~˺eirʪXӸnh_[zTp*lz[U.ܭ]0ø\T2v 3|@2,P f |ŋiHyLJCvgCjU!}ڬDzf ƚ7L̢֟wm7ڠA*8w:dmW/nuz Jh57SEJ)ɚ)Ml)X_VQ@ێZR5Ah׮{zzEFz5e٢"GIV~ 4/ooo#I`ehY(2F}KN=K!ޜn *q%UF gʃ* p\V)Ӽ35L_*  |b+k?X߮u{Ykj]5>r%}MArr=Xbٳ] IW4&3W糼۴TTTc(^yyiv + u` ^M3an鬊|r~d=Z{T2<ofѭ~[HW{eLU[Q9[Tu%d,9X;$OXߪU+?SaCݽ̞8ߪU+<_/+(-))}o֬%L0%%EgP2%=>O|_0'ׂ*.nV0\~!Wr+**JczqOek8p b ':z'|.]$0.YJkb׹rF} F MECCCWhqW/n ӻEH'!y샃Cigݡ. 6eԜ>>SBIIIIJj4q[v`?7ĝ Sef^$)ulÆ b $%9PPxA]qs^^m5swyyo@v߼y%?ځߥE-ZD =?A`\˻O ~> ͚p(#kzxxUT=<|(SB ,/_nݺx 5|˻Y9W4k7 d0[7o>>y-[.++яW_ɹ٦M\N T0EE:KnMDĭPVT vw_*?.apuཻG-;DT-eee=+*T4-y{{Sh &xZ7#zΝ;IIIK.fڴi>ҥK@7|w'̛7q *m%% a%%Eg^]m"8ݬ|g9`Eu͑W\FvZb*yp0b-?ů^BUU "wyyiQQ=|x77b2[Is;QB *# J`~С%KpPE@'|~$ڑl t_~=~z |hy)/))jׯgBDzn׌٫۵떗wRT""!ٍջb&88>`r 4 /*ʇ}<= {\cY*A{*TPpO^auJ *'~U+r`8FbwwO&> Ypp(rǂxh<{q\(hO *T4DBxIݬY3AOk!J  =H<؀#4wm68o0 ӲW<==CCۀȺ~^``=2t|yv%//-ѵk$ 7soaYju˺g-mPqбy*T4Al^^'B>=Y kBB ,8r`j.A~! mt<^X;}XXʪEmꤧ_~ r咧w99+OWGF o NrgU<7$q+9*J ] *MPky`3iӦ% /H`i3#/&ۻjn5_jۺuG.絅%u//_(ߵwPPxP> @w󎊊!P0^yz*ϻS:*TPҐ%::$'#x :˲8;}tauya?Aw$&$q %L^$ ܽmH@ri~B~ppP_O+zOpp3~{ҿTmvϿO#ecJJ oG_w<=纹y_R6O *;_j!ڷ/]:WO_ӯ_ݬY+׮e/Y+|}_' ]YYZE]JJnn5Qo PB¼}}:͛7s!0zVUUI?­DR5}|C<<nnd=?ߪ)SB ygZ}rK~*UPAAn^Ux싊 Ay~=<>((ͭXUVWTTT__wyOO_񥥅^^RqЍhPmD+Qڶm;f _;}//00U^^-[F,[GoN%:X ./t`EEZ? >~y//?rwD2xd߿%y TPBay`c))j4͚o ϿQZZ WP'A,4/+ fG㣟QH-X8iʊ5k59cZXc-`%Śg!5X7 vǬ}ϭ6uXw7 vsK/{﬽R|UVm*7/5[NG&sO[|9 y r-hBׯg쉆@bҊ( xRmee[AadU>upnzzzu=֛TYA[ om۶=o9zu +** sr.x{TThJg&8i"5-JK'r̩*.FCۨB# nq@bw^"F /miK$9>=v~c,!ǫWYSAzzG:-c=)88vkҷom۶={[ݟfTTSZZ^ussϼ;sÿ Oټ+nWɗo~Ϸ !dٱsw>zKr/>ȣ]GOL,4QQI}ϷmI5g@b֬^1lWg&{Wf~׼C;9Kn`ᴴ4ALszFFFp@ ۓv &MGOٍ[%zמΝPQ4F `y͟FH `ru$/]8? }3\ǂY tQk&v== z,y _?޽5K|S)s^Ѫ/?ߪ'Pk40Wo_B NIIOt*Adž -K/@},}.yy JvSW۶)py?]Ҵ >"ݔiN/;^(nm%鉑QQB S+ndTp>A.@Rg\=kWU__p 22J۵޵kW\;@?H$yqyx8I8Yu e6[}z%x@ӏ=l] 0^H +sS?_A;YWg{ &QԐc4h ?;yow=5R_]F U_闅(=ÏۗWh1 u]} o.DGXI?;Ez￧62>~oG#a`m[ ZѪN5^VohOzI쁕nϷϙw~cM:XO͜9w8 hw w蛞հ}W~O?;>}djM`>HKܵ ʬ9Vfdͪ-`u*ה9A{)))̻ȸ`@IE ^lKY'ǎUlukXPy&5]!q~v ]O?2lH-(2I#{SSN!رEFG9(5e q뭷Sp 9ᇎ=#ǭ4W]aOՌn=zէ欴s8oqq&FX3q:w 2Bjtݻ߳⅋{ng4oox0qQh-_پ&I-S3PFMѾ]" /osdWe-5WHO$q3F_hۮFXg [5MMOoFFE5?0N;zɖXݮ}{%1GA)?KmE0Mի8%b\\M)ņ~QRRo(\MiC7X7k0^m%78gtFЌi3u Az{Sog6om;܊9r4wjaX3&߼sͻ8isUwTޖp.I%~aB4 35Qd W`~{&L0o)dWsV 9"=JT\}ܖU.Catm%Kv՜emH*sHRrTU 7M)SN/:!sZn xk YlDz;(S#WߌùW)x6)7 sTˎifc]SFi߮9{y7 Ԝ5~5HP26P6ޔBIIǙFHJ%8 ;ǎjQ<o$)(J醜3|]i'XF<53fWvX"Ho )urRbNT 7|c4PvNʌ+;_HK+ڳzz'E8 T(ީr0шyj\w8y&L,Ok4rߌuL jIKr(7!ǹ\C!{/ξ?d=uTwmZHJQb.]B7s-(/eL򉕺%XL03˪ʞmYY7n|}\4?2>8h:vas]Z.tI%.lNӥ; XUkyFZ̗Zij4(G-+Jt3JlMeF-Ҥ5)nrpøLgt-AfI@Ǚ쌜B= y7ab9{&ŋ6 h5Y\FURD|?DFj"cGxMF^cG%Gaǎ4FcjrՀ1)'"*Jp0ukU_]t4GxMTT^ᗏԹh8^sDE:zHMɦ5\գjD f&Bw̘1g_3ږ~b$AÇ ϭAQFFXdDϲ2Cf͞@|B4zΤ3gϒq!{ "oN0%@na=k6gg=8lykhRXS)B N(;H|ãTo x޼q4;Jw!`ޙ;i}kHŽ&$ޯ@<*GrʦMfΚz.l[P߷_=JP!gZ˅II$/SE r"^z9\qysr_=J3kD)SBiT!xeee YB|~߶XQߜ+mVֻP[!Ja X~~ ~%~rV 0b.+#`sT`?Hւ@^V,ѫg7*~[BL{[%';Jvvn=L^48eL$o&j_۶R#PJ?pB^NB =f簔8^|㑗MzS޻pٹ sgQ9ޓRC!%j,&1~C&OyGn/_{Rw7;!Yd:7Nx_Ofgߙb扏<IKIP3NI/y]|NJWUC@m pJpPx[pvsQYzM1p Q(\8e=>^܅,(!{;*?~␃q.Q]Ev0hTsvhv=zZ| _RuбB>Ziz'&??6pI tǧO?i3>Ɖ$ANjO<>B~=)ڽ5kٵ=BLT=d`93'G]jՀ|ڬYiU*/џ2˯y)! dW_o.oFXxr?z4,@n u?YvΝRϫԪǸɓQOoI+~n-*fbCDǍ8Ҵ|%Ex,ϡGߑ!=: p/u}HOpJ؊;ND VT&gp \t90Y,a@rv|ڶo5@[TI|# YY} |^Y'q[1H|WQWq0a#G?s/>o}6Q{u?p_{[T=׮YG>3)@.i۵}};8ۻ[v11*up㯿.9~gaխG7~;ƍ5z-^EI{~ % {ߑcySXX8@}ƫ3GBЛV]'~-DO3Mt S!]@)N`x`$w@;oџq[7o1(}l +l :;@=k9z$:s)#$/]f_ry2̞T @Hz>n(åKH]㒁AKbv59z# m;,^)\H d|O|܅dk|}axhx5k{m_Wqjݖ//^;_V۶u_ˏ>^ GCIN&7 ۾BHHȸ?Yu_llP=;-֮ x_vW~n^}LS.p華Z;7p5A2;/nߒiA&)(SC 6<^j`r49a?ݸQ5@vz0(%K3>6~wi5j6:-PÀg<=) pL[}s # r4Ld -A8Ic|APyo!F" 1JH\t6tC~z[6~L&#/իىнGOl07nrNA|#a5p :WVf::<>=od 3:y*֣GOs5*FV 3PfE"ڑ@;x4%2xENg!rL }7|@בC=߶38 zWqUfn >ۯ'BCn}rXLv*d֣SNW_ oЕiG޽엦^9&Zbҳg4O~D gYEX7mĨġshRϜ1 x7j+#Fze"?)s_Gς޳'g`ڬY.iXY B7u̘1g^oHzk[$!k#Z,b~d(2t4$G!KO 888y$4iF?5(@H$%*H7D&!qL#,CޡAQ/M{eD GgݞЈhYӮ!˗'% nRo ̢QN#lDouH&ټMit :]Jvֽ#G/4d:II|דw=]I>%^=fTu}-o|bR?]p/ni/mA8f'4xRC)or_'Ov$H0t YxDP0{x 116.ė5j]>yy ̛QF ̓a`UDq̋9)1}:By!gZmjje!*l7B6[|fJߝQ`yF7wZu Utkzqj `> 0¼3Pq=f9{-'+W%%y M(ѾW^}ecC?fSiO*aIؼkkbccϟKT|JG0>yVfdrPȨI <ũS\NxNYlZl'>CEz[dDn2Oa dFcLc|`Ȍ JpI;#-x"NO ۠ߗX#. nx +=zh[)s9th]Lœ қ@zƖ6"؛[֘S~Oa EzpBLcYOr{|^~n0J [$/d,'v0fnv,u@CV^Y9W<'aДi{J!Ӝ4'~Crrb?N"wQL>nĭɮxəx#>~~t T8[gf3(Ԫ{rB8k)q7aEzNrtY THܶbI\7H]cj]?LFJ-gO)ߝ#g!u*1SR)фmq{D: )GǏ& . С T*9[w|c02{ٸfEM/4S稰Rǟk tUqY22%(d0IAr \zI9()qvq 7b\apmL[o`|>I^cɿ?`>]q{Ν htԪ_ѲE p [J>q2u7hZ V._!N) $iɐIۀfbPxs= yD4ҢBa1yCC`*`XE5NBʃZC*^|r/ N4 $0O4zdP IW& AD^o 0OJ>qD96ot:k9ug 3ح՜kW\˾iu~q-?xGKy\)W{ POۋ1v ҃LW05<<ygb"pdDVBŁU10q5/1b;h ߻ AJ%l~d1xu:dJL_T2)i'O~~ ïc\1ȹ`6ԜK6ɟNIG8Thо Pm-6%L-d$B`\& M(;0>! ]}ϰBM6o8&iuSNTտh:AiYTjI ZrՊӦ' k B0gciUoMJFf0Y)[#ڰ"kJbKLfqGNX 3uc*4tNZRnq<:қ;G U;\v89xy)p3wLp;pwgj]5tn^1]-|ʯm:$4Ndc=3Fυoi{S0^dh)26n=k%ճ8tLlU"5/?qٳZLmZ#I={AQM<7:?Js24*e%Con7w(aGn]BhIFdAm`lL,x;:3m;x;z A ϽS$Psb?Qr C۽YmQAx<e_;GwG_?k ܖ_X*&p(io.boyYhđCJL'7m$~MiY( ezt_>?W %۲rNjV Pw-ohE|J֕g_ܬyB]!S1{-"_K+K+++ <ȱJ#տfYOw7>L /--m={<_/&>~-mzgk`BxYcDlLlד/ܷ @#deeחdeΟBQ79r6)F||rZp',!3mʿ|xJZj̘pLqY/k;+-'+α-#+RRRm+(hMEj2cƌ^̓ ,Ž/ >lA!or7O֓@vonNOXzONxU[$_ TV6jFFF({"̋3zxE^ ɫj}#l7~}w/2Pz ' ?XM!B[jw5˰ ;${3iKu a8h]T;ћQyڜM[gy \ڦgZƶ1|3Yl4k7δ|2x8ȄXXJo&,GWW~䵜k~2荰v@>/AѠ*|ۺ}K(5^+`|qH/i:c|,[,zb Pok輦Z(Bq1e󺄞yՓޟDk0xåY{tu:O1f]>KsSz96UrO<21PwЙT\ԚXLdMeK19kפVJ%jf1ݎ)R./Q:ɟx/N czͼ+n)o'$ Гt#/:\5IjFerϚz323#G%$loq{'53VX #ŌFt)S6d |EbBo[3u7(C|r=z1eT7&B/ TUhpzN9I-Z^=O|fƄe6o3) }b6_3 aLʳ5o/`Ȟ,}/n'ȫa w=:WH|29YRN'Cy)SHqHK\<+%`u/;;i™)cOFC&$|}."wu˶Б{ruI`ځe^O؞_`ANRo@V{}lӾ; |"9ya>TS{"MнHHGH6X5 m&>6-}[f<iSSTx >~D6 Oෳ^Os۰ʯQώĽ YI \:s7ꑱLX)7iBoRƍGaCR%-ٳ*H>iӦw,8?='0ߣG%$# &332_gee8ܙy6wC١{iU-fv*ZcfBazT+E-X8:~4|F'u`^RG*}i xgff߷ٳGw u7}i,n>MGz[ -|F"3swAʼnBg;xV]*TL+cuX~szIvɩ3<ٳRVE $]kQΞZM%qRg3gK<ƜY#1B|$Taw9)/N:t=aa l_2F?/ily'Nw5>| BG;3rƼ,N +2*gak ~ гF={{ g7fˆorrZ6GJq^ ^-#N|13ގU9i(2Ϫ$#XaϧBa^n޼IECzt,[gip;HmJMFz:sG8  4Aa;ؚkO!DDFyt@Ǐ5Q= ?;Š4ZQ&RZװ̱&iK6i ~*;!%GDE=X}˩#\czah&|  kR|o֐Лn܎{9rn6[4*{ҿiE[c΀=+I4 c8!u0F .PMd^C e׊X444d wGu&Pa>i4j4ƚ4A z5ea 1cƨf, ݫB*)`n&ldsy`rmlC\pLfww߫)::ҶS75Ӱ679:znbc&udc#yyyA]/m?XM!Bg;םr/-":gsNZy K`,$&0O켞d,R2)dt 'S8- r)V*n\ ÊY~Xzx˴#}DvO1z %/9 9Va%vv7H_݄+y*N H1yG9+FRU)J#}vO#[)QdZ=ك6/&jd^5M.J.S&b݄Na(9MrHX3ac Y1j\+oH/Rvb?FNj;ʄeSĄv%Sx١{s+K;_!aT(79{Nv1cY{sҬ g7ߐwmgNqFiBst^Ezbg_8KxO|ӱgvq9ƋBSDzK~G0N]лBޱ>Hp7R!lQo"^qB螑D|]_&|d;G DSPmnڃ(SBoc\-ƋHZf~[\[o$\vI9錉cBaۉ9HTfxQTBн!})PIF`XjeseBfר CVX T&no=~bOgt)CwqMv;TKJ ,&v{`mM^I>M2y*In(RY6<#=HXRI2{ѿ4ݡNSd.=F慕BzΑ=E*;pSofS?Qlʮ4׳|Ax6v9EQgl),{RoV^B,w K_vuS}eB=98M<K=ߙz3^2tPwҮ@ ُv u90&דGa!;PٽT<'E=g_p~gEmssM'!Щ*BS+LtF]f[Qbp5XkXGޜ٫K˱'Y&]"ga*ӥ k{,*l{c-OjsY܋[3T%W rfKaH_re;r}u$3٬Eg/bغWe͕o[c-$`%b,ׄ68Vu=gGf3d֡r5GžAڛ۴|kpGP;Wog_uTvX9Z:PoBBqSQHoǤz3m3)g\ihW9=-^̜yxtt|c3N st{֮}b.k֯^&B۶gg k/Z W5HT,yMVBw4.ǰ6_Ξ7饯~S7%gstmmxΨ6\60gqqN"5XuwXϷww{Fc.W[|k[үbsC{GeE%WYix葚XI5yRRΙNZQVԑY"Yɩg0| lROOOOO (7`'yh~~~I68V^^^TVb gAlZ37QkqyǏ9ws1hCcoߺB@?陔3/?rzZzdT'?A^a _?u `\FmhA͛70OŔi36pR~rPP} N}v >c 1c@g&=7o>_zÕ,Nˇ)#>k:=\կY'W_@de kW;}]}|}}iiԖ_"S;j*H~p8+B=XR߄Cj#ݻ{/ `g;9u={A@ */7uoPbʃp?B@qA6ẉc֮^иU?z<=zkFo&&e›1=esFs%]o+,{;s 1L#3ðp 69:|(܂Nqp7_}ӗ#DQ*tK{-g9Tl@uf#"#y{`/OyD!gSjZq Hdђ1޵_m ~gR|g#t,MN F)4EE`C}Xqv%wc ?H2.g<4!aJYӟ|IZsh?7328NwciܜI;Gؼ=^ mg6z)))'hFH)%b$`,iD9ʈGQpRZj.ؠ:vXVϜNF?XԽ#: B;pI'I`Xíd#7يlhQ(ҋkT#'<+<ݻw7n78Q6O+f͚[+h,X0bb%b\`l@Ti3v5lE4rTٕj&kH#GF9x\xxÇӵEN-%"KߧnAXl}ȃ6c40[d(D$p4,VLM:K6.C#DirB2qz[(ضe˖56+:[mEVVaʔ)&K6^&a[n& nDW\p,q HKAJ GI#%Q )X(IpẨ 9#N:$|$O x =i@bdH7Vd[nEh@b+6H\ HU3 Ra Q=ɡ cTL  61+R&cN H8iJgo#)ĸqzl"d0U&t= dL *[IJ@d$IA%7x"ms}mmEƍr+Eh9dVttAM(.JCI2h;B.'ˍL*L8!qc|&a?%(ow>SHd`<Ͽ{~4n:f+Z lMPsq3O?mF2Vd[nE .\ȸa!=99)|RAFZk7hG 7Y`(PihTxJ[\)BAa¼`ٺ0o`3Ms~=#? z+mTP6ߨkRi:4!Sk6!)='<<2]npG8 h46שP<#W a(S**,/OuKPmBꒈJx Aq)ջ]NpyʩhjܢI|#GzEd֭UUc9,+LgڼdY̔fdI é[pdA]L |H鿩Fn7Uȍ+ vy8%k䜍ͨ6!tl"V Dp\43){zfGdj|.ȩPwiX,SFFlFzN,ZWxk>zm_:q.ԗ]rmn\#W)w)xβlmWObr+uLע$?M`ٰ6@|MumٻH2;xv³?lk_m*"*"22ci`o;2ņuFN[Kh:Slqyάr#4hc,]lp=^0?s CWkBoylJu0_8^z]6]_z%V *9r_͙,jUtp ŵuzj)!+GUdhwQm{jKOHO;~臈 (V@,*)(@ERDAA:R@ r%KMnoo$y{;P4߼?Л%u|䒓%l ls=_!PSpM[^:,[nv"җ'9%nޔC~o}lc7ْ7غݐG myg]W[#e- 𐡪OW~z蛷n޺w^ o}KΚ2c |D( o]!ds?'y]+`I&> ;{){1Wc{OE˥:6pGF=7 {wdπؽo֎-;:lp7_~C+n{`;еýMLNY4oo[~4tPEmo@?r{lgiz-}=w9_n]@~t6hO4TXtT[}ߥ_y] MswOUꋯu6zh2^#Gݸ-pP\<ݩ['|OKxWth 0K.dO!j9B_ZܾK{6.'Nlyo(1~y_nNoւ@:ss_]w/Eh}v l|%Ν 9h \?-nۯW4^>/#xvx%{豇`{=S E=5)F&_|g 2|my7M7y̭(hY ݘXڠn~}>Y (}ӥ%k+uǤ;|U_sf_uUau,:C_v<#?ܙsoGk _#߶ysO<vꋯ ;^s>y:h_ߪ/W{[o햇}/yp/[ƏI%?|C>'OMh~̈1]wB5r`{T7'A+!Q7BZo~q׈7r ZCx -#<*އ~vٚer.wс=07à9as}٥NM`wsǦ_~5a{iLhȖ\FzS&Mj~덷^}U8-~aW޵^?IMÆΙ;o*-"7$@F衆7)Nf[ǻpB`nKD@"+^ymwM}t~&S =Ο9zq#/ȁe޳<ۻ_o8 ^IW<9B໯6YW^|Ǟ/\es8>e-w{4!ϼ k |挙k֯!tz X\е}h6gת2=fCQbppq-<79uLh Y ԧAڞ(!r߂ֹe-A&Bs9l߳:wdO$57yD8f󠅂ʁ){I_wlUXnVkϞ5]uo.BZrT޼L@+hz۸nٛ0)9i#S#e-1>=5)%[G~GJ-(đIF~3L uPH9}\ s RHMwk7/|F=msڲGw#i#Ni2=CjBi6cęɶ>{^}{A4 R-l);o}ѼE΄uv{k#2NCdF&n纟n M[Z=C :gD< =>XUth½H5d yh7I4=ciӿbZjrĵ#@y罴[%?)Z/&Q>OxG6^z08qĄ3&?A$Nj QxMqc]Q !"F~{ FlyowF%}^0 .ԭ;8En=y>,1/,X8ѷxOP؏9i?p?``ݺw#|wY 2w(QԩSyk4k?_yBZsRSSd];Dcl? _HF.x hnyC{2g- 7[$v0w' ̖U{rwgZK :Y0z_oTQ~~:ȫ>%wx$)_ ڿg߮-OXn dyFB6rEI_H:/ D7r&)ͯڭ&kM&wpeUM͟ Rmsh бLg(2!tNo]=Ł={gKw Yxr"' 0= 5R s#~h kJ8/eWȂH82Eᨤ iL5SvՐkPrؽ{Ȏ];._':mWr] 3}"`-S$'LO3ԉSOW~ ʛTnې.ZJ6yYC@;T~!K>:),F9zc邶T͟OL4%z«\~ tT.#%Naޅ\M%AJ rSEȃR驚?? >b-.PK.&07^uF¢O(EU|Ɠ}=擕$wD_7:?GI2[(dE߮vİG֧AUso?>^%ۭ~beB_\M/?e?N4\'Ɲn.[TT$s"vɰwΜG @~abb"P]W2cJ}n"+CT.]hU]jpd4vp~C8 Oȅ!"6/cA3(zu(o>F%鋏}wfn }$[!SE߶mS!@rµ.hw{w;Ռ1,To޴8ayEcFfޫ^5Q= {+N@V[jr˜ Ij$PHCDM%('gøFdB#^Wo ^X]/?[5w{Qn*QMٟ0`R[2:U給I0AHT/V}֧͚2+'?ZG\?i$8f긩6!1V/صހ6-g~xuO/hΓsN3 >ȗۆOW|KtK1u__Hw^owPQU=|dHRB4ꦙoϾe=3oϗG#}\krS)4r(|p܃<#5ywͻ?<1rjF& |G`G+ec^w rs2 ~֜"h驚L0 /y`wO4+x폾;I>㥫xvgwۿ#TQ765hk7ԭ_A[v_^<ν]|qnp5ɂ%>?4 IFÙܭ bDϺ@z౜:qIL|Rr}; ɢvܽ3`Bd6y'CzK 5ЂFeAEJ"FCh{<{z/9` F.:OFq*KiuSe|pFNAi"JLW=Y yO̓?P< -ocE w~X_gc4hDh{@Ak/FƸ{ƉމHjn+?L6ӈ9}AŤ:u/7v '$0Xxi߮Iwjϛ{Z(f73w>#u@!hB?t뒔~t]jQJFIU9,UWo%z#3q g J$i#<({FWϙ&MPeC“qW`3{cˎ7 Vע̄1ϕ;Amx]'߱7U&r7&0#Wuț>'$v?v׍n$ϼO#cꌩG >,^Ǟ5k,VY* y_7 g T ҿ C%~F^'OM< %,qw쀔ޗ.l#W;Ni"ʜ<{Y7k!sG\1Tn:k?Z˿C̸W?!A/SP˅#~$`cK.Pbţb,bt^W?%1Q5byAk<^ygJeFZr#g%b"36((SErR.'?\va֔Yd:8wްtG'%%ps>'w_qč?v|Q K9'҇,%K֋FP*:">(Q/LHt+@4fn|dHX ΘlpMN%]|09%I9 3r$kwm'N Sz~ ߕz7Д:%xJmU(*v밟tݭ 1 [w&V}&.[ p^?zv,w׼˒[tz܂ܵ?%skMso>6`#|B7Hke'x+WudGVQF>d:#FZ5y;~x ʑLU&>鑼^0]>4#WM4O3`^Ҭ"7dAnZ n6 rWۄ:vm9a>[ɢ~ǸssǗ.ZKTƔa&DIn=Vǁ} *[>#GFYc ꋯ ,ȈZ#X$JFj8){wiރtȺl0n 7QZ6"Er":'noܘaY6)hٗ Ġ5r*UsoG1r \W/!-B6r)Gĥɶ l0/ucʿ%|1E}2cLtnyu# t&ȥuj|FW/֝w%Fsx^Λo&^-3/ /XA_SB uE o&h[,vT+4HUT({ȂoAjBZu&Ue֤IQ`#g?(./\PFBtTS0w+nDV+]_NO"hI#m57"- 7Vl ;:L#bD, KEZwVGX] Ž P! z%t䌲L/ڝm#Rt:JR4܉٠OnKFPItd[Cq_h$ttMm훬ه/ԑA֗ |!3\2T7#W~\U`((7sYoV16 _ӣ4F*o nT>&V1>W \PVad|k+TmY#PUM;+# Gl(SQ9E)Iva,ŗ:?#9 vy ّR$q~%L9 ~ٕhM'!LԛCd:>7rK7!h!x,>_ &F"AJ0!dS\opP5'4},uО\qT<EB(ܦV౯LS&Z?L[D{Oka}wXz<+7r#4Ow񼧎+bYtEaT(4/VޅOO) ܧ+b,F-`}I%!f!#DzԷCi)Z;r%Ψ ӄz^0nc{n+l1yOڿlrO46ڷGHQE#xaN˅}@F1A׎:L=o\S?rp1u)>uC&i(TXD>O|F71_ojA|W}^Yz|x[/y-׏;#'[/efx= m] %P!!iOvFN9?zЭW_rEK^=gh}#wmg{s{??e '?|A[o!:K:# (z1d3ܖsVX+6VDר"pT0%#2u0Kٱ5> ;a#JN/,)z~'`آI/|6zb񥥫wm,>1 G~}{mq4j1IIw/a>`I9T-Fd%fQPmeʬqu}@p[f;fHHкe>ȁ# Rw.IW<_Ee_l1u+B>h*yסs7h'v],fΓD E>dQnhvPħEnyL^I:X ]{++('|%G:W4;tٻcS]޽w]ojCĤgoI<tÓv[F(K B=FFpy&Ԟz1d#ko 6^;h@XJ|c^~ryō.P6,nLpM%$$︇m"x*4jTO(r(nݿnXʷe~)PDBw6 F{>_߽wEs?1'oi}Տ;WKJN(9Y42/˯c4/ ȞFGt|=5>K5s̵Xz7>tFA܃ +}xy~i?u)svq3fM,&hϼ!y*1ro|#fY;2mU㉑ٳgӧ=|7 u.+{L޽ziZn߾o{,#II)iLFͨFg_Q^_0rq"F]Vň,ĬȹO6 #ħ$ѹfūSxW\^zn zJ=5+`l{mAGy?7X|f#w:T}t \ N qF)9'ow΋ ( yB#ʇaJ?pFj)-Zi8iU&˽g%psJ8ϥ?/q6r\O}hז5^LF޽ٜ:q,O<#1as, "y&;.K2}nq7}|O#귄#ܑC5rv%xi ?˓O{MxGsQ]7u'Mz?U9 `o 28x#]ЇL狑b_'9y94OANd>e(ΠCr ]D}p':ܼM\ƪibN#1 J((SZGA?{&#"q'p7| ^}m>5Ѝ\:O3&lY_Š9%nJ |AhzFd: B[GGT`x.;%e+'x_;~'K1r,0? JCϟ¨߻("F oe4 raftI:AT} <{F0F` J绠OiN}/Ϥ>0Ro#q,BHh'H =nK@E̺- ;=pDzY 1?HRhF )Iv$\o7>ys9mrz7^p Wbo92"-aD R7 `$td5l|,RN4ߦs \[T?\ȅ]F :SMߤ@m&d/Ro^qބWӅcDn Ă a?{Voq,W})0_͢{*Jm&6XI[i l^6#^سB#ZrS2 ρ<|(\Z94"m!ӋҍH;A$Cַ1M}+FaUE\P$U㠍\B2rIr/􍜂нV`mF3}C9RdBsQq^y (>^1x+Q7D;({[Q:K ktQO)*Շb(x#NJ<R w<㍤5C{=YV}aAXŃc^aXhu%ªttD=)EA"+>rbgGG&+Æ4rјF<\9 gGAib=Esh"4hJ{ff]B#]o7ֹa (SP{v}MY(Ϭ #0.5a„jjZ炑S>yH#54EA;l_XXH-\1k{^iwAC((qT<%,7BD;YR>VGM<E3i5YL Av j )(nzt"GAty ٨Ꝣ!@C L9\. Ǡ5{=8 b|wggΜQ8'\IAi9蹅/[` pFA%L$Fa;kU0bhopʖ grހhqÑ{uAmLč paXaM\+Ua1C =w)+Η ^o^ V(3đ{.D7x0}0]LdeO*pܯ|9`` J4P~p[SOIVvXo['!]KP&Ѝקb_!cB J͘CFVc ( qd o8G#T>EFSD%ƐU abՃ lVF`o8>)>11Q рքjuӀw]ch6\إC 7{#]y >ϡ!jjUbl#V^ݩS;6Ww̼$=Rni4O!NBc){Vogp{X_Bϛ ;#E3ӌ o^bA)(Ŵg@AqD>7rX,`ّ*r|>SWLDΝ;)SP4m)SP4K񯒿/K6ɾtcmnk_5Us᝖c`y׮n'n_!JGC v{}-TXUWa.p5p/#Gn8𾟳lގWL>s)TJ.1%%U٨8v\VQ Χ4HtV[$j2!{XewbhV`#+TZJnիSR%.iSkh]ݣGϵ ,u׎luxD=ݣވ}чp>à%%%5uz`hKBC yyߛ,'75*\ƓZsFj(t"JP%NwQ͐kF\ch!HWVq:b.=Ui2Y CYrF.\f͚Ãxs * u֬Y!|8 %Ϛ^=TUUQ.\j%eR8q&Yj+֙AfYtӇ3vYNkN::ڱգݡ"{~=Hj@}چB ǏO aL7`R=|ap{=_6w[X "`'+<*NJ0w^:j386h\Eո܂jd@vrj|6a|d;n2?|=B_{_s(:|_vX +@qFp$HEf%}p ҳae*x@ U|*!WIπ)Ep8*pPL&-i3A.xW9WĺR]Ĩp1jq*ݔg6ўkzf }Ͻׇ6]l_V`m6֭[t5eY t .tO΂zRǡf-ae È"^y믿deB?KpWfa:rOAAAAk\.++CUɴ!i\D)5:FWĺTLJ!abߑՎt\FT&Rq!a6TW\]Qh<__Pѣp!ˊ x1yfx%;N*D83?l $NJC9y;Jm< C a a)(س)m['Nf>NgbD-ep2$0q!U\R\v16vc2qe8uJp8C?a#%% .6la7{l@ 06[z

]m͸Νfת\3@%;5g=ݾmʓey~[8|&C8-܅awMХ&N飠 7njFӡVkt3*e:X"q-UPݶYe`rQlW&͆0RݦAqx]Ǽ=sӥ䚷~x¿+={@C-?ֶJuܩ_4S86vXRPPPP4"HVarѱpaÆ.7 yfsjOk_Uub11{y]UV4G۴C@ \ b\gTV\LF:b8&;0\kԌKB8mIՇ9u+Ba^-[F|/2*/u?.;ܰ'%Vv؁aoIɑԴ8ڴpFW^سE}R T]r$U}BӃ 1{!}UUg**JH9ʘ> ;72p YPTSĘy8TIW1zq*WL[to8#rďɊGV{$61,ͷnݚhIQPzȠ;QXW^a'>l⸀ˠԘߓZP3Ϟ= @ߗ'nj۶do4$I>Uuꈶ1#C 2`bcN^uVR=^1..aT^ϼbh,:# rP/ea  t/xS$pvmmmjjvLLFS?طk/땕tZ.;=nKOσl6Ku2s+ KVLU8|B*W;ۯfGJUr!x@H!qSI@@½JP)L!_ǏO<kyR~ڵ$R $ٺukyz&;F>03?KUQ?aX2D6F-o10G+eM&#$pSb;$E8͋n)+;Q ݝ(a(hPٓd67 +,r +mT&%jd:YΒMw6;X&ԉ=۵R9R;+LvBX L,tΏ?N2*+ebfpvJr$.ڵg&Ӆ)c(->|xM)|gWvz)WZ_pOX=]x?&ՠLr ޱ\&e'IΊ\8r KroIP%s?TPm}e~b-//.+GRvWo[[ڳf3m":iɓMC*kAQii$=P;hYу{n=3!}[1M.f۶cׁ]33( zo([!/V(S@3f;v˫.wV]-ѢE~ee)p6֔c[RSc(JJyY,^Iu< gu[u82 j)SPbq^njWҊ^2{g[:~[4=a8o~OHH#?}|`'?4!˺dlwA OAхcUqx=\GGBVVKӧC߾]atFYFSQQfYޢEƸ3oe It|}B6=d!2N}xtT* P;}9+K(li|rpWn.L|6)0$$>pgk;rpofn~7%UyC8+rH`сUEO/U ߋ{~aRC減͕fsyvvֱ f9y P{jju:]Zz,;07;u\YY B :ngƼ.&& z m63p?uSPC.+)O׮\2gdtIъ/y`vҽw?=7$3'{xmpo`kӱ{GÄW~0; qU9{5="x)Jϟa]/g[ڻ;uPrrx`tϺvIubb ֡7IwܪZ6+%oZ@'$$Z՞8y W`w3.ʡjࢪ}W`1t^a|Bn3_q}cBgձjdXg>_ğ-{WxW'٫C'% yB@խZu~7d*,99mT*' ۛNgL{0KM61Tt֙eTSPq^QQy] =wd(m:tj#"ؾ Db} >2+7?tq̌va G0NX(2.1- BҺҩ e]p]FYV($wgЋ+,f4S iizc'й ;{z=C VNG< /lDyw?` p??~ޢy=.׶cSEJD7Pn(=Be7e*n~bSx%U>j_{LWX,Φ1*3gN =Av@j7Ǔx kU*-UJESfՇswjHHgV)zmw?r׍OOd;~_ޢU~(ԬJ$v ˊ)3f/ 辏ʎΖ]x8bzp'}vGB-bc:kA$J 5NVu:&hX[|(Yc=n{_|To)\x^AGAsyD.IR4eaO^cG5Y[WW0LLL<EDиYcq(7U4H_+ F}s}%ty FGNtU~P^6d#e u.{2^|qg; 5p߾S~ƍ8wKOl:>ޑrvx9g7n ׇOD} />0* JqB!y<"F^wٕCl/Bzm$(6&{ٳG2HYGEuSPD/ ztX,-`UCcHytHbQZ;G'QPP5OA]ӢYR5Viٰˍ:QxU1loݯZNVyҸRW)|pu3{GuVIitDŽ<K ǡ Lf\c`wUjP]A^J G {eпJQ{*Wdts >EO0.10GsG/g|G Jx"KuuyEnй#Uz~:{;[O*)WB+ V!'tTޅT '胈(Ĵ< s "w|OU<y THV[{;(9Wu}}kf$ЁA2`l}1ox Gހ{70٬Q l KXFhFsW]{4~^Ѯn~?.05cYNUayrIGtLϤSGҳh|= 1^Oݛa=x4tqxxthd4D4;cy*|g &Sz֓V%mt&!wՋ4>'͋rX^4Ɓ9snz*=J7o{Jdj=,y4qDGgɑ-qe3vOG)OFU{VLᏅ1N9($n;x o>R߃L%O8ޢIeW!xzZޢZ~iKF?Xi@%u.fѹکLot>q<y $_@ZhgW Y3Lz >OK>E1tVLOo@??ea}&Weߕy'PJp0rS7Σ)7t&~7e,<`1 GFFJ ,MNȧuvX"ll$GbGZ@6vV[uncrSF7s>^39{fu=ݴ]#~WG)28^uvD0EɖP,[ m3 x{Fs2`2.X8םzӫgVg)|]l:JS <Ӕɼ֋Kdƒ֍*=+MNx+*ϑ5\`Y x{Py4d>ɚ;jz(+nl8]nM=Z7Pt`?WTj.3I3>Zݓ8emOO^M,DX]yJcz*gU yh]ڜ:Lh05gtJlcӮuW^Ew)eJKk2<+M;"IGx"saʞ2Y`w<h01V^IzǨ'#uZpQS 2uv$1Y (/;.u|R+ x ajKAGk 4=f(5)|h0'X6jK,roi Eb 2Y׳4d$Գ`|*>fc~$EjNa'Q=]ⱻ̐D^|މ7*jç iW:yf_Fj+KT&N]E);O=Yp7&i%/[,{ВLs,S3=e7C( Uh\[Gׯ>qԅ2f@72$[ h&w9\Z qljztyi6;CӰ<w.`JOUYњ*u,/&=Τ֍?^9ZfM3OsMc▶.UPL% ʴλr5wwL|OX?vW-ԗM5X\PR^WV^'>gdS-n]v=Y^[';𩂳(ٕsh0eO.iB@8Țˮ4DE^Tkݴvt ͬ3nqYϚW|&^OXONϐ0S3Q.RSeQ& uh0gD=yjYe5QV/SFc%)պ9s}$Z-ܛf^]Mz'krU/O1^25v$5inpPf/ 2\]oޤh0k7 FeU%'{4V^̇TISvaMb=Oj&?ay. pr\HxG)15 x-+֍ҫoɾ/ ^}<[$Ι rCSTx^wRB=Ȼ'/=pۦT< {{X^.fyu'g/Ҋ7~N426_P:azfG[oMXR[/][ P&|<=u+;d@ɲdT^5Ț<`Vi>a;+*ٓ)%clqg>k(3vO݆/늍GErêl\Lh03ʊݜ Ml;siYesC5-lu=%[.`B?ߧQކ7hpYa!yfST5L8'4֔Քd6?\vjz>+;"Y3v5yJ˦gŲhJ,͓PQ,vbmV-Z7r;:Ӈ8ʦ)]doN.wc:yr+b3<(!Ev{E+-noa"u3 &XABެ=BwpbOqr]W9mlPLdtYf%EyZ+1oKv1U9>|Lny:äyEQȺɧǥN0ʍӣR-OK^9=4/= 3-}#ӛ-)j$f2gTgL{bWUס3|^t;YOEGTvn&{c791oZSpM^GKl\x\ɞ* ʛPGfWxAڴ"Fƙ+O{Y?'a֍rwjynig޼]MRrGӦoW4S6 n FYF"[εvOqƕufuq:8BHME񊚲x,rQQٺʒ /!J? eEn'3n4?ut8.ΑM\\h0TyF#mv/Ɔ;YJŭesikֺ!Dbq.Q6aQaق;XY#y*oXL´ iCSuPpB|d932 3|hGPg}d@a06Mad_):`D) v+#?CYHL(тgnDF;yLv+ciDPdQzFyAlFںl</wS#\ L}Oi]TURR:/swo*wD􊂔07Gb}I"N< My^|8sXlXu@pbσw)rBx~F#U۹&_HTV'Yu tl @iGBm[=['e%.1mlqnY#o?eI$Ϲ4jOrewqs\{#wPQr,tC🿹VRxԍ ͩ~nlwJ߹u+6fQWaCW O\>d<͞/* g  '︩iƪޡH7~YYiwd"6jǣ3ZQ50񸳴]@:ٵ쳠6y<`F?u5+JH4n"s?R-n--nXOⶡqw[Wo*j1s;y3gBӲZ)ΞydښWEcoqIY<S:6.Bol~pgHʀ mkܮƸ1h0-'t K|*bu={"84KD⼜hq[ָ^WNOQqYIihB|!{,܍7\V[q.9r8\N{N6шyJj\}t#@@ի,2dž.+㤙_B@s8|5 H(0y]g¼$gVo:b!ҁ;*E֚eMk𶢈h;{ıva9{cSyf5#<`Nd9WQyqm݊]#9q,$HTLm_YMIMjCK" Lѱ80kFyĨhP+pp8V-s8jmrU?pȯ.1f-nOWiM_ ɊGwOt||kө1n.$ٝE_U -dIZyndt$z^VS}$+j1>ra6?4vFء0&>LUzڴ<4jߨi΁Q`2lT#,S)GQf\2D/'q8> 1cc\4N3 PaB6/@cPEGoNwהo\sۍb\4hT6W\ /hP"qۊOڸZߴ⤞\ϫ=iP@YD`(uWiB< z%ޙ]pF,4=iho8@:fDm >4:Óyq`42=v6;{1 /n^v5s18d̔7mr*^\DpUլY*-nO~?z q1[Қ^rAʧk4unPYɹd[?XS~5붊lfj*D@|?}޶sq~m@lymɲrn>+ܟ_qAn{CS9r0?'1F7xeO=ƬVomm Rbt|PkS_ۢ[z tꦒS:n'?:Z[䕕kv}.C#F)oڗEk(PLe^R _Y .6q~T[y_iP Mmȱpry}%%.gN #m ܸ6S}J .rӬ]ldhJ /4 6oN6"WUUwn߱#7WTV-$H:w؝EWGCĕ Wc<ޢ*s.bGV55PB+箜= 86ÑԝѼ=s.}JKoKo,^E('ټ5%˛,6+ 'F¡~b:.-m%(VDOLsxӚfw #_M_ZO̱#\5q,4sTv5f%mL o@ϯ\y*wӸI.o*BizJZ4X/[]_HGء8k؞*]TsD:dO֖[]Ə|}8ͷ\_Mc$OKo@E dE#W[[^{sǽE7eY#9(Lz hq=oJ6_(|k0:U;hY;4M#<.yU-___yӼl5h_ltK=:B50IT4YW"vf qG?ZZ^Ejg˴sBvX@BēJe=ZcMpɼ8Y+,a݀ u;ń3\G&ߴL_I07[$g@OQ9OYWO hp^o>GpOP3zA uhpmpqi˶}iF{2mZP3OQf jA<oSo/}N/=>xЁ?ghI}1 }rBcS/%[QcҖ [d+o\LJlT('3[GkZG>ԼV[yߞ]k~Ѱ٫yݙsz|EfW%WrT#doJ.)_6(?Eѣ@gӖm֖p8̞}DÙp?\=zn_s \MV !3OާgWf&>喯?C[ z ucn{u/}9E/<̧6]k{=yn͵-y}WMA{:+m c[~!ГiߺwyΟ:F$g_9x;~|K{Sd<>Ⱨv?OVտYe&-3qЉ_PO$|]k83?߽g|6ħ g}=ծ=N<P#yR?Ʒ_|K4QW{|S92ȟʑ=w`61x3YGO H&``hȞ 8^=(ܿ|s'U5#=ʎvuһYUCOk_$#OMe۶+׮O y˅m ,D3G2_iO&A_&A?dmf>_S{?$8 ϟ:Dʝ@f =K.ѴvCUmÏ>K>1O#o|~ڍ"+&qO$Ea}EM] mӆ1: @̞={+%`K[wê='1ljݦ-յ <ojhw8EoSǷܶ}J{Z-SNE9rɻΝ>nw8}+g˓/xG߹x3C.?y=wCӻG"ǾͷC>݉?NU]g0t3]:o b_Wo,mhɣ`I{i=xdL yzejegm9@WV;?9@0S}ބ:JߡSgC,"5qO<;ӱ&sd\ABUHRaéO1ݼW\Zo.$kBvY֖c=T%}ٔsXӃnx$O}鑏ezܳl>x3$K>nG.]A n{*T79 SV4RC=, ޢDdS \NOĩ$p[|ߞ&SM 'W9tg2fo}ʔ; ӕ3OS^OFP|6'<&ujڃ%iĵDd[iKڑtU]Cur;?V6oTUc]m7DDû_:]xk4pc(q1++!.=X=X⠦=0cM54h$ԁOoc~f[K'w^ի;h<y_~BIENDB`PK}БR>PKt1zDOEBPS/concepts.htm High Availability Concepts

2 High Availability Concepts

This chapter describes high availability concepts and includes the following topics:

For information on Oracle Fusion Middleware concepts, see the following topics in the guide Oracle Fusion Middleware Understanding Oracle Fusion Middleware Concepts.

Table 2-1 Oracle Fusion Middleware Concepts

For information on...See this topic...

Oracle Home, Oracle Common, WebLogic Server Domain

"What are the Key Oracle Fusion Middleware Directories?"

WebLogic Server Domain

"What is an Oracle WebLogic Server Domain?"

Administration Server

"What is the Administration Server?"

Managed Servers and Managed Server Clusters

"Understanding Managed Servers and Managed Server Clusters"

Node Manager

"What is Node Manager?"



See Also:

"Communications in a Cluster" in Oracle Fusion Middleware Administering Clusters for Oracle WebLogic Server


2.1 Server Load Balancing in a High Availability Environment

Load balancing is the even distribution of jobs and associated communications across the computing and networking resources in your environment.

Typically, Oracle Fusion Middleware high availability deployments are front ended by a load balancer that you configure to distribute incoming requests using various algorithms. You can configure load balancing between different components or applications.

You can also configure load balancing between different components or applications by using Oracle HTTP Server or, on Exalogic only, Oracle Traffic Director. See Section 2.1.3, "Server Load Balancing with Oracle HTTP Server or Oracle Traffic Director" for more information.

This section includes the following topics:

2.1.1 Third-Party Load Balancer Requirements

You can use third-party load balancers in your Oracle Fusion Middleware high availability deployments. Your external load balancer must have the following features:

  • Ability to load-balance traffic to a pool of real servers through a virtual host name: clients access services using the virtual host name instead of using actual host names. The load balancer can then load balance requests to the servers in the pool.


    Note:

    Typically the load balancer can balance across Oracle HTTP Server instances and then the Oracle HTTP Servers can balance across application servers.


  • Port translation configuration.

  • Monitoring of ports (HTTP and HTTPS).

  • Virtual servers and port configuration: ability to configure virtual server names and ports on your external load balancer, and the virtual server names and ports must meet the following requirements:

    • The load balancer should allow configuration of multiple virtual servers. For each virtual server, the load balancer should allow configuration of traffic management on more than one port. For example, for Oracle WebLogic Clusters, the load balancer must be configured with a virtual server and ports for HTTP and HTTPS traffic.

    • The virtual server names must be associated with IP addresses and be part of your DNS. Clients must be able to access the external load balancer through the virtual server names.

  • Ability to detect node failures and immediately stop routing traffic to the failed node.

  • Resource monitoring / port monitoring / process failure detection: the load balancer must be able to detect service and node failures through notification or some other means and to stop directing non-Oracle Net traffic to the failed node. If your external load balancer has the ability to automatically detect failures, Oracle recommends that you use it.

  • Fault tolerant mode: Oracle recommends that you configure the load balancer to be in fault-tolerant mode.

  • Virtual server returning to calling client: Oracle highly recommends that you configure the load balancer virtual server to return immediately to the calling client when the back-end services that it forwards traffic to are unavailable. This is preferred over the client disconnecting on its own after a timeout based on the TCP/IP settings on the client machine.

  • SSL acceleration. Oracle recommends this feature but does not require it.

  • Ability to Preserve the Client IP Addresses: the load balancer must have the capability to insert the original client IP address of a request in an X-Forwarded-For HTTP header to preserve the Client IP Address.

2.1.2 Third-Party Load Balancer Configuration

Detailed load balancer configuration steps depend on:

  • The environment you are using the load balancer in.

  • The type of load balancer you are using.

For these reasons, Oracle recommends that you follow the documentation for your own load balancer. For high-level load balancer configuration steps, see the enterprise deployment guide for the component you are working with.

2.1.3 Server Load Balancing with Oracle HTTP Server or Oracle Traffic Director

This section describes Oracle products you can use to provide load balancing.

Server Load Balancing with Oracle HTTP Server

Oracle HTTP Server is a web server with built-in WebLogic Server Proxy Plug-In module to act as HTTP front-end for one or more WebLogic servers. This built-in receives the incoming request from the client and load balances the request to one or more WebLogic Servers.

Oracle HTTP Server includes the mod_wl_ohs module, which routes requests to Oracle WebLogic Server. The mod_wl_ohs module provides the same load balancing functionality as mod_weblogic, the Oracle WebLogic Server Plug-in for Apache HTTP Server. See "Configuring the mod_wl_ohs Plug-In for Oracle HTTP Server" in Oracle Fusion Middleware Using Web Server 1.1 Plug-Ins with Oracle WebLogic Server for more information. See Section 7.8.1.4, "Configuring mod_wl_ohs.conf" for more information on the mod_wl_ohs module.

Server Load Balancing with Oracle Traffic Director

Oracle Traffic Director is a highly available Application Delivery Controller with WebLogic inter-operability enhancements to allow incoming requests to be efficiently throttled to one or more WebLogic server clusters. Oracle Traffic Director is a fast, reliable, and scalable layer-7 software load balancer. You can set up Oracle Traffic Director to serve as the reliable entry point for all HTTP, HTTPS and TCP traffic to application servers and web servers in the back end. Oracle Traffic Director distributes the requests that it receives from clients to servers in the back end based on the specified load-balancing method, routes the requests based on specified rules, caches frequently accessed data, prioritizes traffic, and controls the quality of service.You can use Oracle Traffic Director with Exalogic only.

2.2 Application Failover

Failover is relocating an overloaded or failed resource such as a server, disk drive, or network to its redundant or backup component.

Application failover is when an application component doing a particular job becomes unavailable for any reason and a copy of the failed component finishes the job.

Information about what has been done on a job is called state. WebLogic Server maintains state information using techniques called session replication and replica-aware stubs. When a component unexpectedly stops doing its job, replication techniques enable a copy of the component to pick up where the failed component stopped and finish the job.

Session Failover Requirements


Note:

Oracle applications meet these session failover requirements unless a specific exception is made for an application.


For seamless application failover, an application must meet the following conditions:

  • The application is in a cluster and at least one member of the application cluster is available to serve the request.

  • For stateful applications, state replication is configured correctly.

  • If you are using Oracle HTTP Server, the server is configured with the WebLogicCluster directive to balance among all available application instances.

  • If you are using a hardware load balancer, the load balancer is:

    • Routing traffic to all available instances

    • Configured correctly with a health monitor to mark unavailable instances

    • Configured to support persistence of session state

Expected Behavior for Application Failover

If you configure the environment correctly, application users do not notice when an application instance in a cluster becomes unavailable. The sequence of events in an application failover is, for example, as follows:

  1. A user makes a request and a hardware load balancer routes it to Instance A of the application.

  2. Instance A of the application becomes unavailable because of node failure, process failure, or network failure.

  3. The hardware load balancer marks Instance A as unavailable.

  4. The user makes a subsequent request. The request is routed to Instance B.

  5. Instance B is configured as a replication partner of Instance A and has the user's session state.

  6. The application resumes using the session state on Instance B and the user continues working without interruption.


See Also:

See the Domain Template Reference for information on domain and extension templates that support high availability.

See Failover and Replication in a Cluster in the guide Administering Clusters for Oracle WebLogic Server for information on failover and replication at the application level.


2.3 Real Application Clusters

Oracle Real Application Clusters (RAC) enable you to cluster an Oracle database. A cluster comprises multiple interconnected computers or servers that appear as if they are one server to end users and applications. Oracle RAC uses Oracle Clusterware for the infrastructure to bind multiple servers so they operate as a single system. Along with a collection of hardware (cluster), Oracle RAC unites the processing power of each component to become a single, robust computing environment. Oracle RAC simultaneously provides a highly scalable and highly available database for Oracle Fusion Middleware.

Every Oracle RAC instance in the cluster has equal access and authority. Node and instance failure may affect performance but does not result in downtime because the database service is available or can be made available on surviving server instances.


See Also:

For more information on Oracle RAC see:


2.4 Coherence Clusters and High Availability

If you follow Oracle Fusion Middleware Installing and Configuring Oracle WebLogic Server and Coherence or a product installation guide, such as Oracle Fusion Middleware Installing and Configuring Oracle Fusion Middleware for Oracle Application Development Framework, the standard installation topology includes a standard Coherence cluster that serves as a starting point for additional configuration.

A Coherence cluster is a collection of Java Virtual Machine (JVM) processes running Coherence. In 12c, these processes are referred to as WebLogic Managed Coherence Servers. JVMs that join a cluster are called cluster members or cluster nodes. Cluster members can be:

  • Dedicated storage members

  • Client members that have storage disabled

  • Proxy members that allow non-cluster members to access Coherence caches

Cluster members communicate using Tangosol Cluster Management Protocol (TCMP). Cluster members use TCMP for both multicast communication (broadcast) and unicast communication (point-to-point communication).

Coherence characteristics include the following:

  • Each domain typically contains one Coherence Cluster.

  • Each managed Coherence server in a domain is associated with a Coherence cluster, defined through a Coherence Cluster System Resource.

  • Each application includes its Coherence configuration in a Grid Archive (GAR) file. The GAR file is deployed with the application and to all dedicated storage nodes.

All Fusion Middleware applications that use Coherence use the cluster associated with the managed Coherence server and deploy their GAR files co-located with their applications. Table 2-2 provides additional sources of information about Coherence.

Table 2-2 Coherence and Coherence Clusters

For information on...See this topic...

Coherence concepts and features

"Introduction to Coherence" in Oracle Fusion Middleware Developing Applications with Oracle Coherence

Creating Coherence clusters

"Setting Up a WebLogic Server Domain Topology for Coherence" in Coherence Administrator's Guide

Configuring a Coherence Cluster

"Configuring and Managing Coherence Clusters" in Administering Clusters for Oracle WebLogic Server


2.5 Disaster Recovery

For maximum availability, you may need to deploy services at different geographical locations to protect against entire site failures due to unforeseen disasters and natural calamities. Oracle Fusion Middleware products support the configuration of a geographically separate standby site to act as a backup. Applications and services can fail over to this backup in the event of natural or unplanned outages at a production site.

For detailed information about disaster recovery for Oracle Fusion Middleware components, refer to Oracle Fusion Middleware Disaster Recovery Guide.

2.6 Install Time Configuration

This section includes the following topics:

2.6.1 Domain (Topology) Profiles

You use the Configuration Wizard or WebLogic Scripting Tool (offline) to set up domains. See the guide Oracle Fusion Middleware Creating WebLogic Domains Using the Configuration Wizard for procedures to create, update, and configure domains.

All 12c (12.1.2) installation guides provide instructions for setting up a single machine, multi-server domain using the expanded profile. See one of the following guides for more information:

2.6.2 Persistence Profiles

Persistence profiles are a collection of settings intended to meet a specific persistence environment. There are two persistence profiles for Expanded profiles: database and file based.

Table 2-3 shows persistence types for database and file persistence profiles.

Table 2-3 Persistence Types for Database and File Persistence Profiles

Component/ServiceDatabase Persistence ProfileFile Persistence Profile

JMS

AQ in Database Store

WebLogic Server JMS in File Store

JTA

JTA in Database Store

JTA in File Store

OPSS

Database Store

Database Store

MDS

Database Store

Database Store

Service Table

Database Store

Database Store

Failover

Automatic Service Migration

Whole Server Migration


Although you can "mix & match" a component or service with the persistence profile, the persistence type groups in Table 2-3 work together optimally. Oracle recommends that you use all options consistently within their respective profile.


See Also:

See "Interoperability with Supported Databases" in the Interoperability and Compatibility Guide for database version requirements for selected products and features.


Post-Configuration Defaults

For the expanded domain configuration, the database persistence mode is configured by default. For compact domain configuration, file persistence is the default.


Note:

Some products may have specific requirements for shared file stores; Oracle recommends that you refer to your product's requirements for details.


Table 2-4 describes additional sources of information. To configure file persistence after an expanded domain configuration, such as moving from database persistence to file persistence, see Chapter 5, "JMS and JTA High Availability".

Table 2-4 Domain Configuration Topics

For additional information on...See this topic...

Shared file systems for use with the file persistence profile

Chapter 3, "Using Shared Storage"


JMS and JTA

Section 5.2, "Configuring JMS and JTA Services for High Availability"


Failover

Section 2.2, "Application Failover"



2.7 Application and Service Failover

Migration in WebLogic Server is the process of moving a clustered WebLogic Server instance or a component running on a clustered instance elsewhere if failure occurs. Whole server migration occurs when the server instance migrates to a different physical system upon failure. With service-level migration, the services move to a different server instance within the cluster.

This section describes server and service failover for JMS and JTA.

Topics in this section include:

2.7.1 Whole Server Migration

A WebLogic Server cluster provides high availability and failover by duplicating an object or service on redundant servers in the cluster. However, some services, such as JMS servers and the JTA transaction recovery service, are designed with the assumption that there is only one active instance of the service running in a cluster at any given time. These types of services are referred to as pinned services because they remain active on only one server instance at a time.

In a WebLogic Server cluster, most services deploy homogeneously on all server instances in the cluster, enabling transparent failover from one server to another. However, pinned services such as JMS and the JTA transaction recovery system are targeted at individual server instances within a cluster. For these services, WebLogic Server supports failure recovery with migration instead of failover.

WebLogic Server provides a feature for making JMS and the JTA transaction system highly available: migratable servers. Migratable servers provide for both automatic and manual migration at the server-level, rather than the service level.

When a migratable server becomes unavailable for any reason, for example, if it hangs, loses network connectivity, or its host system fails—migration is automatic. Upon failure, a migratable server automatically restarts on the same system if possible. If the migratable server cannot restart on the system it failed on, it migrates to another system. In addition, an administrator can manually initiate migration of a server instance.


See Also:

See Whole Server Migration in Oracle Fusion Middleware Administering Clusters for Oracle WebLogic Server for more information on preparing for automatic whole server migration, configuring automatic whole server migration, and server migration processes and communications.

See Section 5, "JMS and JTA High Availability" for more details on JMS and JTA services.


2.7.2 Automatic Service Migration

Service-level migration in WebLogic Server is the process of moving pinned services from one server instance to a different available server instance within the cluster.

You can configure JMS and JTA services for high availability by using migratable targets. A migratable target is a special target that can migrate from one server in a cluster to another. As such, a migratable target provides a way to group migratable services that should move together. High availability is achieved by migrating a migratable target from one clustered server to another when a problem occurs on the original server. When the migratable target is migrated, all services hosted by that target are migrated.


See Also:

For more information, see "Service Migration" in the guide Oracle Fusion Middleware Administering Clusters for Oracle, which includes the following topics:


2.8 Roadmap for Setting Up a High Availability Topology

This section provides high level steps for configuring an example middleware topology with high availability, such as the topology that Section 1.5, "Understanding the Oracle Fusion Middleware Standard HA Topology" describes.

Table 2-5 describes the steps required to set up a high availability topology.

Table 2-5 Roadmap for Setting Up a High Availability Topology

TaskDescriptionDocumentation

1. Install Real Application Clusters

Install Real Application Clusters

See Oracle Real Application Clusters Administration and Deployment Guide

2. Install middleware components

Install the application by following instructions in an application installation guide.

See Oracle Fusion Middleware Installing and Configuring the Oracle Fusion Middleware Infrastructure or the installation guide for your product

3. Install Oracle HTTP Server

Install Oracle HTTP Server in the same domain

See Installing and Configuring Oracle HTTP Server

4. Configure a load balancer

Configure a third- party load balancer that meets specific requirements, or Oracle HTTP Server/Oracle Traffic Director.

See Section 2.1, "Server Load Balancing in a High Availability Environment."

5. Scale out the topology (machine scale out)

Steps for scaling out a topology (machine scale-out) for all Fusion Middleware products that are a part of a Fusion Middleware WebLogic Server domain.

See Chapter 6, "Scaling Out a Topology (Machine Scale Out)"


PK(PKt1zD OEBPS/toc.ncx- Oracle® Fusion Middleware High Availability Guide, 12c (12.1.2) Cover Title and Copyright Information Contents List of Examples List of Figures List of Tables Preface Part I Introduction to High Availability 1 Introduction and Roadmap 2 High Availability Concepts Part II Creating a High Availability Environment 3 Using Shared Storage 4 Database Considerations 5 JMS and JTA High Availability 6 Scaling Out a Topology (Machine Scale Out) Part III Component Procedures 7 Configuring High Availability for Web Tier Components 8 Configuring High Availability for Oracle Application Development Framework 9 Configuring High Availability for Other Components Copyright PK/nfPKt1zDOEBPS/content.opf` Oracle® Fusion Middleware High Availability Guide, 12c (12.1.2) en-US E38249-02 Oracle Corporation Oracle Corporation Oracle® Fusion Middleware High Availability Guide, 12c (12.1.2) 2013-09-18T09:52:15Z The Oracle Fusion Middleware High Availability Guide provides high availability conceptual information as well as administration and configuration procedures for administrators, developers, and others whose role is to deploy and manage Oracle Fusion Middleware with high availability requirements. PK e`PKt1zD OEBPS/lof.htme List of Figures PK"KjePKt1zDOEBPS/dcommon/oracle-logo.jpgKgJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222'7" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE!KEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEzE7V%ȣOΏ9??:a"\fSrğjAsKJ:nOzO=}E1-I)3(QEQEQEQEQEQEQE֝Hza<["2"pO#f8M[RL(,?g93QSZ uy"lx4h`O!LŏʨXZvq& c՚]+: ǵ@+J]tQ]~[[eϸ (]6A&>ܫ~+כzmZ^(<57KsHf妬Ϧmnẁ&F!:-`b\/(tF*Bֳ ~V{WxxfCnMvF=;5_,6%S>}cQQjsOO5=)Ot [W9 /{^tyNg#ЄGsֿ1-4ooTZ?K Gc+oyڙoNuh^iSo5{\ܹ3Yos}$.nQ-~n,-zr~-|K4R"8a{]^;I<ȤL5"EԤP7_j>OoK;*U.at*K[fym3ii^#wcC'IIkIp$󿉵|CtĈpW¹l{9>⪦׺*ͯj.LfGߍԁw] |WW18>w.ӯ! VӃ :#1~ +މ=;5c__b@W@ +^]ևՃ7 n&g2I8Lw7uҭ$"&"b eZ":8)D'%{}5{; w]iu;_dLʳ4R-,2H6>½HLKܹR ~foZKZ࿷1[oZ7׫Z7R¢?«'y?A}C_iG5s_~^ J5?œ tp]X/c'r%eܺA|4ծ-Ե+ْe1M38Ǯ `|Kյ OVڅu;"d56, X5kYR<̭CiطXԮ];Oy)OcWj֩}=܅s۸QZ*<~%뺃ȶp f~Bðzb\ݳzW*y{=[ C/Ak oXCkt_s}{'y?AmCjޓ{ WRV7r. g~Q"7&͹+c<=,dJ1V߁=T)TR՜*N4 ^Bڥ%B+=@fE5ka}ędܤFH^i1k\Sgdk> ֤aOM\_\T)8靠㡮3ģR: jj,pk/K!t,=ϯZ6(((((((49 xn_kLk&f9sK`zx{{y8H 8b4>ÇНE|7v(z/]k7IxM}8!ycZRQ pKVr(RPEr?^}'ðh{x+ՀLW154cK@Ng C)rr9+c:׹b Жf*s^ fKS7^} *{zq_@8# pF~ [VPe(nw0MW=3#kȵz晨cy PpG#W:%drMh]3HH<\]ԁ|_W HHҡb}P>k {ZErxMX@8C&qskLۙOnO^sCk7ql2XCw5VG.S~H8=(s1~cV5z %v|U2QF=NoW]ո?<`~׮}=ӬfԵ,=;"~Iy7K#g{ñJ?5$y` zz@-~m7mG宝Gٱ>G&K#]؃y1$$t>wqjstX.b̐{Wej)Dxfc:8)=$y|L`xV8ߙ~E)HkwW$J0uʟk>6Sgp~;4֌W+חc"=|ř9bc5> *rg {~cj1rnI#G|8v4wĿhFb><^ pJLm[Dl1;Vx5IZ:1*p)إ1ZbAK(1ׅ|S&5{^ KG^5r>;X׻K^? s fk^8O/"J)3K]N)iL?5!ƾq:G_=X- i,vi2N3 |03Qas ! 7}kZU781M,->e;@Qz T(GK(ah(((((((Y[×j2F}o־oYYq $+]%$ v^rϭ`nax,ZEuWSܽ,g%~"MrsrY~Ҿ"Fت;8{ѰxYEfP^;WPwqbB:c?zp<7;SBfZ)dϛ; 7s^>}⍱x?Bix^#hf,*P9S{w[]GF?1Z_nG~]kk)9Sc5Ո<<6J-ϛ}xUi>ux#ţc'{ᛲq?Oo?x&mѱ'#^t)ϲbb0 F«kIVmVsv@}kҡ!ˍUTtxO̧]ORb|2yԵk܊{sPIc_?ħ:Ig)=Z~' "\M2VSSMyLsl⺿U~"C7\hz_ Rs$~? TAi<lO*>U}+'f>7_K N s8g1^CeКÿE ;{+Y\ O5|Y{/o+ LVcO;7Zx-Ek&dpzbӱ+TaB0gNy׭ 3^c T\$⫫?F33?t._Q~Nln:U/Ceb1-im WʸQM+VpafR3d׫é|Aү-q*I P7:y&]hX^Fbtpܩ?|Wu󭏤ʫxJ3ߴm"(uqA}j.+?S wV ~ [B&<^U?rϜ_OH\'.;|.%pw/ZZG'1j(#0UT` Wzw}>_*9m>󑓀F?EL3"zpubzΕ$+0܉&3zڶ+jyr1QE ( ( ( ( ( ( ( (UIdC0EZm+]Y6^![ ԯsmܶ捆?+me+ZE29)B[;я*wGxsK7;5w)}gH~.Ɣx?X\ߚ}A@tQ(:ͧ|Iq(CT?v[sKG+*רqҍck <#Ljα5݈`8cXP6T5i.K!xX*p&ќZǓϘ7 *oƽ:wlຈ:Q5yIEA/2*2jAҐe}k%K$N9R2?7ýKMV!{W9\PA+c4w` Wx=Ze\X{}yXI Ү!aOÎ{]Qx)#D@9E:*NJ}b|Z>_k7:d$z >&Vv󃏽WlR:RqJfGإd9Tm(ҝEtO}1O[xxEYt8,3v bFF )ǙrPNE8=O#V*Cc𹾾&l&cmCh<.P{ʦ&ۣY+Gxs~k5$> ӥPquŽўZt~Tl>Q.g> %k#ú:Kn'&{[yWQGqF}AЅ׮/}<;VYZa$wQg!$;_ $NKS}“_{MY|w7G!"\JtRy+贾d|o/;5jz_6fHwk<ѰJ#]kAȎ J =YNu%dxRwwbEQEQEQEQEQEQEQEQEQE'fLQZ(1F)hQ@X1KEQE-Q@ 1KE3h=iPb(((1GjZ(-ʹRPbR@ 1KE7`bڒyS0(-&)P+ ڎԴP11F)h&:LRmQ@Q@Š(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((?l:ϊw "{{-3j3%{+Zoi.{YUڪ1kcMմfݮ4Br%*8%I.QT-[MѭT-,`g]L)lXqjV4Ķ%ѡ')$r_Ĭ AVuoż9#`FApA+麶۵ƗZ_@QeP#8 Uh燮,/jXJ}9Q]рN:]dko-ıH^I$`I$$:[zޛ}:v%`$)' gVko-ıH^I$`I$$..3D ?+pcV4[MmK-/W(Z̲lTq(Q@'94 >SJJFCI'L~yᵷX$/$0UE$xs@U{=2K--cFI,٬|Cό<)a-8nQǰ_VBNM>rE+/uoż9#`FApA椬 eq-"mV89 Wcag]E7dt&i5j K%-p 3N=\o?:evjh$#b9#hɫirLiJ*+rcTY2K;iVQ|3@#*NFA7'u@yi}ŭim=춎if@NXr???6޽ +/R.\-3X&+2qF}\㼰L $0? ESVf&-P7h)Y3>e֍KVtku5 K,S,J[ g{EG[qo,sA*H2AG9z\][j3>˘]lNTC@(O]O+[U"ߌg2:zMմfݮ4Br%*8%I.QU9//വA.H,x$ƩxAn/u6 m$H2' 0zZԢxn⸷9$l]H #<4Ķ%ѡ')$r_Ĭ APQ@w?±k(n.%"BI#TP2I'5w?±k5[;jvzg+d!q`rxbS Y3h$#`pÃ*s Ҵ}:v23ɹ]dNҵ5-[MѭT-,`g]L)lXqhGp̼z'ᧈn-h%^9#`ab#4cgyawݬ4 H8a~b&4 SPtY.X),@85n6q+i-fYT6*H8r((((((((((%>*. s {+Z!¼اl*$?LE1ѶkvÖ -](v +g'dQWWF];Z/;mBI\]ʉHCi`x 3 ;IaXTw'F7}ko}ٻÜ \lt  "M9dld*k*0y<{_<[x:ZH-'r\#w#y#H}O7C" 'ڽs^|'M]>ᯣ-(@uP0UpI'':u|;2rNYYNPOl_Kw *psA~+ſ޷qvdk-2GY $>I$1<][> ZNpF@y'#~ Ɓ9t߼Դ"<NA9ʢlnF_Z&_6+;_ K!!N}',ZI+.'iTn% zš շil/<3[|qgq]$:Du_§FAInQjxkRFGj #AeCq"bbH>Y|A^2?oWF9dD+$۸۵W$#ohZg3I󼟷x~+o7nFq";MOx #Sѥ77w-Fܜ'g Tg 8ӚW`rmT!sxKšo/\Y[șS8b_ Uroyǯ:.eix w5NPG p$ _Cڷ4ELX?$a]v O 1xSS?<,ƊO V_z!GBoΡ%嘷[#HᏋ ڽp~Y/n7P7y_bixG )_0Xmq<pNGJ o]Gŏx'_q*ڹ@$Ulu/CcaSmsWSHt/4 -Iۀ2hAfn@2;88InQr7KZvh/"o$1ڮݧA$ \G$:DuxI熿k<⎫[ភAiV헷/AU9l#pAn5G> ťGt٧(J  23ˎA1jm[W|=_cmb!>d82X}B;n4>4.0H@çq^|ԓIo<ojiz\LDp|cdH^09md ]8X9 OaD#. ra*NF އ6rWOfB `(vqQ@{,Kk`@+(I"q+䳿LoxĈ  Eps}sq,Gs2($WGXYqZAikvCb4\Np2I?X17m:t-d漙r'.I·N{ ^ V2gi z`0օ <j)h%`$l DX0Ñ]E\^GZD̛܌a'X3MN \[bǖ$I[}d[7m`Õ @<Т+Xu~]I )<:?^U4H'fFxd 7g]Eǿ7 b+KH{Hn' (u . #" d"0QӰZ؋,5m" {Vi6@HNLztP>m^tNϺu*s QzlQEq:t.$;$a(f$֦xYt]7J[q #egzA[P{}ON̵7#OJ߅oXhvdS3'e'ʶ(UOukjv>_]1'kFڞ= Ff"tݱ'd@*7YFlVQ1TEwq)io|  Kừh5;wey-a/T؃(9'+yc PNBRON̑:((fsy'kk3'j(%'l/4w\"qH!`PQz~)sjΣ rBi㷈66cݵW.nzCƑ-KIdwCrҢ!U7@xc_hlڼ^fݲ+܌n: Lwm"v߱N3&Huw҈' *E-y$P** IaY?TUs~sriޑX@)r|6>l +*E5x ,?|}&"^&v2 !пJ$@>3|y i|GAw.ci*$}AQi$n9<v΍}7Ś^ix*[<1; 2xdPHB=3?`xzIv>o{VxW_)h'cRנxIu9_Ht/x҉+CS>'տ~w+|6;c8=? ?JCaQn(|kXeOkddo40)݌~z|⿇=Kk6r$c;nך0|o[Iwy1ߔYT8AA9Ҋx[> m}$-nJVfr(R@h|qo?x_II+VٔC&y*\PQY~!熴,D]#,y<ɭJ?x׍n<+OڠkFgF|h$.f`ɯ5Mq[YrȑΪ3F{gT~ڧa>QJ>y_ѡ5H.[UEf U's(oVt_#װjzcie#w":}Ŋ'x%xj |kߋGiYj]oAH{V?( *m{W ;£FPax5ohm?#^Cv}n{ Q6sν]j/|+w%?,1dU;;@=R?6>Ywtj!/8aEުp0k\?lϿ{=8p_W> MWZ07q<Ler!nvĜ?6M5fZGx La(b@ݜNA{e+l3y4r;q% 1Xi@SգFK85meeRRczPo_K}uvZXI$02*:F2/$~iEK^@ĝXXxGULV1CFcUuRATk+(w#$"NIpp2O770wJ[ޡn]WGB 5hu$Kvo * G22]R=kė?j^ е94JGMB$rg6(B@`l(Ex3ax\u4SwyyEFKuQEQEQEQEQEQEQEQEQEQEQEx_+mKǞ<Ѽ {wvQUSQgOG9ߕz4i_u_5MEn:1"*ae~A'=%|/|:xgVHrZMhP8:ğ iPG^lZnE'C$)#li,Ү绶Ү>isj VR2y;I@g_\m绔<^2uP|ͪXB<;ejqIDP?+nr1*@p2pϫQMW2H?w!c\dk?6j-r D|%S<߅$P?!Tgj$P$:DuxI熿kxv~.އ$l06 ;U'MFѬtv6QBp+jEE\h_~0X]Oэf< .wv730q^iѦ[fuf UWjv#ύDݭMKd`1~`HqiŸ<Ƶ#7[ ̲8 @eo_*gUwcYp>,D.13]#v/O3pΊ68̄dwTv.>*G}mUYRcrU|'o>a7pKjtٻګ= B-4~{rSUT c ȽN1O0ExG;t 6mc% ےOp:7ͯ9Bdk5Y%'FJ-Uu:ѣ.P^]J$*S&;J(!v,z~wp._yw7vTM{uoż9#`FApAC] vb\ ~pCǒ 33+|A-sƨg}Pgwp\y|MˑVr6:0S/qp#fX[rSz<[Ѵ㜦.瓅\*х 9xKm7Zи}JaЫ)OQGm6KZyEqv*U'99"V⯈Ȱ^q`Ա|iyKƹ(G#^vGYL*$,PG ڣy9 ='CG_ |e51 Ve(Oyn1JB>>e6ǚ"X c*6?^?#:[iՌwvbTYH*z8$t&$4;C[=1"Ҥgvr1 漏V⯈Ȱ^q`Ա|iyKƹ(G#^vGYL*$,PG ڣy9 e/xLΥwӮbbDg܎2N3ҍ+J}3L6EtQ'$$khOjmޙyo8<feA HQESմuKi y-h ԩ# ;IaXT>Uo5 VK]yc(w#!яz$Oæ>6OZMRJP[}1xγ/w۫G "*UI;vT;%7]7x $u Oracle Legal Notices

Oracle Legal Notices

Copyright Notice

Copyright © 1994-2014, Oracle and/or its affiliates. All rights reserved.

Trademark Notice

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

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

License Restrictions Warranty/Consequential Damages Disclaimer

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

Warranty Disclaimer

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

Restricted Rights Notice

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

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

Hazardous Applications Notice

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

Third-Party Content, Products, and Services Disclaimer

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

Alpha and Beta Draft Documentation Notice

If this document is in preproduction status:

This documentation is in preproduction status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.

Oracle Logo

PK0hPKt1zDOEBPS/dcommon/oracle.gifJGIF87aiyDT2F'G;Q_oKTC[ 3-Bq{ttsoGc4I)GvmLZ).1)!ꑈ53=Z]'yuLG*)g^!8C?-6(29K"Ĩ0Яl;U+K9^u2,@@ (\Ȱ Ë $P`lj 8x I$4H *(@͉0dа8tA  DсSP v"TUH PhP"Y1bxDǕ̧_=$I /& .)+ 60D)bB~=0#'& *D+l1MG CL1&+D`.1qVG ( "D2QL,p.;u. |r$p+5qBNl<TzB"\9e0u )@D,¹ 2@C~KU 'L6a9 /;<`P!D#Tal6XTYhn[p]݅ 7}B a&AƮe{EɲƮiEp#G}D#xTIzGFǂEc^q}) Y# (tۮNeGL*@/%UB:&k0{ &SdDnBQ^("@q #` @1B4i@ aNȅ@[\B >e007V[N(vpyFe Gb/&|aHZj@""~ӎ)t ? $ EQ.սJ$C,l]A `8A o B C?8cyA @Nz|`:`~7-G|yQ AqA6OzPbZ`>~#8=./edGA2nrBYR@ W h'j4p'!k 00 MT RNF6̙ m` (7%ꑀ;PKl-OJPKt1zDOEBPS/dcommon/doccd_epub.jsM /* Copyright 2006, 2012, Oracle and/or its affiliates. All rights reserved. Author: Robert Crews Version: 2012.3.17 */ function addLoadEvent(func) { var oldOnload = window.onload; if (typeof(window.onload) != "function") window.onload = func; else window.onload = function() { oldOnload(); func(); } } function compactLists() { var lists = []; var ul = document.getElementsByTagName("ul"); for (var i = 0; i < ul.length; i++) lists.push(ul[i]); var ol = document.getElementsByTagName("ol"); for (var i = 0; i < ol.length; i++) lists.push(ol[i]); for (var i = 0; i < lists.length; i++) { var collapsible = true, c = []; var li = lists[i].getElementsByTagName("li"); for (var j = 0; j < li.length; j++) { var p = li[j].getElementsByTagName("p"); if (p.length > 1) collapsible = false; for (var k = 0; k < p.length; k++) { if ( getTextContent(p[k]).split(" ").length > 12 ) collapsible = false; c.push(p[k]); } } if (collapsible) { for (var j = 0; j < c.length; j++) { c[j].style.margin = "0"; } } } function getTextContent(e) { if (e.textContent) return e.textContent; if (e.innerText) return e.innerText; } } addLoadEvent(compactLists); function processIndex() { try { if (!/\/index.htm(?:|#.*)$/.test(window.location.href)) return false; } catch(e) {} var shortcut = []; lastPrefix = ""; var dd = document.getElementsByTagName("dd"); for (var i = 0; i < dd.length; i++) { if (dd[i].className != 'l1ix') continue; var prefix = getTextContent(dd[i]).substring(0, 2).toUpperCase(); if (!prefix.match(/^([A-Z0-9]{2})/)) continue; if (prefix == lastPrefix) continue; dd[i].id = prefix; var s = document.createElement("a"); s.href = "#" + prefix; s.appendChild(document.createTextNode(prefix)); shortcut.push(s); lastPrefix = prefix; } var h2 = document.getElementsByTagName("h2"); for (var i = 0; i < h2.length; i++) { var nav = document.createElement("div"); nav.style.position = "relative"; nav.style.top = "-1.5ex"; nav.style.left = "1.5em"; nav.style.width = "90%"; while (shortcut[0] && shortcut[0].toString().charAt(shortcut[0].toString().length - 2) == getTextContent(h2[i])) { nav.appendChild(shortcut.shift()); nav.appendChild(document.createTextNode("\u00A0 ")); } h2[i].parentNode.insertBefore(nav, h2[i].nextSibling); } function getTextContent(e) { if (e.textContent) return e.textContent; if (e.innerText) return e.innerText; } } addLoadEvent(processIndex); PKo"nR M PKt1zDOEBPS/dcommon/blafdoc.cssc@charset "utf-8"; /* Copyright 2002, 2011, Oracle and/or its affiliates. All rights reserved. Author: Robert Crews Version: 2011.10.7 */ body { font-family: Tahoma, sans-serif; /* line-height: 125%; */ color: black; background-color: white; font-size: small; } * html body { /* http://www.info.com.ph/~etan/w3pantheon/style/modifiedsbmh.html */ font-size: x-small; /* for IE5.x/win */ f\ont-size: small; /* for other IE versions */ } h1 { font-size: 165%; font-weight: bold; border-bottom: 1px solid #ddd; width: 100%; text-align: left; } h2 { font-size: 152%; font-weight: bold; text-align: left; } h3 { font-size: 139%; font-weight: bold; text-align: left; } h4 { font-size: 126%; font-weight: bold; text-align: left; } h5 { font-size: 113%; font-weight: bold; display: inline; text-align: left; } h6 { font-size: 100%; font-weight: bold; font-style: italic; display: inline; text-align: left; } a:link { color: #039; background: inherit; } a:visited { color: #72007C; background: inherit; } a:hover { text-decoration: underline; } a img, img[usemap] { border-style: none; } code, pre, samp, tt { font-family: monospace; font-size: 110%; } caption { text-align: center; font-weight: bold; width: auto; } dt { font-weight: bold; } table { font-size: small; /* for ICEBrowser */ } td { vertical-align: top; } th { font-weight: bold; text-align: left; vertical-align: bottom; } ol ol { list-style-type: lower-alpha; } ol ol ol { list-style-type: lower-roman; } li { text-align: left; } dd { text-align: left; } td p:first-child, td pre:first-child { margin-top: 0px; margin-bottom: 0px; } table.table-border { border-collapse: collapse; border-top: 1px solid #ccc; border-left: 1px solid #ccc; } table.table-border th { padding: 0.5ex 0.25em; color: black; background-color: #f7f7ea; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; } table.table-border td { padding: 0.5ex 0.25em; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; } span.gui-object, span.gui-object-action { font-weight: bold; } span.gui-object-title { } p.horizontal-rule { width: 100%; border: solid #cc9; border-width: 0px 0px 1px 0px; margin-bottom: 4ex; } div.zz-skip-header { display: none; } td.zz-nav-header-cell { text-align: left; font-size: 95%; width: 99%; color: black; background: inherit; font-weight: normal; vertical-align: top; margin-top: 0ex; padding-top: 0ex; } a.zz-nav-header-link { font-size: 95%; } td.zz-nav-button-cell { white-space: nowrap; text-align: center; width: 1%; vertical-align: top; padding-left: 4px; padding-right: 4px; margin-top: 0ex; padding-top: 0ex; } a.zz-nav-button-link { font-size: 90%; } div.zz-nav-footer-menu { width: 100%; text-align: center; margin-top: 2ex; margin-bottom: 4ex; } p.zz-legal-notice, a.zz-legal-notice-link { font-size: 85%; /* display: none; */ /* Uncomment to hide legal notice */ } /*************************************/ /* Begin DARB Formats */ /*************************************/ .bold, .codeinlinebold, .syntaxinlinebold, .term, .glossterm, .seghead, .glossaryterm, .keyword, .msg, .msgexplankw, .msgactionkw, .notep1, .xreftitlebold { font-weight: bold; } .italic, .codeinlineitalic, .syntaxinlineitalic, .variable, .xreftitleitalic { font-style: italic; } .bolditalic, .codeinlineboldital, .syntaxinlineboldital, .titleinfigure, .titleinexample, .titleintable, .titleinequation, .xreftitleboldital { font-weight: bold; font-style: italic; } .itemizedlisttitle, .orderedlisttitle, .segmentedlisttitle, .variablelisttitle { font-weight: bold; } .bridgehead, .titleinrefsubsect3 { font-weight: bold; } .titleinrefsubsect { font-size: 126%; font-weight: bold; } .titleinrefsubsect2 { font-size: 113%; font-weight: bold; } .subhead1 { display: block; font-size: 139%; font-weight: bold; } .subhead2 { display: block; font-weight: bold; } .subhead3 { font-weight: bold; } .underline { text-decoration: underline; } .superscript { vertical-align: super; } .subscript { vertical-align: sub; } .listofeft { border: none; } .betadraft, .alphabetanotice, .revenuerecognitionnotice { color: #e00; background: inherit; } .betadraftsubtitle { text-align: center; font-weight: bold; color: #e00; background: inherit; } .comment { color: #080; background: inherit; font-weight: bold; } .copyrightlogo { text-align: center; font-size: 85%; } .tocsubheader { list-style-type: none; } table.icons td { padding-left: 6px; padding-right: 6px; } .l1ix dd, dd dl.l2ix, dd dl.l3ix { margin-top: 0ex; margin-bottom: 0ex; } div.infoboxnote, div.infoboxnotewarn, div.infoboxnotealso { margin-top: 4ex; margin-right: 10%; margin-left: 10%; margin-bottom: 4ex; padding: 0.25em; border-top: 1pt solid gray; border-bottom: 1pt solid gray; } p.notep1 { margin-top: 0px; margin-bottom: 0px; } .tahiti-highlight-example { background: #ff9; text-decoration: inherit; } .tahiti-highlight-search { background: #9cf; text-decoration: inherit; } .tahiti-sidebar-heading { font-size: 110%; margin-bottom: 0px; padding-bottom: 0px; } /*************************************/ /* End DARB Formats */ /*************************************/ @media all { /* * * { line-height: 120%; } */ dd { margin-bottom: 2ex; } dl:first-child { margin-top: 2ex; } } @media print { body { font-size: 11pt; padding: 0px !important; } a:link, a:visited { color: black; background: inherit; } code, pre, samp, tt { font-size: 10pt; } #nav, #search_this_book, #comment_form, #comment_announcement, #flipNav, .noprint { display: none !important; } body#left-nav-present { overflow: visible !important; } } PKT' hcPKt1zD OEBPS/adf.htm Configuring High Availability for Oracle Application Development Framework

8 Configuring High Availability for Oracle Application Development Framework

This chapter describes procedures specific to Oracle Application Development Framework (ADF).


Note:

Unlike the other chapters in this guide, this chapter is written for ADF developers rather than administrators.


This chapter includes the following topics:


See Also:

For more information on ADF, see the following:

  • Oracle ADF Key Concepts in Understanding the Oracle Application Development Framework

  • Oracle Fusion Middleware Administering Oracle ADF Applications


8.1 Oracle ADF High Availability Considerations

Fusion web applications built on the Oracle ADF technology stack are Java EE applications (and J2EE applications). This section includes the following topics:

8.1.1 Oracle ADF Scope and Session State

At runtime, ADF objects such as the binding container and managed beans are instantiated. Each of these objects has a defined life span set by its scope attribute.

For more information, see "About Object Scope Lifecycles" in the guide Oracle Fusion Middleware Developing Fusion Web Applications with Oracle Application Development Framework for more information.

8.1.2 Oracle ADF Failover and Expected Behavior

An Oracle WebLogic cluster provides application high availability. If one member of the cluster is unavailable, any other available member of the cluster is able to handle the request. This topic describes failover requirements and the expected behavior of an application in the event of a failover.

Session Failover Requirements

For seamless failover of a Fusion web application, the application must meet the following conditions:

  • The application is in a cluster and at least one member of the application cluster is available to serve the request.

  • For stateful applications, state replication is configured correctly as Section 8.2, "Configuring Oracle ADF for High Availability" describes.

  • If you use Oracle HTTP Server, the server is configured with the WebLogicCluster directive to balance among all available application instances.

  • If you use a hardware load balancer, the load balancer is:

    • Routing traffic to all available instances

    • Configured correctly with a health monitor to mark unavailable instances

    • Configured to support persistence of session state

Expected Behavior for Application Failover

If the environment is configured correctly, application users do not notice when an application instance in a cluster becomes unavailable. The sequence of events in an application failover is, for example, as follows:

  1. A user makes a request and is routed by a hardware load balancer to Instance A of the application.

  2. Instance A of the application becomes unavailable because of node failure, process failure, or network failure.

  3. The hardware load balancer marks Instance A as unavailable.

  4. The user makes a subsequent request. The request is routed to Instance B.

  5. Instance B is configured as a replication partner of Instance A and has the user's session state.

  6. The application resumes using the session state on Instance B and the user continues working without interruption.

Oracle JRF Asynchronous Web Services (Pinned Service Behavior)

When you use Oracle JRF Asynchronous Web Services, the asynchronous web service is pinned to a service and does not fail over. When you use a reliability protocol such as WS-RM, the higher-level protocol reconnects to a new server after a failure.

For more information on Oracle JRF Asynchronous Web Services, see the Domain Template Reference.

8.1.3 Configuring the ADF Application Module for Oracle RAC

When you configure the ADF application module to access a highly available database system, such as redundant databases or Oracle Real Application Clusters (Oracle RAC) as the backend, the data source must be container-defined. In this scenario, you must use a GridLink data source or a multi data source. However, from the standpoint of the application module configuration, the naming convention for the multi data source or GridLink data source is the same as it is for a non-multi data source or GridLink data source. This naming convention ensures that the correct data source is used at runtime.

To configure GridLink data sources for high availability applications, see Section 4.4, "Configuring Active GridLink Data Sources with Oracle RAC." For multi data sources, see Section 4.5.1, "Configuring Multi Data Sources with Oracle RAC."

Modifying the mdsDS Data Source URL

When you use a GridLink data source or a multi data source with a customer- provided ADF application, you must change the mdsDS data source URL in the Weblogic Server Administration Console after you start the Administration Server.

To modify the mdsDS data source URL:

  1. Log into the WebLogic Server Administration Console. Select Services then Data Sources.

  2. Select mdsDS then Connection Pool.

  3. Change the JDBC URL to specify it in the format:

    jdbc:oracle:thin:@hostname:port/service-name
    

    For example, if the JDBC URL is:

    jdbc:oracle:thin:@(DESCRIPTION=(ENABLE=BROKEN)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=slc00erterw-r.us.example.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=srv2_koala.us.example.com)))
    

    Replace the URL with the following:

    jdbc:oracle:thin:@slc00erterw-r.us.example.com:1521/srv2_koala.us.example.com
    
  4. Save the changes then restart all servers, including the Administration Server.

8.2 Configuring Oracle ADF for High Availability

To support automatic replication and failover for web applications in a clustered environment, Oracle WebLogic Server supports mechanisms for replicating HTTP session state across clusters. You can configure Oracle ADF to ensure the Fusion web application's state can be restored from any server in the cluster.

This section includes the following topics:

8.2.1 Configuring Application Modules

An application module is the transactional component that UI clients use to work with application data. It defines an updateable data model and top-level procedures and functions, called service methods, related to a logical unit of work related to an end-user task. An application module supports passivating, or storing, its transaction state as a snapshot in the database. It also supports the reverse operation of activating the transaction state from one of these saved snapshots.

For more information on application module state management, see "Introduction to Fusion Web Application State Management" in Developing Fusion Web Applications with Oracle Application Development Framework.

To enable support for ADF Business Components failover, set the jbo.dofailover parameter to true so that the application module state is saved on release. This enables Oracle ADF to restore the application module state from a snapshot saved from a previous check in. By contrast, when the failover feature is disabled, which it is by default, then application module state is saved only when the application is reused by a subsequent user session and only when the application module pool cannot find an unused application module.

You can set this parameter in your application module configuration on the Pooling and Scalability tab of the Edit Business Components Configuration dialog.

To configure application modules for high availability:

  1. Launch JDeveloper and open the application.

  2. In the Application Navigator, expand the project that contains the data model and locate the application module.

  3. Right-click the application module and select Configurations.

  4. Click Edit.

  5. Click the Pooling and Scalability tab.

  6. Select the Failover Transaction State Upon Managed Release checkbox.

  7. Click OK to close the Edit Business Components Configuration dialog.

  8. Click OK to close the Manage Configurations dialog.

8.2.2 Configuring weblogic.xml

To enable support for replicating HTTP session state, you must assign a value to the persistent-store-type element in the Oracle WebLogic Server weblogic.xml file. The value replicated_if_clustered ensures that the in-effect persistent store type will be replicated so that sessions on the clustered environment are stored in accordance with the value set for the cluster of servers to which this server belongs.


Note:

Oracle ADF applications such as the Oracle WebCenter Portal Suite are preconfigured and do not need additional configuration.


To configure the weblogic.xml file for high availability:

  1. Launch JDeveloper and open the application.

  2. In the Application Navigator, expand the project that contains the web application and expand the WEB-INF folder.

  3. Double-click the weblogic.xml file, and click the Source tab to edit the file.

  4. In the file, add the persistent-store-type definition to the session-descriptor element:

    <weblogic-web-app>
        <session-descriptor>
        <persistent-store-type>
        replicated_if_clustered
        </persistent-store-type>
        </session-descriptor>
    </weblogic-web-app>
    

8.2.3 Configuring adf-config.xml

When you design an application to run in a clustered environment, you must ensure that Oracle ADF is aware of changes to managed beans stored in ADF scopes (view scope and page flow scope).

When a value within a managed bean in either view scope or page flow scope is modified, the application must notify Oracle ADF so that it can ensure the bean's new value is replicated.

To enable ADF Controller to track changes to ADF memory scopes and replicate the page flow scope and view scope within the server cluster, you must set the ADF Controller parameter <adf-scope-ha-support> in the application's adf-config.xml file to true. For example, when set to true for an application and that application adds or removes a bean from a page flow scope during a request, the change will automatically replicated within a cluster.

The adf-config.xml file is the central configuration file for all ADF components. The file contains sections to configure the runtime behavior for ADF components, including, ADF Controller.


Note:

If your application uses MDS and will use an Oracle database that supports failover, Oracle recommends enabling MDS retry on failover. To do this, add the following retry-connection entry to the MDS configuration section of adf-config.xml.

<persistence-config>
         <metadata-namespaces>...
         <metadata-store-usages>...
         <external-change-detection enabled="false" />
         <read-only-mode enabled="true"/>
         <retry-connection enabled="true"/>
</persistence-config>

To configure the adf-config.xml file for high availability:

  1. Launch JDeveloper and open the application.

  2. In the Application Navigator, expand the Application Resources.

  3. Select Descriptors, and then select the ADF META-INF node.

  4. Double-click the adf-config.xml file, and click the Source tab to edit the file.

  5. Add the following to the file:

    <adf-controller-config xmlns="http://xmlns.example.com/adf/controller/config">
     <adf-scope-ha-support>true</adf-scope-ha-support>
    </adf-controller-config>
    

For more information about using the adf-config.xml file to configure ADF, see the chapter on creating complex task flows in the guide Developing Fusion Web Applications with Oracle Application Development Framework.

8.2.4 Configuring org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION

The org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION parameter must not be set to true when it runs in a high availability environment. Setting this context parameter to true can lead to errors after failover occurs. Note that this limitation should not affect your work because you typically use this parameter in a development environment only, not a high availability environment.

8.3 Troubleshooting Oracle ADF High Availability

This section describes procedures for troubleshooting possible issues with Oracle ADF. Topics in this section include the following:

8.3.1 Troubleshooting Oracle ADF Development Issues

When you develop the Fusion web application in Oracle JDeveloper, the integrated development environment provides support for detecting potential High Availability issues. The warnings that JDeveloper provides are generated by the audit framework and are triggered to appear in the JDeveloper source editors. The warnings the editors show are based on the audit rules for High Availability applications.

The High Availability audit rules that JDeveloper enables by default are:

  • ADF Controller Configuration - High Availability for ADF Scopes is not Enabled warns the developer that the adf-scope-ha-support flag in the adf-config.xml file is set is not set to true. This audit rule fires only when the <adf-controller-config> element is in the ADF application-level configuration file (adf-config.xml).

  • ADF Page Flows - Bean in Scope Map is Modified warns the developer when the some code calls a setter method on a bean to indicate that the code did not subsequently call the ControllerContext.markScopeDirty() method. This audit rule fire only when the adf-scope-ha-support flag in the adf-config.xml file is set to true.

  • ADF Page Flows - EL Bean is Modified warns the developer when some code evaluates an EL expression that mutates a bean to indicate that the code did not subsequently call the ControllerContext.markScopeDirty() method. This audit rule fire only when the adf-scope-ha-support flag in the adf-config.xml file is set to true.

  • ADF Page Flows - Managed Bean Class Not Serializable warns the developer that a managed bean has a non-serializable class defined in viewScope, pageFlowScope, or sessionScope. This audit rule fire only when the adf-scope-ha-support flag in the adf-config.xml file is set to true.

You can modify the High Availability audit rule settings using the Preference dialog in JDeveloper. From the JDeveloper toolbar, choose Tools - Preferences, under Audit - Profiles expand ADF Controller Configuration or ADF Pages Flows and make the desired audit rule selections.

You can also trigger the audit by choosing Build - Audit project.jpr from the JDeveloper toolbar.

8.3.2 Troubleshooting Oracle ADF Deployment Issues

There are two actions to take if you encounter ADF deployment issues: verify the JRF Runtime and verify the status of application deployments.

8.3.2.1 Verifying the JRF Runtime Installation

The first step to troubleshooting an ADF deployment is to verify that the JRF Runtime is installed on the WebLogic Server domain. ADF applications require the JRF and ADF runtime. You cannot run ADF applications with a standalone WebLogic Server domain or just the WebLogic Server portion of the Application Development product; you must extend it with the JRF extension template.

For more information on the JRF Template, see "Oracle JRF and ADF Templates" in the Oracle Fusion Middleware Domain Template Reference.

8.3.2.2 Verifying the Success of All Application Deployments

Fusion web applications deploy when the Managed Server first starts. Use the Administration Console to check that all application deployments were successful:

  1. Click Deployments in the left hand pane. The right hand pane shows the application deployments and their status. The state of all applications, assuming all the servers are running, should be ACTIVE.

  2. If an application deployment has failed, the server logs may provide some indication of why the application was not deployed successfully. The server logs are located in the DOMAIN_HOME/servers/server_name/logs directory. Common issues include:

  • Unavailability of external resources, such as database resources. Examine the error, fix it, and attempt to redeploy the application.

  • The appropriate applications or libraries are not targeted correctly to the right Managed Server or Cluster.

8.3.3 Troubleshooting Oracle ADF Replication and Failover Issues

State Replication is most prominent in failover scenarios. A user working on one server may discover that, upon failover:

  • Windows may close or the state might reset.

  • Screens may require a reset.

  • The application may redirect to the logon screen.

To diagnose and troubleshoot state replication issues.

  1. Confirm that this is not a known replication issue.

    See Section 8.1.2, "Oracle ADF Failover and Expected Behavior" for possible expected behaviors. Before proceeding to further diagnose the issue, first confirm that the failover behavior is not an expected behavior.

  2. Check load balancer settings.

    For replication and failover to function correctly, the load balancer must be configured with the appropriate persistence settings. For more details on configuring Hardware Load Balancers for Oracle WebLogic Server, see Oracle Fusion Middleware Using Clusters for Oracle WebLogic Server.

  3. Check the cluster status.

    Replication occurs within the context of a cluster. For failover to be successful, there must be at least one other healthy member of the cluster available. You can check cluster status in one of two ways:

    • Check the cluster status using the Oracle WebLogic Server Administration Console - In the Left-hand pane, click on Servers. Verify the state of all servers in the cluster.

    • Check the cluster status using the weblogic.Admin utility. You can use the weblogic.Admin utility to query the state of all servers in a specific cluster. For example:

      $ java weblogic.Admin -url Adminhost:7001 -username <username> -password
       <password>  CLUSTERSTATE -clustername Spaces_Cluster
      

      This example returns:

      There are 2 server(s) in cluster: Spaces_Cluster
      The alive servers and their respective states are listed below:
      Application Server---RUNNING
      Managed Server---RUNNING
      
  4. Check cluster communications.

    Even if all cluster members are running, there may be communication issues which prevent them from communicating replication information to each other. There are two types of cluster communication configurations. Troubleshooting depends on the cluster type:

    • Checking Unicast cluster communications - For Unicast clusters, Managed Servers must be able to access each other's hosts and each other's default listening port.

      Ensure that all individual Managed Servers have their Listen Address set correctly. You can find this setting by selecting Configuration, General for each Managed Server.

    • Checking Multicast cluster communications - For multicast clusters, servers must be able to intercept the same multicast traffic. Ensure that multicast is configured correctly by running the WebLogic utility utils.MulticastTest on each machine. For example:

      $ java utils.MulticastTest -H
      
  5. Confirm Oracle WebLogic Server application configuration.

    Oracle WebLogic Server is not configured by default for failover. In-memory replication takes place only with the proper setting in the weblogic.xml file:

    <session-descriptor>
    <persistent-store-type>replicated_if_clustered</persistent-store-type>
    </session-descriptor>
    

    A persistent-store-type of replicated is also acceptable. This setting can be made in JDeveloper, as described in Section 8.2.2, "Configuring weblogic.xml."

  6. Confirm Oracle ADF Business Components configuration.

    Oracle ADF is not configured by default for failover. Failover is supported only with the proper setting in the ADF Business Components configuration file (bc4j.xcfg):

    <AppModuleConfig ...
     <AM-Pooling jbo.dofailover="true"/>
    </AppModuleConfig>
    

    This setting is made in JDeveloper through the Edit Business Components Configuration dialog, as described in Section 8.2.1, "Configuring Application Modules."

  7. Confirm Oracle WebLogic Server connection pool parameter.

    Set an appropriate value for the weblogic-application.xml deployment descriptor parameter inactive-connection-timeout-seconds on the element <connection-check-params> pool-params.

    When enabling application module state passivation, a failure can occur when Oracle WebLogic Server is configured to forcibly release connections back into the pool. The failure creates an exception "Connection has already been closed" that gets saved to the server log. The user interface does not show this exception.

    Set inactive-connection-timeout-seconds to several minutes. In most cases, this setting avoids forcing the inactive connection timeout and passivation failure. Adjust the setting as needed for your environment.

  8. Confirm ADF Controller configuration.

    Oracle ADF is not configured by default to replicate changes to ADF objects in ADF memory scopes. ADF object replication is supported only with the proper setting in the ADF application-level configuration file (adf-config.xml):

    <adfc:adf-controller-config>
     <adfc:adf-scope-ha-support>true</adfc:adf-scope-ha-support>
    </adfc:adf-controller-config>
    

    This setting is made in JDeveloper through the source editor. See Section 8.2.1, "Configuring Application Modules."

  9. Check default logger messages.

    By default the ADF log shows high-level messages (INFO level). The default logging often reports problems with serialization and replication without the need to enable more detailed log messages.

  10. Enable log messages for ADF high availability applications.

    Configure the ADF logger to output runtime messages for high availability. By default the ADF log shows high-level messages (INFO level). You enable high availability diagnostics for ADF Controller by setting the logging level in Fusion Middleware Control to FINE.

    When enabled, the logger outputs a warning if the adfc:adf-scope-ha-support setting in the adf-config.xml file is not set.

  11. Enable debug.

    Check the server logs for any unusual messages on Managed Server startuyp. In particular, if the Managed Server is unable to locate other members of the cluster. The server logs are located in the DOMAIN_HOME/servers/SERVER_NAME/logs directory.

    For further debugging, enable the flags DebugCluster, DebugClusterAnnouncements, DebugFailOver, DebugReplication, and DebugReplicationDetails. You can enable each flag with the weblogic.Admin utility:

    $ java weblogic.Admin -url Adminhost:7001 -username <username> -password
     <password> SET -type ServerDebug -property DebugCluster true
    
  12. Enable component state serialization checking.

    Enable server checking to ensure no unserializable state content on session attributes is detected. This check is disabled by default to reduce runtime overhead. Serialization checking is supported by the Java server system property org.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION.

    Table 8-1 shows the options you can use with the property. Use commas to delimit the options.

    Table 8-1 CHECK_STATE_SERIALIZATION Options

    OptionDescription

    tree

    Checks whether the entire component tree is serializable. This is the fastest component check. Most testing should be performed with this flag enabled.

    component

    Checks each component individually for serializability. This option is much slower than "tree." It is typically turned on only after testing with "tree" reports an error. This option narrows down the problematic component.

    property

    Checks each component attribute individually for serializability. This is slower than "component" and narrows down the specific problematic component attribute after a failure has been detected in the "tree" or "component" modes.

    session

    Checks that all attributes in the JSF Session Map that are marked as Serializable are serializable.

    application

    Checks that all attributes in the JSF Application Map that are marked as Serializable are serializable.

    beans

    Checks that any serializable object in the appropriate map has been marked as dirty if the serializable content of the object changes during the request.

    all

    Checks everything.


    For high availability testing, start off by validating that the Session and JSF state is serializable by launching the application server with the system property:

    -Dorg.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION=session,tree
    

    Add the beans option to check that any serializable object in the appropriate map has been marked as dirty if the serialized content of the object has changed during the request:

    -Dorg.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION=session,tree,beans
    

    If a JSF state serialization failure is detected, relaunch the application server with the system property to enable component and property flags and rerun the test:

    -Dorg.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION=all
    

    These are Java system properties and you must specify them when you start the application server.

PK5yvPKt1zD OEBPS/toc.htmB Table of Contents

Contents

List of Examples

List of Figures

List of Tables

Preface

Part I Introduction to High Availability

1 Introduction and Roadmap

2 High Availability Concepts

Part II Creating a High Availability Environment

3 Using Shared Storage

4 Database Considerations

5 JMS and JTA High Availability

6 Scaling Out a Topology (Machine Scale Out)

Part III Component Procedures

7 Configuring High Availability for Web Tier Components

8 Configuring High Availability for Oracle Application Development Framework

9 Configuring High Availability for Other Components

PKTKBBPKt1zDOEBPS/part2.htm[ Creating a High Availability Environment PK`[PKt1zD OEBPS/lot.htm# List of Tables PKX( # PKt1zDOEBPS/storage.htmkB Using Shared Storage

3 Using Shared Storage

This chapter provides basic recommendations for using shared storage in a high availability environment. It describes the benefits of placing artifacts in a common location that multiple hosts or servers share. This common location typically resides in a shared file system, which is mounted on each server with standard operating system protocols such as NFS and CIFS.

The following artifacts are typical candidates to place on a shared file system:

  • Product binaries: All files and directories related to product executables, JAR files, and scripts that install during product installation.

  • Domain directory: The directory containing the WebLogic Server domains and their configuration.

  • File-based persistence stores: File-based persistence stores for JMS persistence and JTA transaction logs.

This chapter includes the following topics:

3.1 Overview of Shared Storage

Shared storage allows sharing of dynamic state and server configuration and simplifies administration, configuration, failover, and backup/recovery.

In a highly available environment, shared storage is required when using file based persistence stores (for JMS and JTA logs) and certain Oracle products. Shared storage is optional for product binaries and domain directories.

See Table 3-1 for additional information about shared storage.

Table 3-1 Shared Storage Topics

Topic/TaskFor More Information

Structure and contents of an Oracle home

"Understanding the Oracle Fusion Middleware Infrastructure Directory Structure" in Oracle Fusion Middleware Installing and Configuring the Oracle Fusion Middleware Infrastructure

Saving JMS and JTA information in a file store

"Using the WebLogic Persistent Store" in Administering Server Environments for Oracle WebLogic Server. Includes the topic "High Availability for Persistent Stores"

"Persistent Store High Availability" in Administering JMS Resources for Oracle WebLogic Server

Default File Store Availability for JTA in Administering Clusters for Oracle WebLogic Server


3.2 Shared Storage Prerequisites

The following shared storage prerequisites apply only when you use file-based persistent stores:

  • For proper recovery in the event of a failure, you must store both JMS and JTA transaction logs in a location that is accessible to all nodes that can resume operations after a Managed Server failure. This setup requires a shared storage location that multiple nodes can reference. See Section 3.6, "Directory Structure and Configurations" for the recommended directory structure.

  • The shared storage can be a network-attached storage (NAS) or storage area network (SAN) device. For NFS-mounted systems, issues related to file locking and abrupt node failures have been detected. Check the Oracle Fusion Middleware Release Notes and with your storage vendor for the main recommended parameters for mount options.

    The following example command is based on a NAS device. Note that your options may be different from those in this example; see UNIX/Linux documentation for more information on the mount command and its options.

    mount nasfiler:/vol/vol1/u01/oracle /u01/oracle -t nfs -o rw,bg,hard,nointr,tcp,vers=3,timeo=300,rsize=32768,wsize=32768

  • For maximum availability, Oracle recommends a highly available NAS or SAN device for shared storage. Shared storage devices that are not highly available can be a single point of failure. Check with your storage provider for options to achieve this.

For more information about saving JMS and JTA information in a file store, see "Using the WebLogic Persistent Store" in Administering Server Environments for Oracle WebLogic Server.

3.3 Using Shared Storage for Binary (Oracle Home) Directories

The following sections describe guidelines for using shared storage for your Oracle Fusion Middleware Oracle home directories:

3.3.1 About the Binary (Oracle Home) Directories

When you install any Oracle Fusion Middleware product, you install the product binaries into an Oracle home. The binary files are read-only and do not change unless the Oracle home is patched or upgraded to a newer version.

In a typical production environment, the Oracle home files are saved in a separate location from the domain configuration files, which you create using the Oracle Fusion Middleware Configuration Wizard.

The Oracle home for an Oracle Fusion Middleware installation contains the binaries for Oracle WebLogic Server, the Oracle Fusion Middleware infrastructure files, and any Oracle Fusion Middleware product-specific directories.


Note:

By default, the Configuration Wizard writes its logs to the logs directory in Oracle home. If you use a read-only Oracle home, you must specify the -log option to redirect logs to a different directory.



See Also:

For more information about the structure and contents of an Oracle home, see "What are the Key Oracle Fusion Middleware Directories?" in Oracle Fusion Middleware Understanding Oracle Fusion Middleware Concepts.


3.3.2 About Using Redundant Binary (Oracle Home) Directories

For maximum availability, Oracle recommends using redundant binary installations on shared storage.

In this model, you install two identical Oracle homes for your Oracle Fusion Middleware software on two different shared volumes. You then mount one of the Oracle homes to one set of servers and the other Oracle home to the remaining servers. Each Oracle home has the same mount point, so the Oracle home always has the same path, regardless of which Oracle home the server is using.

If one Oracle home become corrupted or unavailable, only half your servers are affected. For additional protection, Oracle recommends that you disk mirror these volumes.

If separate volumes are not available on shared storage, Oracle recommends simulating separate volumes using different directories within the same volume and mounting these to the same mount location on the host side. Although this does not guarantee the protection that multiple volumes provide, it does allow protection from user deletions and individual file corruption.

3.4 Using Shared Storage for Domain Configuration Files

The following sections describe guidelines for using shared storage for the Oracle WebLogic Server domain configuration files you create when you configure your Oracle Fusion Middleware products in an enterprise deployment:

3.4.1 About Oracle WebLogic Server Administration and Managed Server Domain Configuration Files

When you configure an Oracle Fusion Middleware product, you create or extend an Oracle WebLogic Server domain. Each Oracle WebLogic Server domain consists of a single Administration Server and one or more Managed Servers.

WebLogic uses a replication protocol to push persisted changes on the Administration Server to all Managed Servers. This gives redundancy to the Managed Servers so that you can start them without the Administration Server running. This mode is called Managed Server independence.

For more information about Oracle WebLogic Server domains, see Understanding Domain Configuration for Oracle WebLogic Server.

3.4.2 Shared Storage Considerations for Administration and Managed Server Domain Configuration Files

This section describes considerations for Administration Server and Managed Server configuration files.

Administration Server Configuration Directory

Oracle does not require that you store domain configuration files in shared storage. However, to support Administration Server recovery, you may choose to place the Administration Server configuration directory on shared storage and mount it on the host that is running the Administration Server. If that host fails, you can mount the directory on a different host and bring up the failed Administration Server on the other host.

Managed Server Configuration Files

Oracle recommends that you keep the Managed Server configuration files in local, or, host private, storage.

It is possible to keep Managed Server configuration files on shared storage. However, doing so can affect performance due to multiple servers concurrently accessing the same storage volume.

3.5 Shared Storage Requirements for JMS Stores and JTA Logs

When you use file-based persistence, it is mandatory to configure the JMS persistence stores and JTA transaction log directories to be in shared storage. For more information, see Section 5.4, "Considerations for Using File Persistence (WebLogic JMS)."

3.6 Directory Structure and Configurations

When you use shared storage, there are multiple ways to layout the storage elements. Oracle recommends the following best practices:

  1. Place the product binaries (Oracle home) on shared storage and share it in a read-only mode by all servers.

  2. Place the Administration Server domain configuration directory on shared storage to facilitate failing over the Administration server to a different host.

  3. Place each Managed Server domain configuration directories on storage local to the corresponding host.

  4. Place the JMS file stores and Transaction logs on shared storage if you use file-based persistence.

Figure 3-1 illustrates the directory structure.

Items that have arrows on both sides showing that they are connected to both nodes indicate the directories on shared storage. If Node 1 fails, the Administration Server domain directory is mounted on Node 2 (see the dotted arrow) to failover the Administration Server to Node 2.

Figure 3-1 Shared Storage Directory Structure

The text that precedes this graphic describes it.

PKߍHLpBkBPKt1zDOEBPS/fmwha.htmoU Introduction and Roadmap

1 Introduction and Roadmap

This chapter includes introductory information on how and why to use this guide and high availability environments.

This chapter includes the following topics:

1.1 How to Use This Guide

Use this document as a reference guide for information on high availability concepts and tasks as you set up a highly available environment.

Before you use this guide, you must have a standard installation topology set up for your product. This is the required starting point for setting up high availability. See the topics "Understanding the Oracle Fusion Middleware Infrastructure Standard Installation Topology" and "Roadmap for Installing and Configuring the Standard Installation Topology" to set up the standard installation topology.

Table 1-1 describes tasks to set up a highly available environment and resources for information that is not in this guide.

Table 1-1 Setting up a Highly Available Environment

TaskDescriptionFor more information

Performing administrative tasks and preparing your environment

Common tasks to perform on a newly-created domain.

See the topic "Administering and Preparing your WebLogic Domain for High Availability" in your product installation guide.

Planning your WebLogic Server Installation

Covers understanding your topology and determining the distribution, components and features you need

See the guide Planning an Installation of Oracle Fusion Middleware

Installing the WebLogic Server Software

Describes how to start the installation process and progress through the installation screens

See the topic "Installing the Oracle Fusion Middleware Infrastructure Software" in your product installation guide.

Configuring a domain

Creating and configuring a domain

See the topic "Configuring your Oracle Fusion Middleware Infrastructure Domain" in your product installation guide.

Managing Oracle Fusion Middleware

Includes how to: start and stop, change ports, deploy applications, and back up and recover Oracle Fusion Middleware.

See Oracle Fusion Middleware Administrator's Guide

Monitoring and optimizing performance in the Oracle Fusion Middleware environment.

For components that impact performance, use multiple components for optimal performance, and design applications for performance.

See Oracle Fusion Middleware Tuning Performance Guide

Setting up a product-specific enterprise deployment

Oracle best practices blueprints based on proven Oracle high availability and security technologies and recommendations for a product-specific enterprise deployment.

See your product's Enterprise Deployment Guide

Administering the product environment

To deploy, manage, monitor, and configure applications using the product.

See your product's Administrator's Guide

Configuring Node Manager

Node Manager enables you to start, shut down, and restart the Administration Server and Managed Server instances from a remote location, making this an essential utility for any high availability environment.

See the guide Administering Node Manager for Oracle WebLogic Server


1.2 New and Changed Features in This Release

Oracle Fusion Middleware 12c Release 1 (12.1.2) includes the following new and changed concepts and features from previous Oracle Fusion Middleware releases:


See Also:

For a comprehensive list of new and deprecated:


1.3 What is High Availability?

High availability is the ability of a system or device to be available when it is needed.

A high availability architecture ensures that users can access a system without loss of service. Deploying a high availability system minimizes the time when the system is down, or unavailable, and maximizes the time when it is running, or available.

High availability comes from redundant systems and components. You can categorize high availability solutions by their level of redundancy into active-active solutions and active-passive solutions.

An active-active solution deploys two or more active servers and can be used to improve scalability and provide high availability. In active-active deployments, all instances handle requests concurrently. Oracle recommends active-active solutions for all single-site middleware deployments. Active-passive solutions deploy an active instance that handles requests and a passive instance that is on standby.

1.4 High Availability Solutions

You can categorize high availability solutions into local high availability solutions that provide high availability in a single data center deployment, and disaster recovery solutions.

Local high availability solutions can protect against process, node, and media failures, as well as human errors, ensuring availability in a single data center deployment.

Disaster recovery solutions are usually geographically distributed deployments that protect your applications from disasters such as floods or regional network outages. You can protect against physical disasters that affect an entire data center by deploying geographically-distributed disaster recovery solutions. For detailed information about disaster recovery for Oracle Fusion Middleware components, refer to the Oracle Fusion Middleware Disaster Recovery Guide

1.5 Understanding the Oracle Fusion Middleware Standard HA Topology

Figure 1-1 shows the recommended standard high availability topology for a local, highly available Oracle Fusion Middleware deployment.

This deployment is consistent with the infrastructure standard installation topology and Oracle HTTP Server standard installation topology if you followed instructions in the Oracle Fusion Middleware Installing and Configuring the Oracle Fusion Middleware Infrastructure and Installing and Configuring Oracle HTTP Server guides.

Figure 1-1 Oracle Fusion Middleware Highly Available Deployment Topology (Typical Enterprise)

The text that follows this figure describes it.

This topology represents a multi-tiered architecture. Users access the system from the client tier. Requests go through a hardware load balancer, which routes them to Web servers running Oracle HTTP Servers in the web tier. Web servers use Proxy Plug-in (mod_wl_ohs) to route requests to the WebLogic cluster in the application tier. Applications running on the WebLogic cluster in the application tier then interact with the database cluster in the data tier to service the request.

Table 1-2 describes elements in Figure 1-1.

Table 1-2 Description of the Elements in the Oracle Fusion Middleware Infrastructure Standard High Availability Topology

ElementDescription and Links to Additional Documentation

APPHOST

Refers to the machine that hosts the application tier.

WEBHOST

Refers to the machine that hosts the web tier.

WebLogic Domain

A logically related group of Java components, in this case, the Administration Server, Managed Servers, and other related software components.

For more information, see "What is an Oracle WebLogic Server Domain?" in Understanding Oracle Fusion Middleware.

Administration Server

The central control entity of a domain which maintains the domain's configuration objects and distributes configuration changes to Managed Servers.

Enterprise Manager

Oracle Enterprise Manager Fusion Middleware Control. This is the main tool that you use to manage a domain.

Cluster

A collection of multiple WebLogic Server instances running simultaneously and working together.

Machine

Logical representation of the computer that hosts one or more WebLogic Server instances (servers). Machines are also the logical glue between WebLogic Managed Servers and the Node Manager; to start or stop a Managed Server with Node Manager, the Managed Server must be associated with a machine.

Managed Server

Host for your applications, application components, Web services, and their associated resources.

For more information, see "Oracle Enterprise Manager Fusion Middleware Control" in Understanding Oracle Fusion Middleware.

Infrastructure

Collection of services that includes:

  • Metadata repository (MDS)

    This contains metadata for Oracle Fusion Middleware components, such as the Oracle Application Developer Framework. For more information, see "What is the Metadata Repository?" in Understanding Oracle Fusion Middleware.

  • Oracle Application Developer Framework (Oracle ADF)

  • Oracle Web Services Manager (OWSM)



See Also:


PKͧtUoUPK t1zDoa,mimetypePKt1zD^=5RM:iTunesMetadata.plistPKt1zDYuMETA-INF/container.xmlPKt1zD$|[[OEBPS/jmsjta.htmPKt1zDoU`VaOEBPS/database.htmPKt1zD@t`  OEBPS/cover.htmPKt1zD pk OEBPS/part3.htmPKt1zD-ql}OEBPS/title.htmPKt1zDKKF+'OEBPS/other.htmPKt1zDy <.j)j>OEBPS/webtier.htmPKt1zD!w OEBPS/loe.htmPKt1zDep`pOEBPS/scale_out_prototype.htmPKt1zD]3=toOEBPS/part1.htmPKt1zD,t6Y$OEBPS/preface.htmPKt1zDJcHw:r:F8OEBPS/img/ashia_dt_042.gifPKt1zD6WK[F[sOEBPS/img/ashia_dt_060.pngPKt1zD}БR>OEBPS/img/ashia_dt_026.pngPKt1zD(2mOEBPS/concepts.htmPKt1zD/nf OEBPS/toc.ncxPKt1zD e`#OEBPS/content.opfPKt1zD"Kje P6OEBPS/lof.htmPKt1zDGPgKg;OEBPS/dcommon/oracle-logo.jpgPKt1zD0hOEBPS/dcommon/cpyr.htmPKt1zDl-OJOEBPS/dcommon/oracle.gifPKt1zDo"nR M )OEBPS/dcommon/doccd_epub.jsPKt1zDT' hcOEBPS/dcommon/blafdoc.cssPKt1zD5yv sOEBPS/adf.htmPKt1zDTKBB >vOEBPS/toc.htmPKt1zD`[OEBPS/part2.htmPKt1zDX( # OEBPS/lot.htmPKt1zDߍHLpBkBOEBPS/storage.htmPKt1zDͧtUoU. OEBPS/fmwha.htmPK `