Enhancing File Management With HiperFOCUS

In this section:

HiperFOCUS comprises a group of related features that accelerate FOCUS processing by improving file management performance and controlling resources. These features are:

HiperFOCUS enhances file management operations by making use of hiperspaces to reduce I/O and provide additional memory. These enhancements accelerate application performance.

Exploiting these memory facilities avoids writing to disk, thereby saving significant I/O time. It also makes more virtual memory available, and transfers data to and from central storage faster.

The HiperBudget feature of HiperFOCUS on z/OS regulates the use of expanded storage on a system-wide basis. This feature requires that the IBI Subsystem be installed. For information on the subsystem, consult your FOCUS installation guide.

System administrators and application developers can take advantage of the HiperFOCUS options and configuration settings. End users need only activate HiperFOCUS to take advantage of its capabilities.


Top of page

x
Activating HiperFOCUS

How to:

To use any HiperFOCUS feature, HiperFOCUS must be installed and activated. Once it has been installed, you can activate and deactivate it using the SET HIPERFOCUS command.

If HiperFOCUS is not installed, the SET HIPERFOCUS command is disabled.

You can determine if HiperFOCUS is installed and active by issuing a query command. You can also query the HiperFOCUS facility from Dialogue Manager using the system variable &HIPERFOCUS. This four-character variable has the value ON if HiperFOCUS is installed and active; otherwise, it has the value OFF.



x
Syntax: How to Activate HiperFOCUS
SET HIPERFOCUS = {ON|OFF}

where:

ON

Activates HiperFOCUS. This is the default.

OFF

Deactivates HiperFOCUS.



x
Syntax: How to Determine Whether HiperFOCUS Is Activated
? SET HIPERFOCUS

If HiperFOCUS is installed, the command displays the message HIPERFOCUS ON or HIPERFOCUS OFF.


Top of page

x
Installing and Configuring HiperFOCUS

Reference:

HiperFOCUS is installed and configured using SET parameters. These commands must be set in the FOCPARM profile. You can install HiperFOCUS by simply adding SET HIPERINSTALL=ON to the FOCPARM entries and accepting the defaults. However, since this would not establish limits on the number of hiperspaces that FOCUS could create, establishing operating limits using the HiperFOCUS SET parameters is strongly recommended. For details on these parameters, see HiperFOCUS Installation and Configuration Parameters.

When installing on z/VM, HiperFOCUS also requires an XC mode virtual machine. To establish XC mode, issue the following command and then re-IPL CMS:

CP SET MACHINE XC

Once HiperFOCUS has been configured, the end user can activate or deactivate it. No other end-user intervention is required. HiperFOCUS is transparent to normal end-user activity. The only visible change is an increase in application speed.



x
Reference: HiperFOCUS Installation and Configuration Parameters

The following parameters can be set only in the FOCPARM ERRORS file. On z/OS, this file is member FOCPARM of the data set allocated to ddname ERRORS. On CMS, it is the file named FOCPARM ERRORS.

Parameter Name

Description

Default Value

HIPERINSTALL

Installs or disables HiperFOCUS.

OFF

HIPERSPACE

Is the number of (4K) pages to aggregate for hiperspace. This is equivalent to the IBI Subsystem TCBLIM parameter. If both are set, the lower is enforced.

524287 (2GB)

HIPERFILE

Is the maximum number of (4K) pages in an individual hiperspace. This is equivalent to the IBI Subsystem FILELIM parameter. If both are set, the lower is enforced.

524287 (2GB)

HIPERCACHE

Determines the default CACHE size in 4K pages when HiperFOCUS is activated.

256 (1M)

HIPEREXTENTS

Determines the permissible number of extents.

127

HIPERLOCKED

Enables or disables processing of user interface commands such as SET HIPERFOCUS.

OFF (allows processing)



x
Installing HiperBudget on z/OS

How to:

Reference:

On z/OS, the HiperBUDGET facility is installed as part of the IBI Subsystem installation. (The IBI Subsystem provides communication among address spaces running Information Builders products on the same z/OS system.) HiperBUDGET uses the subsystem to regulate and report on the overall use of hiperspace on that system. It accomplishes this by enforcing pre-defined limits on hiperspace consumption set at the system, server, user, and file levels. Limits set at lower levels may never exceed those set at higher levels. HiperBUDGET parameters must be set using the z/OS console or by running a special IBI Subsytem job during installation. For more information on these parameters, see HiperBUDGET Installation Parameters.



x
Reference: HiperBUDGET Installation Parameters

The following parameters can be set only in the z/OS console or during IBI Subsytem installation. See your FOCUS installation guide for information.

Parameter Name

Description

MVSLIM

Is the maximum number of 4K hiperspace pages for all Information Builders products on the operating system. The value -1 specifies no hiperspace limit checking.

SERVLIM

Is the maximum number of 4K hiperspace pages allowed for multiple users on a per server basis. The value -1 specifies no limit/server checking.

TCBLIM

Is the maximum number of 4K hiperspace pages/per user. The value -1 specifies no limit/user checking. This is equivalent to the FOCPARM HIPERSPACE parameter. If both are set, the lower is enforced.

FILELIM

Is the maximum number of 4K hiperspace pages per individual file. The value -1 specifies no limit/file checking. (This is equivalent to the FOCPARM HIPERFILE parameter. If both are set, the lower is enforced.)



x
Syntax: How to Query HiperBUDGET Limits and Usage

The ? HBUDGET query shows the Hiperspace limits specified and actual utilization statistics, including: limits set at the system, server, user and file levels; the number of busy pages; the number of hiperextents allowed; and the ddnames and sizes of files allocated in hiperspace or spilled to disk.

>? HBUDGET
Total system     limit is not set
Total server     limit is not set
Total hiperspace limit is not set
Single file size limit is   524288 pages
Total amount of busy pages is  616 pages
Number of extents is set to    127
 
DDname :Reserved :Hiperspace : Spilled :Spill DDn

Top of page

x
Creating Temporary Files in Hiperspaces With HiperFile on z/OS

In this section:

FOCUS dynamically allocates certain files to simplify file management. HiperFile allocates each of these files to its own hiperspaces. This eliminates the need to access a disk, which saves much I/O time and makes data transfer to and from central storage faster. Together, these efficiencies reduce elapsed time and make applications run more quickly. If a file is too large to be created in a hiperspace, HiperFile creates it on disk instead.

For a complete list of dynamically allocated files, refer to the default space allocation table in member IBITABLA of the partitioned data set FOCCTL.DATA.

You can override default allocation attributes by explicitly allocating files yourself. If you do so, you can choose to create the file in a hiperspace or on disk using the DYNAM ALLOCATE command. To control the behavior of HiperFOCUS, you must understand the following:



x
Determining If a Temporary File Fits in a Hiperspace on z/OS

When FOCUS allocates a temporary file in a hiperspace, it first verifies that the file's primary extent does not exceed your site's hiperspace limit. If the primary extent is too large, the file is automatically allocated to disk instead.

To determine if the allocation for a temporary file is within your site's hiperspace limit, you can calculate the file's size, in 4096-byte pages, using a formula. A hiperspace can be up to two gigabytes. However, your site may have specified smaller limits in one of the following ways:



x
Syntax: How to Determine If a Temporary File Fits in a Hiperspace on z/OS

If you use tracks as your allocation unit, the syntax is

pages=(primary_extent * 12) + ((secondary_extent * operations) * 12)

If you use cylinders as your allocation unit, the syntax is

pages=(primary_extent * 12 * 15) + ((secondary_extent * operations) * 12 * 15)

where:

pages

Are the number of 4096-byte pages, determined by the result of the formula.

primary_extent

Is the initial amount of space to be allocated.

secondary_extent

Is the amount of space to allocate when the previously allocated space is filled.

operations

Is the number of extend operations. The default value is 127, but your site can specify fewer extents when installing HiperFOCUS.

Note: This formula assumes that your storage device has 12 records per track and 15 tracks per cylinder.



x
Reference: Explicitly Allocating a Temporary File to Disk

On z/OS, HiperFile allocates many of your temporary files to hiperspaces by default. However, you can override default allocations and allocate files on disk rather than in hiperspaces.

When you explicitly allocate a file with the parameter DISP=(NEW,DELETE) for a sequential data set, or DISP=(NEW,DELETE,DELETE) for a partitioned data set, HiperFile verifies that the file's primary extent does not exceed your site's hiperspace limit, and then creates the file in a hiperspace.

To allocate one of these files to disk instead of to a hiperspace, you can do so by including the following DYNAM parameters:

  • If you do not wish to identify a particular unit, specify UNIT NOHIPER. For example:
DYNAM ALLOC FILE TEMPDSN SP 5 5 CYL UNIT NOHIPER
  • If you do wish to identify a particular unit, specify UNIT unit_type HIPER OFF. For example:
DYNAM ALLOC FILE TEMPDSN SP 5 5 CYL UNIT SYSDA HIPER OFF

See the Overview and Operating Environments manual for general FOCUS file allocation instructions.



x
Determining Where a Temporary File Has Been Allocated

On z/OS, you can determine where a temporary file is allocated by issuing a query command. The query command returns information including the following:



x
Syntax: How to Determine Where a Temporary File Has Been Allocated
? {MVS|TSO} DDNAME ddname

where:

ddname

Is the ddname for which you want to see the allocation information.



x
Copying a Hiperspace File to Disk on z/OS

In some situations you may wish to copy a file from a hiperspace to disk. For example, if you create a series of HOLD files, you may need to save one of them to a permanent data set.

You can copy a file from a hiperspace to disk using the DYNAM COPY command, as described in the Overview and Operating Environments manual.



x
Improving Page Handling on z/OS

FOCUS can write pages to disk after exhausting the expanded storage allocation with the HiperFOCUS Spill to Disk feature. This feature, which eliminates error messages associated with inadequate storage, is activated by setting the TRACKIO parameter to ON.

To check on how many pages are in expanded storage and how many were spilled to disk, issue the ? HBUDGET query command described in How to Query HiperBUDGET Limits and Usage.

Note: To preserve performance gains achieved through HiperFOCUS, we recommend that you allow only 10% of the pages to spill to disk. If you find that over 10% are on disk, ask your system administrator to allocate additional space for expanded storage.


Top of page

x
Creating a Temporary Sort File in Hiperspace on CMS

How to:

Reference:

Under CMS, HiperFile enhances file-management performance by creating the temporary FOCUS sort file—FOCSORT FOCTEMP—in a hiperspace instead of on disk. This saves I/O time by avoiding disk access, and also makes data transfer to and from central storage faster. Together, these efficiencies reduce elapsed time and make your applications run faster.



x
Syntax: How to Query z/VM Hiperspace Use

Issue the following command at the FOCUS command prompt:

CMS CP Q SPACES


x
Reference: How to Control z/VM Hiperspace Size

Hiperspaces can be up to two gigabytes. However, your site may have specified a smaller limit in the following ways:


Top of page

x
Creating Cache Memory in Hiperspaces on z/OS

In this section:

With HiperFOCUS activated, FOCUS under z/OS creates FOCUS data source cache memory in a hiperspace.

Standard cache memory stores previously-read FOCUS data source pages in virtual memory, buffering the pages between disk and the internal work area named BINS. When a request needs to read a data source page, it first searches for the page in BINS, followed by cache, and finally looks on disk. By avoiding unnecessary disk I/O, cache accelerates your data retrieval. Cache is most effective when you issue several consecutive requests against the same data source, where the later requests access a subset of the fields accessed by the original request.

HiperFOCUS optimizes FOCUS data source buffering by storing cache pages in a hiperspace instead of in the FOCUS address space. This makes additional memory available, enabling you to store more data source pages in cache; it also reduces the amount of disk I/O and speeds the transfer of data from disk to cache. The end result is faster data source access. When cache is stored in a hiperspace, it is referred to as HiperCache.



x
Controlling HiperCache

With HiperFOCUS activated, the default cache buffer size is 256 pages (that is, one megabyte). This differs from standard cache, where the default is 0 pages (that is, cache is turned off). You can change the default for HiperFOCUS cache when HiperFOCUS is installed. You can also control HiperCache in the following ways:



x
Syntax: How to Set Cache

The syntax for setting HiperCache and standard cache is

SET CACHE = {0|n}

where:

0

Allocates no space to cache; cache is inactive. This value is the default.

n

Is the number of 4K pages of contiguous storage allocated to cache memory. The minimum is two pages; the maximum is determined by the amount of memory available. The default for HiperCache is 256 pages (that is, one megabyte). When CACHE is set to any positive value, the cache facility is on.


Top of page

x
Controlling HiperFOCUS Use With the HiperRule Facility

In this section:

If you are responsible for managing system resources, you may wish to control which FOCUS users use HiperFOCUS, and the conditions under which they do so. HiperFOCUS enables you to do this with the HiperRule facility.

HiperRule dynamically controls HiperFOCUS use based on user ID, day, time, FOCUS release, and related information. The HiperRule facility controls HiperFOCUS by the following process:

  1. Write a rule. A system administrator writes a rule specifying the conditions under which FOCUS users can access HiperFOCUS.
  2. Activate the HiperRule facility. The administrator activates the HiperFOCUS HiperRule facility by saving the rule as a file. Each system is governed by a single rule.
  3. Evaluate the rule. The HiperRule facility evaluates the rule each time a user begins a FOCUS session to determine if the user is eligible to access HiperFOCUS. If the user is eligible, access is allowed; otherwise, the user receives a warning message (FOC897) and remains in the FOCUS session without HiperFOCUS.

HiperFOCUS rules provide a powerful and flexible way to manage access.



x
Writing a HiperRule

A rule is a sequence of rule statements. A rule statement can be:

A rule must have at least one ACCEPT statement, and can contain an unlimited number of ACCEPT, REQUIRE, and temporary field statements.



x
Syntax: How to Write a HiperFOCUS Rule

A rule statement can be one of the following

REQUIRE = expression;

or

ACCEPT = expression;

or

tempfield[/format] = expression;

where:

ACCEPT

Defines a condition that is sufficient for allowing access to HiperFOCUS. The use of ACCEPT statements is described in Evaluating a HiperRule.

REQUIRE

Defines a condition that—if the HiperRule facility evaluates it—is necessary, but not sufficient, for allowing access to HiperFOCUS.

tempfield

Is the name of the temporary field. It must begin with a letter, and can include any combination of letters, digits, and underscores ( _ ). All letters from A through Z are valid; other letters available in some languages, such as Å and Ç, are not. The name can be up to 66 characters long, and cannot be qualified.

format

Is the field's format. All formats except TX (text) are supported. The default format is D12.2.

expression

Is any valid expression, as described in the Creating Reports manual.

Rule expressions can also refer to HiperFOCUS environment variables, such as USERID and HOUROFDAY. These environment variables are described in Evaluating a HiperRule.



Example: Writing a HiperRule

The following rule permits HiperFOCUS to be used at all times by the site's FOCUS system administrator, and at non-peak times (before 9:00 AM or after 5:00 PM) by everyone else:

ACCEPT = USERID IS 'FOCSYS';
REQUIRE = (HOUROFDAY LE '09') OR (HOUROFDAY GE '17');


x
Evaluating a HiperRule

The HiperRule facility evaluates rule statements sequentially, beginning with the first statement:

The HiperRule facility permits a user to access HiperFOCUS if all of a rule's evaluated REQUIRE statements are true and at least one of its ACCEPT statements is true. A statement is true when its expression is true.

In some situations, you may find it helpful to create a rule statement that is always true or always false. Because the value 1 represents true, and the value 0 represents false, the following statement is true under all conditions:

ACCEPT = 1;

The following statement is false under all conditions:

REQUIRE = 0;


x
Reference: HiperFOCUS Environment Variables

HiperFOCUS provides the following environment variables to use in rule statements.

Name

Description

Format

Value

USERNAME

User ID.

A8

A valid user ID.

TODAYSDATE

Current date.

YMD

yyyy/mm/dd (If you enter a two-digit year as the value, the century value 19 is assumed.)

DAYOFWEEK

Current day of the week.

A8

SUNDAY, MONDAY, TUESDAY, WEDNESDA, THURSDAY, FRIDAY, SATURDAY

TIMEOFDAY

Current time.

A8

hh.mm.ss

HOUROFDAY

Current hour.

A2

00 - 23

OPERATINGSYS

Operating system.

A8

CMS, TSO, MSO, CRJE (z/OS batch)

TERMINALTYPE

Terminal type.

A8

3270 (full-screen mode), TTY (line mode), UNKNOWN

FOCUSREL

FOCUS release number.

A16

n.n[n] (for example, 7.2)



Example: Evaluation of a HiperRule

Assume that a user with user ID PGM030 tries to execute an application on April 25, 2001, invoking the following application rule:

ACCEPT  = USERID IS 'HFUSER1';
REQUIRE = TODAYSDATE GE '20010425';
REQUIRE = TODAYSDATE LE '20010525';
ACCEPT  = USERID IS 'PGM030';
ACCEPT  = USERID IS 'PGM040';
  1. The first ACCEPT statment evaluates as false, so evaluation continues.
  2. The two REQUIRE statments evaluate as true, so evaluation continues.
  3. The next ACCEPT statment evaluates as true, so evaluation halts and the rule is statisfied.


x
Storing a HiperRule

The way in which you store a rule depends upon your operating system:


Information Builders