z/OS MVS Programming: Extended Addressability Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Using data-in-virtual with standard hiperspaces

z/OS MVS Programming: Extended Addressability Guide
SA23-1394-00

Data-in-virtual allows you to map a large amount of data into a virtual storage area and then deal with the portion of the data that you need. The virtual storage provides a "window" through which you can "view" the object and make changes, if you want. The DIV macro manages the data object, the window, and the movement of data between the window and the object.

You can use standard hiperspaces with data-in-virtual as Table 1 describes:

Table 1. Uses of hiperspaces and data-in-virtual
Question about behavior Non-shared standard hiperspace Shared standard hiperspace ESO hiperspace
Can the hiperspace map a VSAM linear data set? Yes Yes No
Can the hiperspace be a data-in-virtual object? Yes, providing the hiperspace has not been the target of an ALESERV ADD No No

The task that represents the program that issues the DIV IDENTIFY owns the pointers and structures associated with the ID that DIV returns. Any program can use DIV IDENTIFY. However, the system checks the authority of programs that try to use the other DIV services for the same ID. For problem state programs with PSW key 8 - F, data-in-virtual allows only the issuer of the DIV IDENTIFY to use subsequent DIV services for the same ID. That means, for example, that a problem state program with PSW key 8 cannot issue the DIV IDENTIFY and another problem state program with PSW key 8 issue DIV MAP for the same ID.

Problem state programs with PSW key 8 - F can use DIV MAP to:
  • Map a VSAM linear data set to a window in a non-shared or shared standard hiperspace, providing the program owns the hiperspace.
  • Map an object in a non-shared hiperspace to an address space window, providing:
    • The program owns the hiperspace, and
    • The program or its attaching task obtained the storage for the window (through the STORAGE or GETMAIN macro), and
    • The hiperspace has never been the target of an ALESERV ADD macro.

Data-in-virtual allows supervisor state programs or programs with PSW key 0 - 7 (called "authorized programs" in this section) to issue DIV IDENTIFY and then have subtasks of that task use the structures. The subtasks must also be authorized. This means that an authorized program can issue a DIV IDENTIFY and an authorized subtask can issue the DIV MAP for that ID.

Table 2 shows what data-in-virtual requires of the tasks that represent the programs that issue the DIV macros. The table does not show the IDENTIFY service because data-in-virtual does not have restrictions on this service.

Table 2. Requirements for authorized programs using the DIV services with hiperspaces
Question about behavior ACCESS MAP SAVE UNIDENTIFY, UNACCESS, UNMAP, RESET
Object is a linear data set, window is in a non-shared or shared standard hiperspace Task that issued the DIV IDENTIFY. Task (or authorized subtask of the task) that issued the DIV IDENTIFY. (See Note 1.) Task (or authorized subtask of the task) that issued the DIV IDENTIFY. The task does not have to own the hiperspace. Task (or authorized subtask of the task) that issued the DIV IDENTIFY. The task does not have to own the hiperspace.
Object is a non-shared standard hiperspace, window is in an address space Task that issued the DIV IDENTIFY. The task must own the hiperspace. Task that issued the DIV IDENTIFY. The task (or a supertask of the task) that issued the DIV IDENTIFY must have obtained storage for the window. (See Note 2.) Task that issued the DIV IDENTIFY. Task (or authorized subtask of the task) that issued the DIV IDENTIFY. The task does not have to own the hiperspace.
Note:
  1. If the program is in supervisor state or PSW key 0 - 7, any task within the caller's primary address space can own the hiperspace.
  2. If the program is APF-authorized, but not supervisor state or PSW key 0 - 7, the caller must own the hiperspace.
  3. A task cannot map to virtual storage that a subtask obtained. However, a super task (that is, a task higher in the TCB chain) can obtain the storage.

Whether the hiperspace contains the window or is the object, the data-in-virtual service will not create a local copy of the object (that is, you cannot use the LOCVIEW=MAP parameter on DIV ACCESS).

The following two sections describe how your program can use data-in-virtual with hiperspaces.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014