2.1.2 How the Application Has Been Scaled

To accommodate these design goals, the Production sample application has been scaled by:

  • Implementing a stateless object model to scale up the number of client requests the server process can manage simultaneously.
  • Replicating the University, Billing, and Oracle Tuxedo Teller Application server processes within the groups in which they are configured (the ORA_GRP and APP_GRP server groups defined in the UBBCONFIG file).
  • Replicating the ORA_GRP and APP_GRP server groups on an additional server machine, Production Machine 2, and also partitioning the database.
  • Assigning unique object IDs (OIDs) to the following objects so that they can be instantiated multiple times simultaneously in their respective groups.
  • RegistrarFactory
  • Registrar
  • TellerFactory
  • Teller

    This makes these objects available on a per-client application (and not per-process) basis, thereby accommodating a parallel processing capability.

  • Implementing factory-based routing to direct client requests on behalf of some students to one machine, and other students to another machine.

Note:

To make the Production sample application easy to use, this application is configured on the Oracle Tuxedo software kit to run on one machine, using one database. The examples shown in this chapter, however, show running this application on two machines using two databases. The Production sample application is designed so that it can be configured to run on several machines and to use multiple databases. Changing the configuration to multiple machines and databases involves modifying the UBBCONFIG file and partitioning the databases, which is described in Scaling the Application Further.

The sections that follow describe how the Production sample application uses replicated server processes and server groups, object state management, and factory-based routing to meet its scalability goals.