Managing Analytic Servers

This chapter provides an overview of the analytic server framework and batch processing of analytic instances and discusses how to:

Click to jump to parent topicUnderstanding the Analytic Server Framework

This section discusses:

Click to jump to top of pageClick to jump to parent topicAnalytic Server Framework Overview

When a program doesn't “maintain state” or when the infrastructure of a system prevents a program from maintaining state, it's known as a stateless program or system. It can't take information about the last session into the next session, such as settings the user makes or conditions that arise during processing.

For example, the HTTP protocol is stateless. Additional schemes, such as cookies, are necessary to maintain state in the HTTP (web) environment.

PeopleTools is architected primarily around a stateless model of client/server connectivity. This model enables users' application sessions to be preserved even if servers are shut down or rebooted. All session state is maintained by the client and is transferred to the server with each request. As long as an application server is up and running, a user’s session remains active and functional, and any application server can perform requested transactions.

However, with some products, such as Analytic Calculation Engine or PeopleSoft Optimization Framework, running a calculation on a multi-dimensional model is likely to produce far more data than is reasonable to shuttle between a client and server to maintain a stateless connection. For performance reasons, the calculations are performed completely in memory. If these calculations were to be synchronized and stored in the database so that a stateless connection could be maintained, performance would suffer significantly.

The analytic server framework provided by PeopleSoft is a general server infrastructure designed to meet the needs of PeopleSoft products that process large amounts of data in memory. It provides a stateful model of client/server connectivity that these products require to be part of the PeopleTools system, by keeping track of configuration settings, transaction information, and other data for a session.

For example, client software could request that an analytic model or optimization model be recalculated in one transaction, then retrieve the results of the calculation on that model at a later time. A server process handles these requests, and maintains the model state and calculated data in memory between the requests. Additional transactions can then modify the model and perform recalculations on it without shuffling all of the data between the client and the server or dumping all the data to a database, thus preserving in-memory performance.

A large model might take a long time to load. In the event that a user’s session times out and is terminated, the loading and calculation of the model continues, and enables the user to return to the model at a later time in a new session.

The elements of the analytic server framework are:

Analytic Server Terms

The following terms are useful in understanding analytic server technology:

Analytic type

A description of a data set to be loaded and the calculations to be performed on the data set in the analytic server framework.

Multiple calculation engines such as the analytic calculation engine or the optimization engine can be associated with an analytic type.

Analytic instance

One instance of an analytic type. You can create multiple instances of the same analytic type.

Analytic server

The primary functional element of the analytic server framework, called PSANALYTICSRV. Each application server domain can include zero or more analytic servers.

Analytic server instance

One running instance of an analytic server. You can run multiple instances of PSANALYTICSRV for a given domain. Each running analytic server instance can hold one analytic instance.

Analytic engine

The portion of the analytic server framework that's responsible for managing analytic instances.

Analytic engine type

One of the following:

  • Analytic Server.

  • Application Engine Server.

  • Application Engine.

Analytic Server Features

The analytic server framework has the following features:

See Also

Using the Quick-Configure Menu

Setting Application Server Domain Parameters

PeopleSoft Optimization Framework Preface

Performance Monitor Preface

Click to jump to top of pageClick to jump to parent topicAnalytic Server Process Flow and Behavior

PeopleSoft session activity, such as a user action, a component interface operation, or a message subscription, launches PeopleCode that requires the application server to invoke the analytic calculation engine or the optimization engine to process an analytic instance.

The database maintains a list of all the available PSANALYTICSRV (analytic server) instances, their status, and any analytic instances currently loaded, so it can properly select analytic server instances for new analytic instances, and direct subsequent requests to the proper analytic server instance. When an analytic server instance starts, the database is updated.

When a running program requests the creation of an analytic instance, the analytic server framework considers all available PSANALYTICSRV instances in the same application server domain and allocates one of them from the pool of idle server instances to handle this particular analytic instance. Any further load or recalculate operations requested by the application for this analytic instance are directed back to the same analytic server instance for processing.

Note. If there are no idle server instances, the analytic server framework can spawn additional server instances up to a maximum limit that you can define in the application server domain configuration. If this maximum is reached, the system attempts to allocate a server instance from a running analytic server in another domain.

Analytic server architecture

After an analytic server instance takes over processing the analytic instance, that processing becomes independent of the status of the application server. The core functionality provided by the analytic server framework is the ability to host analytic instances for an indeterminate amount of time in an environment where that data can persist across multiple sessions, and where that data can be accessed without requiring its entire content to be transferred from server to client and back.

Analytic Instance Access

Access to the analytic instances maintained by the analytic server environments is supported only through PeopleCode programs. The environments in which PeopleCode can run include:

An allocated server instance doesn't need to be running in the same Tuxedo domain or on the same server machine as the application server. Once it's allocated, the initiating user is redirected to an application server that's running on the same domain and server machine as the analytic server.

PeopleCode that's running in any PSAPPSRV process can access analytic instances that were loaded by any other PSAPPSRV process, regardless of the Tuxedo domain in which it's running. When the program requests access to such an analytic instance, the running PeopleCode program is restarted and the web server is notified to redirect the request back to an application server within the Tuxedo domain where the analytic instance is loaded. This application server is then able to directly contact the PSANALYTICSRV server with the loaded analytic instance.

Note. PeopleCode that's running in a given Application Engine environment can access only analytic instances that were loaded in the same process.

Secondary Database Connection

A secondary database connection is used to prevent unexpected table locks when you run an analytic calculation. The secondary connection isn't opened until an analytic instance is referenced in a PeopleCode program. A secondary connection is required regardless of whether the analytic calculation is run by an application engine program as a batch process or directly by an online application.

By default, the secondary connection is persistent for improved performance. If you find that the persistent connection imposes too much overhead, you can change it to an on-demand connection by setting bit eight of the DbFlags application server and process scheduler domain parameter.

Note. A non-persistent connection can significantly affect system performance, so consider this setting carefully.

You can use DbFlags bit four to disable the secondary connection altogether, but analytic instance processing requires it, so ensure that DbFlags does not have bit four set.

Errors and Abnormal Process Termination

Any errors that occur while processing an analytic server request result in the PeopleCode program returning an error code or throwing a PeopleCode exception.

If an analytic server instance that's hosting an analytic instance terminates unexpectedly, the loaded analytic instance is lost and unrecoverable. However, the analytic instance status still appears on the Analytic Server Administration pages. The domain monitor (PSMONITORSRV) discovers the unexpected termination and cleans up the status information.

See Also

DbFlags

Load

PeopleSoft Process Scheduler Preface

Click to jump to parent topicUnderstanding Batch Processing of Analytic Instances

The analytic server framework integrates with and works with PeopleSoft Process Scheduler using PeopleSoft Application Engine, because PeopleSoft Application Engine can access the analytic calculation engine and the optimization engine directly.

When PeopleSoft Process Scheduler launches an Application Engine job to process an analytic instance, PeopleSoft Application Engine handles the entire job directly by loading the analytic engine within its own process rather than using a server.

This is true whether PeopleSoft Process Scheduler submits the job to the PSAESRV process, or launches PeopleSoft Application Engine using the psae command.

See Also

PeopleSoft Optimization Framework Preface

Click to jump to parent topicConfiguring and Starting Analytic Servers

This section discusses how to:

You can specify whether an application server domain includes the PSANALYTICSRV Tuxedo managed application server process, and specify the maximum number of analytic server instances that you want the domain to support. You use the Quick-Configure menu of the PSADMIN utility to enable, configure, and start analytic server instances.

Click to jump to top of pageClick to jump to parent topicEnabling PSANALYTICSRV

You access the Quick-Configure menu of PSADMIN by selecting Configure This Domain from the Domain Administration menu.

On the Quick-Configure menu, enter the menu item number for Analytic Servers to toggle the setting for that entry to Yes, so the domain will include instances of PSANALYTICSRV when it boots.

See Also

Using the Quick-Configure Menu

Click to jump to top of pageClick to jump to parent topicSpecifying Analytic Server Instance Quantities

Before you boot the application server domain, specify the appropriate minimum and maximum number of allowed analytic server instances. The values you specify depend on your assessment of how many users you expect to be using applications that process analytic instances.

Consider the typical number of analytic instances in a domain that are being processed at any given moment as your minimum, and the possible total number of analytic instances that might simultaneously require processing as your maximum. The most appropriate values produce the fastest system response without unused server instances consuming memory unnecessarily.

To specify analytic server instances:

  1. On the Quick-Configure menu for the domain, enter the menu number for Custom Configuration.

    The Custom Configuration environment launches, and prompts you to indicate whether you want to change any configuration values.

  2. Enter y to indicate that you want to change configuration values.

    Custom Configuration prompts you to decide whether to change any values for each configuration item in turn.

  3. Press Enter to accept the default answer for each item presented, until the following entry appears:

    Values for config section - PSANALYTICSRV

  4. Enter y to change the values for PSANALYTICSRV.

    You're prompted for each value in turn.

  5. Specify the minimum number of instances.

    This defines the number of analytic server instances that start when you boot the application server domain. There are always at least this number of instances running. The default value of this parameter is 3.

  6. Specify the maximum number of instances.

    This defines the maximum number of analytic server instances that can result from spawning new processes. The default value of this parameter is 3.

  7. Press Enter to accept the default answer for each subsequent item presented. When you respond to the last item, PSADMIN loads the new configuration and the PeopleSoft Domain Administration Menu appears.

    You now can boot the domain normally.

Notice that one analytical server can load only one analytic instance. If no analytical server is available to access analytical instance, you may experience one of these two scenarios:

See Also

Using the Quick-Configure Menu

PSANALYTICSRV Options

Click to jump to top of pageClick to jump to parent topicStarting PSANALYTICSRV

If you enabled analytic servers on the Quick-Configure menu, when you boot the application server domain, the PSANALYTICSRV process starts with the minimum number of instances that you specified.

When an application running under this domain requests an analytic instance, the analytic server framework allocates an available idle analytic server instance for that analytic instance. If no idle server instance is available, the framework spawns and allocates an additional server instance, up to the maximum that you defined.

Click to jump to parent topicAdministering Analytic Servers

This section discusses how to:

Click to jump to top of pageClick to jump to parent topicAdministering Analytic Server Domains

In a browser, select PeopleTools, Utilities, Administration, Analytic Server Administration to access the Analytic Server Administration - Analytic Domain Summary page.

This page displays the current status of the application server domains with PSANALYTICSRV running that are attached to the current database. Each active domain is listed, along with the following information:

Machine Name

Displays the network name of the computer on which the listed domain is running.

Domain

Displays the name of each active domain.

Note. If a domain has been unexpectedly terminated, it might still be listed here. You can click the Clear button to remove the outdated information from the display.

Available

Displays the total number of analytic server instances running in the domain.

Loading

Displays the number of available analytic server instances in the domain that are currently being loaded.

Idle

Displays the number of available analytic server instances in the domain that are allocated to analytic instances, but aren't actively processing them.

Executing

Displays the number of available analytic server instances in the domain that are allocated to analytic instances, and are actively processing them.

Terminating

Displays the number of analytic server instances in the domain that are marked as terminated, but haven't yet been shut down.

Click a domain's Clear button to remove that row from the display when the domain has been unexpectedly terminated.

Warning! Use the Clear button with caution, and only if you're certain that the domain has been unexpectedly terminated. Clearing the domain information for servers that are still running produces errors in those servers.

Click the Refresh button to retrieve information about any newly started domains that have PSANALYTICSRV running.

Click to jump to top of pageClick to jump to parent topicAdministering Analytic Server Instances

In a browser, select PeopleTools, Utilities, Administration, Analytic Server Administration, Analytic Servers to access the Analytic Server Administration - Analytic Servers page.

Click the Search button to retrieve status information about all analytic server instances that are running in application server domains that are attached to the current database. You can use the Search Criteria section to limit the information returned based on various criteria.

Search Criteria

Domain

Select the name of an active application server domain for which you want to retrieve information.

State

Select a server state to limit the search to analytic server instances with the selected state. You can select from the following states:

  • Available

  • Registered

  • Loading

  • Idle

  • Executing

  • Terminate

Analytic Type

Select an analytic type from the set of analytic types defined in the current database. This limits the search to analytic server instances that have analytic instances of the selected analytic type loaded.

Analytic Instance

Select an analytic instance from the set of analytic instances defined in the current database. This limits the search to analytic server instances that have the selected analytic instance loaded.

Analytic Engine Type

Specify the process types for which you want to get status information. Select one or more of the following:

  • Analytic Server

  • Application Engine Server

  • Application Engine

All three types are selected by default.

Analytic Servers

This section displays a row of status information retrieved for each analytic server instance that's returned by the search. In addition to the fields documented in the previous section, each row displays the following information:

Machine Name

Displays the network name of the computer on which the listed analytic server instance is running.

Process Identifier

Displays the operating system process ID for the listed analytic server instance.

Registration Date and Time

  • Analytic server type:

    Displays the date and time that this analytic server booted.

  • Application Engine types:

    Displays the date and time that the application engine process loaded this analytic instance.

Loaded by User ID

Displays the user ID of the user whose activity resulted in the allocation of this analytic server instance.

Time Loaded

Displays the date and time that this analytic server instance loaded its analytic instance.

Latest Operation

Identifies the last operation that was applied to this analytic instance.

Latest Operation By User ID

Displays the user ID of the last user to access this analytic instance.

Latest Operation Start Time

Displays the date and time that the last operation on this analytic instance started.

Latest Operation End Time

Displays the date and time that the last operation on this analytic instance completed.

Timeout

Displays the timeout interval in minutes that's specified for this analytic instance. Timeout values are defined for analytic instances by the TimeOut parameter of the PeopleCode AnalyticInstance class Load method. A value of 0 indicates an unlimited lifespan for this analytic instance.

Terminate

Click to indicate that the server instance should be shut down.

Click to jump to parent topicAdministering Analytic Tables

This section discusses how to:

Click to jump to top of pageClick to jump to parent topicPurging Delete Tables

In a browser, select PeopleTools, Utilities, Administration, Analytic Server Administration, Purge Delete Tables to access the Analytic Server Administration - Purge Delete Tables page.

Note. Shut down all running analytic server processes before using this page.

Delete tables contain rows that have been deleted from analytic instance working data. These tables accumulate data when you use triggers for database level auditing, and they're not always cleaned up after the deletes have been completed. You use this page to accomplish the cleanup manually.

Select Analytic Type -Or- Select Analytic Instance

These drop-down lists are mutually exclusive. Select either an analytic type or an analytic instance for which you want to purge delete tables.

Delete Table Name

Displays the names of the delete tables relevant to the analytic type or analytic instance that you selected.

Purge Delete Tables

Click to clear the data from the displayed delete tables.

See Also

Employing Database Level Auditing

Click to jump to top of pageClick to jump to parent topicSynchronizing Table Versions

In a browser, select PeopleTools, Utilities, Administration, Analytic Server Administration, Synchronize Table Versions to access the Analytic Server Administration - Synchronize Table Versions page.

Note. Shut down all running analytic server processes before using this page.

Some scenario-managed optimization tables used with an analytic type have a version number field. The analytic server framework maintains a list of the tables and their version numbers. After an upgrade, the version numbers in the upgraded tables might not match the version numbers on this list. You use this page to update the list so the version numbers match.

Select Analytic Type -Or- Select Analytic Instance

These drop-down lists are mutually exclusive. Select either an analytic type or an analytic instance for which you want to synchronize table versions.

Synchronize Table Versions

When you use PeopleSoft Data Mover to move data from one database to another, it's often the case that the versions of analytic type or analytic instance data and the PSOPTSYNC table are out of synchronization. Click this button to synchronize the PSOPTSYNC table with the analytic instance tables.

Click to jump to parent topicCreating, Deleting, and Copying Analytic Instances

This section discusses how to:

Click to jump to top of pageClick to jump to parent topicPages Used to Create, Delete, and Copy Analytic Instances

Page Name

Definition Name

Navigation

Usage

Create Analytic Instance

PTACECRTINST

PeopleTools, Utilities, Administration, Analytic Inst. Create/Del/Copy.

Create an analytic instance.

Delete Analytic Instance

PTACEDELINST

PeopleTools, Utilities, Administration, Analytic Inst. Create/Del/Copy, Delete Analytic Instance.

Delete an analytic instance.

Copy Analytic Instance

PTACECPYINST

PeopleTools, Utilities, Administration, Analytic Inst. Create/Del/Copy, Copy Analytic Instance.

Copy an analytic instance.

Click to jump to top of pageClick to jump to parent topicCreating Analytic Instances

Use the Create Analytic Instance page to create an analytic instance that you can then load and view within the Analytic Model Viewer to inspect and debug your analytic model.

Select PeopleTools, Utilities, Administration, Analytic Inst. Create/Del/Copy to access the Create Analytic Instance page.

Analytic Type

Select an analytic type from the drop-down list.

See Working with Analytic Types.

See Creating Analytic Type Definitions.

Analytic Instance

Enter a name for the analytic instance.

Analytic instance names should consist of alphanumeric characters, can be up to 20 characters long, and cannot include spaces.

App Package Path and App Class Method

The App Package Path field displays the full name of an application class (application package name, subpackage names if applicable, and class name) that's used to execute logic before loading the analytic instance.

The App Class Method field displays the name of the method in the displayed class that's called at creation time to populate the new analytic instance with data.

You establish the application package class and method to use when you define the analytic type.

See CreateAnalyticInstance.

Record with Parameters

Look up and select parameters to be passed to the application class method. Click the lookup button to display a list of records. Selecting any record generates a standalone record.

Populate Record Fields

Displays a secondary page that lets you populate the fields of the standalone record; the values of these fields will serve as parameters passed into the App Class Method.

Create Analytic Instance

Create the analytic instance. After the analytic instance has been successfully created, you receive a notification to that effect.

Click to jump to top of pageClick to jump to parent topicDeleting Analytic Instances

Select PeopleTools, Utilities, Administration, Analytic Inst. Create/Del/Copy, Delete Analytic Instance to access the Delete Analytic Instance page.

You can specify search criteria to filter the display of returned analytic instances based on a combination of analytic type, model name, and server state.

Analytic Type

Look up and select the analytic type upon which the analytic instance is based.

Model Name

Look up and select the analytic model upon which the analytic instance is based.

Server State

Select one of the following:

  • Idle

  • Loading

  • Executing

  • Terminating

See Administering Analytic Servers.

Clear Search Criteria

Click to delete any current search criteria so you can begin a search from scratch.

Search

Click to display all analytic instances that meet the specified search criteria.

Select one of the displayed analytic instances to delete.

Record with Parameters

Look up and select parameters to be passed to the application class method. Click the lookup button to display a list of records. Select a record, the first row of which will consist of parameters that you want to pass to the application class method. Selecting any record generates a populated, standalone record.

Populate Record Fields

Displays a secondary page that lets you populate the fields of the standalone record; the values of these fields will serve as parameters passed into the App Class Method.

Delete Analytic Instance

Unload the selected analytic instance and delete the data associated with it.

Click to jump to top of pageClick to jump to parent topicCopying Analytic Instances

Select PeopleTools, Utilities, Administration, Analytic Inst. Create/Del/Copy, Copy Analytic Instance to access the Copy Analytic Instance page.

You can specify search criteria to filter the display of returned analytic instances based on a combination of analytic type, model name, and server state.

Analytic Type

Look up and select the analytic type upon which the analytic instance is based.

Model Name

Look up and select the analytic model upon which the analytic instance is based.

Server State

Select one of the following:

  • Idle

  • Loading

  • Executing

  • Terminating

See Administering Analytic Servers.

Clear Search Criteria

Click to delete any current search criteria so you can begin a search from scratch.

Search

Click to display all analytic instances that meet the specified search criteria.

Select one of the displayed analytic instances as the source instance to copy.

New Analytic Instance ID

Enter a name for the new analytic instance; this analytic instance will be a copy of the selected source instance.

Record with Parameters

Look up and select parameters to be passed to the application class method that will copy the source analytic instance. Click the lookup button to display a list of records. Select a record, the first row of which will consist of parameters that you want to pass to the application class copy method. Selecting any record generates a populated standalone record.

Populate Record Fields

Displays a secondary page that lets you populate the fields of the standalone record; the values of these fields will serve as parameters passed into the application class copy method.

Copy Analytic Instance

Copy the selected analytic instance and its associated data. If a tree is attached to the selected analytic instance, all tree data is also copied to the new analytic instance, if all of the following are true:

Note. The analytic instance data and tree data are copied only if the record with parameters that you specified is populated with the source analytic instance ID.

Click to jump to parent topicLoading and Unloading Analytic Instances

This section discusses how to load and unload analytic instances:

Note. You can load and unload analytic instances for use with both the Analytic Calculation Engine and PeopleSoft Optimization Framework.

Click to jump to top of pageClick to jump to parent topicLoading and Unloading Analytic Instances

To use the Analytic Model Viewer, you must load an analytic instance of the analytic model that you want to view or debug. You load analytic instances by using:

You unload instances by using the Analytic Instance Load/Unload page (PTACEMDLLOAD).

It is quicker to load an analytic instance by going through the Analytic Model Viewer: This approach allows you to simultaneously load and view the analytic instance. However, you can use the Analytic Instance Load/Unload page if you need to modify the timeout value or attach or detach a tree. You need to attach a tree before loading an analytic instance if you want to see the tree structure while reviewing this analytic instance within the Analytic Model Viewer.

See Understanding Analytic Model Properties.

See Creating Hierarchies.

Note. You can only load one analytic instance per analytic server.

You can also load and unload analytic instances by means of PeopleCode, using the AnalyticInstance class Load or Unload methods.

See AnalyticInstance Class Methods.

Access the Analytic Instance Load/Unload page (PTACEMDLLOAD) by selecting PeopleTools, Utilities, Administration, Analytic Instance Load/Unload; and selecting the desired analytic instance on the search results page.

Note. If you don't see the desired analytic instance, you need to create it as described earlier.

If you selected a PeopleSoft Optimization Framework analytic instance, you won't see the Attach/Detach Tree portion of the Analytic Instance Load/Unload page.

See Creating, Deleting, and Copying Analytic Instances.

Attach/Detach Tree

Dimension

Lists the dimensions in the selected analytic instance.

Select

Click to select a tree to attach to the dimension. A secondary page appears from which you can select a tree.

Clear

Click to disassociate a selected tree from the dimension.

SetID

Displays the SetID associated with the tree, if applicable.

Set Control Value

Displays the Set Control Value associated with the tree, if applicable.

Tree Name

Displays the name of the selected tree.

Effective Date

Displays the effective date associated with the tree.

Tree Node

Specify a node from the selected tree.

Record Name

Displays the name of a record containing override rules or functions.

See Understanding the Relationship of PeopleSoft Trees to Analytic Models.

Start Level

Enter a number to specify the type of dimension members that Analytic Calculation Engine creates out of the nodes and leaves of a tree. The default value of this field is 0. The root level is 1.

Note. If you specify a nonzero start level, you must specify the strictly enforced method to the tree in PeopleSoft Tree Manager. The strictly enforced method ensures that all members that are created out of one level are created as the same data type.

See Purpose of Node Levels in Creating Hierarchies.

Discard Level

Enter a number to specify the level from which Analytic Calculation Engine does not attach any more of the tree to the dimension. Analytic Calculation Engine does not create members out of nodes or leaves that are either at this level or lower than this level.

You must specify a start level to every tree for which you want to specify a discard level. The default value of this field is 0. If you specify any other value, then it must be at a lower level (a higher number) than the start level.

See Purpose of Node Levels in Creating Hierarchies.

Save Tree Information

Click to save the dimension tree information that you've selected. The updated tree information takes effect the next time you load the analytic instance.

Analytic Instance Load/Unload

Message Name

Specify an application message that should be sent if the analytic instance can't be unloaded successfully and is terminated prematurely. This can happen if the analytic server crashes while the analytic instance is loaded.

Note. The message is sent when the analytic server process restarts itself after crashing. The long edit box in this section of the page displays the content of detailed messages.

Load Asynchronously

Select to indicate that the analytic instance should be run asynchronously.

Time Out

Enter the number of minutes of inactivity before the analytic instance times out. The default time out is the value specified for the Analytic Instance Idle Timeout domain parameter.

See Analytic Instance Idle Timeout.

Note. After an instance times out, you must reload it to continue working with it.

Import from File

Import an analytic instance from a file. You use this option to import an analytic instance that you've captured with the Analytic Instance Capture Utility.

See Capturing Analytic Instances.

File Directory

Specify the directory from which you want to retrieve the analytic instance that you are importing from file.

Load Analytic Instance

Click to load the selected analytic instance. Analytic Calculation Engine displays a confirmation message after it successfully loads the analytic instance:

Unload Analytic Instance

Click to unload the selected analytic instance. Analytic Calculation Engine displays a confirmation message after it successfully unloads the analytic instance. You must unload analytic instances once you're done working with them.

See Also

Load